CPU - みる会図書館


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

1. UNIX MAGAZINE 2004年3月号

e WS ・ 3 / 2004 ・ SGI Itanium2X 1 6 の Linux サーバー 日本 SGI (Tel 0120 ー 161086 ) は、サー 24GB の CPU 拡張モジュール、 0 ~ 2 CPU 、主記憶 0 ~ 24GB 、 PCI—X スロッ ー製品「 SGI AItix 350 」の販売を開始 ト x 4 の CMPX 拡張モジュールを組み合 わせて構成。各モジュールはいすれも高 CPU は ltanium 2 ( 1 / 1.3 / 1.4 / 1.5GHz ) >< 1 ~ 16 、主記憶 (ECC 付き DDR) は最 さ 2U で、 1 システムで最大 8 台を専用の 大 192GB 、 HD (Ultra160 SCSI) は最大 ラックに収納できる。共有メモリのノー ド間インターコネクトは、シングルプレー 1.2TB 、拡張スロットは PCI/PCI—X ( 64 ン・リングトボロジーの SGI NUMAlink bit/100MHz 、 3.3V ) X32 ( 最大。 PCI バ 4 ( リンクあたりの双方向バンド幅は 6.4 ス X2 ) 。 1—2CPU 、主記憶 2 ~ 24GB 、 べース I/O 、ストレージを備える基本演 GB/s)0 算モジュール、 1—2CPU 、主記憶 2 ~ OS は SGI Advanced Linux Envi- ◆ S Altix 350 のおもな仕様 基本演算モジュ ーノレ CPU クロック CPU 数 主記憶 拡張スロット 外形寸法 (HxWxD) 重量 ショートラック 外形寸法 (HxWxD) 91.6X64.5x 106.2cm 重量 ( 最大 ) 277kg ronment with SGI ProPack0 対応ファ イルシステムは、 XFS (64bit) 、 CXFS 、 NFS 、 Sambao 価格は 327 万 1 , 000 円 (2CPU 、主記慮 2GB) から。 CPU 拡張モジュール ltanium 2 1 / 1.3 / 1.4 / 1.5GHz CMPX 拡張モジュール 1 ~ 2 2 ~ 24GB PCI/PCI-X (64bit/100MHz) x4 0 ~ 24GB PCI/PCI-X (64bit/100MHz)x4 8.8X43.3X68.6cm 16kg トールラック 192.6X60X104.8cm 617kg •Apple テ 'z7JVPowerPC G5 の Xserve で光学ドライプなしのクラスタノード用 モデルがある。 CPU は PowerPC G5 ( 2 GHz) >< 1 ~ 2 、 3 次キャッシュ (DDR アップルコンピュータ (Tel 0120 ー 販売する。 SRAM) は 2MB ( 1 プロセッサあたり ) 、 277531 ) は、高さ IU のラックマウント・ シングル CPU モデル、デュアル CPU 主記匱 ( ECC 付き PC3200 DDR SDRAM) サーノヾー型 Macintosh 「 Xserve G5 」を モデルのほか、デュアル CPU 、 HDXI は最大 8GB 、 HD 数は 1 ~ 3 、光学ドライ ◆ Xserve G5 のおもな仕様 プは CD—ROM (DVD—ROM/CD—RW シングル CPU クラスタノード CPU ドライプはオプション ) 、拡張スロット クロック は PCI—X (64bit/133MHz) x 2 。 I/F は、 CPU 数 10 / 100 / 1000Base T X 2 、 FireWire x 3 主記憶 ( 2 ポートは FireWire 800 ) 、 USB 2.0 x グラフィックス HD 数 2 、シリアル (DB-9)0 温度制御用を含む 光学ドライプ 30 個以 - ヒのセンサー、専用プロセッサで 拡張スロット 管理される 8 基のファンを備える。 I/F 外形寸法 (HxWxD) は 4.4X44.7x デュアル CPU PowerP C G5 2GHz IGB 1 2 512MB 512MB オプション 3 CD-ROM または DVD-ROM/CD-RW PCI-X (64bit/133MHz) x2 10 / 100 / 1000B e Tx2 、 FireWire x 3 ( 2 ポートは FireWire 800 ) USB 2.0X2 、シリアル (DB-9) UN 工 X MAGAZINE 2004.3 17

2. UNIX MAGAZINE 2004年3月号

連載 /FreeBSD のブートプロセスをみる ( 後述します ) 。ただし、このサプルーチンはテープルを作 グのためのページテープルを作成する処理をおこないます のプロセスのためのデータ領域を割り当てたり、ページン 301 行目の create-pagetables では、プロセス番号 0 す ( 図 1 も参照してください ) 。 293 ~ 299 行目では、 BSS 領域を 0 で初期化していま 作を変更するフラグです。 VME フラグとは、イ反想 8086 モードの割込み発生時の動 応している場合は、それをセットします ( 306 ~ 310 行目 ) 。 不頁を判別します。そして、 CPU が、、 VME フラグ " に対 275 行目で呼び出している identify-cpu では、 CPU の 成するだけで、ページング機能はまだ有効になりません。 図 3 カーネル用スタック令戓 (procOkstack) stru ct pcb スタックの 伸びる方向 : 608 バイト ・← ESP ・ 8 , 192 バイト 宀 procOkstack と思いますが、このコードの意図は分かりませんでした。 その後、 329 行目からラベル begin カ甘旨すアドレス ( 仮 想アドレス ) へジャンプ 2 し、これ以降カーネルはイ反想アド レスで動作します。 0321 : 0322 : 0323 : 0324 : 0325 : 0326 : 0327 : 0328 : 0329 : 0332 : movl begin : movl 0 て 1 pushl ret R(Id1ePTD) , %eax , % c て 3 %crO , %eax $CRO_PE ー CRO_PG , %eax %eax, % c て 0 $begin %eax 0334 : 0335 : 0336 : 0337 : 0338 : 0343 : 0344 : 0345 : 0346 : 0347 : 0348 : 0355 : 0356 : 0357 : 0358 : movl leal xorl movl movl procOkstack , %eax (2*PAGE_SIZE—PCB_SIZE) (%eax) , %esp %ebp , %ebp Id1ePTD , %esi %esi, ページング機能を肩効にするには、以下の手順で設定す 2. ページディレクトリの先頭物理アドレスを CR3 レジス する。 1. ページテープルとページディレクトリをメモリ上に作成 る必要があります。 3. CRO レジスタの PG フラグをセットする。 タにロードする。 UNIX MAGAZINE 2004.3 ずなので、 こで再度 PE フラグをセットする必要はない はカーネルの起動前にプロテクトモードに移行しているは モードをプロテクトモードにするためのものです。 CPU ここで同時に設疋している PE フラグは、 CPU の動作 ラグをセットし、 CPU のページング機能を有効にします。 そして、 324 ~ 326 行目で制御レジスタ CRO の PG フ レクトリのう朝頁位置を得るための制御レジスタです。 322 行目で更新している CR3 は、 CPU がページディ にページディレクトリのアドレスが十内されています。 プルーチンで作成さオ L 、ラベル IdlePTD が指すアドレス ページディレクトリは、彳する create-pagetables サ (2*PAGE—SIZE—PCB_SIZE + PCB—CR3) (%eax) pushl call addl call physfree init386 $ 4 , %esp # スタックポインタを戻す mi—startup / * NOTREACHED * / 334 ~ 336 行目では、再度スタックポインタを設定して います。ここで設疋している領域 ( 161 ページの表 1 参照 ) は 301 行目で呼び出した create-pagetables によって確 保した部分で、大きさは 2 ページぶん ( 2000H バイト ) で す。 102 行目の . tmpstk はプート用のスタック領域で、 こが使われるのはカーネルが起動してからここまでのあい だだけのようです。 336 行目で PCB-SIZE を引いているのは、 Process ControI BIock の領域を確保するためです ( 図 3 ) 。この 定数は、構造体 pcb の大きさ ( 608 バイト ) を表します。 2 具イ勺には 00122E48H から C0122E49H へジャンプします。 157

3. UNIX MAGAZINE 2004年3月号

あったのは喜ばしいことですね、という記事に対する、人名 用漢字はこういうことがきっかけで増えるのですね、地名 や社名に使える漢字集合は決まっているのでしようか、と いう感想および質問記事です。 これに対して、従来からある地名と、新たに付ける社名 は分けて考えるべきだろう、社名の場合は正式名称と通称 も分けて考えなければならない、地名にも法律にもとづく ものとそうではないものがある、いずれも通称に制限はな い、便乗質問だが、外国人が日本国籍を取得したときの漢字 の名前に無理を感じるが、ひらがなやカタカナの姓は許さ れていないのだろうか、ソフトバンクの孫正義氏が日本国 籍を取得するときも、、、 1 文字で音読みの姓は前例がない " と 1 度去圷されたそうなので、役所には、、姓は漢字 1 文字 なら訓読み、それ以外は 2 文字以上 " という不文律がある ような気がする、それなら民主党の管直人氏の姓は認めら れないのか、外国人が日本国籍を取得したときの姓として 目にするのは著名人の場合が多いが、本人は無理にではな く楽しんで漢字を選んでいるのではないか、サッカー選手 のラモス瑠偉氏は日本国籍をもっており、姓が、、ラモス " な ので、、カタカナの姓は許されている " ことになる、、、瑠偉ラ モス " 氏なのかと思っていた、名前の話になるが、米国では 子どもにプランド名を付けるのが流行っているそうだ、と いったフォローがきました。 ・今月のニュースグループの変化 今月は変化はありませんでした。 ・今月の . archives. * ダイジェスト Newsgroups: fj. news 」 ists,fj. news. group, 月 . archives. documents Subject: Active Newsgroups List 0f ( 2004 / 01 / 21 ) で利用できる全ニュースグループの一覧の最新版です。 ニュースグループ名以外に、内容に関する簡単な解説カ咐 いています。この時点で 408 のニュースグループがあり、 以前のリスト ( 2003 / 11 / 16 ) からの増減はありません。 この記事のリストを使って NetNews システムのニュー スグループ・チェック機能を実行すれば、 NetNews サー ノヾー上のニュースグループの作成や削除の管理が簡単に おこなえます。 Newsgroups: fj. archives. documents Subject: コンピュータの歴史 150 コンピュータに関係するさまざまな事柄の歴史を一覧に まとめた記事の最新版です。掲載されている項目は、べン ダー、日本のコンピュータ・プロジェクト、ネットワーク、 OS 、プログラミング言語、 GUI 、テキスト処理、テキス トエデイタ、パーソナル・コンピュータ、 DBMS 、トラン ザクション処理、表計算、および MPU の概要です。 Newsgroups: . archives. documents Subject: 国産コンピュータの略称 メインフレームやミニコン系を中心とした国産コンピ ュータの略称の一覧表です。 FACOM (Fujitsu Auto- matic COMputer) や HITAC (HItachi Transistor Automatic Computer) など、大学の計算機センターな どを利用したことがある人にはお馴染みの略称が載ってい ます。これらのなかには、現在も同じシリーズとして残っ ているものや、 PC 系サーバーに名称が流用されたもの、生 産が終了したものなどいろいろあるようです。 Newsgroups: . archives. documents Subject: CPU の歴史 CPU (MPU) の変遷をまとめた一覧表の最新版です。 主要メーカーの CPU の名称と登場した年、それらの系譜 が載っています。月甦泉されているのは、 lntel のような半 導体メーカーによる CPU や、 HP や Sun のようなコン ピュータ・メーカーによる CPU 、 PowerPC や TRON のような複数のメーカーによる CPU など多岐にわたりま す。 Newsgroups: . archives. documents Subject: 携帯、ポケベルの変遷 携帯電話や PHS 、ポケットベル・サービスを提供して いる通信事業者の崟と、土の代表的な製品の一覧です。 携帯電話や PHS の通イ言事業者は、登場から現在までに何度 カ合や再編がおこなわれてきましたが、その変遷を知り たいときに参考になります。製品に関する情報はまだ少な いのですが、今後追加されていくのではないかと思います。 ・今月の . sources* Subject: Cafe Versioin 2.1 (ANN) Message-lD く m2ekuhtd2s.fsf@owlin.tksa.gr.jp 〉 作者 : 山田邦博さん 逆ポーランド記法による操作、スクリプトによる数式表 現や手続きのカ河能で、複素数を手軽に扱える関数電 UNIX MAGAZINE 2004.3

4. UNIX MAGAZINE 2004年3月号

プログラマーの理想と現実 はないが、これが 1 , 000 倍に引き延ばされたとして、 16 時 間も操作し続けられるだろうか。通常はボタンのクリック を 1 秒間隔でおこなうとすると、単純計算で 1 , 000 秒間隔 ( 16 分強 ) でクリックを繰り返すことになる。これは現実 的には無理であろう。 実行時間が引き延ばされることにより、実時間制約的な 問題も生じる。たとえば、サーバー・クライアントモデル のクライアント側プログラムをデバッグする場合、クライ アントの動作が 1 , 000 倍遅くなったとしたら、サーバーは タイムアウトなどを起こさないだろうか。また、ホストは TCP/IP 接続を維持し続けてくれるだろうか。 ウォッチボイント機能はたいへん便利であるが制約も多 い。いろいろと試してみて、許容範囲内であれは積極的に 利用すべきだが、私の感覚では基本的に使いものにならな いと考えている 1 ウォッチボイント機能の実現方法 本筋からは少々脱線してしまうが、ウォッチボイント機 能の実現方法について考察してみよう。そもそも、なぜこ れほど遅くなるのだろうか。 あらかじめ断っておくが、ウォッチボイント機能が遅い のは、 UNIX などの保護された OS 上で安全に稼動する ューザー・プログラム用のデノヾッガに限られる。 OS の強 力な ( あまり安全でない ) サポート機能があったり、ハード ウェアを直接制御できるような仕組みカ甘是供されている場 合は、実行速度を低下させないウォッチボイント機能を実 現することができる。たとえば、 UNIX のカーネルデバッ ガや、 CPU の動作をハードウェア的にエミュレートする ICE (In-Circuit EmuIator) 装置、 CPU に組み込まれ たハードウェア・デバッグ機能を用いる JTAG デバッガ 装置などでは、原理的に実行速度を低下させないウォッチ ポイント機能が実装可能である。 ハード屋の感覚からすると、、、指定された番地へのアク セスを検出する " という機能は次のように実装することに なる。 ・ CPU のアドレスパスにコンパレータを介してレジスタ ( フリップフロッフ群 ) を接続し、レジスタの内容とアド 1 私の手許で確認できる範囲では、すくなくとも Sun UltraSPARC 十 Solaris 8 の組合せでは、ほとんど速度低下をともなわないウォッチボイン ト銜劼疾装されている。 UNIX MAGAZINE 2004.3 レスパスの内容が一致したときに信号が出るようにして おく。 この信号を CPU の HALT 端子に接続して CPU の動 作を凍結させるか、あるいは NMI などの割込み線に接 続して割込みハンドラを起動し、スタック上に保存され た状態から直前の実行番地を割り出す。 現実にはいろいろと難しい問題があるが、だいたいこの ようなハードウェア的な補助があれば、実行速度の低下を 招くことなくウォッチボイント機能を実現できる。 しかし、 UNIX のユーザー・プログラムのデバッグにお いて、このようなハードウェアの手助けを得ることはほば 不可能である。その理由としては、 一般の計算機にこのような特殊なハードウェアを積む積 極的な理由がない ・たとえ積んだとしても、このようなハードウェアはシス テムに 1 つ ( または限られた数 ) しかなく、複数のデバッ ガプロセスが同時に自由に利用するのは難しい このような機能は OS 側で標準化しにくく、デバッガが 機種依存の実装になってしまう ことなどカげられる。 では、ハードウェアの補助なしにウォッチボイント機能 を実現するとしたら、どのような方法が使えるだろうか。 ー殳的なデバッガで実際に採用されているのは、次のよう なものである。 ・デバッガは、デバッグ対象プロセスの実行を 1 命令単 位で止まるように、つまり機械語レベルでのシングルス テップ実行をおこなうように設疋する。 各シングルステッフ慟作の終了時に、指定された番地の 内容を読み出し、変更されているかどうかを調べる。 実際にはもうすこ凵辧な処理カ必要だし、より効率的 なやり方 ( ページ保護によるアクセス違反を検出するなど ) もあるが、原理的にはデバッグ対象プロセスにシングルス テッフ慟作をおこなわせて、逐一確認するという方法にな る。 デバッグ対象プロセスのシングルステッフ ) 作は、 OS が サポートしていることもあるし、サポートしていない場合 はデバッガがデバッグ対象プロセスのコード領域を直接書 き直して、命令実行後にトラップがかかるようにするなど 71

5. UNIX MAGAZINE 2004年3月号

FreeBSD の ブートプロセスをみる 0 白崎博生 btext 前回は、 b00t2 がカーネルファイルをディスクから読み 込み、メモリにロードする処理について解説しました。今 回からは、カーネル本体のソースコードを読んでいきます。 btext カーネルのコードを読み始める前に、 b00t2 によって口 ードされたカーネルの配置図を見ておきましよう ( 図 1 ) 。 今回とりあげるコードの動作の説明で具体的なアドレスを 示している部分がありますが、そのときに図中のアドレス を参照してください。なお、図中の斜体で示したアドレス は、私がコンパイルしたカーネルをロードしたときのもの です。当然のことながら、これらのアドレスは読み込むカ ーネルのサイズによって異なるので、皆さんの環境とは違 っていると思います。 さて、前回述べたように、 b00t2 は最後に次の命令を実 行し、 0849 : 0870 : カーネルを呼び出してその役目を終えます。 call *%eax intx30 : メモリ上にロードされたカーネルの実行は、ファイル i386 / i386 / locore. s に書かれているラベル btext から 始まります。つまり、上記のレジスタ EAX にはラベル btext のアドレスが十内されており、このアドレスはカー ネルがエントリポイントとなります。 b00t2 は、このアド レスをカーネルファイルの ELF ヘッダから取得します。 今回説明するサプルーチン btext は、カーネルの起動プ ロセス全体の流れのなかでは図 2 の濃い網をかけた部分に あたります。 このサプルーチンの役割は、 CPU をプロテクトモード 154 図 1 メモリの配置 0000DDF5 003 お 7COA ( わ 00 ⅲ 0 →い ) , 川わ ) symstr 0037FEB4 symtab 00352200 003527 ノ C ( ーに〃の bss 003720EC ( ーど d 砒の data 002EE200 002C / 098 ( ーに灯 ) 00100000 text btext へ ジャンプ メ 000A0000 0009E800 スタック UN 工 X MAGAZ 工 NE 2004.3 b00t2 ・ LDT と TSS の設疋 ・ GDT と IDT の再設疋 ・ページングの効化 ・ページテープルの作成 ・ CPU の種類の判断 ・ b00t ⅲ f0 構告イ本のコピー 具体的には、以下の処理をおこないます。 内でプロセスカ黝けるように準備するわけです。 事で作ったプロテクトモード環境を整えなおし、カーネル で動かす環境を整えることです。つまり、 boot2 が突貫工 00000000 0000C000

6. UNIX MAGAZINE 2004年3月号

NEWS が Windows 2000 Server/Advanced prise Linux AS 2.1 、 SUSE 8.2/Enter- Server/XP Professional/Server 2003 prise Server 8.0 ) 、 NetWare 5.1 (SP6)/ の IA サーバー ( マネージメント・サー 6.5 、 Windows NT 4.0/2000/XP/Server ー自体を仮想サーバー上で動作させ 2003 。 ることも可能 ) 。 VMware ESX Server 価格は個別見積り。 の対応バージョンは 2.0.1 。ゲスト OS は、 Linux (Red Hat 7.3 / 8.0 / 9 / Enter - とプロードバンド・ルータの機能を備え アフライアンス・サーバー構築ツール る「 TurboIinux Appliance Server 1.0 Workgroup Edition 」、 / ヾーチャノレ・ド ターポリナックス (Tel 03 ー 5766 ー 1660 ) 止 ) の Web べース管理ツールをもとにし メイン機能をもつホスティング事業者用 は、アプライアンス・サーバー構築ソフト たソフトウェア Blue Quartz (Cobalt の「同 Hosting Edition 」がある。 ウェア、、 Turbolinux AppIiance Server Users Group がオープンソース・ソフト 同時に、サン・マイクロシステムズと共 1.0 〃の販売を開始した。 ウェアとして開発を継続中 ) が付属。パー 同で、、 Sun CobaIt" の後継となるシステ Turbolinux 8 Server がべースで、 Sun トナー企業に提供し、ハードウェア製品に ムを開発すると発表した。 Cobalt シリーズ ( 2003 年 11 月に製造中 組み込まれて販売される。各種サー ! 、第 = 第物いのま・ 0 : き ト五毒」ヨ •Turb01inux •macnica ◆ NFS Maestro S010 V9. OJ 、同 CIient V9. OJ Windows 用の NFS クライアント・ソ フトウェア。基本機能のみの S010 、これに マクニカ (Tel 045 ー 476 ー 1960 ) は、カ ・ソフトウェア。オプションで Open ノヾ 各種ューティリティを加えた Client があ ナダ Hummingbird の PC X サーバー GL や SSH セッションに対応。新バージ る。新バージョンでは NFSv4 に対応し 「 ExceedV9. OJ 」、 PC NFS クライアント ョンでは、ライセンス / ューザー情報をレ ( 従来は NFSv2/v3 のみ ) 、大莫なファ 「 NFS Maestro Solo V9. OJ 」「同 Client ポートする Metering(CSV 形式での出力、 イルシステムとの接続性能を強化。 Me- V9.0J 」の販売を開始した。 プラウザからの参照が可能 ) 、ユーザーの tering 、 RC5 によるパスワード保護など 対応 OS は、いすれも Windows 98 / Xcon ⅱ g のロック、 RC5 によるノヾスワー の機能をもつ。 Me 、 Windows NT 4.0 / 2000 / XP / Se Ⅳ - ドイなどの機能を追加し、リモート設疋 価格は、 NFS Maestro S010 V9. OJ が er 2003 。 管理ツーノレ Xconfig M anagement Con- 29 , 800 円、同 Client V9. OJ が 54 , 000 円 ◆ Exceed V9. OJ sole を強イし IPv6 に対応。 ( いすれも 1 ューサー ) 。 X11R6.6 準拠の Windows 用 X サー 価格は 78 , 000 円 ( 1 ューザー ) 。 PC X サーバー、 NFS クライアント •HP Xeon 使用の低価格 1 U サーバー 外形ー去 ( H xWxD) は 4.4 X43 X60.2 日本ヒューレット・パッカード ( Te103 ー たり ) 、チップセットは ServerWorksGC cm 、重量は llkgo -SL 、主記應 ( PC2100 DDR SDRAM) 5304 ー 6777 ) は、 lntel アーキテクチャの 価格は、 CPU 数が 1 、主記慮が 512MB ーバー、、 HP ProLiant DL140 〃の販 は最大 4GB 、 HD (UItraATA/100) は 80 の「 HP ProLiant DL140 R01 X2400 ー 売を開始した。 GB ( 最大 160GB ) 。内蔵型 24 倍速 CD- 512K IP 512MB 80GB ATA 」が 128 , グリッド・コンピューティングや ROM ドライプ、 USB FDD はオプショ 000 円、 CPU 数が 2 、主記匱が 1 , 024MB ン。拡張スロットは PCI—X ( 64bit / 133M HPTC (High Performance Technical の「同 R01 X2400 ー 512K 2P 1024MB Computing) 向けの IU ラックマウント・ (z)0 1/F は、 10 / 100 / 1000Base T x 2 、 80GB ATA 」が 188 , 000 円。 。 CPU は Xeon (2.4GHz) x 1 USBX4 、シリアル、キーポード、マウ ~ 2 、 2 次キャッシュは 512KB ( ICPU あ ス、ディスプレイ。 UN 工 X MAGAZ 工 NE 2004.3 19

7. UNIX MAGAZINE 2004年3月号

NEWS 71. lcm 、重量は 15. lkg 。 プレインストール OS は Mac OS X Server V10.3 (Panther Server)0 価格は、シングル CPU モデルが 349 , 800 円 ( 主記匱 512MB 、 HD 80GB 、 Mac OS X Server 無制限ライセンス ) 、デュ アル CPU モデルが 469 , 800 円 ( 主記憶 1 GB 、 HD 80GB 、 Mac OS X Server 無制 ■ Microsoft Windows Services for UNIX マイクロソフト (Tel 03 ー 5454 ー 2300 ) は、 Windows 用の UNIX 環境「 Micro- soft Windows Services for UNIX V 3.5 」日本語版の無ー電是供を開始した。 UNIX アプリケーションの実行環境 lnterix" にマルチスレッド・アプリケー ションの実行、非 ASCII 文字のユーサー 名のマッピング機能を追加。 NIS サー バー / クライアント、 NFS サーバー / クラ イアント、 300 以 - E の UNIX ツール、シェ ル (Korn シェル、 C シェル ) 、 Perl 5.6 、 1 , 900 以上の UNIX API 、 GCC/g 十十 /g ・エクセルソフト Linux 版アフリケーション性能解析ツール 工クセルソフト (Tel 03 ー 5440 ー 7875 ) は、米 lntel の性能解析ツール「 Linux 版 インテル VTune ノヾフォーマンス・アナラ イザ 2.0 」の版売を開始した。 Linux 上で重川第するアプリケーション・ ソフトウェアの性能を解析できる。 IA— 32 と ltanium 用の Linux に対応。新ハ ジョンでは、コールグラフの結果を図示 する機能を追加し、 Java (BEA JRockit 7.0 ( SP2 ) / 8.0 、 IBM JDK 1.3.1 / 1.4.0 、 ・ NoveII SUSE LINUX 対応 Ximian Desktop 米 NoveIl (TeI 03 ー 5740 ー 4343 : ノベル ) は、 Linux デスクトップ環境「 Ximian Deskt 叩 2 」の無ー館是供を開始した。 GNOME 2.2 がべースの統合デスクト ップ環境で、 OpenOff1ce.org 1.1 、インス タント・メッセンジャー GAIM 、設定管理 クライアント Ximian Red Carpet 2.0 、 電子メール / 個人情報管理クライアント 同 EvoIution などを含む。新たに SUSE LINUX 9.0 / 同 Desktop 1.0 に対応 ( そ の他の対応 OS は、 SUSE LINUX 8.2 、 Red Hat Linux 7.3 / 8.0 / 9 ) 。 ・ vmware 仮想サーバー環境ー元管理ソフトウェア ヴィエムウェア (TeI 03 ー 5789 ー 5885 ) は、複数の仮想サーバー竟を一元管理す るソフトウェア「 VMware VirtuaICen- ter 」の販売を開始した。 サーバー仮想化ソフトウェア VMware ESX Server が動作する複数のサーバー マシンを、 1 台のマネージメント・サー ーで一元管理できる。各 ESX Server 18 上の保想サーバー ( ゲスト (S) の監視、資 源割当ての変更などが 1 つの管理画面で おこなえる。 ESX Server 間で仮想サー ーを停止させすに ( サー ノヾーのコネク ノヾ ションなどを維持したまま ) 移動できる VMotion 、バージョン管理されたテンプ レートにもとづいて仮想サーバーを連用 できる Template Library などの機能が 限ライセンス ) 、クラスタノード用モデル が 349 , 800 円 ( 主記匱 512MB 、 HD 80GB 、 Mac OS X Server 10 クライアント・ラ イセンス ) 。出荷は 3 月。 77 コンパイラ対応の SDK を含む。 対応 OS は、 Windows 2000 Server/ Professi ona 1 ()P 3 以上 ) / X P Profes- sional (SP1)/Server 2003 。 http://www.microsoft.com/japan/ windows/sfu/ からダウンロードできる (. NET Passport への加入、オンライン・ ダウンロード登録が必要 ) 。 JDK 1.4.1 / 1.4.2 ) アプリケーションのプ ロファイリングに対応。 対応ディストリビューションは、 Red Hat Linux 7.2 / 7.3 、 Red Hat Enterprise Linux AS 2.1 / ES 2.1 / WS 2.1 、 SUSE LINUX 8.1 / 8.2 / 9.0 、 SUSE LINUX En- terprise Server 8.0 。 価格は 94 , 000 円。 http:〃www.ximian.com/download/ からダウンロードできる。技術サポート、 自動ソフトウェア・アップデート、追加 フォント、コンテンツ・プラグインを含み、 Java に対応した製品版「 Ximian Desk- top 2 ProfessionaI Edition 」 ( 99 ドル ) は http://store.ximian.com/で販売。 「学地′、 0 : ・画 0 と 3 ぐ心 0 ある。サードバーティの管理ソフトウェ UNIX MAGAZINE 2004.3 上、主記匱が IGB ( 推奨 2GB) 以 . E 、 OS 境は、 CPU が Pentium 4 (2GHz) 以 マネージメント・サーバーの動作環 アとの連携が可能な SDK を用意。

8. UNIX MAGAZINE 2004年3月号

連載 /FreeBSD のプートプロセスをみる 図 2 カーネル 0 凝カ ( 概要 ) b00Vi386 / b00t0 / b00t0. s start() b00Vi386 / b00t2 / b00t1. s start() → main() boot/i386/btWbtx/btx. s init() ・ハードティスクからのロード ・・プロテクトモードへの移行 " b00 のロード b00Vi386 / b00t2 / b00t2. c main() i386 / i386 / loco 「 e. s btext() recover—bootinfo() identify-cpu() create—pagetables() init386 ( ) kern/init_main. C start init() vfs mountroot() ・ execve(.. . "/sbin/init"... ) init プロセスの起動 ・・・カーネルのロード ・セグメント・テーブルと システム時間の初期化 ・・ルート・パーティションのマウント 割込みテーブルの初期化 kern/init main. C mi—startup() tunable—int_init() 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() popfl pushl $ 0 れます。もちろん、 scheduler() kproc—start() ・・ kick_init() " proc()—post() sched—setup() initclocks() configure—final() configure() ata_init() start_softintr() idle—setup() ・ create_init() ・ runq—init() ・・メモリアロケータの初期化 start—clock() 8254 の初期化 " swapper の生成 ・ in ⅸスレッドの生成 ・・アイドルスレッドの生成 スレッドを生成 ・・その他のカーネル ・ init を実行可に設定 それでは、コードをみていきましよう。 0207 : 0218 : 0219 : 0223 : 0224 : 0227 : 0228 : 0234 : 0235 : 0236 : 0237 : 0238 : NON_GPROF_ENTRY(btext) # 次回は warmboot するように BIOS を設定 movw pushl movl pushl popfl mov mov mov ca11 $ 0X1234 , 0X472 # フレームボインタを保存 %ebp %esp , %ebp $ 0X00000002 # EFLAGS をクリア %ds , %ax %ax , %fs %ax , %gs recover_bootinfo で、 227 行目のように 2 を設疋しても、、すべて " クリアさ のように書いても結果は同じです 1 設疋しているかもしれません。そこで、 DS 、 FS 、 GS の れることもあり、そのローダでは DS と FS で異なる値を す。しかし、カーネルは boot2 以外のローダから起動さ でふたたび同じ値を十内しているのは無駄なようにみえま (SEL-SDATA) が設定されています。それなのに、 ーネルを起動するときに、すでにレジスタ DS と同じ値 を設定します。この 2 つのレジスタには、 b00t2 がカ 234 ~ 236 行目は、セグメント・レジスタ FS と GS 227 ~ 228 行目では、 EFLAGS レジスタのすべてのフ ラグをクリアします。 と思うかもしれませんが、下位 2 ビット目はつねに 1 なの 「、、すべて " クリアなら、 0 を定するのとちゃうの ? 」 UNIX MAGAZ 工 NE 2004.3 3 つのレジスタカ在実に同じセグメントを指すように こで再設疋しているのです。 238 行目で呼び出している recover-bootinfo は、 1 Linux の startup-32 では、、 pushl $ 『としていました。 前回 155

9. UNIX MAGAZINE 2004年3月号

廉価 Linux クラスター計算機 (Beowu げ併用 ) OTB TransnationaIInc HomePage http: 〃 otb—japan. CO. jp/ 主な仕。様 Beowu け廉価工ントリーモデ ) レ ( 8 台構成 ) •Case SIim 型 PC (MicroATX) •Chipset SiS651 (FSB533MHz) •Memrory PC2700 Non-ECC DDR-SDRAM 512MB (Max2GB) •HDD 40GB ATAIOO 7200 「 pm •Network IOOBASE-TX onboard (Option GbE PCD •Video onboard (Memory sharing) •FDD/CD-ROM Slave(t Option (Master 、 S ve 各 1 基含む ) •OS Red Hat 8.0 0 「 9 英語 (ext3 format) ・ M 円等 MP ℃ H -1 .2. X GPL 版 (CPU 、 Memo 「 y 負荷等 ) ツール標準装備 - オフ。ション : JOB 管理ソフト / PBS - P 「 0 、テ・イスフ。レー、ラック架台、 ※ Memo 「 y 増設等 Custom 仕様は随意お受けいたします = 朝 t 曜 y 機がら叫の L 複数アカウントで複数共用由鑒ま側引 : 、 部阯ツ機朝個だけ振れば内部節面がらも外蔀に出、らます 、廉価な ' す数を稼ぎ汎用計第貊可塰数心 : 行、用途適で グ = 。。三ノ 、廉価ない岬オプい朝 ) ぎ羮装し = = いま発 第ま速第機 , 厩。氤 f のしく 1 ま = 同 = , ま 朝 4 高速計算にしたヨズ朽わマッズ毛デル。 ( OP 第。 聳Ⅲよ AMD の最新鋭プロヤツ朝 on を 0 で搭載。 - ビットをョッビぎ、デイしツ 丁 3 に対応。した s 諏 W 朝 k ミ 8- 阯チップセット聟用の p 印 ti 4 蓴用ジ手ム鬟 三大容量 4GB 印 0 メツ応、 gab 乢 AN 、 4 叫パズ 3MH のを標準で装儚し、 からビッ下ン e ュティングべのアップグレャドにもツレキジカしに対応しま発 います、標準の篋体は 460W 電源搭載の高品位 3 腐拡張性の準ミッドタウャ囂 チッ , プセッ上の / トスプリッジとサウネプリッジを繋ぎ高速化を図る H 市 t 機能等 5 イシベイはなん 8 段を備え、なリムツヾル ge を 2 基搭載しい D ト囲個の Da い 0 ( ットイ ~ パフォトマンス 1 宿ツビミ + ティシグ ) 分野ド最適なネンヨッを提供 都 RA 朝み 1 / 10 / 立 s 部 RA 1 ( 纛 ) 小型ファイルサパに仕上がツておの 。ます第 00 0 デルは当出 P をご参照すださ、 販売価格 CPU( モデル tum4—2. 53GHz x8 tum4—2. 80GHz x8 tum4—3. 06GHz x8 DuaI Opteron Linux 計算機 / サーバ—(OPT-SS-X) ¥ 810 , 000 ¥ 860 , 000 ¥ 1 , 020 , 000 P4 / 64bitPC レヾス搭載小型大容量 RA 旧サーバー ・ 0pteron 1.4 ~ 2.2GHz IMB L2Cache ・ AMD 8131 + 8111 チッフ。セット ・ Dual channel memory bus ・ PC2700 / PC3200 ECC 「 egistered DDR SDRAM ・ Max. 16GB support 、 8x DDR DIMM sockets ・ 80GB Ult 「 aATA100 7200 「 pm 2MBcache ・ (option U320-SCSl+ HDD) ・ Rage XL 8MB onboa 「 d ・ FDD 3.5inch 2mode 、 52X CD-ROM ・ 2x Gigabit ( 10 / 100 / 1000 ) onboa 「 d ・ Midtower SR20505 472 ( H ) x 220 ( W ) x 420 ( D ) + 460W 電源 ・ 3x 5.25 " / 2x 3.5"exte 「 nal / 3x 3.5"HDD/ FAN lx 12cm ) ・日本語 109 0 「英語 104 Keyboard PS/2 ・ WheeIor 3Button Mouse PS/2 ・ OS はオプション (64bit Turbo Linux, SuSe P 「 0.9 ℃ Dual B00t OK!) Memory> AMD 0pteron 240 1. 4GHz ¥ 231 , 000 ¥ 271 , 000 AMD 0pteron 242 1. 6GHz ¥ 269 , 000 ¥ 309 , 000 AMD 0pteron 244 1. 8GHz ¥ 309 , 000 ¥ 349 , 000 AMD 0pteron 246 2. 0GHz ¥ 410 , 000 ¥ 453 , 000 AMD 0pteron 248 2. 2GHz ¥ 453 , 000 \ 496 , 000 ※すべて Du 引 CPU 、 0pte 「 0n246 / 248 は PC3200 他は PC2700 メモリーです ☆当社製品 ( PC 、 Se 「 ve 「、 RAID 、 Beowu けクラスターシステム等 ) の納入先は全国に広がっております。 全て当社による直販、直サホ。ートです。 主要納入先 : 東北大学、東京大学、京都大学、大阪大学、神戸大学、広島大学、九州大学等大学研究機関 本田技術研究所、リコー中央研究所、電力中央研究所、三菱化学科学技術研究センター等 仙台市青葉区北目町ト 40 工トワール北目町ビル IF Tel 022 ー 388 ー 1138 Fax 022 ー 388 ー 1096 HomePage http: 〃 www. otb-japan. co. jp/ デスクトップタイプ CPU lx lntel Pentium4 2.4GHz-• FSB533MHz 512KB L2 cache Chipset Se 「 verWorks Grand Champion SL FSB533/400MHz (Hype 「 -Threading 対応 ) Memo 「 y PC2100 Registe 「 ed ECC DDR SDRAM 4x DDR DIMM sockets CDROM 52X ATAPI VIDEO ATIRAGE XL 8MB onboard LAN lntel Gigabit ( 1000 / 100 / 10 ) + 1 0 / 100 cont 「翻e「 onboa 「 d PCI 2x 64bit PC ト X 、 3x 32bit 33MHz PCI Exp. I/0 2x USBI. 1 / 2x serial / lx parallel .. CASE Midtower Serve 「 Case 595 ( D ) X220 ( W ) X425 ( H ) mm ( 色は黒または白選択 ) Drive. Bay 8x 5.25 " external / lx 3.5"FDD RAID 64bitPCl(33MHz) RAlD-Card HDD(IDE Big-D 「 ive) x8 / R 用 D -0 / 1 / 10 / 5 HDD()S 起動部 ) IDE UDMAIOO x2 (RAID-I) 構築例・ ( 下記販売価格 ) データ部 250GBX8 / R 畑 -5 実効 1750GB (Hot Spare xl で 1500GB ) HDD は MaX Line PIus II( 信頼性が高い、エンタープライズ用 HDD ) を装着します OS 起動部は 40GBx2 ( mi 「「 or ) OS 部再インストール用 Reco Ⅷ y - CD 付属 (Linux の場合 ) 販売価格 2GB ( 4X512MB IGB ( 2X512MB ) ラックマウントタイプ CPU Penitum4 3.06GHz(FSB533MHz) Chipset ServerWorks Grand Champion SL Memo 「 y ECC DDR SDRAM 1024MB ( 512MB x2) ()x DIMM Slot, Max 4GB support) Video Rage XL 8MB onboard RAID ( 0 , 1 , 10 , 5 ) UDMAIOO 対応 HDD MAX16 台 RAID Card (64bit PCI) UDMA 対応 8 チャンネル x2 3500GB /RAID-5 ( 250GB HDD x 16 ) に参考例下記価格 ) Gigabit NetWO 「 k lntel IOOOBASE-T ( + 10 / 100 ) onboard Case 概寸 ( 4U ラック ) 横 483X 奥行き 650X 高さ 177m Memo r y> 販売価格 2GB ( 4X512MB) 1GB(2x512MB) Desktop ¥ 695 , 000 ¥ 738 , 000 ¥ 683 , 000 ¥ 726 , 000 ¥ 1 , 240 , 000 ( こ相談くたさい ) Pent ium4 3. 06GHz Pent ium4 2. 80GHz Rackmount Pent ium4 3. 06GHz ル第 ~ 第ー 丁ィ . ビー 株式会社オー

10. UNIX MAGAZINE 2004年3月号

連載 /FreeBSD のブートプロセスをみる 図 4 bootinfo 構〕本の一部 (machine/bootinfo. h) struct bootinfo 図 5 recover-bootinfo 呼出し直後のスタックの内容 u—int32_ u—int32_t u_int32_t u_int32_t u int32_t u int32_t bi_verSIOn; bi_kernelname ; _S1ze; bi—symtab; bi—esymtab, kernend; bi 0 4 8 12 20 24 28 0363 : 0364 : btext への RET addr 旧 EBP b00t2 への日 ET add 「 オプション BOOTDEV 00000000 00000000 00000000 bootinfo の 物理アドレス ・← ESP ・← EBP pcb はプロセスの状態を管理する構造体の一部で、おもに CPU に依存するデータ ( レジスタなど ) が本内されていま す。この構造体は、ファイル machine/pcb. h で定義され ています。 こまでずいぶん長い道程でしたが、最初のほうで紹介 した btext の処理のうち、 GDT や IDT の再設定などが また汐長っています。これらの処理は、 348 行目で呼び出し ているサプルーチン i ⅲ t386 でおこなわれます。このサプ ルーチンは C 言語で書かれています ( 詳しくは次回に説明 します ) 。 347 行目でブッシュしている physfree は、 i ⅲ t386 へ の引数です。 最後に、 CPU に依存しない初期化処理をおこなう mi- startup を呼び出して、 btext の処理は終ります。 recover bootinfo recover-bootinfo は、ローダから渡された bootinfo 構 造体をカーネルのデータ領域にコピーする処理を実行しま す。 bootinfo 構造体は、 include/machine/bootinfo. h で定義されています ( 図 4 ) 。 ところが、 boot2 からカーネルを起動した場合、カーネ ルは b00t2 カイ乍成した bootinfo 構造体の先頭部分しかコ ピーせず、せつかく boot2 カ成したデータの大部分は捨 てられてしまいます ( なぜ捨てられるのかは不明です ) 。 図 5 に、 recover-bootinfo カ剛乎び出された直後のスタ に boot2 がカーネルを起動したときに与えられた引数で スタックの下半分に積まれているデータは、以下のよう 指すアドレスからのオフセットです。 ックの様子を示します。左側の数字は、 レジスタ EBP が MAKEBOOTDEV(dev—maj [dsk. type] , 0 , dsk. slice, dsk . unit, dsk. part) , 0 , 0 , 0 , VTOP(&bootinfo)) ; その上の、、 RET addr" は、 b00t2 によって実行された 下記の CALL 命令がブッシュした戻りアドレスです。 0849 : intx30: call *%eax 0870 : さらにその上には、 boot2 へ戻る際に必要な旧い EBP の内容 ( フレームボインタ ) が積まれています。一番上の 、 RET addr" は、 btext の 238 行目が実行した CALL 命令の戻りアドレスです。そして、レジスタ ESP と EBP は、図に示したアドレスを指しています。 この図を参照しながらコードを読んでいきましよう。 0437 : recover_bootinfo : 0496 : 0497 : 0498 : 0499 : 0500 : 0501 : 0506 : 0508 : 1 : movl movl cmpl movl leave ret 28 (%ebp) , %ebx 0X0 (%ebx) , %eax $ 1 , %eax If $ 1 , %eax # 戻り値 0 0362 : 158 —exec ( (caddr—t) addr , opts & RBX—MASK , 496 行目では、 bootinfo 構造体が保存されている物理 アドレスを取り出して EBX に本絲します。以降は、これ をベースアドレスとして bootinfo 構造体にアクセスしま UN 工 X MAGAZINE 2004.3