...

MkLinuxとは

by user

on
Category: Documents
26

views

Report

Comments

Transcript

MkLinuxとは
はじめに
●
MkLinux とは
●
Mach とは
●
MkLinux のサーバー
●
Linux の利点
●
なぜ Linux か
●
GNU と Apple
●
なぜ Power Macintosh か
●
Intel プラットフォームへの移植
●
MkLinux のスペック
●
MkLinux の開発チームの歴史
●
MkLinux の開発チームへの参加
本稿は、Linux Journal( 1997 年 5 月号)に掲載された記事の転載である。PTF( Prime Time
Freeware )は転載を許可してくれた同誌と著者に感謝したい。
Linux? On the Macintosh? With Mach?( Linux とは? Macintosh で Linux を使用する理由
とは? Mach との関係とは?)
Victoria L. Brown 著( Apple Computer, Inc. )
長期間にわたって開発が続けられている MkLinux が一般の目にふれるようになったのはごく
最近のことである。Apple が MkLinux に関する発表を初めて行ったのは、FSF( Free Software
Foundation )主催の自由に再配布が可能なソフトウェアに関する第 1 回目のカンファレンス( 1996
年 2 月)においてであった。
同カンファレンスで Apple は、OSF( Open Software Foundation 、現在は X/Open と統合さ
れ、The Open Group となっている)とともに、Linux の Mach への移植と Mach のさまざまな
Power Macintosh 製品への移植のプロジェクトをサポートすることを発表した。このプロジェク
トは Apple Computer がスポンサーとなり、資金を提供し、開始したものである。
このプロジェクトでは、OSF が Mach 3.0 マイクロカーネル( カーネギーメロン大学と OSF
Research Institute によって開発された)と、移植を行うエンジニアリングチームを提供した( カ
ンファレンスでは、Linux on the OSF Mach 3 Microkernel という MkLinux に関する論文が
OSF によって発表された。この論文は、本書の第 9 章に転載されている。
前述のカンファレンスで Apple は、MkLinux の最初の移植は 1996 年夏になると予測したが、
MkLinux の一般向けの最初のリリース( DR( Developer Release )1 )は予測よりも早く、1996 年
5 月に発表された。その後、1996 年 9 月に DR2 がリリースされ、1997 年 9 月には DR3 のリリー
19
はじめに
スが予定されている*1 。
MkLinux の各リリースには多くの変更が加えられる傾向がある。したがって、FTP を使用する
か、CD-ROM の形で、アップデートや修正のためのファイル(数 100M バイトの大きさになる)を
入手し、完全に再インストールを行わなくてはならないのが普通である。したがって、MkLinux
のリリースはあまり頻繁には発表されない( 大きな変更や重要な変更があった場合にのみ発表さ
れる)
。
MkLinux のリリースの発表後、次のリリースの発表までの間、Apple はマイナーアップデー
ト用のファイルを FTP で提供する。これらのファイルはバグフィックス用のファイルか実験的な
機能を新たに導入するためのファイルであるが、どちらの場合でも、MkLinux の特定のリリース
専用である。
MkLinuxとは
MkLinux とはいったいなんなのかがわかっていない読者もいるだろう。Mac OS の Finder は
動作するのか? X11 は動作するのか? なじみ深いコマンドはすべて使用できるのか? そもそ
もどう発音すればよいのか? と、さまざまな疑問があるに違いない。
まず、もっとも基本的な疑問に答えよう。MkLinux は正式には、MK(エムケー)Linux と発音
する。しかし、Mc( マク)Linux と呼ばれる場合も多い。なお、Linux がさまざまな呼び方をさ
れるのにともない、MkLinux の Linux の部分もさまざまな呼び方をしてかまわない( リヌクス、
ライヌクス、リーヌクス*2 などが一般的である)
。
MkLinux は Linux を完全に移植したもので、X11R6 をはじめとする GNU のツールとアクセ
サリがすべて用意されており、Mach カーネル上で動作する。MkLinux の名前の由来はここにあ
る( Mk は microkernel( マイクロカーネル)の略)。MkLinux は Linux であるため、Finder は
動作しない(今のところは)が、Linux のコマンドはすべて使用できる(ただし、Intel のプロセッ
サを搭載したシステム用に作られたコマンドは使用できない)
。
Machとは
Mach とはマイクロカーネルであり、他のオペレーティングシステムの移植を可能にする抽象的
な層として働く。また、マルチプロセッサのサポート、カーネルレベルでのスレッドのサポート、
分散/クラスタコンピューティングをはじめとする興味深い特長を備えている。Apple は Mach
を Power Macintosh に移植することによって、さまざまな研究レベルのオペレーティングシス
テムや商用オペレーティングシステムを Power Macintosh 上で使用できるようにした。
Mach 3 はカーネギーメロン大学で開発されたマイクロカーネルで、OSF( Open Software
*1 【編集部注】1998 年 7 月にリリースされた。
*2 【編集部注】ほかにリナクス、リナックス、ライナックスなど。
20
MkLinux Chapter 1
第1章
イントロダクション
●
本書の概要
●
UNIX の登場
●
UNIX の分派
●
Richard M. Stallman
●
Linux と GNU プロジェクト
●
UNIX vs. UNIX クローン
●
問題解決へ
ほとんどのユーザーは MkLinux をすぐにインストールし、その後でもっとも興味のあるドキュ
メントを読みたいと考えているだろう、しかし、Linux を使用した経験がない場合には、まず本
章に目を通すことをお勧めする。本章を最初に読んで、MkLinux に関する基礎知識を身に付けて
おくと、あとあとのトラブルを避けることができる。
1.1 本書の概要
本書では、以下に示す相互に関係のあるさまざまな情報が書籍と 2 枚の CD-ROM*1 に収めら
れている。
●
MkLinux のインストールに関するヘルプと初心者が MkLinux を使用する際に役立つヘルプ
●
システム管理に関するヒント
●
高度なトピックに関する情報
●
参考資料の紹介
本書の初版では、2 枚の CD-ROM には Mac OS のハードディスクのスナップショットが収められている。
この形態は、第 2 版以降*2 では変更になる可能性がある。詳細については、CD-ROM 内のオンライン情報
を参照のこと。
本書に付属の「 Apple MkLinux ディスク」には、次のように、MkLinux のディストリビュー
ションのインストール可能なスナップショットが収められている。
*1 【編集部注】日本語版では「ボーナスディスク」を追加している。詳しくは Appendix を参照。
*2 【編集部注】日本語版は第 3 版をもとにしているが、構成は変わっていない。
47
第1章 イントロダクション
●
便利な Apple ユーティリティ( ハードディスクのフォーマッタを含む)
●
MkLinux のインストールプログラム
●
インストール可能な MkLinux システムすべて( ソースコードを含む)
●
オプションのソフトウェアパッケージのアーカイブ( 実行可能ファイル形式)
本書に付属の「 PTF リファレンスディスク」には、次のようにオンライン形式の参考資料が多
数収められている*3 。
●
Adobe Acrobat Reader 、Apple の SimpleText などのプログラム
●
Apple 作成の参考資料( 主に Acrobat Reader のファイル形式である PDF( Portable Docu
ment Format )形式か HTML( HyperText Markup Language )形式)
●
Linux 、Mach 、NeXT に関する、さまざまな形式のドキュメント
●
PTF が追加したもの( ドキュメントなど)
1.2 UNIXの登場
以下の引用は、1978 年に発表された Dennis Ritchie と Ken Thompson の画期的な論文 The
UNIX Time-Sharing System からのものだが、あたかも UNIX の現在の状況を予見したかのよ
うな洞察力と、魅力的なつつましさを備えた表現は高く評価すべきである。
UNIX は汎用の、マルチユーザー対応の、対話型のオペレーティングシステムである( 中略)
UNIX は以下をはじめとする、大型コンピュータシステムでもほとんど見られないさまざまな機
能や特長を備えている。
1. ボリュームの取り外しが可能な階層ファイルシステム
2. 互換性のあるファイル、デバイス、プロセス間 I/O
3. 非同期処理を開始できる能力
4. ユーザーごとに選択可能なシステムコマンド言語
5. 多数の言語を含む、100 以上のサブシステム
6. 高い移植性
ベル研究所の Multics プロジェクトからの撤退によって、Ken Thompson や Dennis Ritchie
をはじめとする同研究所のメンバーはタイムシェアリングシステムにアクセスできなくなってし
まった。しかし、幸運なことに、Thompson と Ritchie はタイムシェアリングシステムの実現の
ためのエネルギー、進取の精神、創造力を持ち合わせていた。
同様に幸運なことに、Thompson と Ritchie の上司や同僚が 2 人の努力を支援し、サポートし
てくれた。この初期の UNIX ユーザーである 2 人は、UNIX(と Linux )を今日のレベルまで高め
*3 【編集部注】英文。
48
MkLinux Chapter 2
第2章
準備
●
システム条件
●
ファイルシステムの基本
●
ハードディスクの準備
●
イニシャライズとパーティションの作成
●
ディスク準備用のソフトウェア
●
ハードディスクのイニシャライズ
●
パーティションのサイズの決定
●
定義済みのパーティション構成を使用して、パーティションを作成する
●
パーティション構成を独自に作成する
●
pdisk ユーティリティ
●
Drive Setup ユーティリティ
Intel ベースの Linux システムとは異なり、MkLinux では標準的なシステムハードウェア以外
のハードウェアはほとんど必要がない。基本的に、MkLinux のシステムへの乗り換え後は、新し
いハードウェアを追加する必要はない。また、一般的に、システムの準備に長い時間を費やす必
要はなく、ディスクのフォーマットの作業を行うだけですむ。
2.1 システム条件
MkLinux をインストールするには、8M バイト以上の RAM(どの Power Macintosh でも 8M
バイト以上の RAM が搭載されている)と 100M バイト以上のハードディスクの空き領域を備え
た Power Macintosh(または同等のシステム)を用意する必要がある。16M バイト以上の RAM 、
500M バイト以上のハードディスクの空き領域( Mac OS がインストールされたハードディスクと
は別のハードディスクが望ましい)が用意できれば理想的である。
MkLinux の DR3 では、ほとんどの Power Macintosh( Performa と PowerBook を含む)をサ
ポートしている。また、クローンマシンの多くも使用できるが、アドオンボードは使用できない
場合がある。IDE ドライブの中にはサポートされているものもあるが、USB はサポートしていな
い。最新の情報は、MkLinux の Web サイト( www.mklinux.org*1 )を参照。
*1 【編集部注】現在の URL に修正した。
57
第2章 準備
2.2 ファイルシステムの基本
デフォルトでは、Mac OS のハードディスクドライブでは 1 つのファイルシステムが使用され
ている。一方、MkLinux のハードディスクドライブでは、物理的に複数のパーティションを作成
し、それぞれのパーティションで異なるファイルシステムを使用することが多い。特に、メイン
のシステムドライブでは少なくとも 2 つのパーティションを使用し、3 つ以上のパーティション
を使用する場合もある。システム管理者は追加したパーティションを以下の目的で使用すること
ができる。
●
システムデータの一部を選択し、バックアップする
●
大容量のハードディスクドライブのファイルアロケーションの効率を高める( 最小ブロック
サイズを小さくする)
●
問題のある領域(スプールディレクトリなど)がシステムの残りの部分のハードディスク領域
を侵食するのを防ぐ
ハードディスクに 100M バイトの空き領域があれば、MkLinux システムを最小構成で動かすこ
とができるが、これでは、ほとんどの用途に対応できない。システムを完全にインストールした
い、追加ソフトウェアをインストールしたい、ユーザーアカウントを追加したい、カーネルを再
構築したい、というような場合には、500M バイト以上( 空き領域は多ければ多いほど望ましい)
の空き領域を用意することをお勧めする。
パーティションを作成するには、Apple HD SC Setup または、A/UX タイプのパーティショ
ンを作成できるパーティション作成ツールを使用する。また、MkLinux のインストール先のハー
ドディスクドライブには正しい SCSI ID( 0∼6 )が設定されていなければならない。MkLinux の
ディストリビューションには、Apple Drive Setup が添付されており、IDE ドライブのイニシャ
ライズとパーティションの作成を行うことができる。
MkLinux では Linux EXT2 のファイルシステムフォーマットを使用するが、パーティションマップは Intel
ベースの Linux システムと互換性がない。MkLinux の将来のバージョンでは、この問題が解決される可能性
がある。
Macintosh は通常、ハードディスクドライブ全体が 1 つ以上の Mac OS( HFS フォーマット)
ファイルシステムを備えた状態で出荷される。MkLinux では複数のファイルシステムを通常は独
自のフォーマット( EXT2 、swap など)で使用するため、Macintosh に MkLinux をインストー
ルして使用するには、適切なパーティションを作成する必要がある。
パーティションを作成するとファイルが失われる可能性があるので、ハードディスクのパーティションを変
更する前に、ハードディスク上の重要なファイル( プログラム、データファイルなど)を別の記憶媒体に保存
しておくこと。
58
MkLinux Chapter 5
第5章
システム管理の基本
●
哲学
●
起動と終了
●
MkLinux のファイルツリー
●
セキュリティの基本
●
バックアップとファイルの復元
●
MkLinux の起動
●
セッションの開始
●
ハードディスクの追加
Mac OS システムでは、管理はあまり必要でない。また、幸運なことに、ほとんどの Mac OS
システムでは定期的なシステム管理はまったく必要がない。このような環境に慣れているユーザー
は、この章をぜひ読んでほしい。
Mac OS とは異なり、MkLinux ではある程度の量の管理が必要である。必要な管理の量はシス
テムによって異なるが、たとえば、もっとも小規模なシステムでは月に 1 時間の管理で十分であ
る。この程度のシステム管理が行われていない場合、悪いことが起こる可能性がある。たとえば、
ファイルシステムがいっぱいになったり、ファイルが失われたり、破壊されたり、重要なシステ
ム機能が壊れたりする可能性がある。
このような事態を招きたいと願う人はいない。また、このような事態を防止するのは決して難
しくはない。つまり、システム管理を行い、システムをきれいな状態で動作させることを心がけ
ることが重要である。
5.1 哲学
PTF では、30 年近くにわたってコンピュータシステムの使用と管理を続けてきた。このよう
な経験を積んだからといって、我々はコンピュータの達人になれたわけではないが、この問題に
関するいくつかの見解を得ることはできた。少々うるさいかもしれないが、我々の意見に耳を傾
けていただけるとありがたい。
5.1.1 システム管理の神話
システム管理に関するいっぷう変わった神話にでくわすことがある。
「読者の皆さん」がこのよ
うな神話を信じない気持ちもよくわかるが、同僚や上司とシステム管理について話をする際には、
97
第5章 システム管理の基本
これらの神話を理論武装の道具として使用することができる。
●
システム管理は強制ではなく、任意に行うものだ
Mac OS とは異なり、MkLinux ではログファイル、テンポラリファイル、スプールファイル
など、さまざまなファイルが作られる。そして、残念ながら、これらのファイルは使用後に
削除されずに残る場合がある。
その結果、さまざまな損傷が発生する可能性が高い。損傷を修復せずに放置しておくと、さ
らに損傷が進む可能性がある。特に、ファイルシステムの損傷は時の経過にともない、広が
る傾向が高い。
●
システム管理とは「家計を切り盛りする」ようなものだ
システム管理は「家計の切り盛り」と同じ効果をもたらす。適切な管理を施されたシステムは
効率よく、きれいな状態で動作し、秩序のイメージどおりの姿を見せる。管理が行き届いて
いないシステムは非効率を生み、ユーザー全員がフラストレーションを貯める結果となる。
●
システム管理は誰でも行える
これは誤りである。システム管理者は有能な MkLinux ユーザーであり、仕事に対して分別
のある姿勢(詳細は後で説明する)で臨まなくてはならない。また、システム管理の基本知識
も必要だが、これらは、経験を重ねるうちに身に付けることができる。
●
システム管理は専門家しか行えない
これも誤りである。確かに、システム管理の一部は非常にやっかいであり、熟練を要するが、
システム管理者のほとんどは専門家ではない。ただし、電話でつかまえられる専門家がいる
と「たいへん」助かる。専門家の助けを借りるには、MkLinux のメーリングリストに参加する
とよい。MkLinux のメーリングリストには、MkLinux の Web サイト( www.mklinux.org )
から参加できる。
●
システム管理は誰か他の人がやってくれるだろう
システムのユーザーがあなた一人しかいない場合やあなたがシステムの所有者である場合に
は、これは誤りである。
「あなた」がシステム管理者を務めるしかない。近くをうろついてい
るシステムクラッカーがときどき「助けてくれる」かもしれないが、基本的に自分のことは自
分でやらなければならない。また、ベンダーがなんでも自動的にやってくれるとか、最初か
らすべてを準備してくれるなどと期待してはならない。
●
セキュリティは「ここでは」重要ではない
あなたが感じのよい、自由な雰囲気の会社を経営していて、誰もが正直者だとしよう。ある
いは、あなたの書斎に個人システムが置いてあるとしよう。しかし、まず最初に、敵意のあ
る外部の人々がモデムやインターネットを介してあなたのシステムに侵入を試みるだろう。
また、従業員や友達はあなたが思っているほど正直ではないかもしれない。
98
MkLinux Chapter 6
第6章
アップグレードと強化
●
スナップショット
●
アップデート
●
RPM バイナリアーカイブ
●
RPM バイナリアーカイブのインストール
●
RPM ソースアーカイブ
●
RPM ソースアーカイブの構築
●
他のフリーソフトウェアアーカイブ
●
他のフリーソフトウェアパッケージの構築
多くの商用オペレーティングシステム製品とは異なり( ただし、他の Linux ディストリビュー
ションのほとんどとは同様に)、MkLinux の各リリースは「 最終」製品とはみなされていない。
MkLinux は絶え間なく変わり続けている。たとえば、バグフィックスや強化は頻繁に行われてお
り、アップデートは定期的に発表されている。また、新しいアプリケーションの移植と追加が行
われている。そういうわけで、発表された MkLinux の各リリースがスナップショットと呼ばれて
いるのである。写真の世界のスナップショットと同様に、MkLinux のスナップショットとは、進
行中の、絶えず変わり続ける、
「動き続ける標的」である MkLinux の開発のある時点の静的なイ
メージである。
写真とは異なり、MkLinux のスナップショットは頻繁にアップデートされ、強化される。前述
のように、MkLinux の開発チームによってアップデートが頻繁に発表されている。アップデー
トではバグがフィックスされていたり、強化( 直前のスナップショットにはなかった新しい機能の
追加)が行われているので、MkLinux の最新のアップデート情報は常に把握しておいたほうがよ
い。最新のアップデートの導入によって、最適な信頼性とパフォーマンスを備えた MkLinux シ
ステムにすることができる。
MkLinux のスナップショットのディストリビューションは、MkLinux オペレーティングシステ
ム( Mach カーネルと Linux サーバーを含む)と、基本的なツールとアプリケーションプログラム
から構成される。また、選択的にインストール可能な「特別なプログラム」
( Apple の MkLinux
の開発チームが基本的なインストールセットに含めるのは適当でないと判断したが、興味深いプ
ログラム)も添付されている。これらの特別なプログラムは RPM アーカイブの形で、ソースコー
ド形式と( しばしば)バイナリ形式で提供される。
RPM( RedHat Package Manager )とは、アプリケーションパッケージの便利なアーカイブ形
式の作成、使用、管理のためのツールである。RPM バイナリアーカイブには、実行可能アプリ
ケーションのみが収められている。また、RPM ソースアーカイブにはソースコードが収められて
117
第6章 アップグレードと強化
おり、解析、使用、あるいは、自由に変更( 再配布上の制限や他の法律上の制限に従うこと)する
ことができる。
アップデートだけでは不十分というユーザーは、多少のプログラミング能力と探求心さえあれ
ば、MkLinux をほぼ無限にカスタマイズすることができる。インターネットはさまざまなフリー
ソフトウェアパッケージの宝庫であり、多種多様な自由に再配布できるソフトウェアを集めた FTP
サイトもあれば、1 、2 種類の特殊なパッケージのみを集めた非常に専門的なサイトも存在する。
これらのフリーソフトウェアパッケージの中には、MkLinux に移植するのに相当なプログラミ
ング技術を要するものがある。しかし、移植に成功すれば、その結果を発表することによって、多
くの人々が恩恵を受けることができる(そして、あなたの業績に対する賞賛がわきおこるだろう)
。
なお、パッケージを発表する前に各種の制限に反していないか確認するのを忘れてはならない。
6.1 スナップショット
前述のように、スナップショットとは MkLinux の開発プロセスのある時点の記録である。それ
までのアップデート、バグフィックス、機能強化はすべて集められ、統合され、新しいスナップ
ショットが作られ、インストーラやさまざまな文書ファイルとともにパッケージングされ、テス
トされ、配布される。
スナップショットの完成には、関係するすべての人たちのかなりの量の作業が必要になる。
MkLinux の開発チームがスナップショットを作成し、MkLinux のユーザーコミュニティがスナッ
プショットをインストールする。インストールの際には、既存の MkLinux システムの削除が必要
になる場合が多い。したがって、スナップショットの発表はかなり不定期である。過去の実績を
見てみると、少なくとも 3 か月以上の間隔で発表されている。
スナップショットは次の 2 つの方法で入手することができる。
●
FTP
スナップショットは MkLinux の公式 FTP サイト
( ftp.mklinux.org/pub/ )
や、www.
mklinux.org/mirrors.html*1 に記載のミラーサイトから anonymous FTP を使用してダウン
ロードすることができる。
本書に付属の「 PTF リファレンスディスク」に収められている Dartmouth の Fetch ユーティ
リティを使用すると、Mac OS 上で FTP を行うことができる。また、MkLinux でも、ftp コ
マンドを使用して FTP を行うことができる。
●
CD-ROM
PTF では、
「 MkLinux スナップショット」ディストリビューションを CD-ROM
形式で販売している。
新しいスナップショットがリリースされると、それ以降のアップデートと機能強化はそのスナッ
プショットについて行われることになる。したがって、それ以前のスナップショットのサポート
*1 【編集部注】以下では原書の記述を現在の公式サイトに修正した。
118
MkLinux Chapter 7
第7章
システムの構築
●
準備
●
マイクロカーネルの構築
●
MkLinux のサーバーの変更
本章の名前は伝統的な UNIX の習慣にしたがってつけられているが、誤解のないように注意し
てほしい。UNIX の用語では「 システム構築」とは、オペレーティングシステム全体のバイナリ
ファイルを作成することではないし、ましてや、オペレーティングシステムのバイナリファイル
や他のファイルをファイルシステム内の指定の場所に配置することでもない。
システムの構築とはオペレーティングシステムのカーネルを作成することである。カーネルと
は、システムのすべてのリソースの管理を行い、プロセスでシステムコールを使用してリソース
を使用できるようにする低レベルのプログラムである。
MkLinux ではカーネルのこの 2 つの機能は分離されている。メモリの使用やプロセッサ時間と
いった低レベルのシステムリソース、デバイス、プロセス間通信の管理は Mach マイクロカーネ
ルによって行われる。
高レベルな機能( ファイルシステム、ネットワーキングなど)はサーバーによって実現される。
以下に示すサーバーのバイナリファイルは、通常/mach_servers というディレクトリに置かれる。
サーバー名
説明
default_pager
仮想メモリのスワップマネージャ
mach_init
vmlinux によって、MkLinux の最初のプロセス
( /etc/init 、PID 1 )
を開始するために使用
される
mach_perf
Mach マイクロカーネルのテスト
( 他のタスクとは独立して行われる)
用のパフォーマンス
テストプログラム
vmlinux
MkLinux の
「シングルサーバー」
最初の 3 つのプログラムを変更する必要はほとんどない。この 3 つのプログラムの構築が必要
な場合には、
「 7.2 マイクロカーネルの構築」の後半部分を参照してほしい。
カーネル関連の変更が必要な場合には、MkLinux のサーバーである vmlinux を変更すればよ
いケースがほとんどである。デバイスドライバを作成したり、変更する場合には、Mach マイク
ロカーネルの変更も必要になるのが普通である。
129
第7章 システムの構築
以下で説明する構築の手順は、時間の経過とともに変更される可能性が大きい。したがって、以下で説明す
る手順を実行する前に、ディストリビューションの最上位階層にある README ファイルとカーネルのソー
スファイルに添付の README ファイルを読み、さらに、MkLinux の Web サイト( www.mklinux.org )を
参照し、最新の情報を入手すること。
7.1 準備
構築の前には、以下の手順にしたがって準備を行う必要がある。準備は一度だけ行えばよいが、
正確に行うことが重要である。
●
root になる
以後の手順では root の権限が必要になるので、次のように入力し、root になる必要がある。
ほとんどの UNIX 派生システムと同様、root アカウントで操作ミスを行うと取り返しのつか
ない結果になる場合がほとんどであるため、十分気をつけること。
$ su Password:
#
●
入力した文字は表示されない
ソースコードの入手
以降の手順では、/usr/src というディレクトリで構築を行うと仮定して説明を行う。別のディ
レクトリで構築を行う場合には、適宜変更を加えること( ディレクトリ名や検索パスの変更
など)
。
MkLinux のサーバーと Mach マイクロカーネルのソースアーカイブ、Mach のインクルード
ファイルとライブラリ、Mach の構築ツールを入手し、展開する。
#
#
#
#
>
>
●
mount /mnt/cdrom
cd /usr/src
S=/mnt/cdrom/mklinux_source
for i in $$/*.tgz; do
tar xzf $i
done
ML リンクの作成
新しいソースコードを入手するたびにセットアップスクリプトを書き換えなくてもすむよう
に、また、入力( とそれにともなう誤り)を減らすために、ソースコードを格納したディレ
クトリへのリンクを作成することをお勧めする。VER には、適切なバージョン文字列を指定
する。
130
MkLinux Chapter 9
第9章
Machの概要
●
はじめに
●
アーキテクチャモデル
本章では、1993 年 6 月に発表された OSF の論文、OSF Mach Approved Kernel Principles
を転載する。本書に付属の「 PTF リファレンスディスク」にはこの文書がオンライン形式で収め
られている。また、Mach 関連の他の文書も収められている。
OSF Mach Approved Kernel Principles( OSF による Mach カーネルとその原理)
Keith Loepere( OSF 、カーネギーメロン大学)著
9.1 はじめに
この論文では、Mach 3 カーネルのユーザーの目に見えるアーキテクチャについて説明する。な
お、次の論文で説明されている Mach の基本概念を読者が理解しているものとして説明を行う。
Mach:A New Kernel Foundation for UNIX Development( Mike Accetta 、Robert Baron 、
William Blocky 、David Glob 、Richard Rushed 、Avarice Tevanian 、Michael Young 著、
Summer 1986 USENIX Conference( 開催地、ジョージア州アトランタ)の会報に掲載)
Mach のユーザー空間サーバーによって提供されるオペレーティングシステムの機能の概念に
ついては、次の文書に説明がある。
UNIX as an Application Program
( David Golub 、Randall Dean 、Alessandro Forin 、Richard
Rashid 著、Summer 1990 USENIX Conference( 開催地、カリフォルニア州アナハイム)の会
報に掲載)
オペレーティングシステムの新しい基盤として開発された Mach は、拡張性の高いメモリ管理、
複数の制御ポイント( スレッド)、通信機能( IPC )を処理する広範囲にわたるプロセス( タスク)
を実現する。Mach は以下のような目標の下に開発されている。
●
オペレーティングシステムとユーザーアプリケーションの両方における並列処理の活用
●
柔軟なメモリの共用を使用した、広大な散在するアドレス空間のサポート
●
ネットワークリソースへのトランスペアレントなアクセス
163
第9章 Mach の概要
●
既存のソフトウェア環境( BSD )との互換性
●
高い移植性
バージョン 2.5 以前の Mach は、UNIX と組み合わせることによって完全な操作環境を実現し
てきた。しかし、バージョン 3 の Mach は純粋なカーネルであり、オペレーティングシステムの
機能は組み込まれていない。したがって、操作環境はユーザー空間サーバーによって提供される。
現在までに、BSD 、SVR4 、Sprite 、OSF/1 、DOS 用のユーザー空間サーバーが試作されている。
さまざまな操作環境の基盤となるテクノロジーである Mach は、以下の理念に賛同して開発さ
れた。
●
シンプルで拡張性の高い通信カーネル
●
オブジェクトが参照する通信チャネルを備えたオブジェクトベース
●
同期、非同期のプロセス間通信を使用するクライアント/サーバープログラミングモデル
●
オペレーティングシステムの伝統的な機能( ファイルシステム、ネットワークアクセスなど)
を実行するユーザーモードタスク
Mach の基本的なアイデアとは、シンプルで拡張性の高い通信カーネルの実現である。一方、
カーネルの機能を必要最小限に絞り込み、最終的には、カーネルを介して通信を行うユーザーモー
ドタスクによってすべての処理が行えるようにすることが Mach プロジェクトの目標の 1 つであ
る。もちろんこれは極端な表現であり、カーネルでは以下をはじめとする、タスク間通信以外の
処理もサポートする。
●
制御ポイント( スレッド)の管理
●
リソースの割り当て( タスク)
●
タスクのアドレス空間のサポート
●
物理的なリソース( 物理メモリ、プロセッサ、デバイスチャネル、クロック)の管理
とはいえ、Mach の目標はやはり、カーネルから機能を外部に追い出すことである。したがっ
て、リソースの使用に関するポリシーはユーザーモードタスクによって実現し、カーネルはその
ようなポリシーを実行するためのメカニズムのみを提供する。
9.1.1 Machカーネルの基本概念
Mach の目標はカーネルが実現する概念の数を最小限に抑えることであるが、概念に関連する
意味の数を最小限に抑えようとしているわけではない。したがって、それぞれの概念には関連す
る意味が豊富に存在する。また、それぞれの概念は他の概念と複雑に影響しあっている。この事
実によって、基本的なアイデアがわかりにくくなるかもしれないが、Mach カーネルでは以下の
基本的な概念を実現する。
164
MkLinux Chapter 10
第10章
MkLinuxの概要
●
概要
●
はじめに
●
OSF MK( OSF Microkernel )
●
Mach の Power Macintosh への移植
●
Linux サーバーのアーキテクチャ
●
Power Macintosh で動作する Linux サーバー
●
パフォーマンス
●
現状と将来の作業
●
関連作業
●
まとめ
本章では、FSF( Free Software Foundation )後援の Conference on Freely Redistributable
Software( 自由に再配布できるソフトウェアに関するカンファレンス、1996 年 2 月、マサチュー
セッツ州 Cambridge で開催)で発表された論文を転載する。もはや古い情報となってしまってい
る部分もあるが、歴史に沿った説明は興味深く、基本的な移植の方法に関する説明は正確である。
Linux on the OSF Mach 3 Microkernel( OSF Mach 3 マイクロカーネルで動作する Linux )
François Barbou des Places 、Nick Stephen( 以上、OSF Research Institute, Grenoble )、
Franklin D. Reynolds( OSF Research Institute, Cambridge )著
10.1 概要
Mach 2.5 を OSF/1 オペレーティングシステムの基礎として選択して以来、OSF では、拡張性
が高く、強化が可能で、特定の OS に依存しない抽象化が可能な Mach 3.0 マイクロカーネルを
ベースとした OS の開発を行うことにした。OSF RI( Research Institute )は CMU Mach 3.0 マ
イクロカーネルを著しく改善、強化し、現在でも無料で入手できる OSF MK というマイクロカー
ネルを作り上げた。しかし、OSF/1 の最新バージョンは OSF MK をベースとしているが、使用
するにはライセンスを購入する必要がある。そこで我々は、無料で使用できる、OSF MK 上で動
作する UNIX ライクなサーバーを開発し、OSF RI のメンバーや研究コミュニティに対して、マ
イクロカーネルの無料開発環境を提供することにした。
この論文では、まず、OSF RI によって OSF MK に加えられた機能とパフォーマンスの改善
について説明する。次に、Linux サーバーのアーキテクチャについて、Linux のコードとマイク
181
第 10 章 MkLinux の概要
ロカーネルの対話が必要とされる領域に重点を置いて説明する。また、Intel x86 プラットフォー
ムにおける Linux サーバーのパフォーマンスと、OSF MK と Linux サーバーの Apple Power
Macintosh への移植についても説明する。
OSF MK と Linux サーバーは、Intel x86 用と Apple Power Macintosh 用の両方が、OSF
Research Institute からまもなく無料で提供される予定である。
10.2 はじめに
1989 年、OSF は、Mach 2.5 カーネル [Ace86a] を OSF/1 オペレーティングシステムの基礎と
して選択した。Mach は近代的な、メッセージのやり取りを行える、オペレーティングシステムの
マイクロカーネルである。Mach はスケーラブルなカーネルであり、デスクトップワークステー
ションからマルチプロセッシングスーパーコンピュータまで、幅広いシステムに対応できる。Mach
はマイクロカーネルとして、通常のオペレーティングシステムで見られる機能の一部を提供する。
ファイルシステム、ソケットなどのネットワークプロトコルサービス、割り当てサービスなどの
管理ツール、セキュリティポリシーなどは提供しない。その代わり、Mach はオペレーティング
システムサーバーの構築を可能にする、OS を選ばない、強力な抽象概念のコアの集まりを提供す
る。これらの抽象概念(タスク、スレッド、メモリオブジェクト、メッセージ、ポート)によって、
仮想メモリ( Virtual Memory: VM )、スケジューリング、IPC( プロセス間通信)の管理と操作の
メカニズムが実現される。
Mach マイクロカーネルでは、SMP のサポート、ネットワークトランスペアレントな IPC 、ア
プリケーション固有のページングポリシーのサポートなど、すでに用意されている先進の機能に
加えて、マイクロカーネルのアーキテクチャの将来性が非常に魅力的である。OSF の顧客はさま
ざまなオペレーティングシステムに関心を持っているため、我々は、特定のオペレーティングシ
ステムに過度に依存せずにオペレーティングシステムの研究を行う方法を見つける必要があった。
特定のオペレーティングシステムに依存すると、OS に依存しない機能から離れてしまうからだ。
当時一般的であったモノリシックなシステムよりもマイクロカーネルをベースとするアーキテク
チャのほうが移植性が高く、柔軟性の高いモジュール構成を実現できることを証明するのが我々
の希望であった。
現在、OSF は OSF/1 1.3 と OSF/1 AD という 2 つのバージョンの OSF/1 を提供している。ど
ちらもマイクロカーネル上で動作する。OSF/1 1.3 はワークステーションとミニコンピュータに
適したシステムである。OSF/1 1.3 は UNIX の他のバージョンに引けを取らないパフォーマンス
を備えている。また、OSF RI の顧客に提供されている OSF/1 AD は、大規模な並列処理スー
パーコンピュータとクラスタ用のシステムである [Roy93a]。
我々は、業界と研究機関における我々のシステム技術の使用を推進したいと考えている。OSF
MK は無料で使用できるカーネルであるが、OSF/1 サーバーを使用するには、SVR2 UNIX のラ
イセンスをはじめとした商用ライセンスを購入する必要がある。SVR2 のライセンスをすでに所
182
MkLinux Chapter 12
第12章
コントロールとデバイス
●
CD-ROM ドライブ
●
フロッピーディスクドライブ
●
ハードディスクドライブ
●
割り込みボタン
●
キーボード
●
モニタ
●
マウス
●
電源スイッチ
●
電源ランプ
●
リセットボタン
Power Macintosh システムは、PC 互換機とは異なり、多くの標準的なコントロールとデバイ
スを最初から搭載している。本書の執筆時には、MkLinux はこれらすべてをサポートしてはいな
いが、比較的早い時期にサポートされるだろう*1 。
本章ではこれらのコントロールとデバイスについて、技術的な特性を中心に説明する。搭載さ
れるコントロールとデバイスは機種によって異なるが、本章で説明するコントロールとデバイス
は、ほとんどの Power Macintosh に搭載されている。
お持ちのマシンにどのデバイスとコントロールが搭載されているかについては、マシンに付属のユーザーズ
ガイド( または、それに相当するドキュメント)を参照してほしい。
12.1 CD-ROMドライブ
Apple の内蔵 CD-ROM ドライブは、CD-ROM とオーディオ CD に対応している。ドライブ
の制御機能およびステータス機能へのアクセスは、SCSI バスを介して行われる。デジタルデータ
は SCSI バスを介して転送され、オーディオ信号は Power Macintosh システムのオーディオ入力
サブシステムを介して転送される。
*1 【編集部注】現状については MkLinux.org を参照。
215
第 12 章 コントロールとデバイス
一部の CD-ROM ドライブ( Apple CD300 など)は、SCSI バスを介してオーディオデータを送信する
ことができる。この機能は、オーディオを再生する方法としては有効ではないが、個人目的などでオーディオ
CD のコピーを作成したり、編集を行う目的には非常に便利である( 関連する著作権を遵守すること)。
CD-ROM ドライブを使うには、ドライブ前面の右側にあるイジェクトボタンを押す。この操
作で OS に対して CD-ROM ドライブを開くよう要求する信号が送信される。要求を受け取った
OS は、ドライブに対して CD-ROM トレイを開くよう要求を送信する。すると、CD-ROM トレ
イが開き、CD-ROM ディスクを挿入できる状態となる。
CD-ROM ドライブのトレイには、CD-ROM の印刷面を上にしてディスクを置く。ディスクが
CD-ROM ドライブのトレイにきちんと収まっていることを確認すること。CD-ROM ディスクが
トレイに収まっていないと、CD-ROM トレイが収納される際に CD-ROM ディスクが破損する
ことがある。
ここで CD-ROM ドライブのイジェクトボタンを押し、システムに対して CD-ROM トレイを
収納するよう要求する。CD-ROM トレイを軽く本体側へ押し込む操作も、CD-ROM トレイを収
納する要求として解釈される。トレイを強く押し込み過ぎるとドライブの駆動装置が破損するお
それがあるので注意すること。
12.1.1 CD-ROMのイジェクト
内蔵 CD-ROM ドライブにはイジェクトボタンが用意されている。このボタンは主に、ディス
クが挿入されていない空のトレイを開く場合に使用する。ボタンを押してもドライブが反応しな
い場合、次の 2 つの原因が考えられる。
●
OS がイジェクトボタンを押す操作に応答していない
Mac OS では、CD-ROM ディスクがドライブに挿入されている場合には、これが通常の動作
である。CD-ROM をイジェクトするには、CD-ROM アイコンを「ゴミ箱」へドラッグする。
MkLinux では、ディスクをマウントしている場合には、ディスクをアンマウントしないと
CD-ROM ドライブを開くことはできない。ディスクをアンマウントしたら、eject コマンド
を使用して CD-ROM ドライブを開くことができる。eject 、mount 、umount コマンドの詳
細については、オンラインマニュアル( man コマンドを使用して表示する)を参照のこと。
●
ディスクドライブが OS に応答していない
正しい操作を行っているにも関わらずディスクがイジェクトされない場合には、システムが誤
動作している可能性がある。このような場合には、荒療治ではあるが、システムを再起動するこ
とによって問題を解決することができる。
( Mac OS 、MkLinux に関わらず)システムを再起動してもトレイを開くことができない場合に
は、資格のある技術者にマシンの検査を依頼したほうがよい。
216
MkLinux Chapter 13
第13章
アナログ I/O
●
オーディオ
●
テレビ
●
ビデオ
Power Macintosh では全機種でオーディオ入出力、ビデオ出力( モニタ表示用など)のポート
を搭載している。Performa などの一部モデルでは、テレビ入出力などのアナログ装置が追加さ
れている。
これらのポートが MkLinux で利用できるようになるのはまだ先となる。以下に示すような問
題が解決されなければならない。
●
リアルタイム処理のサポート
オーディオ入力などを行うリアルタイムアプリケーション
では、一定の CPU 処理時間が保証されなければならず、CPU 処理時間を予測して制御する
必要がある。Mac OS ではアプリケーションがマシン全体の制御権を得ることができるので、
この条件は問題とならない。
一方、MkLinux では常時変化するプロセスの優先順位に基づいて CPU の割り当て時間を決
定するプリエンプティブマルチタスクを採用している。このためシステム全体の動作は Mac
OS に比べると MkLinux のほうが優れているが、MkLinux はリアルタイムアプリケーショ
ンに対応していない。しかし、MkLinux がベースとしている Mach マイクロカーネルの改
良によって、この問題は間もなく解決されるものと思われる。
●
ドライバ
オーディオおよびビデオハードウェア用のドライバソフトウェアはまだない。
ドライバは次第に登場するものと思われるが、Power Macintosh の主要プラットフォームへ
の移植作業が完了するまでは、Apple の MkLinux の開発チームによる作業は期待できない。
●
アプリケーション
Mac OS にはオーディオやビデオをサポートするアプリケーションが
多数あるが、これらのアプリケーションは MkLinux 上では動作しない。したがって、オー
ディオ/ビジュアル関連ソフトウェアに関してもっともよい情報源となるのは Linux( さら
に広範にいえば UNIX )コミュニティだと推測できる。
しかし、動作しているハードウェアの違いから、これらのソフトウェアを移植するのは容易
なことではない。たとえば、サンプリングレートやデータ形式は、Macintosh と PC とでは
異なっている。ただし、このような問題も解決が不可能というわけではない。MkLinux で利
用したいオーディオ機能やビデオ機能があるようであれば、ぜひ開発に参加してほしい。
225
第 13 章 アナログ I/O
現在はまだ状況が明確になっていないため、MkLinux に関して開発者およびユーザーがここに
あげたアナログチャネル関連の開発に協力する方法はここでは記述しない。一部の概要および参
照文献を以下に示すので、参考にしてほしい。
13.0.1 オーディオ関連用語に関する注意
本書を含め、各種ドキュメントにはオーディオのサンプリングレートを、kHz( キロヘルツ)で
指定することが多い(技術的には正確ではないが)
。kHz で示された場合の 1 秒あたりのサンプル
数は、便宜的に「 1000×表記された kHz 数」と覚えておくとよい。
エイリアシング(スプリアス周波数の発生)を避けるために、各オーディオサイクルは少なくと
も 2 回サンプリングされなければならない。したがって、44.1kHz といった数字を見た場合には、
その数字の示す内容を考慮する必要がある。これがサンプリングレートとして示されている場合
には、これに相当するオーディオ帯域幅は、22.05kHz 以上になることはない。
13.1 オーディオ
Power Macintosh では、内蔵マイクロホンを搭載しているのは一部の機種のみだが、全機種で
オーディオ入力を備えており、そのほとんどは PlainTalk マイクロホンポートとして搭載されて
いる。PowerBook ではライン入力ポート、Workgroup Server では Omni ポートとして搭載さ
れている。7500 および 8500 などの一部の Power Macintosh モデルでは、RCA ピンプラグ形式
の音声入力コネクタを備えている。また、
「 13.3 ビデオ」で解説する HDI-45 コネクタではさま
ざまなオーディオ信号を扱える。
PlainTalk ポートは、標準規格の 1/8 インチとは異なる、3/4 インチという独自仕様のステレオ
ミニプラグを採用している。コンピュータ側は、PlainTalk マイクロホンの内部アンプで利用す
る+5V の電圧をステレオミニプラグ先端に供給している。リングはライン入力レベルのオーディ
オ用、スリーブはアース用に、それぞれ利用されている。標準ミニプラグ( 1/2 インチ)はポート
と互換で、ライン入力レベル用信号を供給する。
ライン入力ポートは、一般のオーディオアンプなどで使われているライン入力レベル用信号を
利用するためのものである。Omni ポートは Apple の Omni(無指向性)マイクロホンを利用する
ためのポートである。Omni マイクロホンはマイクレベル( マイクロホンレベル)の信号を生成
する。
受信した信号がコンピュータで利用可能な状態になると、この信号はサンプリングおよびデジ
タイズされて OS で利用できるようになる。現行の Power Macintosh システムでは入力したサ
ウンドを CD クオリティ、すなわち 2 チャンネル(ステレオ)、1 サンプルあたり 16 ビットの解像
度、1 秒あたり 22.05kHz または 44.1kHz のサンプリングレートでデジタル化することができる。
一部の初期の Macintosh モデルでは、1 チャンネル( モノラル)で、1 サンプルあたり 8 ビットの
解像度でのデジタイズとなっている。
226
MkLinux Chapter 14
第14章
デジタル I/O
●
バスの種類
●
ADB
●
Ethernet
●
IDE
●
LocalTalk
●
NuBus
●
PCI バス
●
PCMCIA
●
SCSI バス
●
シリアルポート
Power Macintosh にはさまざまなデジタルインターフェイス( デジタル信号の送受信に利用さ
れる電気的な接続)が搭載されている。それぞれのインターフェイスでは、配線、信号レベル、タ
イミングプロトコルなどが規格として定められている。規格を定めることによって、各メーカー
が Power Macintosh に接続できる機器を開発できる。
各 Power Macintosh のデジタルインターフェイスの組み合わせは機種によって異なる。Power
Macintosh では、以下に示すデジタルインターフェイスのいずれかを搭載している。
●
ADB( Apple Desktop Bus )
●
Ethernet
●
IDE( Integrated Drive Electronics )
●
NuBus
●
PCI( Peripheral Component Interconnect )バス
●
PCMCIA( Personal Computer Memory Card International Association )
●
SCSI( Small Computer System Interface )バス
●
シリアルポート( RS-422 )
14.1 バスの種類
Power Macintosh のデジタルインターフェイスの解説を始める前に、バスの種類に関する基本
的な概念と定義を解説する。デジタルインターフェイスの多くは 1 つのデバイスを接続するため
に使われているが、本章でとりあげるインターフェイスには複数のデバイスと通信を行えるもの
233
第 14 章 デジタル I/O
もある。
複数のデバイスを扱えると、使い勝手が大幅に向上する。複数のデバイスを扱うことができれ
ば、インターフェイスの数を減らすことができる。さらに、一般にバスは(「デバイス特有」のプ
ロトコルではなく)抽象プロトコルを利用する。これにより、バスは同時に多種類のデバイスを
扱える。
ここでは、バスとは情報を多方向に転送するデジタルインターフェイスと定義する。バスに対
して、2 点間インターフェイス( コンピュータをモデムに接続するシリアル回線接続など)はバス
ではない。この定義は広義なものであり、ワイヤの数、速度、アービトレーションの方法などは
定義していない。一方で、ここでは共通の参照フレームが定義されていない。
バスには 1 本以上のライン( ワイヤ)が接続され、制御信号とデータが送信される。1 本のデー
タラインしか備わっていない( または各ラインにつき片方向の転送しかできない)バスは、1 本の
ワイヤでデータが直列( シリアル)に転送されるため、シリアルバスと呼ぶ。ADB はシリアルバ
スとして分類される。
複数のデータラインを利用するバスは、一定量のデータ( 1 バイトデータにおける数ビット)が、
並行( パラレル)して複数のワイヤを用いて転送されるため、パラレルバスと呼ぶ。SCSI バス、
および他の内部( システム)バスはすべてパラレルバスとして分類される。
ほとんどのバスでは、デバイスどうしを接続し、末端に到達するまですべてのラインが接続され
ている。一般にデイジーチェーン接続と呼ばれるものだが、詳細は以下を参照すること。10BASE-2
などの同軸ケーブルを利用する Ethernet システムは、この原理で動作する。
場合によっては中心にハブを設置して、バスと同様の機能を持たせることがある。ハブは一連
の 2 点間インターフェイスを協調させるデバイスであり、この接続方法をスター型接続という。
10BASE-T などのツイストペア線を利用する Ethernet システムは、この原理で動作する。
バスに備わっている個々のラインは、共有またはデイジーチェーン接続できる。ラインが共有さ
れる場合は、すべてのデバイスが共有されるラインに常時接続されている。一方、デイジーチェー
ン接続のラインの場合は、各デバイスが、隣のデバイスを越えて次のデバイスへ接続できなけれ
ばならない。
ラインはほとんどが共有されている。デイジーチェーン接続は主にバスのアービトレーション
や信号ラインなどに用いられる。
「デイジーチェーン」という用語は、本来はデイジー(ヒナギク)を茎の部分で結んで長い列にする手法を指
している。相互接続されるデバイスで「デイジーチェーン」という場合には、通常は 1 本のケーブルで複数の
デバイスが順に接続されている状態( SCSI または同軸ケーブルを用いた Ethernet など)を指している。だ
が、バスおよびデバイスインターフェイスカードの場合は、信号が各デバイス上の回路を通過する必要があ
る、という特殊な意味を加えるものとなる。
1Mbps 以上の速度で動作するバスは、ターミネーションを行う必要がある。ターミネートされ
ていない( またはターミネーションが不適切な)ラインでは、信号が末端に到達した際に反射し、
234
MkLinux Chapter 15
第15章
PowerPC CPU
●
はじめに
●
アーキテクチャ
●
パフォーマンス
●
ビジネス的な問題
●
まとめ
本章では、Apple Computer が 1993 年に発表したレポートを転載している。一部の情報は古
いものとなっているが、ほとんどは現在でも通用する。少なくとも、どの予測が現在も通用して
いるかに注目してもよいだろう。
以下の文章を含め、これまでに RISC を論じた文章では、ほとんどが Seymour Cray による草分け的な研
究についてふれていない。氏が 30 年前に手がけた CDC 6600 設計には、今日の RISC CPU に含まれてい
る多くの機能が搭載されていた。
Comparing PowerPC with Pentium:A Competitive Analysis( PowerPC と Pentium との
比較
競争面からの分析)
Apple Computer, Inc. 著( L0608LL/A、1993 年 12 月)
15.1 はじめに
RISC テクノロジーを用いた新プロセッサである PowerPC の登場によって、CISC ベースであ
る 80x86 アーキテクチャ( もっとも新しい実装は Pentium )と PowerPC とを比較する方法が問
題となっている。本レポートの目的は、この 2 つのアーキテクチャを比較し、両者の利点と欠点
を明確にし、このような要件によってこれらのプロセッサを用いて設計されたシステムが受ける
影響を検討することである。
15.2 アーキテクチャ
マイクロプロセッサは、アーキテクチャの設計哲学と性能を形にしたものである。アーキテク
チャは、命令レジスタの数やサイズ、命令およびデータのメモリとの送受信方法、標準データタ
イプとして浮動小数点数を使うか否か、などといった設計上の決定事項が反映されたものとなる。
アーキテクチャはマイクロプロセッサの性能を決定する最大の要因であり、これらの性能が実行
257
第 15 章 PowerPC CPU
される速度もアーキテクチャで決定される。CISC と RISC は 2 つの異なるマイクロプロセッサ
アーキテクチャであり、性能もそれぞれ異なっている。
15.2.1 CISCとRISCのマイクロプロセッサアーキテクチャ
アーキテクチャの歴史は、Pentium および PowerPC の長所、欠点を論じるうえでの基礎と
なる。
15.2.2 CISCの定義
1
CISC とは Complex Instruction Set Computing*(複合命令セット計算)
の略である。今日の
パソコンはすべて CISC マイクロプロセッサを用いて作られている。なぜ CISC アーキテクチャ
が 1970 年代に突出してきたかを知るには、当時の市場状況を検証する必要がある。現在使われ
ている CISC アーキテクチャは、1960∼1970 年代の、RAM の容量が制限されて価格も高かった
ころに開発されたものである。当時のプロセッサ設計においては、プログラムのメモリ要件を少
なくすることを前提にさまざまな決定がなされている。プログラムのメモリ要件を減らす方法の
一つとして、プロセッサの構造を複雑にして、ソフトウェアを単純なものにするという方法があ
る。プロセッサの構造を複雑にすると、プロセッサの性能にはマイナスの影響を与えることにな
るが、このトレードオフは当時は十分に妥当なものだった。データをロードしたり、プログラム
を実行するために必要なメモリが十分にない時点では、プロセッサの動作速度は問題ではなかっ
たのである。
RAM の価格が低下し、広く入手できるようになった 1980∼1990 年代前半、プロセッサ設計者
はあらためて性能と複雑さとのトレードオフを再検討した。1970 年代に実用的だった、16∼32KB
程度のメモリしか搭載しないコンピュータで使われていたアーキテクチャは、1990 年代において
は必ずしも最適なものではなかった。現在最適なアーキテクチャは RISC である。ほとんどのパ
ソコンに標準で搭載されている 4∼8M バイトのメモリを活用できるアーキテクチャである。
15.2.3 RISCの定義
RISC とは Reduced Instruction Set Computing(縮小命令セット計算)の略である。RISC アー
キテクチャの目標は、可能な限り命令を高速に実行できるようにすることである。この目標を実現
する方法の一つとして、プロセッサが実行する命令の種類を単純化することがあげられる。RISC
プロセッサでは、命令がより短く、より単純に「縮小」されるほど、CISC プロセッサの長く複雑
な命令をより高速に実行できる。RISC アーキテクチャでは、同時に複数の命令の実行を可能にす
るパイプラインとスーパースカラ実行という技術を利用して、高いパフォーマンスを実現する。
設計においては、より多くのメモリと、より進んだコンパイラ技術が要求される。
1980 年代半ばには、メモリのコストが重要視されないような高性能ワークステーションにおい
*1 【編集部注】CISC 、RISC ともに“ C ”は Computer の略とする場合が多い。
258
MkLinux Chapter 16
第16章
Power Macintoshシステム
●
Power Macintosh 製品ファミリー
●
システムによる CPU およびバスの利用
●
システムによるチップの利用
●
チップの説明
「 PTF リファレンスディスク」には一部のシステムの詳細情報が記述されている。ここにある
説明は各システムの製品ライン開発の初期段階に記述されたものであるため、クロック周波数が
高速化されているなど、新しいシステムにはこの説明が正確ではない場合がある。
Power Macintosh システムは、現行の MkLinux バージョンではサポートされていない場合がある。オン
ラインドキュメント、および MkLinux の Web サイト( www.mklinux.org )を参照して最新の情報を入手す
ること。
16.1 Power Macintosh製品ファミリー
Apple では、パッケージングと用途に応じて、Power Macintosh システムを数種類のファミ
リーに分類している。
●
Power Macintosh
会社や学術機関などの組織で使われることを前提としたシステムであ
る。いくつかのバススロット( PCI または NuBus )を備えており、キーボードとマウスが付
属する。一部の Power Macintosh システムではモニタを内蔵した機種もある。これ以外に
は、外部ディスクドライブやアプリケーションソフトはオプションとなる。
●
WorkGroup Server
Power Macintosh システムをベースにした構成である。テープドラ
イブを搭載していたり、ディスクや RAM の構成が変更されている。ネットワーク向けのソ
フトウェアが同梱されている場合もある。
●
Network Server
通常の意味では Macintosh ではない。高い可用性、メンテナンス性を
考慮した、非常に冗長なシステムである。通常は AIX( IBM 版の UNIX )で動作し、いくつ
かのネットワーク専用ソフトウェアを使用する。
●
Performa
一般ユーザー向けのパッケージ( 設計の部分もある)である。多数のバンドル
ソフトウェアが用意されているほか、テレビやビデオ I/O などといった AV 機能がサポート
されている場合も多い。
269
第 16 章 Power Macintosh システム
PowerBook
●
ラップトップ型の Power Macintosh である。液晶ディスプレイを搭載して
おり、
( マウスの代わりに使用する)タッチパッドが用意されている。
それぞれのシステムで入力機器のニーズが異なるため、サポートするチップおよびサブシステム
の組み合わせはシステムごとに独自のものとなっている。さらに、Apple では数種類の PowerPC
プロセッサを採用している。このため、利用するシステムソフトウェアは十数種類に及んでいる。
Motorola 680x0 ベースの Macintosh システムを Power Macintosh システムとして利用するためのプロ
セッサアップグレードが数多く販売されている。Apple ではこれらのシステムで MkLinux をサポートする予
定は今のところ立てていないので、重要度に関わらずここでは説明を省略する。Apple や、熱心な MkLinux
ユーザーが真剣に移植作業を開始するのであれば、ここで詳細を説明することとなるだろう。MkLinux 以外の
Mac ベースの UNIX( および UNIX クローン)については、MkLinux の Web サイト( www.mklinux.org )
からのリンクを参照すること。
16.2 システムによるCPUおよびバスの利用
以下に示す表は、ほとんどの Power Macintosh について、搭載している CPU とシステムバス
をまとめたものである。この情報から、あるバージョンの MkLinux がシステムに対応している
こと( あるいは未対応であること)を割り出すことができる。
Performa モデル
CPU
バス
5200CD 、5210CD 、5215CD 、5220CD
603
LC
5260CD 、5260/120 、5270CD 、5280 、5300CD 、5320CD
603e
LC
5400CD 、5400/160 、5400/180 、5410CD 、5420CD 、5430 、5440
603e
PCI
6110CD 、6112CD 、6115CD 、6116CD 、6117CD 、6118CD
601
NuBus/PDS
6200CD 、6205CD 、6210CD 、6214CD 、6216CD 、6218CD 、6220CD 、
6230CD
603
LC
6260CD 、6290CD 、6300CD 、6310CD 、6320CD
603e
LC
6360 、6400/180 、6400/200 、6410 、6420
603e
PCI
Power Macintosh モデル
CPU
バス
5200/75LC
603
LC
5260/100 、5260/120 、5300/100LC
603e
LC
5400/120 、5400/180
603e
PCI
6100/60
( AV )、6100/66
( AV 、D.C. )
601
NuBus/PDS
6200/75 、6300/120
603e
LC
6400/200
603e
PCI
7100/66
( AV )、7100/80
( AV )
601
NuBus/PDS
7200/75 、7200/90 、7200/120
( P.C. )、7215/90 、7500/100
601
PCI
7600/120 、7600/132
604
PCI
270
MkLinux Chapter 17
第17章
PowerPCプラットフォーム
●
概要
●
PowerPC プラットフォーム規格の概要
以下に転載した白書( www.chrp.apple.com*1 より入手可能)では、PowerPC を推進する主要
各メーカー( Apple 、IBM 、Motorola )の目標と基本的なアプローチが説明されている。
PowerPC Platform:A System Architecture( PowerPC プラットフォーム:システムアーキ
テクチャ)
Steve Bunch( Motorola, Inc. )、Steve MacKenzie( Apple Computer )、Dave Tjon( IBM
Corporation )著
17.1 概要
PowerPC プラットフォーム( 以前は Common Hardware Reference Platform と呼ばれてい
た)規格では、Macintosh 、PC 、UNIX をベースとしたオペレーティングシステム( OS )を、特
定のプラットフォームに合わせて改変することなく動作できるコンピュータのファミリーを定義
する。この規格により、PPC マイクロプロセッサを用いてさまざまな OS を動作できるシステム
を、効果的な価格を設定し、価値を高める機能を追加できるようになる一方で、開発が容易に行
えるようになる。本白書では、この規格に関する非公式な概要を述べる。
17.1.1 はじめに
PowerPC プラットフォームアーキテクチャの第一目標は、AIX 、Mac OS 、NetWare 、OS/2 、
Solaris 、Windows NT といった複数の OS について、OS メーカーがプラットフォームに合わせ
て改変することなく動作できるプラットフォームを、ハードウェアプラットフォームベンダー各
社によって製造できるようにすることである。PowerPC プラットフォーム規格では、Macintosh
と PowerPC リファレンスプラットフォーム( [1] )を統合したアーキテクチャを定義する。OS 開
発者およびプラットフォーム設計者のいずれにも同一の規格を提供することで、度重なる移植や
統合を行わずに、ハードウェアとソフトウェアが計画的に協働するようになっている。
*1 【編集部注】アクセス不可。http://www.motorola.com/pub/SPS/PowerPC/library/tech_sum/からダウン
ロード可能。PPCPlatwp.pdf( または PPCPlatwp.ps )が該当のドキュメント。
289
第 17 章 PowerPC プラットフォーム
PowerPC プラットフォームアーキテクチャによって、複数の OS を動作させることのできる
PowerPC マイクロプロセッサベースのシステムを容易に設計できるようになる。この規格では、
アーキテクチャの一部で自由な部分を設けており、実装の差異は OS に対して一貫したインター
フェイスを提供するファームウェアで処理を行うか、新しいデバイスドライバによって処理を行
う。したがって、OS ベンダーの仕様を満たす新しいハードウェアを容易に設計できる。
PowerPC プラットフォームアーキテクチャでは、ハードウェアプラットフォームの選択に関係
なく、利用する OS を選択できるため、ユーザーにも利益がある。単一のプラットフォームで複数
の OS 環境を扱えるため、複数の OS 環境をサポートする団体においても、ハードウェアサポー
ト要件を最小化する。また、このアーキテクチャでは、基本的なシステム機能の設計の方向性を
提供しつつ、独自の価値を追加することを制限していないため、設計者にとっても利益がある。
17.1.2 設計者への建設的な方向付け
今日、デスクトップおよびローエンドのコンピュータプラットフォーム設計者は、困惑するほ
どの多機能性と複雑さを備えた多数のチップを選択し、組み合わせることを強要されている。こ
のガイドラインとはいったいなんだろうか? どのような制限があるのだろうか? IBM PC よ
り派生したデスクトップコンピューターにおいては、この条件とその答えは非常に簡単である。
つまり、ハードウェアで MS-DOS および Windows を動作させることができ、低価格を実現する
ことができたならば、望むもののほとんどを手に入れたことになる。この問題によって、パーソ
ナルコンピュータークラスのハードウェア設計は、専門家でもないかぎり、ほぼ見分けがつかな
いものとなった。なぜなら、どのシステムも、同様のコストで、同様の機能を実行するために各
パーツを利用するためである。このアプローチでは、プラットフォームベンダーにとってはシス
テムソフトウェアの開発コストはほとんどゼロとなる。
これまで、デスクトップ PC 以外の分野においては、MS-DOS/Windows ほど強力な強制力
となるものは存在していない。たとえば、UNIX を動作させるプラットフォームを開発するハー
ドウェア設計者は、高性能で、プログラムしやすいよう自由に設計できた。または、PC の分野と
はまったく異なるチップやインターフェイスを利用して設計することができた。このアプローチ
の影響は、ソフトウェア開発者の負担する、OS およびプラットフォーム依存ソフトウェアの開
発費が、特に PC と比べた場合に高額となることである。これは主に、ハードウェア特有のシス
テムソフトウェアの開発コストが高くつくためである。PowerPC プラットフォームアーキテク
チャを開発する第一目標は、本当の価値を追加できる分野における差別化を許容しつつ、システ
ム設計者に方向性を与えること、さらには PowerPC マイクロプロセッサ業界によって、これま
で PC 業界が所有してきたものよりも競争力のある、OS およびアプリケーションソフトウェアの
再利用が可能な本体を構築することにある。PowerPC マイクロプロセッサに基づいたプラット
フォームでは、将来、OS に改変の必要がなく動作する限りは、いかなるチップ、インターフェイ
ス、設計機能なども利用できるようにする意向である。ソフトウェア設計者の視点からこの目標
を実現するために、PowerPC プラットフォームではシステムソフトウェアが依存できるハード
290
MkLinux Appendix
Appendix
補足情報
●
MkLinux DR3 の対応状況
●
MkLinux の開発状況
●
日本語環境
●
カーネルの更新
●
基本コマンド
●
情報の入手先
●
参考文献
「ボーナスディスク」について
●
本書のもととなる MkLinux が出版されてから、MkLinux をめぐる状況が若干変わってきた。そ
こで、ここでは MkLinux DR3 以降の状況と、日本語環境などの情報を補足する。
A.1 MkLinux DR3の対応状況
A.1.1 動作する機種
MkLinux DR3 の動作する機種をあげる。詳しくは http://www.mklinux.org/getting_started/
machine.html を参照。
●
Nubus Power Macintosh x100
Power Macintosh 6100, 7100, 8100, 8115
Performa 61xx
●
PCI Power Macintosh( PPC 601 、PPC 603e 、PPC 604/604e )
Power Macintosh 4400, 5400, 5500, 6400, 6500, 7200, 7220, 7500, 7600, 8200
Power Macintosh 8500, 8515, 8600, 9500, 9515, 9600, 9500/180MP, 9600/200MP
Performa 54xx, 6360, 64xx
20th Anniversary Macintosh
●
G3 デスクトップ機
Power Macintosh G3 Desktop, G3 Minitower
●
PowerBook
PowerBook 1400, 2400, 3400, 5300
PowerBook G3, G3 Wallstreet
331
Appendix 補足情報
Workgroup Server
●
Workgroup Server 6150, 7250, 7350, 8150, 8550, 9150, 9650
PowerComputing
●
PowerBase 180, 200
PowerCenter 120, 132, 150
PowerCenterPro 180, 210, 240
PowerTowerPro 200, 225
PowerWave 120, 132, 150
Umax
●
Pulsar, C500, C600, J700, S900
Motorola
●
StarMax 3000, 4000, 5500
Radius
●
Radius 81/110
DayStar
●
Genesis MP-466+
A.1.2 問題のある機種
なお、以下の ATAPI CD-ROM を内蔵する機種にインストールする場合は設定を変更する必要
がある。詳しくは http://www.mklinux.org/getting_started/preparations/macosfiles.html を
参照。
Power Macintosh 4400
●
“ Tanzania ”ベースのクローン
●
●
PowerBook 3400
●
PowerBook G3
●
Power Macintosh G3
MkLinux DR3 は( Fast-Wide/Ultra-Wide SCSI 機器に接続する)PCI ベースの SCSI アダプタをサ
ポートしていない。Macintosh の内部または外部 SCSI コネクタに、別の SCSI ディスクを接続してインス
トールしてほしい。
なお、Power Macintosh 7300 は動作しない場合があり、PowerBook 2300c 、G3( Yosemite )
は未対応。iMac は開発中。
332
Fly UP