タイトルの通り、主にPC UNIXの機能についての比較をメモしていく予定です。その他に、SolarisやWindows NTの情報も混じっています。これは私(このページの作者)自身のための備忘録のようなものです。他のページに分散していたのを、引っ張ってきてまとめました。内容はまとまっておらず、雑然としています。
FreeBSDを用いたX端末
サーバに使うOS、デスクトップ環境のOS
1999年3月4日の時点で、主にウェブページで調べた範囲の結論です。間違いや勘違いに気づいた方はご指摘下さい。
この文書の執筆時点でのリリースは、それぞれFreeBSD 3.1-RELEASE、 NetBSD-1.3.3です。以下の情報は-currentの情報も調べて書いています。 OpenBSDはチェックしていません。できればLinuxの情報も入れたいので、どなたかLinuxに詳しい方、フォローしてくださいませんか。私自身も調べてはみますが、BSDを使っていると○×BSDの話はよく耳にするのに、Linuxの方面の話題に触れることは少ないようで、情報が入ってきません。
現在お勉強中の、気になる話題を挙げておきます。
Uniform Driver Interface (UDI)
デバイスドライバのインターフェイスの規格。UDI準拠のデバイスドライバのソースコードを書けば、それをまったく変更せずに、異なる機種、異なるOSで利用できるようになる、というもの。ただしもちろん、そのOSでUDIのサポートが必要になる。具体的には「UDI環境」なるものでデバイスドライバを包み込む必要がある。デバイスドライバはUDI環境が提供するインターフェイスのみを利用して、デバイスを操作する。だからソースコードが完全にポータブルになるというわけだ。
OSベンダーでは、SCO, Compaq, HP, IBM, Sunなどがこの規格の策定に関わっている。Linuxへの移植の計画もあるらしい。私の知る範囲では、BSD系でUDI をサポートするような動きは無いようだ。
SCSI CAMは、SCSIに特化しているが、UDIと近い目的で開発されたように見える。また、UDIは「既存の非UDIドライバとの共存」をその特性の一つに挙げている。しかしCAMとUDIの規格書ドラフトを斜め読みした印象では、CAMとUDIはお互いに競合するように思える。これらをうまく共存させる方法はあるのか、もしあるとすれば、どのような関係になるのか、興味深いところだ。UDIが謳っているところの「既存の非UDIドライバとの共存」とやらの実力はどんなものかな。
ちなみにIntelプロセッサを使ったUNIXサーバのための統一ドライバ仕様「Unix Driver Interface」なるものもある、という記事を見ることがあるが、これは間違いのようだ。そもそもUDIはプラットフォームおよびOSに対して中立であり、それが売りなのだから。IntelがUDIを推進しているのは、どうも本当らしいが、Project UDIのスポンサーにはIntelの名前はない。
UDIは規模の大きな規格なので、これを完全に実装するのは難しいだろうと思う。しかし完全な実装でなくとも、UDIのたとえばCore ServiceとCore Metalanguageの部分だけでも実装できれば、これをドキュメントがよく整備され、機能が統一されたサービスルーチンとして利用することができそうだ。 UDIを実装する効用として、まずドライバの移植性が向上する。また、ドライバを新たに書き起こす場合にも、サービスルーチンのドキュメントが整理されているので都合が良い。
これに加えて、UDIを実装するとデバイスドライバの最底辺の部分(UDI用語ではBasic Driver)での差が無くなるので、OSごとのデバイスドライバの実装の差は、UDI環境の実装の違いに帰着する。したがってOS同士の比較や切磋琢磨、そしてより良い実装への乗り換えがやりやすくなる。
何らかの適合検定を受けているかどうかは不明。
自分が使っていないので真剣に調べていないが、Linux-1.2.13はFIPS 151-2(POSIX.1(のスーパーセット?)の検定)に合格しているそうだ。
POSIX.1(C API)とPOSIX.2(Shells and Utilities)にだいたい適合しているだけで、少なくとも私にとっては、実質的には問題無い。会社で導入するOSとしては、何らかのPOSIX準拠証明が必要な場合もあるらしいけれど。
POSIXについて調べる過程で分かったのだが、AdaやFORTRANのためのPOSIX規格もあるんだね。それぞれIEEE Std 1003.5と1003.9。はじめて知った。さらに IEEE Std 1387.?というシリーズもあって、こちらはAdministrationに関する規格らしい。
この節はまだ作りはじめたところで、情報不足です。いくつかのリンクを別ページにまとめてあります。
同じ機能を提供してくれるなら、ソースコードの行数は「少ない方が安心」です。なぜならソースコードが短い方が、内容が吟味されており、保守しやすいことが期待されるからです。これは非常に重要なことです。ソフトウェアを開発・保守したことがある方なら、分かっていただけると思います。
MS Windows NT 5.0のコードはおよそ4千万行。その半分が新規のコード。コードの推移は、下の表を参照せよ。この表のデータは、月刊アスキー DOS/V Issue 99年2月号「もっと知りたいMicrosoft」より。なお、Windows NT 5.0は Windows 2000 Professionalという名称で出荷されることになったそうです。
バージョン | 100万行 |
---|---|
Windows NT 3.1 | 6 |
Windows NT 3.5 | 8 |
Windows NT 3.11 | 10 |
Windows NT 4.0 | 16 |
Windows NT 5.0(β1) | 27 |
Windows NT 5.0(β2) | 35 |
これを見ると、率直に言って「Windows 2000はきっとバグだらけだろうな」と予想されます。どうしてここまで増えるんだろう、そんなに追加する機能があるのかな? でも、たくさんのデバイスをサポートしようと努力していることは、評価したいと思います。…そのせいだけでコードがこんなに増えるわけはないけどね。
リリース | 部分 | ファイル数 | ソースの行 数 |
---|---|---|---|
2.2-stable | 全体 (src-all) | 15,541 | 5,065,872 |
2.2-stable | カーネル (src-sys) | 1,402 | 659,463 |
current | 全体 (src-all) | 19,337 | 6,452,897 |
current | カーネル (src-sys) | 2,447 | 1,084,049 |
src-allの範囲は、contribなども含むが、portsは含まない。find | xargs wc して結果をawkで計算し直した。
FreeBSDは、2.2→3.0の過程でシステムに大幅な改定が行われました。3.x系列には、現在は2.2との互換性を保つためのコード(LKM, a.outサポートなど)が入っているそうです。このためカーネルは太り気味です。将来のある時点で、互換性を切り捨て、すっきりすることが予定されていると聞いたような気がするのですが、調べきれませんでした。詳細不明。
なお、3.0はすでにcurrentとstableの枝に別れていますが、3.x-stableは現時点では2.2-stableほどは安定ではないと判断し、追いかけていません。また、リリースの番号付の方法論がちょっと変わりました。たとえば3.1の次のリリースは、セキュリティホールを塞ぐなどの緊急マイナーバージョンアップなら 3.1.1、そうでなければ3.2というリリース番号になります。そしてcurrentの枝は4.0-currentということになりました。(1999年2月16日現在)
補遺: 1999年2月16日、3.1-RELEASEが出ました。これはstable系列からのリリースで、ですから現在は引き続き3.1-stableとして保守されています。また、 2.2-stable系列の保守は終了しました。
Windows NT Serverは、少なくとも目先のコスト(カタログ上のコスト)はUNIX よりも安い、と主張する人が多い。UNIXが好きな人はLinuxやFreeBSDなどのフリーUNIXを例に挙げて反論するのが常です。でも、商用のUNIXシステムは高いのかな? Sunのワークステーションと有名どころのPCサーバを、定価で較べます。PentiumII 300MHzのPCで、メモリを64MBに統一します。ディスク容量はどちらも4.3GBです。
ほぼ同価格ですね。SunのワークステーションはOSが標準添付されます。IBMのサーバはOSの値段を含まないようだし、Compaqの方もOSを含む値段なのどうか、はっきり書いていない。また、IBMのサーバは(偉い!!)SCSIホストアダプタが標準で付いています。
Sun Ultra5は、実はサーバモデルではなく、平べったいピザボックス型(を厚くした形)のデスクトップ機です。不公平な比較かもしれませんが、サーバとしての性能はUNIXのほうがWindows NTよりも優れているので、大目に見てください。おおざっぱに言って、UNIXワークステーションの導入は、はWindows NT Server機の導入と比較し、決して高いとは言えないようです。
はいはい納得できないんですね。じゃぁサーバモデルで比較しましょう。 PentiumII 350MHz程度、主記憶128MB、ディスク9GBぐらいで行きましょう
Compaqのえらく安いマシンは、期間限定モデルです。構成が異なるので単純には比較できませんが、期間限定モデルを除き、主記憶を128MBにすれば、すべてほぼ同じ価格になるようです。 (あくまで定価で、です。実売価格は分かりません。)
こういう比較もなかなかおもしろいですね。電卓を片手に、あっちこっちのハードウェアメーカーのページを散策するだけで、情報が手に入ります。みなさんも試してみてはいかが。
リンクはご自由に。でもメールをくれると嬉しいな。
金野 祥久 konno@researchers.jpLast modified: Wed Mar 29 11:07:17 JST 2000