• ベストアンサー

MINIXのソースはあるのでしょうか?

MINIXの本に以下のソースの一部があり、わからないことが5つあります。 (1)#0x20の#の意味 (2)_rebootと_wrebootの意味の違い (3)_vec_tableを0:0番地に転送する意味 (4)movwの意味 (5)out 0x20などポートの意味、0x20だけでなくポートについて詳しく知りたい。 等 また、AT互換機で動く、MINIXのすべてのソースも探しています。 よろしくお願いいたします。 _reboot: cli mov ax, #0x20 out 0x20 call resvec int 0x19 _wreboot: cli mov ax, #0x20 out 0x20 call resvec xor ax,ax int 0x16 int 0x19 resvec; cld mov cx, #2*65 mov si,#_vec_table xor di, di mov es, di rep movw ret .data _vec_table: .zerow 130

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

とりあえずわかる範囲だけ > (1)#0x20の#の意味 即値(immidiate value)を表す記号でしょう。 この辺はアセンブラ(処理系)によって結構違います。 > (2)_rebootと_wrebootの意味の違い 多分、ハードの初期化をするかどうか。 wreboot → warm reboot だと思う。 > (3)_vec_tableを0:0番地に転送する意味 0:0が転送先なのは、そこが割り込みベクタの置き場所だから。 なぜ転送するかは多分直後の int 0x19(システムリセットの BIOSコール) にあわせてベクタを 初期状態にするためだと思います。 > (4)movwの意味 word 単位の mov 命令です。 この場合はその前のrep と組になっています。 reo movw で、ds:si → es:di を cx の値だけの回数繰り返します (si/di レジスタはインクリメントされます) > (5)out 0x20などポートの意味、0x20だけでなくポートについて詳しく知りたい。 (AT)iomap - OS-Wiki http://community.osdev.info/index.php?%28AT%29iomap 0x20は割り込みコントローラの制御レジスタみたいですね。 MINIXのソースですが、 MINIX sources http://www.minix3.org/source.html にある通り、CDのイメージの中に含まれています。 あるいは subversion というソースコード管理ツールを使ってリポジトリから 取ってくることも可能なようです。 Tracking MINIX 3 'current' http://www.minix3.org/tracking-current.html ただしこれらは MINIX 3というバージョンのもので、質問者さんがお読みのMINIX本のものより 大幅な変更が加えられているものです。 日本語版なら。原書ではMINIX3に対応の新版が出版されています Operating Systems Design and Implementation, 3/E - Prentice Hall Catalog http://vig.prenhall.com/catalog/academic/product/0,1144,0131429388,00.html

その他の回答 (1)

回答No.2

MINIXのソースを探しているとのことですが、VMware Playerを使って仮想マシン上にMINIXをインストールしてしまうというのが手っ取り早くて良いかもしれません。そうすればもちろんソースも読めますしソースを改造して実験することもできます。VMware Player上でMINIXをインストールする手順については以下のサイトが詳しいようです。 http://minixvmp.com/

参考URL:
http://minixvmp.com/

関連するQ&A