CPU - みる会図書館


検索対象: UNIX MAGAZINE 2004年2月号
18件見つかりました。

1. UNIX MAGAZINE 2004年2月号

連載 /FreeBSD のブートプロセスをみる 表 1 IDT の内容 ( 抜粋 ) 図 5 ー -exec が INT 叩 -p を実行した直後のスタックの様子 べクタ P 48 1 DPL 3 セグメント SEL-SCODE 表 2 セグメント SEL-SCODE の内容 べースアドレスサイズタイプ DPL 00000000H 4GB 5 0 オフセット intx30 32 ビット ユーザーモード用 スタック RET アドレス CALL する アドレス ( P ) オプション BOOTDEV 00000000 00000000 00000000 booti nfo への ポインタ ( P ) CPL=O 用 SS ESP(V) EFLAGS CS EIP(V) スタック ・← ESP ・← 0xc(%esp, 1 ) タイプ 5 : 読出しと実行が可能なコードセグメント プログラムの起動 (--exec) 362 行目で呼び出している一一 exec ( ) は、 CPU の CPL (Current priviledge Level) を 3 から 0 に移行し、引数 で指定されたアドレスをサプルーチン・コールする処理を おこないます。 362 行目の addr はカーネルのエントリポイントを指し ている ( 357 行目 ) ので、結果的に 362 行目の --exec() は カーネルを起動します。変数 addr がカーネルを起動する アドレスを指しているポインタであれば、単純に、 addr (opts & RBX—MASK , と書いてもよさそうです。しかし、わざわざ --exec() と いう関数を介してカーネルを起動しているのは、 CPU の CPL を 0 に移行し ( カーネルは CPL=O で起動する必要 があります ) 、セグメント・セレクタを初期化しなければな らないからです。 コードは btx/lib/btxsys. s で定義されています。 スタックの底 TS S espO(1800H ) ss0(SEL_SDATA) 0038 : 0039 : —exec : movl $ 0X1 , %eax int $ 0X30 ところが、 SEL-SCODE の DPL は 0 なので CPL の移 行が発生します。そこで、 TSS (Task State Segment) の SSO と ESPO の値がレジスタ SS と ESP にロードさ れます。そして、移行先のスタックにいくつかのレジスタ の内容がブッシュされます。 と、頭のなかで疑問符が渦巻いている人のために、この時 点でのスタックの様子を図 5 に示します。図の (V) はイ反想 アドレスであることを、 (P) は物理アドレスであることを 表します。 ユーザーモード用のスタックには、 --exec() の引数と --exec() の呼出し元のアドレスがブッシュされています。 一方、 CPL=O 用のスタックの内容は、ソフトウェア割込 み発生時に CPU が自動的にブッシュします。 0849 : intx30 : cmpl $ 0X1 , %eax サプルーチンの実体は、レジスタ EAX に 1 を設疋して ソフトウェア割込み 30H を発行するだけです。一方、レ ジスタ EAX に 1 以外の値か第定されていると、引算機を 再起動します。 39 行目の INT 命令が実行されると、 CPU は IDT か らべクタ 30H に対応するデスクリプタを読み出します。 表 1 に、 12 月号の表 2 ( 179 ページ ) から一一部を抜き出し たものを示します。 最初に、 INT 命令の実行権限がチェックされます。べ クタ 48 のデスクリプタの DPL (Descriptor Priviledge Level) は 3 なので、 CPL 3 で動作している b00t2. b ⅲ は INT 30H を実行することができます。そして、セグメ ント・レジスタに SEL-SCODE ( 表 2 ) が格納されます。 UNIX MAGAZINE 2004.2 0850 : 0851 : 0852 : 0853 : 0854 : 0855 : 0856 : 0857 : 0858 : 0859 : 0860 : 0861 : 0869 : jne intx30.1 pushl %ss popl %es pushl %e s popl %ds pushl %ds popl %fs pushl %fs popl %gs movl $MEM-USR , %eax addl 0xc(%esp, 1 ) , %eax leal Ox4(%eax) , %esp popl %eax SEL_ SDATA 163

2. UNIX MAGAZINE 2004年2月号

連載 /FreeBSD のブートプロセスをみる 571 行目では、これらのレジスタに引数を設定しています。 レジスタ意味 図 6 イ反想 8086 モ ードへ不テ中のスタックの様子 AX CX DH DL LBA ( ビット 0 ~ 15 ) LBA ( ビット 16 ~ 31 ) 誌囚みセクタ数 ドライプ番号 CPL=O 用 スタック ポインタ ES DS FS GS EDI ESI EBP EBX EDX ECX EAX ダミ E 旧 (V) CS E FLAG S ESP(V) SS スタックの底 このようになる GS FS DS ES SS ESP EFLAGS CS 曰 P コピー ES:BX 中幻去先アドレス 以下に、処理の概要を示します。卿未と余力のある人は、 うなので、詳しい説明は省略します。 雑であり、プートプロセスの本質とはあまり関係はなさそ ろいポイントはいくつかありますが、その処理はかなり複 仮想 8086 モードやモードの移行など、技術的におもし ふたたびプロテクトモードに戻す処理をおこないます。 を呼び出します。そして、その実行が終ったら、 CPU を モードに移し、指定されたサプルーチンや割込みハンドラ v86int() は、 CPU の動作モードを一時的に仮想 8086 仮想 8086 モードでのサブルーチン実行 を呼び出してディスクからデータを読み出します。 572 行目の v86int() は、 b00t1 のサプルーチン xread 2. INT 31H を実行します。 容と入れ替えます。 EDI 、 EFLAGS の内容を構造体 V86 に設定された内 1. レジスタ EAX 、 EBX 、 ECX 、 EDX 、 EBP 、 ESI 、 btxv86. s の 50 行目で定義されています。 これを参考にコードを読んでみてください。 v86int() は、 UNIX MAGAZINE 2004.2 オフセット・アドレスをブッシュします。 FLAGS の内容、サプルーチン inthlt のセグメントと 7. イ反想 8086 モードに移行したときに使用するスタックに、 この時点でのスタックの様子を表したものです。 するときに備えて保存しておきます ) 。図 6 の上半分は、 指すアドレスにコピーします ( プロテクトモードに復帰 CS 、 EIP 、 GS 、 FS 、 DS 、 ES の内容を TSS の ESPI が 6. スタックに積まれたレジスタ SS 、 ESP 、 EFLAGS 、 すべてのレジスタの内容力黷まれたことになります。 5. このとき、スタックには、 INT 31H を実行したときの す。 4. すべての汎用レジスタの内容をスタックにブッシュしま SS と ESP にロードされます。 3. CPL が 0 に移行し、 TSS の SSO と ESPO の内容が ES DS FS GS EIP(V) CS EFLAGS ESP(V) SS TSS SSO(SEL_SDATA) espO(1800H ) espl(l EOOH) v86int() 実行中 の値 仮想 8086 モード で実行するサブ ルーチンのアドレス VM フラグが セットされて し、る コピー 構造体 V86 ctl addr ES DS 実行中の値 呼出し元 EDI ESI EBP EFLAGS EBX EDX ECX EAX GS FS 8. 構造体 V86 の GS 、 FS 、 DS 、 ES を CPLO 用のスタッ クの底にコピーします ( 図 6 の下半分 ) 9. その上に仮想 8086 モード用に移行したときのための SS 、 ESP をブッシュします。 10. VM フラグをセットした EFLAGS をブッシュします。 11. 割込みべクタ番号が指定されている場合は、割込みハン ドラのセグメントとオフセット・アドレスを読み取りま 165

3. UNIX MAGAZINE 2004年2月号

連載 /FreeBSD のブートプロセスをみる 14. スタックからレジスタ EIP 、 CS 、 EFLAGS 、 ESP 、 SS 13. IRET を実行します。 セグメントとオフセット・アドレスをブッシュします。 12. 仮想 8086 モード用に移行したときにジャンプする先の す ( 物理メモリの頁に割込みテープルがあります ) 。 に値がロードされます。 EIP 、 CS 、 EFLAGS 、 ESP 、 SS をスタックの底にコ 5. TSS の ESPI カ甘旨すアドレスから ES 、 DS 、 FS 、 GS 、 V86 にコピーして保存します。 4. スタックに積まれている ES 、 DS 、 FS 、 GS を構造体 す。 HLT 命令によるものであれば intrtn にジャンプしま 3. 例外が発生した原因が HLT 命令によるものかを調べ、 す。 2. すべての汎用レジスタの内容をスタックにブッシュしま 1. v86mon にジャンプします。 ます。 護例外 ( べクタ番号 13 ) が発生し、 ex-v86 に制御が移り 仮想 8086 モードでは、 HLT 命令を実行すると一 - 一般保 にジャンプし、そこで HLT 命令が実行されます。 か IRET が実行されます。すると、サプルーチン inthlt 実行されます。そして、そのサプルーチンの最後で LRET こで、指定されたサプルーチンが一磨課 8086 モードで 16. スタックから ES 、 DS 、 FS 、 GS をロードします。 ことを検知し、仮想 8086 モードに移行します。 15. CPU は EFLAGS の VM フラグがセットされている ピーします ( 図 7 ) 。 166 したところに戻ります。そして、仮想 8086 モードで実行 これで v86int() による処理が終り、 v86int() を呼び出 容と入れ替えます。 EDI 、 EFLAGS の内容を構造体 V86 に設定された内 11. レジスタ EAX 、 EBX 、 ECX 、 EDX 、 EBP 、 ESI 、 INT 31H を実行した位置にジャンプします。 10. ここで CPU がプロテクトモードに戻り、 v86int() で に値がロードされます。 9. スタックからレジスタ EIP 、 CS 、 EFLAGS 、 ESP 、 SS 8. IRET 命令を実行します。 7. ES 、 DS 、 FS 、 GS をスタックから復帰させます。 6. すべての汎用レジスタをスタックから彳帚させます。 図 7 プロテクトモードへ戻る途中のスタックの様子 CPL=O 用 スタック EDI ESI EBP EBX EDX ECX EAX 0000000 D 工ラーコード EIP CS EFLAGS ESP SS ES DS FS GS スタックの底 SS ESP EFLAGS CS EIP GS FS DS このようになる コ HLT 命令を実行 したアドレス 構造体 V86 ctl addr ES DS FS GS EAX ECX E DX EBX EFLAGS E BP ESI EDI 呼出し元 実行中の値 TS S espl(l EOOH) esp0(1800H ) ssO(SEL_SDATA) コピー ポインタ ( v ) ES DS FS GS 日 P(V) CS EFLAGS ESP(V) SS v86int() 実行中 の値 したサプルーチンの結果を、構造体 V86 から取り出すこと ができます。 ☆ UN 工 X MAGAZ 工 NE 2004.2 ( しらさき・ひろお IIJ) 次回は、いよいよカーネルのコードを読んでいきます。 これで、ようやくカーネルがメモリにロードされました。

4. UNIX MAGAZINE 2004年2月号

5 ectio ME ⑨ 不ソワーク↑こ妥協はしない。 NTT- ファイルサービスパフォーマンスの両立を可能にします。リアルスピードでビジネスに CPU リソースを TCP / 旧処理から解放する TCP / 旧オフロードエンジンを搭載することにより、ネットワークパフォーマンスと える高性能と柔軟なカスタマイズ性を備えた 3U サイズハードウェア RAID NAS の決定版 最大 3TB の大容量、 CPU ・メモリのアップグレード、拡張ストレージなどビジネスの要請に応 ビシネス用途の NAS に、妥協やトレードオフは一切無用です。 NF-R3012GSA シリーズは、 NF - R3012GSA シリーズ 限りな、拡張性と高性能を追究した超大容量の Gigabit NAS 、登場 , イ当 ! , 1- 妥協はしな 0 、 ◆ 64bit 高速ハードウェア RA 旧コントローラ搭載 ◆旧 E ハードディスク 1 2 本搭載、最大 3TB の大容量 ◆ 2 つのギガビットイーサネットボートを標準装備、トランキングやフェイルオーバに対応 ◆ Windows Powered NAS 標準搭載 ◆スナップショット・バックアップ機能 ◆ Windows, Mac OS (9,X) , SoIaris, Linux などのクライアントに対応 ◆拡張用 SCS インターフェース増設可。 外部 SC 引 R D 装置、テープデバイス等の接続可能 ◆ TCP / 旧オフロードエンジン対応 ( オプション ) ◆フェイルオーバ機能付き NAS to NAS レプリケーション対応 ( オプション ) 最大 ITB で驚きの低価格。必要にあわせ OS も選べる、わがまま NAS 。 NF - R104GA シリーズ 30 万円 ~ ( 80GBx4 モデル ) 1 LJ サイズ モデル N F - R3012GS Ⅳ 250 NF-R3012GSA/80 記憶容量 CPU 960GB lntel Xeon 1 .8GHz 3TB lntel Xeon 1 .8GHz メモリ 512MB 512MB 3G B 3G B オンライン価格 VI , 491 , 100 Y2 , 081 , 700 VI , 813 , 800 Y2 , 403 , 100 OS を Windows Powerd NAS 、 Rasvia (Linux べース NAS (S) から 選択できるソフトウェア R D NASO ◆ IDE ハードディスク 4 本搭載、最大 1 TB の大容量 ◆ 2 つのギガビットイーサネットホートを標準装備、トランキングやフェイルオーバーに対応 ◆スナップショット・バックアップ機能 ◆ Windows, Mac OS (9,X) , Sola 「 is, Linux などのクライアントに対応 ◆ TCP / 旧オフロードエンジン対応 ( オプション , Windows Powered NAS モデルのみ ) ◆ NAS to NAS レプリケーション対応 ( オプション ) NF-R3012GSA/80/2.8GHzX2/3GB 960GB lntel Xeon 2.8GHzX2 NF-R3012GS Ⅳ 250 / 2.8GHzX2/3GB 3TB lntel Xeon 2.8GHzX2 ※ TC 円旧オフロードエンジンの価格は web 上をご参照ください CPU を TCP / 旧処理から解放 ! 新機能 TCP / 旧オフロードエンジンを搭載可能 ネットワーク処理から解放します。これを搭載することで、クライアント pc への応答時間やファイルサービス能力か TCP / 旧オフロードエンジンは、 I/F カード上に搭載された専用 AS ℃により TC 円旧処理を行い、 CPU リソースを プロセッサの場合、 100 % 近くの CPU リソースを占有し、ファイルサービス処理に影響を及ぼすことがあります ギガビットイーサネットは高速に大量のデータを処理するため、 CPU に多大な負荷がかかります。例えば 1GHz 劇的に向上します※ Windows powered NAS のみ対応※オプションとなります CPU リソース占有率 ※イメージ図 これたけできて、価格もうれしい NetFi 厄 r シリーズ NTT-X Sto 「 e でオンライン購入できます NAS 製品をはじめストレージソリューションやバックアップソリューションは http://store.nttx.(0.jp/bbfiler/ http://www.ntt-me.(0.jp/bbfiler/ 製品開発元 ー M 日 0 三 5Y5 發 MS 損 C. コアマイクロシステムズ株式会社 日本ストレージアプライアンス事業部 お問い合せ先 株式会社エヌ・ティ・ティエムイー VOIP & ソリューションビジネス本部 〒 101-8413 東京都千代田区神田神保町 1 -105 神保町三井ビルディング TEL:03-5217-9063 E-maiI: bbfiler@ntt-me ℃ o.jp

5. UNIX MAGAZINE 2004年2月号

代がくるのでしようね、という感想記事です。 これに対して、以前に lntel の CPU を使った Macin- tosh 用のドーターボードがあったが、これを使うと Mac OS と Windows を同時に起動できたのではないか、 Mac OS は X86 アーキテクチャでは動かないのではないか、工 ミュレータはあるので著作権やライセンスの問題が解決さ れれば Mac OS 8 くらいまでは動作する、 Mac OS を X86 で動かすのではなく、 Windows のために専用ポード を使うという製品の情報がアップルコンピュータの Web サイトに載っている 12 これによるとキー操作で Mac OS と W ⅲ d 。 ws を切り替えられ、ファイル共有もできるよう だ、ソフトウェア・エミュレートよりは速いという使用者 の感想がある、ボードを差して異なる OS を動かすという ことなら、 ニコンに 680X0 ポードを差してミニコン OS と UNIX を動かすものがあったそうだ、日本電気の PC- 98 に 68000 ポードを差して動かす Smalltalk-80 もあっ た、 FM-II や PC-98DO 、 PlayStation 2 なども複数 のモードや OS に対応する路線ではないか、その Web 記 事にも書いてあるが、 Vanderpool の基本技術はすでにメ インフレームやミニコンで使われているものだそうだ、と いったフォローがきました。 Newsgroups. fj.comp.lang. c,fj. net. words Subject: イのバグ C 言語で配列の名前だけを書くと知頁要素のポインタに なるという仕様はバグだと思います、という記事に対する、 仕様の不具合は、バグ " ではなく、あえて英語で表現すれば 、、エラー " だと思いますがどうでしようか、という意見記事 です。 これに対して、自分の周囲でも、、仕様のバグ " という言 い方をする、ただし、これは仕様にもとづく実装があり、 それにはバグがつきものということを前提とした話である、 この言い方は半分プ朝炎のように使われているのではないか、 大手メーカーにも、、仕様のバグ " という表現を使っている 人がいる、この場合に、バグ " を、、エラー " と言い換えるの も変だろう、適切な表現は、、不備 " や、、設計ミス " ではない か、言気 1 者の意図と実際の動作の関係を考えれば、エラーは 意図とは関係なく動作カ坏正なこと、バグは設言 1 者の意図 に反した動作、設計ミスは設引者の意図自体に欠陥がある 12 http://www.apple ・ co ・ jp/datasheet/others/pccard. html UNIX MAGAZINE 2004.2 と解釈できる、、、仕様のエラー " だと製品カ坏適切な動作を するというより、その兼に沿って製品を作ること自体が 不可能な印象を受ける、、、仕様のバグ " という言い方は、は じめに、、この動作は仕様かバグか " という論議があり、そ のなかで、、バグではなく仕様である " という主張が出たと きに、、、仕様自体にバグがある " のようにレトリック的に 言い返すために使われてきたものだ、といったフォローが きました。 ・今月のニュースグループのヒ 今月は変化はありませんでした。 ・今月の . archives. * ダイジェスト Newsgroups: . archives. documents Subject: コンピュータの歴史 コンピュータの歴史を一覧にまとめた記事の最新版で す。前回の内容に加えて、新たに、、日本のコンピュータ・ プロジェクト " の歴史についての項目が増えています。そ のほかには、べンダー、ネットワーク、 OS 、プログラミン グ言第吾、 GUI 、テキスト処理、テキストエデイタ、パーソ ナル・コンピュータ、 DBMS 、トランザクション処理、表 計算と、 MPU の概要の変が一覧にまとめられています。 Newsgroups: . archives. documents Sub. 」 ect: CPU の歴史 CPU (MPU) の変遷をまとめた一覧表の最新版です。 ここには、各メーカーの CPU の名称と登場した年、そ れらの系譜が載っています。掲載されているのは、 lntel 、 Zilog 、 AMD 、第、 ansmeta 、 Cyrix 、 Motorola 、 DEC 、 IBM 、 HP 、 Sun 、 MIPS 、 ARM 、日本屯気、日立といっ た多くの種類の CPU / MPU を発売してきたメーカーのほ か、富士通、東芝、パナフアコムといった過去に 1 ~ 2 種類 を発売したメーカーなど多岐にわたっており、 TRON も 料泉されています。 Newsgroups: . archives. documents, 月 . comp 」 ang. misc,japan. comp 」 ang. misc Subject: comments-in-computer-languages vl. 25 各種のプログラム言語や設疋ファイル、データファイル などの、、コメント " ( 注釈 ) の表記方法一覧の最新版です。 一覧だけでなく、コンピュータ上のコメントーーー殳や、個別の 項目に関するミニ知識も載っています。今回、新たに 9 っ の言語 / プロトコル / ファイルの情報が追加されています。 151

6. UNIX MAGAZINE 2004年2月号

・ 2 / 2004 ・ Sun AthIon 使用の X86 版プレードサーバー サン・マイクロシステムズ (TeI 03 ー 「 SunFireB1600 インテリジェントシェ 5717 ー 5033 ) は、プレードサーバー ルフ」 ( 728 , 000 円から ) に最大 16 台を収 Fire B100X 」の販売を開始した。 納できる。 CPU は Athlon XP—M 1800 十 ( 1.53 対応 OS は、 SoIaris 9 ()W 12 / 03 ) 、 GHz)X1 、キャッシュは 256KB 、主記慮 Linux (Red Hat 7.3/8.0/9/Enterprise 33.9cm 、重量は 1.2kg 。 は IGB または 2GB 、 HD (UltraATA/ Linux 2.1 / 3.0 ( 予定 ) 、 SUSE LINUX 価格は 269 , 000 円 ( 主記匱 IGB) から。 100 、 5 , 400rpm ) は 30GBO Gigabit Eth- Enterprise Server ( 予定 ) ) 。 ernet X 2 が標準。高さ 3U のシャーシ 外形寸法 (HxWxD) は 11.5X2.6x •Sun UItraSPARC Ⅲ i 使用 WS の最上位機種 IMBO 主記億 (ECC 付き PC2100 DDR— サン・マイクロシステムズ (Tel 03 ー 5717 ー 5033 ) は、 UNIX WS 「 Sun BIade 1 SDRAM) は最大 8GB 、 HD (UItra 160 SCSI) は最大 2 台。拡張スロットは、 2500 」の販売を開始した。 CPU は UltraSPARC llli ( 1.28GHz ) PCI (64bit 、 66MHz)X3 、 PCI (64bit 、 x 1 ~ 2 、 2 次キャッシュは ICPU あたり 33MHz)X3 ( PCI バスは 4 系統 ) 。 I/F は、 USB 2.0X3 、 USB 1.0 / 1.1X4 、 IEEE 1394AX2 、 10 / 100 / 1000Base T など。 ◆ Sun Blade 2500 のおもな仕様 グラフィックス・アクセラレータは、 Sun CPU クロック XVR ー 100 、同 500 、同 600 、同 1200 か CPU 数 ら選択 (XVR-IOO 使用時は最大 3 枚 ) 。 1 次キャッシュ ( 命令 / データ ) 外形 - 寸法 (HXWXD) は 48.5X21X48 2 次キャッシュ 主記憶 ( 最小 / 最大 ) cm 、重量は 22.5kg 。 HD 数 プレインストール OS は Solaris 8 拡張スロット ()W 5 / 03 ) 。 グラフィックス 価格は 749 , 000 円 (ICPU 、主記憶 1 I/F GB 、 HD 36.4GB 、 DVD—ROM ドライ 外形寸法 (HxWxD) プ、 XVR—IOO) から。 重量 UltraSPARC llli 1.28GHz 32KB/64KB IMB 1GB/8GB 2 PCI (64bit 、 66MHz) x3 、 PCI (64bit 、 33MHz) x3 Sun XVR -100 、同 500 、同 600 、同 1200 10 / 100 / 1000Base T 、シリアル ( RS232C / RS423 ) x2 ノ、ラレル ( IEEE1284 ) 、 USB 2.0X3 、 USB 1.0 / 1.1X4 IEEE1394Ax2 、オーディオ 48.5X21X48Cm 22.5kg •Sun 通信事業者向けサーバー サン・マイクロシステムズ (TeI 03 ー 者向けサーバー。 CPU は UltraSPARC 4GB 、 HD (Ultra160 SCSI) は最大 2 5717 ー 5033 ) は、ラックマウント・サーバー 台。拡張スロットは、 PCI (64bit 、 33 / 66 llli ( 1.28GHz ) XI ~ 2 で、 2 次キャッシ 「 Netra 240 」の販売を開始した。 ュは ICPU あたり IMBO 主記 'Iü(ECC MHz 、 3.3V ) x 1 、 PCI (64bit 、 33MHz 、 NEBS LeveI 3 認定の電気通信事業 付き PC2100 DDR—I SDRAM) は最大 (V) x20 1/F は、 10 / 100 / 1000Base T X 17 UNIX MAGAZ 工 NE 2004.2

7. UNIX MAGAZINE 2004年2月号

NEWS GHz) 、主記慮は IGB 、 HD ( 200 / 100 ) は一 36GBX3 (RAID 5 ) / 2 (RAID 1 ) 、 OS は Turbolinux 8 Servero 外形寸法 (HXWXD) は、 200 が 4.4 ◆ SMX - AP200 / 田 0 のおもな仕様 ( IU ) X43.5X70.2cm 、 100 が 4.2 (IU)X S 、 IX - AP200 SMX-APIOO 42.5 X 61.8cm 。 価格は、 SMX—AP200 が 840 , 000 円、 同 100 が 580 , 000 円 ( いすれも SECURE- MATRIX のライセンス料、サポート料 金が別途必要 ) 。 CPU クロック 主記憶 HD RAID レベル OS Turbolinux 8 Server 外形寸法 (HxWxD) 4.4 ( IU ) X43.5X70.2cm 4.2 い U ) X42.5X61.8cm Xeon 2.4GHz IGB 36GBx3 36GBx2 1 5 ■ OMRON 州費 最大 92Mbps のプロードバンド・ルータ Ⅵ印 で、スルーブット (FTP) は最大 92Mbpso オムロン (Tel 03-5435 ー 2010 ) は、プ ファイアウォール ( ステートフルバケッ ロードバンド・ルータ「 VIAGGIO 超咼 外形司・法 ( HXW><D ) は 3.2X17X14.7 ト・インスペクション、 D 。 S 攻撃防御、 速プロードバンドルータ MR104XP 」の cm 、重量は 700g 。 ケット・フィルタリング ) 、 VPN パスス 販売を開始した。 対応 OS は、 Windows 95 / 98 / Me 、 ルー、 PPPoE マルチセッション、 PPPo I/F は 10Base T/100Base TXX6 Windows NT 4.0/2000/XP/Server E アンナンバードなどの機能を備え、 UPn (WAN 側 xl 、 LAN 但 4 、 DMZXI)O 2003 、 Mac OS 8.1 以上。 P 、 DDNS に対応。電源は AC アダブタ。 CPU は MIPS 系の BRECIS MSP2000 価格は 15 , 800 円。 ・ RICOH 省エネ型 A3 判テジタル複合機 減。複写速度は 75ppm ()4 判横 ) 、解像 リコー (Tel 0120-000475 ) は、デジタ 度は 1 , 200dpi ( 書込み時 ) 、用紙サイズは ル複合機「 imagio Neo 752 モデル 75 」 最大 A3 判、給紙は 2 , 750 枚 ( 最大 6 , 750 を販売する。 複写 / スキャナ / プリンタ機能が標準。 枚 ) 。プリンタ部は、ページ記述言語が キャパシタ ( 蓄電装置 ) を使用した独自の RPCS 、 RPDL IV 、 PostScript3 ( オフ 外形寸法 (H x W x D) は 98.5 x 69 x 省エネ技術、、 HYBRID QSU" により、 ション ) 。 CPU のクロックは 800MHz 、 84.7cm 。 エネルキ、一消費効率は 117Wh/h ( 既存の メモリは 384MB 。 I/F は、パラレル、 10 価格は 298 万円。出荷は 3 月。 Base T/100Base TX 、無線 LAN ( オプ imagio Neo 751 は 286Wh/h)0 鉛、ポ リ塩化ビニール、六価クロムの使用量を削 ション ) など。 ・東京 FXF I/F は、 10Base T/100Base TX 、モデ ム、 USB 2.0X3 、ディスプレイ、音声入 出力など。外付け USB CD—ROM ドラ イプが付属。 外形司・法 ( HxWxD ) は 3.2X26X20.7 東フォレックス・フィナンシャル (TeI SDRAM) は 256MB ( 最大 512MB ) 、 HD cm 、重量は 1.6kg 。 は 40GB 、グラフィックスはチップセット 0120 ー 032262 ) は、 Turbolinux 10 Desk- フレインストール OS は Turbolinux top をプレインストールしたノート PC 内蔵の S3 Graphics ProSavage8 、ディ 「 FXF—Linasis C3 」の販売を開始した。 スプレイは 10.4 ⅲ ch TFT 液品 (SVGA) 、 10 Desktop (StarSuite 7 、 ATOK X 、リ コー TrueType フォント 5 書体、 Acro- 拡張スロットは PC カードタイプⅡ >< 1 。 CPU は VIA Ezra C3—M ( 933MHz ) 、 チップセットは VIA PN266T ( サウ ホインティング・デバイスはタッチパッド nis PartitionExpert 2003 が付属 ) 。 価格は 128 , 000 円。 スプリッジは VT8235 ) 、主記憶 (DDR 型。電源はリチウムイオン・バッテリー Turb01inux 1 0 導入済み B5 ノート PC 23 UNIX MAGAZ 工 NE 2004.2

8. UNIX MAGAZINE 2004年2月号

連載 /FreeBSD のブートプロセスをみる 図 1 カーネルの走カ ( 概要 ) b00Vi386 / b00t0 / b00t0. s start() boot/i 386 / b00t2 / boot 1 . s start() → main() boot/i386/btx/btx/btx. s init() b00Vi386 / b00 / b00t2. c main() i386 / i386 月 ocore. s btext() reco 、℃ r bootinfo() identify—cpu() create—pagetables() init386() ・・セグメント・アーブルと kern/init_main. C start_init() vfs_mountroot() ・ execve(... "/sbin/init' init プロセスの起動 ・ハードティスクからのロード ・・プロテクトモードへの移行 " b00t2 のロード ・・・カーネルのロード ・・ルート・パーティションのマウント 割込みテーブルの初期化 システム時間の初期化 と突っ込みたくなったかもしれません。じつは、 boot2 は 「 BIOS? プロテクトモードでは動力んやろ」 利用してメモリサイズを取得します。注架い方は、 います。 213 行目の memsize() では、 BIOS サービスを 210 ~ 214 行目は bootinfo 構造体に初期値を代入して ています。 ます。そのため、 209 行目では slice という名前カ駛われ 管理しているパーティションのことを、、スライス " と呼び FreeBSD では、 MBR のパーティション・テープルで bootl の 183 行目の命令です。 ドレスに値を書き込んだのは、 2003 年 11 月号で説明した ァイルを読み込むときのデフォルト値となります。このア 番号とパーティション番号が保存されており、カーネルフ これらのアドレスには、 b00t2 カ売み込まれたドライプ します。 209 行目でも 00000901H の 1 バイトを dsk. slice に格納 1 バイトを読み込み、 dsk. drive に格納します。同様に UN 工 X MAGAZ 工 NE 2004.2 kern/init main. C mi—startup() tunable int_inlt() init_maxsockets() vm_mem_init() kmeminit() malloc_init() filelistinit() lock—mgr—init() init_bounce—pages() event—handler—init() link_elf_init() cpu—setup() bios32_init() proc()_init() ・ shutdown_conf() init—prison() init—taskqueue—list() runq—init() create_init() idle—setup() ・ start_softintr() ata_init() configure() configure—final() initclocks() sched—setup() proc()—post() kick_init() " kproc—start() ・ scheduler() ・・メモリアロケータの初期化 start—clock() 8254 の初期化 ・・ swapper の生成 ・ init スレッドの生成 ・・アイドルスレッドの生成 ・・ in ⅸを実行可に設定 ・・その他のカーネル スレッドを生成 仮想 8086 モードを使って BIOS サービスを呼び出しま if ((ino = lookup("/boot . config") ) ) autoboot static char cmdC512] ; す。このあたりのカラクリはあとで説明します。 0109 : 0218 : 0219 : 0220 : 0221 : 0222 : 0223 : 0224 : 0225 : 0226 : 0227 : 0228 : 0229 : fsread(ino , cmd, if (*cmd) { printf ("%s : %s" cmd ) ; if (parse() ) autoboot *cmd = 0 ; sizeof(cmd) ) ; "/boot . config' ドライプ名やパー ファイル /boot. config を読み込み、 ティション、カーネルファイル名、カーネルのコマンド行 オプションを得ます。 159 る i ノード番号を得る関数、 221 行目の fsread() は、指定 220 行目の lookup() は、指定されたファイル名に対す

9. UNIX MAGAZINE 2004年2月号

割込みハンドラの処理はいたって単純です。レジスタ ESP をユーザースタックに設定しなおし、エントリポイ ント・アドレスを取り出して ( 869 行目 ) 、そのアドレスを CALL しているだけです。 871 行目以降は、引噂機を再起動するコードカきます ( 説明は省略します ) 。 メモリサイズの取得 表 3 のサービスを呼び出し、メモリサイズを取得します。 これは、 64MB までのサイズしか調べられない旧いサービ スです。 0157 : } 0156 : 0155 : 0154 : 0153 : 0152 : { 0151 : 0150 : return V86. eax ; v86int ( ) ; V86. eax = 0X8800 ; V86. addr = 0X15 ; memsize(void) static inline uint32_t 164 造体です。 155 行目では、仮想 8086 モードに移行して指 モードに移行したときのレジスタの値を格納するデータ構 153 ~ 154 行目と 156 行目の変数 V86 は、仮想 8086 す v86int() が用意されています ( 詳しくは後述します ) 。 ドに移し、指定されたアドレスや割込みハンドラを呼び出 そこで、 BTX には、一時的に CPU を仮想 8086 モー です。 にそのアドレスを CALL しただけでは正しく動かないの とえ BIOS サービスのアドレスが分かったとしても、単純 命令で BIOS を呼び出すことができません。そのため、た が異なるので、プロテクトモード用のプログラムは、 INT ドとプロテクトモードでは割込みやセグメントの処理方法 BIOS のサービスを呼び出します。ところが、リアルモー リアルモード用のプログラムは、 INT 命令を実行して 連載 /FreeBSD のブートプロセスをみる 表 3 INT 15H , Function V86 . ctl = V86_FLAGS; 88H ーーメモリサイス陬得 入力 AH 出力 CF AX 0870 : 88H ( 成功の場合はクリア ) 工ラーの場合セットされる call *%eax IMB 以止の領域のサイズ ( 単位 IKB) 定された割込みハンドラを呼び出します。そして、 156 行 目に返ってきたときにはプロテクトモードに戻っています。 仮想 8086 モードでプログラムを実行したあとのレジス タの内容は、同じく変数 V86 から読み取ることができます。 ディスクからの読込み 上記で説明した load() は、ファイルを読み込むために xfsread() を呼び出していました。 xfsread() は、ファイルシステムを処理する fsread() を 呼び出します。そして、 fsread() は、 (MBR で管理され る ) パーティションを処理する dskread() を呼び出しま す。最終的に、 dskread() は以下の drvread() を呼び出 します。そして、 drvread() は、 CPU を仮想 8086 モード に移行して bootl のサプルーチン xread を呼び出します。 0559 : 0560 : 0561 ・ 0562 : 0563 : 0564 : 0565 : 0566 : 0567 : 0568 : 0569 : 0570 : 0571 : 0572 : 0573 : 0578 : 0579 : } V86. es = VTOPSEG (buf) ; V86. addr = 0X725 ; V86_FLAGS ; V86. ctl = V86—ADDR ー V86-CALLF ー printf("%c\b", c = c くく 8 ー c > > 24 ) ; Ox2d5c7c2f ; static unsigned c unsigned nblk) drvread(void *buf , unsigned lba, static int return 0 ; v86int() ; V86. edx V86. ecx V86. eax nblk くく 8 ー dsk. drive ; lba > > 16 ; V86. ebx = VTOPOFF (buf) ; 1ba ; xread は以下のレジスタで引数を受け取ります。 567 ~ 目 ) 。 の意味の違いを V86. ctl のフラグで判別します ( 565 行 ンの物理アドレスを設疋しています。 v86int() は、 addr タ番号を設定しました。しかし、 566 行目ではサプルーチ 150 ~ 157 行目の memsize() では、 addr に割込みべク の項を参照してください ) 。 ( 2003 年 11 月号の「自分自身を 00700H へコピーする」 566 行目の 725H はコピー先の xread のアドレスです 示される、おなじみの、、ぐるぐる " です。 562 ~ 564 行目は、カーネルをロードしているときに表 UN 工 X MAGAZ 工 NE 2004.2

10. UNIX MAGAZINE 2004年2月号

NEWS ・ DELL Dell Precision 0 Workstation 650 Red Hat Enterprise Linux 使用の IA WS ポートをおこなうサーピス「デル・ Red デル (Tel 044 ー 556 ー 6190 ) は、 lntel ア ーキテクチャの WS 、、 Dell Precision Hat Enterprise Linux WS サホート」 ( 1 Workstation" シリーズに Red Hat En- 年間または 3 年間 ) も提供。 terprise Linux WS 英語版のプレインス 参考価格 ( 構成例 ) は、 Dell Precision Dell Precision Workstation 650n トール・モデルを追加、販売を開始した。 Workstation 360n が 186 , 800 円 (Pen- CPU が Pentium 4 、チップセットが tium 4 2.8GHz 、主記憶 512MB 、 HD 3.2GHz 、主記慮 1 , 024MB 、 HD 80GB 、 lntel 875P の「 Dell Precision Worksta- 40GB 、 NVIDIA Quadro FX500 、 CD— NVIDIA Quadro FX3000 、 CD—ROM tion 360n 」、 CPU が XeonX 1 ~ 2 、チッ RW ドライプ、 lntel PRO / 1000 MT 、 ドライプ、 lntel PRO / 1000 MT 、 Red プセットが lntel E7505 の「同 450n 」「同 Red Hat Enterprise Linux WS 、サポー Hat Enterprise Linux WS 、サホート 3 650n 」がある。同社が OS のアフターサ ト 1 年間 ) 、同 650n が 494 , 800 円 (Xeon 年間 ) 。 •StorageTek 12 秒。データの消去と書換えを禁止する WORM (Write—Once—Read—Many) 機 能をもつ。 I/F は、 2Gbps Fibre Chan- nel 、 ESCONO 価格は 627 万円から。 2Gbps FibreChanneI 対応テーフドライフ 日本ストレージ・テクノロジー (Tel 03 ー タ・フォーマットとカートリッジは T9840 3746 ー 9718 ) は、「 T9840C テープ・ドラ A/B と下位互換。容量は 40GB ( T9840 イプ」の販売を開始した。 B の約 2 倍 ) 、データ転幻度は 30MB/s 既存の T9840B の後継モデルで、デー ( いすれも非圧縮、平均アクセス時間は ・ Network AppIiance データ保護製品を拡充 SATA/FC-AL 変換に対応。 RAID-DP 米 Network AppIiance (TeI 03 ー 5251 により耐障害性能を強化。 PCI-X スロ ー 3710 : 日本ネットワーク・アプライアン ット x 7 ~ 8 を備え、 Gigabit Ethernet ス ) は、ストレージ・システム「 NetApp カード、 Fibre ChanneI アダブタ、テー NearStore R200 」、データ保護ソフト プアダブタなどを」懾内できる。 ウェア「 SnapVault 2.0 」の販売を開始 存、管理、復元をおこなう。オンライン OS は Data ONTAP 6.5 。 データのセカンダリ HD へのバックアッ 外形寸法 (HxWxD) は 52.8 (12U)X バックアップ、アーカイプ、データー隻 プ / 復元、インクリメンタルな保存用パ 43.2 X55.9cm 、重量は 117kg ( 最小構成 のためのセカンダリ・ストレージシステム ックアップ作成などの作業の一元管理が を構築できる。 可能。 価格は 2 , 500 万円 (SnapVauIt 2.0 を含 ◆ NetApp NearStore R200 スナッフショットの作成が可能なプラ バックアップ、アーカイプ専用のストレ む ) から。 ットホームは、 Solaris 9 、 AIX 、 IRIX 、 ージ機器。 274.4GB の ATA HD を使用し、 ◆ SnapVauIt 2.0 Linux 、 Windows Server 2003 。 データのスナッフショットの作成、保 容量は 8.1 ~ 96.7TB ()D 数は 28 ~ 336 ) 。 •Network AppIiance アンス ) は、ファイルサーバー製品「 Net- AppFAS980 」「同 980C 」の販売を開始 0 ノ、イエンドのストレージ・システム。 ー 5251 ー 3710 : 日本ネットワーク・アプライ FAS980 は最大 32TB ()C ループ数は 4 ) ファイルサーバーの上位モテルを拡充 米 Network Appliance (Tel 03- UN 工 X MAGAZINE 2004.2 21