5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

OSを作ろうpart12

1 :Be名無しさん:2006/07/17(月) 19:49:44
独自にOSを作っているまたは、作ろうとしている人たちのための
スレッドになればと思います。

■前スレ
OSを作ろうpart12
http://pc8.2ch.net/test/read.cgi/os/1108836476/

2 :Be名無しさん:2006/07/17(月) 19:51:04
■過去スレ■

part2 http://pc3.2ch.net/tech/kako/1024/10244/1024411711.html
part3 http://pc3.2ch.net/tech/kako/1027/10270/1027080631.html
part4 http://pc3.2ch.net/tech/kako/1037/10370/1037096449.html
part5 http://pc2.2ch.net/tech/kako/1042/10423/1042375466.html
part6 http://pc2.2ch.net/tech/kako/1052/10525/1052537020.html
part7 http://pc2.2ch.net/tech/kako/1066/10669/1066968321.html
part8 http://pc3.2ch.net/test/read.cgi/os/1076216434/
part9 http://pc3.2ch.net/test/read.cgi/os/1081561384/
part10 http://pc5.2ch.net/test/read.cgi/os/1083420872/
part11 http://pc5.2ch.net/test/read.cgi/os/1093825736/
part12 http://pc8.2ch.net/test/read.cgi/os/1108836476/

3 :Be名無しさん:2006/07/17(月) 19:58:49
何故にpart12?

4 :Be名無しさん:2006/07/17(月) 20:01:26
part13だろバカ


■関連スレ■
【2chOS】OSを作ろう【マジ】
http://pc8.2ch.net/test/read.cgi/os/1018174274/
※忘れ去られた初代スレ

「30日でできる!OS自作入門」
http://pc8.2ch.net/test/read.cgi/os/1151897893/
※K本の真実:http://pc8.2ch.net/test/read.cgi/os/1151897893/72

仮に新しくOS作るとしたら、、、
http://pc8.2ch.net/test/read.cgi/os/994675006/

OSを作ってみよう
http://pc8.2ch.net/test/read.cgi/os/1046271176/

OSを作りたいわけだが。
http://pc8.2ch.net/test/read.cgi/os/1062870092/

【ヤチャータ】OS作りました【デキチャータ】
http://pc8.2ch.net/test/read.cgi/os/1019463348/

OS作りに向いている言語は何ですが?
http://pc8.2ch.net/test/read.cgi/os/1043751313/

5 :Be名無しさん:2006/07/17(月) 20:38:06
>>4 ヤバすぎw

>part13だろバカ

スレタイ間違えてるのに逆切れしてどうするのよ?
このスレの前途は暗いな。

6 :Be名無しさん:2006/07/17(月) 20:45:36
認定厨がウザイ

7 :Be名無しさん:2006/07/17(月) 20:54:18
認定厨認定厨がウザい

8 :Be名無しさん:2006/07/17(月) 20:58:38
VIPのスレは即死したな

9 :Be名無しさん:2006/07/17(月) 21:01:44
で、結局誰が支配者に即位したの?

10 :Be名無しさん:2006/07/17(月) 21:03:10
>>1が支配者

11 :Be名無しさん:2006/07/17(月) 21:08:51
>>10
お前ウザいよ
お前が支配者になって厨に手取り足取り教えてやればいいだろ

12 :Be名無しさん:2006/07/17(月) 21:10:23
と支配者気取りが言っています^^

13 :Be名無しさん:2006/07/17(月) 21:12:16
>>11 おまえ>>1か?とりあえずスレ建て乙
何が原因か知らんが、カリカリしてるようだな。
もう休んでリフレッシュ汁!

14 :Be名無しさん:2006/07/17(月) 21:18:08
出来ればosをつくるのに有用な資料を下さい。
環境依存などをお願いします。

15 :Be名無しさん:2006/07/17(月) 21:19:01
>>14
そういうネタはすれ違いです

16 :Be名無しさん:2006/07/17(月) 21:23:42
>>14

ttp://slashdot.jp/comments.pl?sid=324903&cid=979964

Re:OSは大きいとは限らない (スコア:4, 参考になる)
.mjt (13150) のコメント: 2006年07月17日 18時17分 (#979964)

中の人なのでdev-j [osdev.info]を宣伝したいけど、
ttp://wiki.osdev.info/
PC上で動くOSを作りたいならOS Wiki [osdev.info]の方が密度高いですね。
ttp://community.osdev.info/

一口にOS作りといっても、それが指す領域はメモリ管理から
UIまで非常に幅広いのでまとめるというよりは方々の知識を総動員するものなので。

今のところは書籍の方が(日本語の情報源としては)良いと思います。
ストーリーで挙がっているようなものとか、Solarisインターナルとか。

17 :Be名無しさん:2006/07/17(月) 21:26:08
前スレから生まれたOS

270氏作hoverdos
ttp://hovweb.hp.infoseek.co.jp/

18 :Be名無しさん:2006/07/17(月) 21:35:49
OSを作る意義とか薀蓄を垂れたい奴向き

今OSを自作する意味は?
ttp://slashdot.jp/askslashdot/article.pl?sid=06/07/17/0652257&threshold=-1

19 :Be名無しさん:2006/07/17(月) 21:49:59
>>16

どうもです。
ちょっと見てみます。

20 :Be名無しさん:2006/07/17(月) 21:51:05
>>17
もう1年か。
何もかもみな懐かしい。

21 :Be名無しさん:2006/07/17(月) 22:06:05
>>16
.mjtが.mitに見えた。

それはともかく .mjtとMInoxxTaroはOS作りを消費に使うだけで、生産性がまるで
なかったのが結論。

22 :Be名無しさん:2006/07/17(月) 22:09:47
>>21
太郎はOS作りで今の地位にのし上がったから本人としてはそれで充分じゃね?

23 :nana:2006/07/17(月) 22:40:05
仮想記憶が現在のOSにいかなる影響を与えたのでしょうか??

24 :Be名無しさん:2006/07/17(月) 22:41:33
>>23
人に聞く前に自分で調べたことと見解を書くのが礼儀

25 :Be名無しさん:2006/07/17(月) 22:42:22
支配者様からの優しい御回答
↓↓↓↓↓↓↓

26 :Be名無しさん:2006/07/17(月) 22:43:42
夏だから

厨を根絶

キャンペーン

27 :Be名無しさん:2006/07/17(月) 22:45:20
だったらスレを建てるなよ
・・・・
まさかゴキブリホイホイ?

28 :nana:2006/07/17(月) 22:45:56
わからないからきいているのです!!

29 :nana:2006/07/17(月) 22:46:48
いいサイトなどがあれば教えてください。

30 :Be名無しさん:2006/07/17(月) 22:47:17
>>28
仮想記憶が何かすら調べられずにわからないなら
説明を聞いてもわからないと思うよ

君だって掛け算九九もできないガキに微積分を教えろって言われたらどうするよ?

31 :Be名無しさん:2006/07/17(月) 22:49:05
香ばしいのが釣れたな

32 :Be名無しさん:2006/07/17(月) 22:51:27
スレと関係ないんだけどさ、俺「釣り」とか「釣り師」っていうのは、

 釣り師 ↓     
.            /| ←竿
     ○  /  |
.    (Vヽ/    |
    <>     |
゙'゙":"''"''':'';;':,':;.:.,.,__|_________
             |
  餌(疑似餌)→.§ >゚++< 〜
                 の組み合わせだと思ってたんだけど、

最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか
言ってるの多いよね。
 これは、どっちかというと、



          ,〜〜〜〜〜〜 、
|\     ( 釣れたよ〜・・・)
|  \    `〜〜〜v〜〜〜´
し   \
゙'゙":"''"''':'';;':,':;.:.,.,  ヽ○ノ
          ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                 ト>゚++<
              ノ)

かと思うんだけど、どうよ?

33 :Be名無しさん:2006/07/17(月) 22:52:42
今ちょうどそれをコピペしようと思ってた

34 :nana:2006/07/17(月) 22:56:48
仮想記憶はある程度調べて分かったが、それが現在のOSに与える影響はについては
私の頭では分かりません。
だからお願いをしているのです。

35 :Be名無しさん:2006/07/17(月) 22:59:28
影響なんてねーよ


36 :Be名無しさん:2006/07/17(月) 22:59:34
>>34
仮想記憶について調べたことを書けって言ってんの。
あとなぜ現代のOSに与えた影響を知りたいかも。
それが最低限の礼儀だ。

37 :Be名無しさん:2006/07/17(月) 23:02:12
データ通信速度が低速な「ディスク」にアクセスするから、パフォーマンスが低下するって話だろ。
その程度のことがわからない理由がわからない。

38 :Be名無しさん:2006/07/17(月) 23:05:53
>>36
何さ偉そうに。お前こそ礼儀がなってねーよ。

39 :Be名無しさん:2006/07/17(月) 23:07:24
たぶん大学の一般教養のレポートだと思われ。
文系だと辛いんじゃね?
理系で辛いなら転学科した方がいい。

40 :Be名無しさん:2006/07/17(月) 23:08:03
厨房同士の喧嘩は厨房板でどうぞ。


41 :Be名無しさん:2006/07/17(月) 23:09:02
女の子には優しくしないとダメですよ♥

42 :Be名無しさん:2006/07/17(月) 23:10:13
\/\/\/\/\/\/\/\/\/\/\/\/\/\/


こ こ か ら 超 濃 厚 な ホ モ ス レ に な り ま す。


           ご 期 待 く だ さ い ! !


/\/\/\/\/\/\/\/\/\/\/\/\/\/\

43 :nana:2006/07/17(月) 23:15:33
>>39
はい、まさしくというかだいたいその通りです。
一応関東圏の某国立大学ですが、なにせ文型なもんでこんな授業をとってしまったことにかなり後悔してます。


44 :Be名無しさん:2006/07/17(月) 23:17:04
 ☆チン    マチクタビレタ〜
                 マチクタビレタ〜
☆チン  〃  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < 厨に手取り足取り教えてくれる支配者様まだ〜?
  \_/⊂ ⊂_ )   \___________________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
|  愛媛みかん  |/

45 :Be名無しさん:2006/07/17(月) 23:23:49
.                     Λ_Λ
          ∧_∧ \ (゚∀゚ ;) <ま・・・・
うぜぇんだよ>( ・∀・) ⊂ ⊂_ )    ._______
        ⊂   /| ≡≡≡≡≡≡/        ./|
          |  _/ ≡≡≡≡≡≡| ̄ ̄ ̄ ̄ ̄ ̄| .|
         (__)彡   ≡≡≡≡≡≡|         .|/
              ボコッ

46 :Be名無しさん:2006/07/17(月) 23:27:45
そこで崎本様ですよ

47 :Be名無しさん:2006/07/17(月) 23:37:14
おら機械科だからよくわからんが、仮想記憶がOSに影響与えるのか?
広いメモリ空間が使えるアプリケーションに影響を与えるなら話はわかるが…

48 :Be名無しさん:2006/07/18(火) 04:12:17
質問が明確でないと、正しい答えを求めることができないってか?

「仮想記憶(という概念の発明)がOSの発展に与えた影響について教えて下さい」という質問なら分からなくもないが。

49 :Be名無しさん:2006/07/18(火) 06:49:58
おまいらせっかく女子大生が相談に来てるのに冷たいな

50 :Be名無しさん:2006/07/18(火) 07:03:15
 わからない五大理由

1 読まない

2 調べない

3 試さない

4 理解力が足りない

5 人を利用することしか頭にない

51 :Be名無しさん:2006/07/18(火) 07:19:34
>>50みたいなやつの言動五大理由

1.知らないくせに知ったかぶり

2.質問の意味がわからない

3.でも答えたい

4.スレの支配者気取り

5.相手のレベルを理解できない

52 :鳥取砂丘 ◆7SKBJME/7U :2006/07/18(火) 07:53:52
夏だねぇ

53 :Be名無しさん:2006/07/18(火) 09:41:00
こうしてみると実際、教師って偉いと思う。

54 :Be名無しさん:2006/07/18(火) 13:34:01
こうしてみると実際、教師ってエロいと思う。

55 :タカさん:2006/07/18(火) 13:57:16
初心者の為のOS作りは「30日でできる!OS自作入門」の本を買えば初めてでもOSが出来る

56 :Be名無しさん:2006/07/18(火) 14:07:18
>>55
ここ口先だけの奴らがKを批判しているスレなんで、続きはこっちでやれや。

「30日でできる!OS自作入門」
http://pc8.2ch.net/test/read.cgi/os/1151897893/l50

57 :タカさん:2006/07/18(火) 15:34:55
>>56
ここは批判するスレでわなく「OSを作ろう」のスレ。初心者OSの作りの紹介は、OS作りに何が必要かと問われたから答えたまで。

58 :Be名無しさん:2006/07/18(火) 15:49:48
>>57
スレ違い

59 :Be名無しさん:2006/07/18(火) 15:53:34
>>57
>>1をひゃくまんかいよめ
>>1をひゃくまんかいかきとれ
>>1をいんさつしてひゃくおくまんかいくえ

60 :Be名無しさん:2006/07/18(火) 16:26:53
72 名前:Be名無しさん[sage] 投稿日:2006/07/16(日) 23:21:01
実際は教えてるんじゃなくて、ただソース提示してこれコンパイルしたらできるよって言ってるだけ。


K本がこの程度なのに、勝手にスレを設定されてもねえ。
どうせ>>57=K信者なんだろ?

61 :Be名無しさん:2006/07/18(火) 16:46:59
            , '´  ̄ ̄ ` 、
          i r-ー-┬-‐、i
           | |,,_   _,{|
          N| "゚'` {"゚`lリ     や ら な い か
             ト.i   ,__''_  !
          /i/ l\ ー .イ|、
    ,.、-  ̄/  | l   ̄ / | |` ┬-、
    /  ヽ. /    ト-` 、ノ- |  l  l  ヽ.
  /    ∨     l   |!  |   `> |  i
  /     |`二^>  l.  |  | <__,|  |
_|      |.|-<    \ i / ,イ____!/ \
  .|     {.|  ` - 、 ,.---ァ^! |    | ̄ ̄ ̄

62 :Be名無しさん:2006/07/19(水) 00:14:17
出来ればosをつくるのに有用な資料を下さい。。

63 :Be名無しさん:2006/07/19(水) 00:15:54
アーキテクチャマニュアル

64 :Be名無しさん:2006/07/19(水) 13:51:24
Multiboot Specification

65 :Be名無しさん:2006/07/19(水) 14:13:33
「教えて君」ならまだ見込みがあるが、「してくれ君」はどうしようもないな、やる気あるの?>>62

ひょっとして君 >>14

66 :Be名無しさん:2006/07/19(水) 20:53:16
TCP/IPを実装したい

67 :Be名無しさん:2006/07/19(水) 20:58:23
menuetのソースでも見てみそ

68 :Be名無しさん:2006/07/19(水) 23:05:18
兄貴の嫁とやりたい

69 :Be名無しさん:2006/07/19(水) 23:09:36
次郎君?

70 :Be名無しさん:2006/07/19(水) 23:24:21
陳平だろ


71 :Be名無しさん:2006/07/19(水) 23:28:02
珍平氏は逝きましたが・・・合掌

72 :Be名無しさん:2006/07/19(水) 23:29:03
次郎君は灯台だっけ?

73 :Be名無しさん:2006/07/24(月) 12:57:07
クニタチ大学の人は逝ったの?

74 :Be名無しさん:2006/07/24(月) 20:56:41
今OS作ってんだけど、一番良く使うアプリって何ですか?

75 :Be名無しさん:2006/07/24(月) 21:06:18
裏ビデオと萌えアニメの再生に使うメディアプレーヤ

76 :Be名無しさん:2006/07/24(月) 21:09:27
>>74
シェル

77 :Be名無しさん:2006/07/24(月) 21:16:42
ストリームダウンローダとDRM解除ツール

78 :Be名無しさん:2006/07/25(火) 00:09:51
確かに。もうnyなんて使う必要がなくなった。

79 :Be名無しさん:2006/07/25(火) 00:13:49
>>74
おそらくTrueTypeのレンダラを酷使してる

80 :Be名無しさん:2006/07/25(火) 00:17:19
普段使うのは12ptくらいまでなんでほとんど埋め込みビットマップなわけだが

81 :Be名無しさん:2006/07/25(火) 00:20:21
>>80
ヒント:メイリオ

82 :Be名無しさん:2006/07/25(火) 00:23:24
M$なんてしらね
フツーLinuxだろ

83 :Be名無しさん:2006/07/25(火) 00:30:20
犬板にお帰り下さい

84 :Be名無しさん:2006/07/25(火) 00:32:22
>>81
欠陥レンダラの上欠陥フォントってことで、Macに乗換えなんてことも無きにしも非ず

85 :Be名無しさん:2006/07/25(火) 00:34:02
は?
今日びOS関係の開発者で常用環境が犬じゃない香具師なんていないだろ?

86 :Be名無しさん:2006/07/25(火) 00:36:21
未踏とかの最先端開発者もターゲットの大半がLinuxだね

87 :Be名無しさん:2006/07/25(火) 00:36:49
はいはい。わかったからGNU信者はちょっと黙っててね。

88 :Be名無しさん:2006/07/25(火) 00:37:48
>>84
http://pc8.2ch.net/test/read.cgi/os/992855807/210

89 :Be名無しさん:2006/07/25(火) 00:38:47
レンダラはどっちにしろAdobe製だから

90 :Be名無しさん:2006/07/25(火) 00:39:29
>>87
GNU信者は犬なんてゴミではなくHURDを使っていますが伺か?

91 :Be名無しさん:2006/07/25(火) 00:41:47
HURDはゴミ
というよりGNU自体ゴミ

http://pc8.2ch.net/test/read.cgi/os/1051533991/255

92 :Be名無しさん:2006/07/25(火) 00:42:14
>>90
LinusからHURDはゴミとのお達しです

ttp://www.atmarkit.co.jp/flinux/rensai/watch2006/watch06b.html
>Hurdみたいなおもちゃシステム

93 :Be名無しさん:2006/07/25(火) 00:44:54
>>84
LinusからMacはゴミとのお達しです

http://pc8.2ch.net/test/read.cgi/os/986819827/

94 :Be名無しさん:2006/07/25(火) 00:44:56
というかOS作ってる奴のレベルが大体想像がつく件

どうせK本か自作ディストリの本だろ・・・

95 :Be名無しさん:2006/07/25(火) 00:45:40
>>93
ぶっちゃけAdobeのかかわってない部分はゴミクズだと思うよ。うん。

96 :Be名無しさん:2006/07/25(火) 00:45:59
>>92-93
犬信者は犬と一緒に鯖部屋に篭ってろ

97 :Be名無しさん:2006/07/25(火) 00:47:20
>>96
鯖部屋はネットで外に出られるんだよね

98 :Be名無しさん:2006/07/25(火) 00:49:10
いまどきのデジタル土方は鯖を私用に使って2chなんか見てるのか。。。

99 :Be名無しさん:2006/07/25(火) 00:51:06
>>98
フツーのクライアントからだとプロキシにログ残るからね

100 :Be名無しさん:2006/07/25(火) 00:52:06
100getキタ*・゜゚・*:.。..。.:*・゜(゚∀゚)゚・*:.。. .。.:*・゜゚・*!!!!!

101 :Be名無しさん:2006/07/25(火) 00:52:20
>>1-100
ハッカー気取りしたい年頃まで読んだ

102 :74:2006/07/25(火) 16:59:15
>>75-101ありがとう。

103 :鳥取砂丘 ◆7SKBJME/7U :2006/07/25(火) 23:45:33
|ω・`) ・・・

104 :鳥取砂丘 ◆7SKBJME/7U :2006/07/26(水) 22:38:47
|ミ サッ

105 :Be名無しさん:2006/07/27(木) 07:50:18
はりぼてOS
http://pc8.2ch.net/test/read.cgi/os/1153953788/

106 :Be名無しさん:2006/07/27(木) 11:29:36
はりぼてOS

107 :鳥取砂丘 ◆7SKBJME/7U :2006/07/28(金) 14:00:01
前に誰かが要求してたcom64を正式にリリースしましたよ(´・ω・`)

ttp://meg-os.org/?Documents%2FCOM64

108 :Be名無しさん:2006/07/28(金) 14:04:43
>>107
> 正式にリリースしましたよ

ttp://meg-os.org/?Documents%2FCOM64
> この文書は正式な仕様ではありません。

109 :鳥取砂丘 ◆7SKBJME/7U :2006/07/28(金) 14:21:29
>>108
表現修正したょぅ(´・ω・`)

110 :Be名無しさん:2006/07/28(金) 23:35:03
モツカレー(゚Д゚)ウマー

111 :鳥取砂丘 ◆7SKBJME/7U :2006/07/31(月) 03:06:30
ちょっと質問してもいいかい?(´・ω・`)

112 :Be名無しさん:2006/07/31(月) 22:50:16
  川
   |
(´・ω・`)


   川
(´・ι|σ・`)

113 :Be名無しさん:2006/08/01(火) 03:09:54
遠慮するな、俺とおまいの仲ジャマイカ。

114 :鳥取砂丘:2006/08/01(火) 12:16:54
おれぺこパクり疑惑はパクり元と法的に和解したのでもう追加訴訟はありませんので安心してください

115 :鳥取砂丘:2006/08/01(火) 12:30:36
>>114は偽者です!
訴訟は継続中ですのでご了承くださいm(_ _)m

116 :鳥取砂丘 ◆7SKBJME/7U :2006/08/01(火) 12:39:49
いやいや私が偽者です

117 :鳥取砂丘 ◆7SKBJME/7U :2006/08/01(火) 14:02:41
まいらはメゴスが実機で動いてエミュで動かないをどう思いますか?(´・ω・`)
メゴスに興味ない(たぶんたくんさんいると思います)は除外で

118 :Be名無しさん:2006/08/01(火) 15:42:46
実機を再現していないエミュのことを尋ねても・・・要はそのエミュが糞と言いたいのだな?

「そんなエミュは捨ててしまえ」

いいよこのレスを引用しても、クレームをつけた奴に見せるといい。

119 :鳥取砂丘 ◆7SKBJME/7U :2006/08/01(火) 16:22:34
おらがいいたいのはそういうことじゃないだな(´・ω・`)

120 :ぴゅあ:2006/08/01(火) 16:26:41
私はメゴスとやらに興味湧いてないので全然知らないが・・・

メゴスとやらに限定せずとも動かしたいと思えば私は実機で動かそうと思うし
実機で動けば別にエミュで動かなくても構わんと思う。

それは実機で動かしたいと思えば割り当てる実機を用意すればいいと思うところからだけど
動かせる実機が用意できるのに敢えてエミュで動かそうとは思わないし
割り当てられる実機がない場合として考えると
エミュを使ってまで動かしたいと思えるものかどうかによりますね。

そんなエミュでもウィンドウシステムなしで動くものとかないんだろうか・・・
と思ってみたりですけど。
設定により可能とかいうものがあったりするのかも知れないけど。。。

エミュで動いて実機で動かないだと、余程惹かれたものでもなければ
私は触る気にまでもならんでしょう。

121 :鳥取砂丘 ◆7SKBJME/7U :2006/08/01(火) 16:40:34
本来は自分のWIKIなりなんなりで話題提議するのが筋だろうけど
たぶん意見集まらないと思って慣れない2chに緊張しながらかきこんでみたのでした

122 :鳥取砂丘 ◆7SKBJME/7U :2006/08/02(水) 12:13:01
具体的にはPAEを使うかどうか迷ってるのだが
アーキテクチャ的にはPAE使った方がすっきりするけどPAE非対応のエミュが結構あって
だからといってPAEなし版を作るとメモリマネージャ再設計が必要になって(´・ω・`)ションボリ

123 :Be名無しさん:2006/08/02(水) 14:48:32
>>121
参加してあげたいが何せMonaの方に付きっきりなんで・・・

124 :鳥取砂丘 ◆7SKBJME/7U :2006/08/02(水) 14:56:25
もう人が増えるとは思ってないし別に参加しなくていいですよ
ただ意見が聞きたかっただけですのでー

125 :ぴゅあ:2006/08/02(水) 15:00:17
PAEは頭から外しているので詳しくは解らんけど・・・

> アーキテクチャ的にはPAE使った方がすっきりするけど

と言っているところはよく解らんが

> PAE非対応のエミュが結構あって

は「PAE対応のエミュも存在する」ということも言っている?
1つでも"自分が納得できて"使えるものが存在するのならそれでいいんでないのかな。
それと同じものを使っている人には受け入れられて、他のものを使っている人からは貶され捲くったとしても、それは自分が使っているもの以外は否定とか考える人からの批判だったりすることが大半を占めたりするんだろうから仕方ないことだろうと思うけど。

> だからといってPAEなし版を作るとメモリマネージャ再設計が必要に

それでも万人に受けることを望むなら
"どうしよう…"と悩むことではなくて、"やる!"と決めて気合い入れて臨むことだろうと思うけど・・・

てか PAEに詳しくはないけど
物理メモリアドレス空間が広げられた以外の拡張部分とか絡むのかもだけど、基本はページテーブルだったりするものではないの?
PAEあり/なしでその辺りの差し替えで済まんのかな?とか思ってみたり

モジュール化はその差し替えが最小限で済むように考えられているかとかだろうし、それが困難だとすると、メモリマネージャ再設計の前にメモリマネージャ設計に問題がなかったかとかなってこないのかな?とか思ってみたり。。。

再設計が必要というその設計がどういうものか知らんし、判らんけどね

126 :鳥取砂丘 ◆7SKBJME/7U :2006/08/02(水) 15:08:28
PAEは物理アドレス拡張って名前の通り元々は4GB以上のメモリを扱うための拡張ですけど
そのためにページテーブルの構造が変わるのでメモリマネージャは完全に差し替えないとだめです。

それだけならメモリマネージャを二つ作るだけでいいけれどページング段数の変更などがあって
今のメゴスのメモリマップだとPAEの方が効率がいいように設計されてるのですよ

127 :鳥取砂丘 ◆7SKBJME/7U :2006/08/02(水) 15:16:46
PAEは古くはPenPROの時代に導入されたので今日のほとんどのCPUは機能としては持ってます。
しかしPAEを活用するOSがあまりないのでエミュ側も対応してなかったりするのが現状です。

現在確認できてるのはAMD64・PAE対応してるエミュとホストがPAE(DEP)モードで動いてるVMwareくらいですが
今の開発マシンがWINXPでDEP使えないのでVMwareが使えないのが痛みだったりします
(bochsやqemuが動いてもうれしくない

128 :Be名無しさん:2006/08/02(水) 15:22:50
>>127
昔は実機しかなかったんだぞ!

129 :鳥取砂丘 ◆7SKBJME/7U :2006/08/02(水) 15:28:29
ついでにいうとPAEはAMD64のページテーブルと非常に似てる(正確にはAMD64がPAERに似せてる)ので
64bitモードの切り替えがスムーズにできるかなぁなんて密かに考えてたりしたりしなかったりするわけですが

こんなに悩むくらいならPAEは切り捨てて普通のページングで動くように再設計した方がいいのかなあ(´・ω・`)

130 :鳥取砂丘 ◆7SKBJME/7U :2006/08/02(水) 15:31:59
>>128
今はエミュで動かないと叩かれませんか?

131 :Be名無しさん:2006/08/02(水) 19:23:19
>>123
そんな付きっ切りになるくらいだから相当の成果を上げてるんだよね?

132 :鳥取砂丘 ◆7SKBJME/7U :2006/08/02(水) 21:01:15
成果を上げるだけがすべてじゃないかと

133 :鳥取砂丘 ◆7SKBJME/7U :2006/08/02(水) 21:06:55
PAEの件は多少パフォーマンスが犠牲になるだけでPAEがなくても同じことが実現できる方法が
ひらめいたので解決しました。
お騒がせしました><

134 :Be名無しさん:2006/08/02(水) 21:23:10
>>132
自己弁護ですか?

135 :Be名無しさん:2006/08/02(水) 21:25:25
>>134
そんなことよりボクシング見ろ

136 :Be名無しさん:2006/08/02(水) 21:37:26
>>133
具体的に

137 :Be名無しさん:2006/08/02(水) 21:52:19
>>136
世界タイトルはヤオ

138 :Be名無しさん:2006/08/02(水) 21:55:52
>>137
人生に勝負を掛けずにニートになった負け組乙

139 :Be名無しさん:2006/08/02(水) 21:58:06
そんなことよりこのままシリアとイランが戦争に巻き込まれたらヤバいぞ
ミサイルが飛んで来なくてもガソリンは500円くらいに暴騰するぞ

140 :Be名無しさん:2006/08/02(水) 22:00:08
戦争は究極の勝負

141 :鳥取砂丘 ◆7SKBJME/7U :2006/08/02(水) 22:03:25
流れを読まずに2ゲット!

142 :Be名無しさん:2006/08/02(水) 22:10:09
 ___    _____________
 :|.C組.. |   || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
 :|(゚ー゚*)|   || 鳥取砂丘は無視!!   。 ∧_∧
  ̄ ̄ ̄     ||                 \(゚ー゚*)  分かりましたね。
            ||____________ ⊂⊂ |
          ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄|
  ∧ ∧     ∧ ∧    ∧ ∧       |____|
  (・,, ∧ ∧  (  ∧ ∧ (  ∧ ∧
〜(_(  ∧ ∧ __(  ∧ ∧__ミ・д・∧ ∧
  〜(_(  ∧ ∧_(  ∧ ∧_(   ∧ ∧
    〜(__(,,・∀・)〜(_(   ,,)〜(_(   ,,) 先生、鳥取砂丘は嫌いです。
      @(___ノ  〜(___ノ   〜(___ノ
                             (-_-)ピュアモウザイヨ・・・
    /   は〜い、先生。   \       (∩∩)

143 :Be名無しさん:2006/08/02(水) 22:11:40
さっきゅんかわいいよさっきゅん

144 :Be名無しさん:2006/08/02(水) 22:16:52
>>133
kwsk

145 :鳥取砂丘 ◆7SKBJME/7U :2006/08/03(木) 00:36:27
 ___    _____________
 :|.C組.. |   || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
 :|(゚ー゚*)|   || 鳥取砂丘は無視!!   。 ∧_∧
  ̄ ̄ ̄     ||                 \(゚ー゚*)  分かりましたね。
            ||____________ ⊂⊂ |
          ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄|
  ∧ ∧     ∧ ∧    ∧ ∧       |____|
  (・,, ∧ ∧  (  ∧ ∧ (  ∧ ∧
〜(_(  ∧ ∧ __(  ∧ ∧__ミ・д・∧ ∧
  〜(_(  ∧ ∧_(  ∧ ∧_(   ∧ ∧
    〜(__(,,・∀・)〜(_(   ,,)〜(_(   ,,) 先生、鳥取砂丘は嫌いです。
      @(___ノ  〜(___ノ   〜(___ノ
                             (-_-)ピュアモウザイヨ・・・
    /   は〜い、先生。   \       (∩∩)

146 :Be名無しさん:2006/08/03(木) 00:43:32
さっきゅんやらないかさっきゅん


147 :Be名無しさん:2006/08/03(木) 03:12:27
みとこのすごい削除依頼を見た。

148 :Be名無しさん:2006/08/03(木) 04:28:58
もう.NETベースのOS作ってやる

149 :Be名無しさん:2006/08/03(木) 14:14:33
>>133
解決したとのことなので今更だけど、PAE使うのでもいいと思うですよ。
確かにPAEだったら実機で動くので。確認したことないけどw

150 :鳥取砂丘 ◆7SKBJME/7U :2006/08/03(木) 15:08:32
他の和製OSがPAE使う兆しないのは何故だろう?

151 :Be名無しさん:2006/08/03(木) 15:16:30
>>150
めんどくさいんじゃね?

152 :鳥取砂丘 ◆7SKBJME/7U :2006/08/03(木) 15:24:49
そんな面倒な処理ないと思うけど(既にページング使ってるなら

153 :Be名無しさん:2006/08/03(木) 15:29:05
>>152
だよね。

今気づいたがPAE使おうとも思ってないんじゃw

154 :Be名無しさん:2006/08/03(木) 21:02:50
>>148
【C】Poneytail(仮称)OSスレッド01【未踏】
http://pc8.2ch.net/test/read.cgi/os/1105442577/l50


155 :Be名無しさん:2006/08/04(金) 03:36:09
>>150
単に例が少ないからでは。
>>154
CooSの人は「バグがバグバグ出てきて」って口走った時からひそかに応援してる。

CooSといえばメゴス+ristia。
もうTALもどきに手出す気はナイのか。

156 :Be名無しさん:2006/08/04(金) 06:00:06
どちらかというとMSILもどき

157 :鳥取砂丘 ◆7SKBJME/7U :2006/08/04(金) 11:45:46
以前からゆってるようにあれの存在は当時のメゴスの重荷のひとつだったので
十分な開発者が集まるまで実現は厳しいでしょう

158 :Be名無しさん:2006/08/04(金) 12:36:19
他スレに誤爆した…。

エミュレーターOS。
物理ハードウェアを均一の仮想化(バーチャル)ハードウェアとして、他のOSに提供する、
BIOS/EFIを拡張したようなOS。このOS用のドライバを内包する。
PC/AT互換機であれば命令コードの変換は必要ないので性能ダウンは軽度にとどまる。そんなOSが欲しい。
HDDも仮想化し、そのデータをただ複製するだけで、このエミュレータ上であればハードウェアを問わず同環境で起動可能。
バックアップソフトウェアも必要なし。複数のOSの同時起動も当然可能。
ParallelsのOS版みたいなもの。もっとハードウェアとの親和性を高めて。

PC自作erには便利だと思うんですよね。
M/Bやグラボなど、構成を変えても、同じ仮想化HDDで使用できる。
エミュレータOS側は再インストールとドライバインストールが必要かもしれないけど、
エミュレータOSにはユーザーデータや日常使うソフトウェアはインストールしないから、
大した手間にはならない。
これって作成可能だと思いますか?問題点があるとすればどういったとこでしょうか。

あと、例えば複数のPCにこのエミュレータOSのみインストールしておき、
安くなったフラッシュメモリ系デバイスに仮想化HDDデータを入れておいて持ち歩けば、
データだけでなく全ての環境がモバイル可能になると思います。

159 :Be名無しさん:2006/08/04(金) 13:08:37
>>158
つVMware ESX Server


160 :159:2006/08/04(金) 13:14:39
ただし個人向けじゃないけどな

Dom0,DomU,HVU Domainの区別は有るけど、Xenも>>158が求めている物に近いんじゃないかな。


161 :160:2006/08/04(金) 13:15:41
HVU --> HVM


162 :さっきゅんへ、メゴスにアシスタントつけて下さい。こんなやつ↓:2006/08/04(金) 20:06:36
| 何について調べますか?
| ┌────────────┐
| | 脱げ               |
| |                    |
| └────────────┘
| [ オプション(O) ]   [ 検索(S) ]
| 
`──────────┐ ┌───
                 | ./
|/
             ___/:::::;;:ヽ_
           ___/::;;;/::;;;::/:::::::::\
          /:::::ヽ::;//;;;;:::::::::::::::::ヽ
         /;;;;;;;;;/^    i:jヽ;;;;;;;;:::::::}
        /;;;;;;;彡    _ノノ ノヽ;;;;;;;;;j
        (;;;;;;;彡' ̄`丶   _,-,ミ;;;;;;ノ
        \;;;;;;(イ0iiiヽ   {0i//ヘ'
          ヽ/ヽヽ゚;;_ノ   i;;ノi|_ノ
           \t| ~‐'  _, ~ )_)
            ○\  ‐=' /
               `' 、イ
           ___,-‐i┘ └j‐-,___
        __i~::::::::::::ヽ ヽ_/ ,‐':::::::::::::~i__
       / |:::::::::::::::::::∨∪∨::::::::::::::::::::| ヽ
       |  j::::::::i::::::::/ノ∧ヾ\::::::i:::::::|  |
       |  |::::::::l::::::::>-人 -<::::::l:::::::|   |
       'l, /::::::::i;:;:::::::::::・:::::・:|:::::::::;;i::::::::| ,l'
        'l,~| ̄i^ヽ;;:::::::,_:・:|:::::;;/ | ̄~| ,l'
        'l,| ⌒~''‐--///へ-‐''~´⌒ |,l'
   / ̄ ̄ ̄`~'''──-'‐-ソ)))-──'''~´ ̄ ̄ ̄ ̄\     
  /                           .  \  
 \二二ニニニニニ二二二二二二二二二二二二二/

163 :鳥取砂丘 ◆7SKBJME/7U :2006/08/04(金) 21:46:40
>>162
メゴスに対する真面目な要望なら本家wikiで話題提議おながいします
ネタにマジレスだったら・・・(;´・ω・`)

<チラシの表>
そういやいよいよcore2解禁すね
今月中に一台欲しい(´・ω・`)
</チラシの俵>

164 :Be名無しさん:2006/08/04(金) 22:39:43
>>162
ものごとを依頼するってのは場所とタイミングが重要なのよ。
あえて硫黄、食う気嫁

165 :鳥取砂丘 ◆7SKBJME/7U :2006/08/05(土) 18:00:01
おまいら空気嫁は何を使ってますか?
おすすめとかおしえてください><

166 :Be名無しさん:2006/08/05(土) 18:02:39
>>165
オリエント工業マジお勧め

167 :Be名無しさん:2006/08/06(日) 20:53:10
3次元はちょっと・・・

168 :崎本:2006/08/07(月) 22:55:54
それじゃねるーノシ

169 :崎本:2006/08/08(火) 11:36:58
おはよう(´・ω・`)

170 :崎本:2006/08/08(火) 17:57:17
メゴスって とっても 人気 ないね

171 :Be名無しさん:2006/08/08(火) 18:57:05
空気嫁をつければ無敵

172 :崎本:2006/08/09(水) 08:28:05
おはようございます(´・ω・`)

今日も一日

ねるー

173 :Be名無しさん:2006/08/09(水) 16:44:21
とろん

174 :Be名無しさん:2006/08/13(日) 09:51:25
ROM数十KB、RAM1、2KBといった組み込み用ワンチップマイコンなどのための
簡単なOS(というよりモニタと言った方が合ってるか)を作ろうかと思ってます。
このリソースだと完全なタスク切り替えはたぶん無理なんで、関数をタスクに見立てて
特徴づけして呼び出すぐらいしかないですよね、たぶん。
なんか参考になるオープンソースのOSありませんかね。

175 :ぴゅあ:2006/08/13(日) 20:59:44
どういうものを作りたいのかよく解らんけど
OSを作りたい?モニタ機能とかのようなライブラリを作りたい?

なんか昨今「OSという言葉」だけが独り歩きしてるような感が強くあったりしてる気がしたりだけれど・・・

176 :ぴゅあ:2006/08/13(日) 21:05:04
あ ウザイ?

177 :Be名無しさん:2006/08/13(日) 21:18:14
>176 気にするな

178 :Be名無しさん:2006/08/13(日) 21:34:42
長文レスを長々と連続カキコすると読みにくいのでウザがられる。
かといって手短にすませると相手が理解してくれない。

さて、どうしたものか?

179 :Be名無しさん:2006/08/13(日) 21:38:23


そうだ、パケット方式だ!
レスの内容を理解しやすいように短く区切って別々のレス番に書き込む。

180 :Be名無しさん:2006/08/13(日) 21:39:14



なんちゃって(笑

181 :178-180:2006/08/13(日) 21:41:01



後で読み返してみると、やっぱりウザかったorz

182 :崎本:2006/08/13(日) 21:46:13
ちゃんとシーケンス番号つけようや

183 :Be名無しさん:2006/08/13(日) 21:52:57
>>182
とりあえず、バーストモードでテスト

184 :Be名無しさん:2006/08/13(日) 22:00:07
>>176
とりあえずよく分からないのに書かないでください。
あと丁寧な言葉遣いを心掛けてください。

185 :Be名無しさん:2006/08/13(日) 23:53:04
いいのいいのー。
ぴゅあタンはこのスレ第2のマスコットキャラクターだからー。

186 :ぴゅあ:2006/08/14(月) 00:59:50
マスコットなんかい(><)

187 :Be名無しさん:2006/08/14(月) 11:02:58
>>174
マルチタスクモニタすか。
仕事→素直に商用ITRON
学生→OSの本読め。コンテキストスイッチあたりは参考になる。
かなあ。

そういえばこのへんはどうやって勉強したか全然覚えてないのう…

188 :174:2006/08/14(月) 14:25:36
あ、なんかまともなレスが。
趣味→うまくいけば仕事に応用てな感じですかね。
主にファームウェアの開発を生業としていて、
いろいろ試行錯誤しているうちに中途半端なイベント駆動
なスタイルになったので、もう少しいじればOSっぽくなるんじゃないか?
なんて思った次第です。
雑誌の独自OS特集みたいな記事を見ては、ターゲットにMByte単位の
RAMを想定していたりして、がっくしです。

189 :ぴゅあ:2006/08/14(月) 14:40:50
>>174

> 組み込み用ワンチップマイコンなどのための

と言っているのでいまいち判らんのよね
ワンチップマイコンを使って…なら、なるほど〜と思えたりもするのだけど
扇風機とかリモコンとかに入っているコントローラにOSの概念とか必要(有用)とされる場面が思い付かんのです。。。

OS,モニタと言っているものをどういう形で作り、どう使いたいのか
(オペレーティングシステムとしてのものか、普通にモニタ機能のようなものなのか…)とかが
いまいち見えんから判らん(そこまで必要なのか?)というところですけど

>このリソースだと完全なタスク切り替えはたぶん無理なんで

目的とかは置いといて、作ることだけで言えば
インターバルタイマ割り込みでレジスタの退避・復元をしてやる仕組みを作ってやるとかすればできると思うけどね

Z80が流行ってた頃にやってた書籍とかまだ手に入ったりするなら
参考にしたり移植したりするのもやり易いんではないかと思ったりするけど手に入るものかどうかは…
68000頃に見たOS-9とかでも、最近のIntelプロセッサのTSSとかでも(プロセッサ内で処理できたり拡張されていたりするけど)
基本的なところは変わってないと思うよ

参考になりそうなソースの所在は判らんですが

マトモではないか・・・

190 :Be名無しさん:2006/08/14(月) 15:41:09
>>188
しょうがないな、、、
1990年代前半に雑誌「インターフェース」にマルチタスクOSの設計手法とソースが掲載されたよ。
タイトルは「マルチタスクマイコンの構造化設計」だったかな、ターゲットはH8/532。
同じ頃、「プロセッサ」という雑誌にITRON仕様OS設計ドキュメントが掲載されてたな。

俺もこれらの記事を参考に手持ちのポケコンのOSを作成したことがあるが、
マルチタスクモニタ・カーネル、ファイルシステム、コンソール/シリアルドライバ、基本ライブラリ
コマンドプロセッサなど全ファイルの合計サイズ(バイナリで)7kB、ワークエリア合計サイズ数百B位だったな。
(実行ファイル格納エリアを除く)

191 :174:2006/08/14(月) 17:40:43
なんか続々とレスが。ネタスレじゃなかったのね。

>>189
> 扇風機とかリモコンとかに入っているコントローラにOSの概念とか必要(有用)とされる場面が思い付かんのです。。。

そういうのよりはもうちょっと高度なもんです。
ACとバッテリーで駆動して、USBにつながってPCとゴニョゴニョしたり、
バッテリーの充電制御もせにゃならんかったり。

> 目的とかは置いといて、作ることだけで言えば
> インターバルタイマ割り込みでレジスタの退避・復元をしてやる仕組みを作ってやるとかすればできると思うけどね

いや、そりゃ作るだけなら作れると思いますよ。でもOSだけで
ほとんどのリソースを食いつぶすわけにはいかんので。

192 :崎本:2006/08/14(月) 17:43:01
ここネタスレだったのか(´・ω・`)

193 :174:2006/08/14(月) 17:44:44
>>190
> 1990年代前半に雑誌「インターフェース」にマルチタスクOSの設計手法とソースが掲載されたよ。

インターフェースは2000年頃からしか持ってないっす…。

> 俺もこれらの記事を参考に手持ちのポケコンのOSを作成したことがあるが、
> マルチタスクモニタ・カーネル、ファイルシステム、コンソール/シリアルドライバ、基本ライブラリ
> コマンドプロセッサなど全ファイルの合計サイズ(バイナリで)7kB、ワークエリア合計サイズ数百B位だったな。
> (実行ファイル格納エリアを除く)

うーむ、これだけのものをこのサイズに押し込めたのはなかなかだと思いますが、
やっぱワークエリアを結構食いますね。

194 :Be名無しさん:2006/08/14(月) 17:50:53
実は数百バイトでもきつい、基本的にスタックはタスクごとに確保するのが仕様なんで…

195 :崎本:2006/08/14(月) 23:24:46
henohenoってこのスレ見てるの?

196 :Be名無しさん:2006/08/14(月) 23:29:50
遅いからもう寝ましょう、あしたもいっぱい飛ばなくちゃ…

197 :Be名無しさん:2006/08/19(土) 15:43:31
自作系のOSでAC'97とかサポートしたらいいのに…。
最近のやつはSoundBlaster互換じゃないからBEEPしか出せなくて困る。

198 :Be名無しさん:2006/08/19(土) 21:01:57
Linuxの例だとAC'97といってもマザーボード毎に違うドライバが必要みたいだぞ?
共通のドライバで解決ってわけにはいかない予感

199 :Be名無しさん:2006/08/19(土) 23:59:19
IPL からカーネルローダ経由でカーネルを読み込むプログラムを作成しているんですが
カーネルローダでプロテクトモードへ移行しています。
(半年ほど放置してましたが…)

割り込みコントローラの初期化はプロテクトモード前と後のどちらで行った方が
良いのか教えて下さい。

現在は、アセンブラの CLI 命令でソフトウエアー割り込みを禁止しをして
プロテクトモードへ移行後に行っています。

自分的には、プロテクトモード移行時に
プロテクトモードでのソフトウア割り込みの設定を終わっているので、
1)リアルモードで CLI 命令でソフトウエアー割り込みを禁止
2)リアルモードでの割り込みコントローラの割り込み禁止
3)プロテクトモードへ移行
4)プロテクトモードでのソフトウア割り込みの設定
5)プロテクトモードで割り込みコントローラの初期化

と、思っています。


200 :崎本:2006/08/20(日) 00:08:27
好きな方でいいと思うよ

どちらかというとプロテクトモードに以降後の方が若干いいかも
(移行直前までの割り込みは全部BIOSに投げる・以降後の割り込みは全部OSが受ける)

201 :ぴゅあ:2006/08/20(日) 00:24:13
>>199
同じくいいと思うよ
いちおついでにNMIもリアルモードの段階で無効化しておいた方がいいかも

大抵はプログラムミスでもしなきゃそうそう問題とはならないだろうと思うけど
作ってる過程では一緒にやっておいた方が楽かも

202 :ぴゅあ:2006/08/20(日) 00:27:46
あれ?NMIも・・・だったかな?
ちょっと忘れた。。。(汗)
ベクタ31までのプロテクトモードで割り当てられている部分をちゃんと設定…だったかな

203 :Be名無しさん:2006/08/20(日) 01:17:42
さすがはマスコット

204 :ぴゅあ:2006/08/20(日) 01:41:16
( ̄ー ̄)v

今見直してみたら、あちしは2→4(IDT設定)→3→5としてたわ
理由は4をやってる間にプロテクトモードでの割り込みが発生してしまうのを避けたいと思った筈…

205 :199:2006/08/20(日) 12:08:16
みなさん有難うございます。

1)リアルモードで CLI 命令でソフトウエアー割り込みを禁止
2)リアルモードで割り込みコントローラの割り込み禁止
3)リアルモードでプロテクトモード用のソフトウア割り込みの設定(LIDT)
4)プロテクトモードへ移行
5)プロテクトモードで割り込みコントローラの初期化

で、行こうと思います。

NMIの禁止は
out 61h, 6 ですよね?

out 21h, 15
out A1h, 15
でも可能と思いますが・・・。

インテルのマニュアルを読んでると
アドバンスド・プログラマブル割り込みコントローラ(APIC) の項目が有るんですが
SMPまで関係ないですね。

206 :ぴゅあ:2006/08/20(日) 13:40:09
> NMIの禁止は
> out 61h, 6 ですよね?

ポート61hで可能だとするとチップセット依存とかにはならない?
マザーボード,BIOS依存とかも絡んでくるのかも知れないけど

> out 21h, 15
> out A1h, 15
> でも可能と思いますが・・・。

NMIはここ通らないんじゃ・・・
で、15?

> インテルのマニュアルを読んでると
> アドバンスド・プログラマブル割り込みコントローラ(APIC) の項目が有るんですが
> SMPまで関係ないですね。

必要に迫られてないから深く調べてないけど
1CPUでもPICからAPIC(I/O APIC)に切り換えると全体的なパフォーマンスが向上したりするという話はあったりするみたいだけど・・・

207 :Be名無しさん:2006/08/20(日) 15:11:44
>> NMIの禁止は
>> out 61h, 6 ですよね?

すみません。
out 61h, 12 ですよね?

で、
>ポート61hで可能だとするとチップセット依存とかにはならない?
依存するんですか?

http://www.cqpub.co.jp/column/books/2001a/34331PC_Legacy/pc-lega6.htm
で、見たんですが他の方法が有るならご教授願います。

>NMIはここ通らないんじゃ・・・
>で、15?
http://www.cqpub.co.jp/column/books/2001a/34331PC_Legacy/pc-lega10.htm
で調べました。

自分の認識は
マスク不可能割り込み(NMI) の割り込みベクターは変更可能で
out 21h/A1h, 15
で、禁止可能と思ってるんですが間違ってますか?


208 :崎本:2006/08/20(日) 15:21:22
NMIはINT2固定やがな(´・ω・`)

209 :Be名無しさん:2006/08/20(日) 15:43:27
インテルのマニュアルにしかり INT2 と書いてありました。
頭の中でNMIとPICが整理されてないです orz

210 :ぴゅあ:2006/08/20(日) 15:46:41
out 61h,12だとNMIの発生要因の一部を無効にするんではないかと思います。
ポート70hのbit 7を制御する方があちしはいいんではないだろうかと思ってます。

> 依存するんですか?
例えばIntelのデータシートでもホワイト,イエロー,オレンジ,レッドとかだったかなぁ?とかがあって見れる範囲が異なりますよね
他社のデータシートでも公開されている範囲があって、どちらかというと"依存しない"という確信を持ちにくいというところからかなぁ…
なのであちしは今のところポート70hでの制御を採用しています。

それが本当にいいかどうかは更に追求する必要もあったりするでしょうけどね。

> out 21h/A1h, 15
はOCW1を指してる?とか勝手に思ってしまったりしましたが、ICW2のこと?
確かに21h/A1hだけ示されても何を指しているのか判らんですが。。。
(でもICW2が出てるのは次のページだし・・・??)

> マスク不可能割り込み(NMI) の割り込みベクターは変更可能で
NMI(マスク不可能)はPIC(マスク可能)とかとは関わりなく独立しているものと思いますよ
で、NMIはベクタ#2に固定であると思います

因みにout 21h/A1h, 15がベクタの設定(ICW2)を意図してるとしても
15<<3とかになるのではなかろうか。。。

211 :Be名無しさん:2006/08/20(日) 18:02:28
>out 61h,12だとNMIの発生要因の一部を無効にするんではないかと思います。
つまり、確実ではないと・・・。

>ポート70hのbit 7を制御する方があちしはいいんではないだろうかと思ってます。
ポート70hのbit 7 の項目を説明しているWebを検索出来ませんでした。
宜しければ URL等を教えて頂けませんか?

>> out 21h/A1h, 15
>はOCW1を指してる?とか勝手に思ってしまったりしましたが、ICW2のこと?
OCW1です。
この件に関しては完全に此方の勘違いです。
上記でマスク出来るのはIRQ0-IRQ15で、
IRQ0-IRQ15に割り振るベクターアドレスをPICで設定を行う。

INT0-INT31まではCPUが使用・予約しているのが、
歴史的にソフトウエア割り込みで使用しているので勘違いしやすいと。

>>209 でも書きましたがハードウエア例外とソフトウエア割り込みとNMIが
整理出来てませんでした。

多分、上記の認識で間違って無いですよね?

212 :ぴゅあ:2006/08/20(日) 21:24:31
特に問題ないのだろうと思います。

もし使っているプロセッサやチップセットのデータシートが手に入るなら見てみると書かれていたりもするでしょうね。
例えば適当ですけど、インテルサイトから
http://www.intel.co.jp/jp/products/chipsets/
ICH5(82801EB)のデータシートを例に挙げてみれば
http://developer.intel.com/design/chipsets/datashts/25251601.pdf
PDFから"nmi"とかで検索して
「9.7.2 NMI Enable(and Real Time Clock Index) Register」や
("1=Disable 'All' NMI sources"と書いてあるのもポイントかな?)
「Figure 7 NMI# Generation Logic」とか。
(右下辺りになる"NMI_EN"が9.7.2のことですよ@PCH(6300ESB)の図の方がポートも併記されてて判り易いかも)

後は言うまでもないかも。
> つまり、確実ではないと・・・。
他のチップセットも必ずインテルチップに従ってるかとか、インテルチップの中でも違いがあったりしないかは計り知れないし…
因みにあちしはAMDを主に見てますけど、VIAチップのデータシートでは61hの該当部分が非公開なのか、ホントになしなのか、載っていないようだし。
また、BIOSの中でもポート70hを使っているのは見れましたけどね。(AMD系ですけど)

OSを作ろうスレッド定番?のOADGテクニカルリファレンス(ハードウェア)でもポート70hの説明は見られるでしょう。

まあ、いずれしても限られた情報の中から推測・判断しているので、何処まで確実と言えるかは、自身が知り得た範囲が自分にとっての"確実"なところだったりするでしょうけどね。
疑問を持ち続ける限りは探し続けるしかないかも。

213 :Be名無しさん:2006/08/21(月) 20:08:16
>>212
丁寧な説明、有難うございます。

>疑問を持ち続ける限りは探し続けるしかないかも。
常に勉強ってことですね。

アプリケーションプログラマなのでハード関連の勉強をしないと…。
取りあえずカーネルとは関係ないIPL周りのアセンブリから見直して行きます。
何時になったらカーネルの設計が出来ることやら(^_^.)

214 :Be名無しさん:2006/08/23(水) 00:15:39
<チラシの裏>
IPLを見なおしてら不具合はっけーん
拡張INT 13h が機能したないから実害は無かったけど・・・
</チラシの裏>

215 :ぴゅあ:2006/08/24(木) 01:43:23
素朴な疑問・・・として聞いてみていいですか?

"<チラシの裏>"ってたまに見かけたりするけど(最近?)、どういう意味?

216 :Be名無しさん:2006/08/24(木) 10:25:21
ttp://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2005-39,GGLG:ja&q=%E3%83%81%E3%83%A9%E3%82%B7%E3%81%AE%E8%A3%8F%E3%81%A8%E3%81%AF

217 :ぴゅあ:2006/08/24(木) 13:16:26
なるほどね サンキュ
<>で囲っている意味もたぶん・・・。

チラシの裏ってもっと有効利用してたよなぁとか思ったりしてピンとこなかったヨ・・・

218 :Be名無しさん:2006/08/24(木) 23:44:44
>>216 さん代弁、有難う

ぴゅあさんって自分と年代が近いのかな…。

219 :Be名無しさん:2006/08/25(金) 00:43:35
汗やCが王道でC++は渋々ながら使い、Javaにいたっては子供の使うものだという
認識が垣間見えるな。

220 :Be名無しさん:2006/08/25(金) 10:33:31
誰への感想なの?

221 :Be名無しさん:2006/08/27(日) 21:42:58
プロテクトモードからリアルモードへ移行する場合の
割り込みベクターの設定に関してなんですけど下記の処理で問題ないですか?

シュチュエーションとしてはプロテクトモードの終了時です。
V86モード時は現在、未対応です。

1)プロテクモードへ移行する前にリアルモードでの割り込みベクターを保存する
2)プロテクトモードでの割り込みベクターを設定する
3)プロテクトモードからリアルモードへ移行する時に
  1)保存した割り込みベクターを設定する

上記の処理で問題無いですよね?




222 :崎本:2006/08/27(日) 22:35:16
割り込みベクタが破壊される可能性がなければ
保存は不要で 0000〜03FF のIDTRを設定すればおk

223 :ぴゅあ:2006/08/27(日) 23:30:15
そうね。
"リアルモードでの割り込みベクターを保存する"くらいだったら破壊しないようにしておくのがいいよね。

あとBIOSワークに不整合が起こらないようにしておくとか
割り込みベクタとは関係ないけどセグメントセレクタ(IP含む)をちゃんと設定しておくことを忘れなければ。(SSはこの間にスタックを使ってなきゃ後でも)

224 :ぴゅあ:2006/08/28(月) 15:57:34
あ・・・うそつき

> (SSはこの間にスタックを使ってなきゃ後でも)
SPですね。。。 訂正せんでも判ると思うけど・・・

225 :Be名無しさん:2006/08/29(火) 00:16:33
将来、手抜きモードでV86を実装すると思うので
取り合えず、割り込みベクタを保存して再設定しようと思います。

226 :Be名無しさん:2006/09/12(火) 23:51:57
割り込みコントローラの初期化後、割り込みを有効にすると
当然ですがハードウエア割り込みが発生します。

IRQ0-15は INT 0x20-0x2Fに移動いています。
割り込みハンドラも設定してあります。

この時、一般保護例外(#GP)が発生してエラーコードが 0x103 です。
エラーコードの下位2ビットが立っているので INT 0x20の外部割込みが発生しているようです。

そこで質問なのですが、プロテクトモードで外部割込みが発生する場合は
一般保護例外(#GP)でトラップするのでしょうか?
それとも、設定してある割り込みハンドラで処理を行うのでしょうか?

現在の状態が正常なのかエラー状態なのか分からないので御教授お願いします。

ちなみに、TSSは1個しかない状態でTSS ディスクリプタはビジー状態になっています。

227 :崎本:2006/09/13(水) 01:35:14
もしも割り込みが全部一般保護例外になるならエラーコードで割り込みの区別がつくからベクタの移動なんて不要でしょうが

そのエラーはIDTの書き方に問題があって正しい割り込みゲートが見つからないか割り込み番号がIDTのリミットを超えてる

228 :ぴゅあ:2006/09/13(水) 02:06:20
割り込みは割り込みで#GP(フォルト)が起こったりしないでしょう。

正確に知ってるわけではないけど、
EXT=1: 割り込みとかが起こったときに、それを処理しようとしたらフォルトが起こった
IDT=1: #GPが起こったときIDT内のゲートディスクリプタを見ていたときにフォルトが起こり、セグメントセレクタインデックスにはそのインデックスが入っている
セグメントセレクタインデックス: 問題を起こしたIDT内の場所
ということではないのかな

恐らくそこの設定がおかしいとか言ってるんじゃないかと

IRQ0-15(INT $20-$2F)とかは、ちゃんと設定してやってあればそのまま飛んでいきます。
エラーコードが0x103であると言っているんだから$100/8=$20→"IDTのINT $20を設定しているところ(ディスクリプタ)がおかしいよ"と言ってますよね。

#GPについては割り込みと例外のところの説明読めば、どういうときに起こるか書いてあるから。

229 :Be名無しさん:2006/09/13(水) 20:17:52
有難うございます。

IDTのリミット設定が間違っていました。
修正したら割り込みが呼ばれるように成りました。

インテルのマニュアルは読んではいるんですが難しいです。

230 :ぴゅあ:2006/09/14(木) 01:29:39
>インテルのマニュアルは読んではいるんですが難しいです。
確かにそんなところもあるかも。

なかなか解読するのが困難に思える文章とかは兎も角も、
複数の箇所をちゃんと読んで、あわせて理解しないと答えにならなかったりとか。。。
片方しか読んでない経験積んできたという人に「違う」と散々攻められたりとかもあったけど、
まぁ大手メーカー企業のベテランエンジニア相手に(普通に書籍とかにも書かれていたりしたけど)「ちゃんと読めよ」とか返したりしないですが・・・(−−;

231 :Be名無しさん:2006/09/15(金) 00:21:29
そうですね。

下巻のマニュアルは取り合えずプリントアウトしました。
週末に読み込もうと思います。

プロテクトモードに移行したローダでBIOSを使うために
仮想86モードを試行錯誤していますが、リアルモードからIRETしてきた時に
ESPレジスタとフラグレジスタ(VMビットが立ったまま)だけが変になっています。

タスクと割り込みと仮想86モード関連の箇所だと思いますが、マニュアルを読んだだけで
理解出来てないようです。

VMビットに関しては心当たりが有るんですがESPレジスタに関しては皆目検討が付きません(ーー;)。
先は長そうです…。

232 :ぴゅあ:2006/09/15(金) 02:49:51
仮想86モードは触ってないのでよくは知らないけど、
チラッと読んでみたところで。

どんな作りになってるのか判らないですけど、ESPやVMビットのところは、
仮想86モードを終わろうとするとき…即ちリアルモードと同様というところで
16ビットで操作してしまってたり?とか思ってみたりもしますが、

BIOSコールを終えて戻るときに、
仮想86モードを抜けるための割り込み(INT)を用意して
呼んでやっていれば(そのときプロテクトモードになっている)、
そのまま戻れそうな気も?

BIOSを呼ぶのなら、そのまま一度リアルモードに戻ったのでも良さそうな気もしたりですけど、
仮想8086モードとした方がメリットがあったりするのか・・・
リアルモードも仮想8086モードも使ってないので、
どっちがいいのかとか考えてないですが。

下巻の「8086エミュレーション」の前半くらいとか
書籍「はじめて読む486」の「仮想8086モード」の章あたり(サンプルコードあたりかな?)を読めば
その辺りのところは掴めるんではないかと。

233 :崎本:2006/09/15(金) 04:10:56
>>231
タスクゲートを使わないで仮想86モードを呼び出した時はiret命令でプロテクトモードに戻れないから
わざと例外を発生させてプロテクトモードの例外ハンドラでフックする必要があるよ

>>232
仮想86モードを使えばBIOSが弄るハードウェアの状態をカーネルが監視や把握できたり
割り込みを横取りして裏で動いてる他のスレッドの実行を邪魔させないようにできたり
まっとうなOSを作ろうとするならBIOSのためにリアルモードに戻るべきじゃないと思うけど

234 :崎本:2006/09/15(金) 04:15:48
ちなみに仮想86モードから戻る時はarpl命令(バイト値0x63)を#UDでトラップするのがよく使われるよ
このバイト値はBIOSのコピーライト文字列等でF000-FFFFに存在する可能性が高いらしいから仮想86モードのメモリ空間にごみを残さずに呼び出せる

235 :ぴゅあ:2006/09/15(金) 08:31:09
>>233
なるほどね。
逆に、BIOSを呼び出している間に他のスレッドを割り込ませたくないというのもあるけど、
(割り込ませられるということはBIOS内の処理を熟知しているということになるだろうけど)
BIOSを使おうと思うのなら、確かにそんなところもあるかも。

>>234
「可能性が高い」というのは「保証されている」ではないと思うから
ならば、あちしは専用のINTを用意することを選択するかな。
#UDを使ったとしても、仮想86モードを抜け出すためのものか、本当に#UDが起こったのか判断することになるし、
尤も「抜けるためにその専用のINTを呼んだのか」というのもあるけど、それは十分なテストで…
& 専用のINTであることで、(仮想86モード上で動くユーザーアプリに対しても)制御可能なんだろうと思うし

236 :ぴゅあ:2006/09/15(金) 08:48:28
# 制御可能なんだろうと思うし
「より簡素に…」と付け加えておいてみる

237 :崎本:2006/09/15(金) 09:36:29
どうせ仮想86から戻るための割り込みなのか他の割り込みかチェックするなら、
起動時にBIOSをスキャンしてarpl命令のアドレスを記録しておいて
#UDハンドラでアドレスを検査するだけなので微々たるコストでしょう。

仰る通り、BIOS内にバイト値0x63が存在する保証はありません。
しかし存在する環境の方が多いのが現実であり、最大のメリットでもあります。
存在しない場合だけ他の方法を考える(別の場所に0x63を書き込む等)
でよいのではないのでしょうか。

238 :ぴゅあ:2006/09/15(金) 09:58:59


>どうせ仮想86から戻るための割り込みなのか他の割り込みかチェックするなら、

そんな余計なチェックとか入れるくらいなら・・・
とかのつもりで書いたつもりだけど。。。

「新たに割り込みを用意するくらいなら…」とかいう意味で言ってるのかな…?

後半も、作っている人がどう考えて作っているのかにもよると思うけど、
それが、汎用とかを考えているのだとすれば、
必然的に0x63が存在するかどうかのチェックコードとかも書くということになりそうよね?
確かにコード量としては大したものではないだろうけど・・・

その上でBIOS内にあるバイトを利用しようとしたメリットは?
とか思ってしまったりするけど。。。

ゴミを残してしまうかどうかも、後始末をどうしているかによるような気もするけど
実際に仮想86モードを使うコードを書いたわけではないから、外してるかもだけど…

239 :崎本:2006/09/15(金) 10:26:49
arpl命令は
・多くのPCでBIOS内に存在しており
 ・あえて仮想マシン内メモリに介在する必要がなく
 ・ROMにあるため書き換えができず
・仮想86モードで例外(#UD)が発生することを期待できる
・最初の1バイトで挙動が決まる
・他に正常な用途に使われる事がない命令
という便利な命令で、他にここまで便利な命令はおそらくないでしょう。

多くの機種で使えるのにあえて他の方法をとる理由がありますか?

「1機種でも使えない機種がある機能は使わない」というのはPCの世界では何もできない事を意味しますが。

240 :ぴゅあ:2006/09/15(金) 11:38:52
使う・使わないではなくて、選択だと思うけど・・・
それは絶対ダメだとか、否定して言っているつもりはないんだけど

逆に、「これしかない」とか思ったりするのはどうなんだろう・・・

突っ込んでみても仕方ないかもだけど
>という便利な命令で、他にここまで便利な命令はおそらくないでしょう。
命令としては便利なのかも知れないけど、
それが使われた場合、使われる場所まで含めて考えるとどうなんでしょう。
プログラムっていうのは、便利な命令とかがあるからただ使うとかいうのではなくて、
ロジックとして組み立てるのだと思うけど・・・。

241 :崎本:2006/09/15(金) 11:47:57
すこし勘違いされているかもしれませんね

重要なのはarpl命令が仮想86モードで必ず例外を起こす事であってarpl命令本来の動作はどうでもいいんです。
つまり、「arplという命令があるから使う」のではなく、「arpl命令が例外を起こす事を利用する」のです。
だから、arpl命令よりこのロジックにふさわしい命令が他にあれば使用しても構いません。
しかし、>>239で述べたようにarpl命令が仮想86モードで例外を起こすおそらく最も適当な命令ということなのです。

242 :ぴゅあ:2006/09/15(金) 12:35:48
>仮想86モードで例外を起こすおそらく最も適当な命令

この元ネタにあるようなBIOSを呼び出す際(それはカーネル内で扱うもの)なら
それでもいいとは思ったりもするのですけど、
ユーザーアプリに対して仮想86モードは一切使わせないとか制限を付けた上でとか

と、思ったけど、今リファレンスを見てみたらARPLって例外を起こすのではなくNOP扱いということですよね。
UD2とかではなく出てきているのはUD2だと実装されないプロセッサがあるからだと思ってましたけど。
となると、今お話に聞いていた中でARPLについては私の中で解釈が違っているし、どう活かせるのかを(私の中で)考えてみないといけないですが。

ARPLは仮想86モードの中で例外が起こるのではなく、起こらないというところで考え直してみなきゃですが、
INTを使った場合、ユーザーアプリにそれを使わせない制限が掛けられるのだろう(プロテクトモードとかに置いても)というのと
もしユーザーアプリが使おうとしても、他のコードミスとかで起こる例外と同様に扱えることになるのだろうし、
実際に仮想86モードを抜けるというのはカーネル配下に隔離して置かれ、
判断のためのロジックとかも簡素になるのではないかと・・・。

尤もそれぞれのコードを実際に書いて検証してみないと、
どういったものを選択するかは決められないですけど
いずれにしてもARPLがベストであるとはまだ決められないですね。
"私の中でだけ"のことですけど。

243 :崎本:2006/09/15(金) 12:51:57
> 今リファレンスを見てみたらARPLって例外を起こすのではなくNOP扱いということですよね。

いったいどのリファレンスにそんな記述があるのでしょうか?

IA-32 インテル R アーキテクチャ ソフトウェア デベロッパーズ マニュアル 中巻:命令セット・リファレンス
> 仮想8086 モード例外
> #UD 仮想8086 モードでは、ARPL 命令は認識されない。

IA-32 IntelR Architecture Software Developer’s Manual Volume 2: Instruction Set Reference
> Virtual-8086 Mode Exceptions
> #UD The ARPL instruction is not recognized in virtual-8086 mode.

AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions
> Exception Real Virtual 8086 Protected Cause of Exception
> Invalid opcode, #UD X X This instruction is only recognized in protected legacy and compatibility mode.

> UD2とかではなく出てきているのはUD2だと実装されないプロセッサがあるからだと思ってましたけど。
UD2よりarplが適切な理由は>>239で述べています。


244 :ぴゅあ:2006/09/15(金) 13:14:27
> #UD 仮想8086 モードでは、ARPL 命令は認識されない。
あぁ、#UDとして認識されないということではなくて、認識されずに#UDかな
それは早とちりのようです

245 :231:2006/09/15(金) 23:43:09
中途半端な知識で申し訳ないですが、
仮想86モードを終了する為に 無効オペコード( #UD)を発生するだけなら
0F0B オペコード(UD2 命令) または0FB9H オペコードを使用するのが確実ではないでしょうか?

真面目な仮想86モニタを作成するならOSが提供する16Bitsコード内で実現できるので
ごみも出ないし、発生箇所が特定できるので確実と思えるんですが…。

246 :231:2006/09/15(金) 23:51:14
>233
IRETでも#GPが起こると有ったので期待していたんですが起きてない見たいです。
起きる条件が在るのかも知れませんが現在の知識では分かりません(^_^;)。

もう少しインテルのマニュアルと「はじめて読む486」を再度、読み直します。

247 :ぴゅあ:2006/09/16(土) 00:49:45
>IRETでも#GPが起こると有ったので期待していたんですが
これはインテルのマニュアルを読み進めれば解るだろうと思います。
というか、#GPが起こる条件が書かれています。

「はじめて読む486」にはINTを利用したコード例が出ています。
(見せるための演出のコード?も含まれているので、
うまく削って本当に必要なところだけをピックアップしてみるのがいいのかも)

248 :崎本:2006/09/16(土) 02:54:03
>>245
何を以って確実なのかよくわかりませんが、arpl命令で#UDが発生するのも確実です。

>>246
iret命令で#GPを起こすのが前提なら無理に#UDを使わなくてもいいと思います。
例外を起こす事が重要なので。

249 :ぴゅあ:2006/09/16(土) 03:27:38
>>245
>0F0B オペコード(UD2 命令) または0FB9H オペコードを使用するのが確実ではないでしょうか?
UD2はそのままズバリの命令であること、そして中巻からの引用ですよね。

0FB9Hの方はどうなるのか確認しないと判らないですけど、
UD2はPentium Pro以降というところは
意識することになるんでしょうけど。(下巻の「割り込みと例外の処理」)

250 :231:2006/09/16(土) 13:37:03
>>247
インテルのマニュアルでは
8086エミュレーションの図16-3で注記3の「IOPLが3より小さいとき」

割り込みと例外処理の割り込み13では
「IRET 命令の実行中に使用可能な( ビジーではない) タスクへ切り替える。」となっています。

一方、初めて読む486ではIOPLが3より小さい時と読めます。

結局、CPL=3でIOPLが3より小さい時に#GPが発生すると思ってテストしてましたが
実際には例外が発生していないので自分の解釈が間違っているのだと
思います。

崎本さんから
>タスクゲートを使わないで仮想86モードを呼び出した時はiret命令でプロテクトモードに戻れないから
>わざと例外を発生させてプロテクトモードの例外ハンドラでフックする必要があるよ
と指摘されていますし。

「はじめて読む486」の手法は
タスク周りはまだよく理会していないので詳しくは見ていません。

251 :231:2006/09/16(土) 13:39:48
おっしゃるとおりです。
例外を起こす事が重要ですよね。

252 :231:2006/09/16(土) 13:47:53
>>249
そうです。
中巻の付録A-オペコードマップ A-9ページの注記4です。
最新版でないので対応ページがずれているかも知れませんが。

Pentium Pro以前のCPUで 0FB9H オペコードが使用出来るかは
まだ、確認していません。

253 :ぴゅあ:2006/09/16(土) 17:19:16
(>タスク周りはまだよく理会していないので)
>「IRET 命令の実行中に使用可能な( ビジーではない) タスクへ切り替える。」となっています。
これはTSSを利用して仮想86モードにしている場合ではないのかな?
これまでレスしてきたところもTSSを含めるとややこしくなるだろうなぁと思って省いて書いたけど。

>例外を起こす事
割り込みか例外ではないのかなぁ?
(TSSを使うならタスクスイッチ(IRET)にもなるだろうけど)

>結局、CPL=3でIOPLが3より小さい時に#GPが発生すると思ってテストしてましたが
>実際には例外が発生していないので自分の解釈が間違っているのだと
>思います。
(今チラッと見ただけですけど)「はじめて読む486」の「図11-4 仮想8086モードで働く保護機能」を見てみて、どう思うか…かな?

>「はじめて読む486」の手法は
>タスク周りはまだよく理会していないので詳しくは見ていません。
ここでTSSが出てくるのは仮想86モードに突入するためのVMビットの操作にTSSを利用しているだけみたいなものだろうと思うけど。
「戻る」という部分に絞ると、その部分を端折って読めば…となるかどうかは微妙に自信なかったりだけど・・・

タスクが出てくる部分を省いてどの程度読めるのかは何とも言い難いけど、
タスクという言葉が出てきた時点で、読むのやめてるのかな?と思ったりもしますけど、
11-1,11-3を頑張って読んでみてもそんなページ数もないし、損ではないと思うけど。

割り込み(INT)が起こった場合にはプロテクトモードになってて、
ここで仮想86モードに戻るかどうかで、仮想86モードから抜ける(ない)かどうかになると思うんですけど、違うのかなぁ?
リスト11-4のv86IntHookの末尾部分のコード,11-3の最後の方の文章とか、それを言っているような気がするけど、違う?

インテルのマニュアルでは"ほとんど、主として一般保護(#GP)例外による…"というような言い回ししてますけどね。

254 :Be名無しさん:2006/09/16(土) 18:11:18
全く関係ない質問を書いてみますが、

OSの機能をユーザモードから呼び出す時って
一般的にはコールゲートによる特定関数の呼び出しをするもんですかねぇ?

コールゲートの番号と機能を一対一で固定的に対応付けるのであれば、
問題無く、機能を遂行できるとは思いますが。

DLLとなるとまた話は変わるでしょうがね。
今回は静的なお話で問題はありません。

255 :崎本:2006/09/16(土) 18:55:45
>>254
最近はsysenter命令やsyscall命令が一般的です。
昔はintやコールゲートが多く使われました。

どちらにしろ、OSを呼び出すのは特定の関数をひとつひとつ割り当てるのではなく
ひとつのエントリポイント関数だけを登録して機能番号で機能を振り分ける方法がよく使われます。

256 :Be名無しさん:2006/09/16(土) 19:00:08
>>255
ほほぅ、そんな命令があったことすら知らなかった。
勉強になったぜ、veryサンクソ

>>機能番号で機能を振り分ける方法
つまり、DOSでいうシステムコールみたいなものか、例えばeaxが0x01であれば、
ファイルを読み込むとか。

ちょっとsysenterとsyscallについて調べてみるかな。
これさえ、分かればCUIは作れそうだな。ELFの読み込みも成功しているし。

257 :231:2006/09/16(土) 19:46:34
>>253
いちをタスク関連も読んではいますがお腹一杯で消化不良中です。

>割り込み(INT)が起こった場合にはプロテクトモードになってて、
>ここで仮想86モードに戻るかどうかで、仮想86モードから抜ける(ない)かどうかになると思うんですけど、違うのかなぁ?
>リスト11-4のv86IntHookの末尾部分のコード,11-3の最後の方の文章とか、それを言っているような気がするけど、違う?
この場合は仮想86モード時の割り込み処理なので言われている通りだと思います。

現在は検証中なので下記の条件でテストしてます。

1)プロテクトモードでPICの初期化後、割り込みを有効化します。
2)タイマー割り込みが発生
3)タイマー割り込みのハンドラでVMビットをONしてリアルモードの割り込み
  ヴェクタをスタックに設定してIRETします。
4)#GPハンドラで、仮想86モードの時はINT n /IOポート関連のエミュ

大体こんな感じです。
手抜きモードでのテスト&実装なので突っ込み所満載でしょうが・・・。

取り合えず、保護、タスク、割り込み、仮想86関連を読み込んでみます。



258 :ぴゅあ:2006/09/17(日) 00:15:01
>>257
>3)タイマー割り込みのハンドラでVMビットをONしてリアルモードの割り込み
>  ヴェクタをスタックに設定してIRETします。
ここだけちょっと気になります。
実験としてであって(或いはタスクスイッチとかの意味合いなら…ですけど)、
本気で仮想86モードとか抜けるためというものではないですよね?
インテルのマニュアルでは、"割り込み"と軽く言った後、"ハードウェア割り込み"とか頻繁に出てくるような感じですけど。。。

いちお、私の書いてる話の中で割り込み(INT)と言ってるのは"ソフトウェア割り込み"(意図した場所で割り込むの意)で
ハードウェア割り込みでは、ホントにそれに対する処理をするのなら普通に割り込み処理として問題ないけど
仮想86モードを抜けるためとするとややこしいことになる筈。(何時起こるか予測不能)

敢えて言うまでもないことと思うけど、ちょっとだけ気になったので。

>取り合えず、保護、タスク、割り込み、仮想86関連を読み込んでみます。
頑張って!
あちしも(仮想86モードは使う予定をしてないので除外したままだけど)もっと読んで行かなきゃ

259 :ぴゅあ:2006/09/17(日) 01:40:24
>>257
>3)タイマー割り込みのハンドラでVMビットをONしてリアルモードの割り込み
>  ヴェクタをスタックに設定してIRETします。
この部分。タイマ割り込みを使って実験の状態を作っているのだと思いますけど、
ここのIRETは以前書かれていた"VMが1のまま"となるというのは …VMビットに触れないので仮想86モードのままのIRET
インテルのマニュアルにもある通りでしょう。

例えばこのIRETの前に
(別の)割り込みを呼んでVM=0,IRET(オペランドは32bitとする)の後、 …プロテクトモードでのIRET
先のIRETが呼ばれるのだと …VM=0とされた状態でのIRET
期待通りになるんでしょう。

260 :崎本:2006/09/17(日) 05:16:21
仮想86モードにIRETする前にTSSのESPは再設定してるかね?

261 :Be名無しさん:2006/09/17(日) 12:05:23
>>260
よく理解はしていないですが
取り合えず、リング0のEPSは設定しています

262 :Be名無しさん:2006/09/17(日) 12:11:46
>>259
以前、心当たりが有ると書いたのは
割り込みのIRET時の戻り先に#UDを発生させる関数を設定して
VMビットをクリアーでいいのかなっと思ってます。

ただ、IRETで例外が発生すると思っていたので上記の処理はしてませんでした。

263 :ぴゅあ:2006/09/17(日) 15:31:53
>>262
タスク関連はよく解らんと言ってたし、
特に使ってないんだろうという前提で話してきてるけど

>割り込みのIRET時の戻り先に#UDを発生させる関数を設定して
>VMビットをクリアーでいいのかなっと思ってます。

割り込み前のメインは無限ループとかで、
ただタイマ割り込みを待ってるみたいなものとして
(そしてそのメインはプロテクトモードで)

(実験中にタイマ割り込みが多重に割り込むとかない(考えなくていい)と仮定されているとして)

タイマ割り込みを受け付けた時点でプロテクトモードになってて
そこでVMビットを1にして仮想86モードにするのは、
どういう形でやっているか判らないけど、できてるということなんでしょう。
(たぶん以前は(自分でVM=0としようとしたのかどうか…)IRETに任せようとしていたのでVM=1のまま)

(>戻り先に#UDを発生させる関数を設定して)
#UDを発生させた後、プロテクトモードに戻っている(VM=0)の筈なので
#UDを発生させたことによってスタックされた分を後始末(破棄)して
(仮想86モードに入ることによって触ったものも元に戻して)

">VMビットをクリアーでいいのかなっと"というのは、自分でやらなくても既にVM=0で
#UDの最後のIRETでタイマ割り込みを受け付けた時点の状態でIRETすれば
VM=0にもなってて、タイマ割り込みルーチンからもちゃんと抜け出ているだろうと思うけど。

頭の中でイメージしてるだけだけど。。。

>VMビットをクリアーでいいのかなっと思ってます。
って、なんとか形にはなって、いちおOKかな?と思ってるということ?
それとも、(理解が途中とかは置いといて)まだうまく行かなくて格闘中?

264 :Be名無しさん:2006/09/18(月) 10:03:48
まだ格闘中で、マニュアルを読んでいる最中です。

265 :256:2006/09/18(月) 14:48:50
>>255
少し調べてみたけど、別にintとかコールゲートでも問題なさそうですね、
ってか2000辺りでもintは使われているんだな。
まぁオーバヘッドを考えたらsysenter一本らしいですけど。
とにかく参考になったので多謝。

後はメモリの管理かぁ、むむぅ、ここがネックだなぁ。

266 :Be名無しさん:2006/09/18(月) 15:04:23
2000出た頃はsysenterなんてなかった。

267 :Be名無しさん:2006/09/18(月) 16:04:34
>>266
比較的2000って信頼性では良いという評価を受けているから、ビックリしました。
sysenterとかそういう命令じゃないと、現状では信頼性が確保できないのかと思ってしまいました。

やはり調べないと分からないものですね。変態チックで楽しいですけどw


268 :崎本:2006/09/18(月) 18:43:51
「最近」ゆっとるがな(´・ω・`)

269 :Be名無しさん:2006/09/18(月) 18:59:01
>>268
いやいや、その「最近」が難しいもんでw

270 :Be名無しさん:2006/09/18(月) 19:00:50
>>267
intとsysenterの選択って信頼性に関係するんですか?

271 :Be名無しさん:2006/09/18(月) 19:25:17
sysenterは486で動かない

272 :崎本:2006/09/18(月) 19:26:09
パソの世界じゃ2000年はもう過去じゃね?

273 :Be名無しさん:2006/09/18(月) 19:48:43
>>270
いや、関係ないんだなぁと改めて確かめる事ができたということです。
もともと大して問題は無いよなぁーとは思っていたけど。

>>272
崎本さんは64bitOSを作っているわけですから。
まだまだIA32も現役だからねー。

結論として何でもいいけどバグさえ混入しないようにという結論となりますた

274 :Be名無しさん:2006/09/30(土) 13:32:52
OSつくーるで作れば?

275 :Be名無しさん:2006/10/21(土) 00:35:02
以前に仮想86モードに付いて質問した者です。

取り合えず解決しました。

今回やりたかった事はローダからカーネルをメモリーに読み込むために
DISK BIOSを使用したい為、シングルプロセスで他からの割り込みが入らない
条件で仮想86モードへ移行し、プロテクトモードに戻ってくることを想定しています。

旨く行った条件は NMI 関連の割り込み処理なので実際にやりたい事とは違いますが
下記の様に処理しています。

1)メインの処理で NMI の割り込みを許可
2)メイン処理で無限ループに入る
3)タイマー割り込み発生
4)タイマー割り込みハンドラ内で一時的なスタックを使用して
  16Bits タイマー割り込みハンドラ を呼び出す為に仮想86モードへ移行
5)この時、IIRET の戻り先を #UD を発生させる関数にする
6)#UD の例外処理関数内で 終了処理を行う
7)この時点で4)の直前に戻っている
8)そのまま、何もせずに割り込まれた処理へ戻る

処理5)から処理6)へ移行する時に割り込みが発生する可能性が在りますが
ローダの処理なので見なかった事にします。(~_~)

#UD の発生は オペコード 0x0FB9 を記述して UD2命令はは使用していません。

今回は TSS を使用した切り替えを行っていませんが 特権レベルが変化するような場合は
最低限の設定が必要なんでしょうか?
今回は、ss0/esp0 の設定しかしていません。

気になる点が有りましたら御教授願います。

276 :ぴゅあ:2006/10/21(土) 20:58:34
解決したと言われているので問題なしだと思うけど

>気になる点が有りましたら御教授願います。
タイマ割り込みを使った検証をされていたのですよね
タイマ割り込みを使ってとか#UD発生に終始されていた感もあったりしましたが
DISK BIOSを呼び出す上でどのように考えられているのかな?
ってところくらいかな

なので、気になるって程のものでもないですけど

277 :Be名無しさん:2006/10/27(金) 23:58:03
>DISK BIOSを呼び出す上でどのように考えられているのかな?
タイマ割り込みやキーボード割り込み等と同じ割り込み時のスタックを擬似的に再現して
任意のINT命令を発行する予定です。

278 :277:2006/11/03(金) 01:16:51
取り合えず、DISK BIOSの呼び出しで1セクタの読み込みは出来ました。

ハードウエア割り込みとソフトウエア割り込みを有効な状態で
DISK BIOSの呼び出しが出来たので、ローダの主処理を作成します。

煮詰りましたら、その時はまた伺います。<m(__)m>

279 :Be名無しさん:2006/11/04(土) 14:16:03
むこうのスレ人いないんでまたこっちにきますね

82 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)