差分

移動先: 案内検索

UNIXとは何か

4,302 バイト除去, 2007年9月22日 (土) 10:42
== UNIXとは何か ===== UNIXの定義 ===
:みんなそれぞれのUNIXの定義があるはずです。色々なUNIXの定義を見つけてみよう。また自分なりのUNIXの定義をしたならば、どんな定義になるだろうか。
=== なぜUNIXオペレーティングシステムの授業にLinuxを取り上げるのか ===
UNIXとは何かという問いに一言で答えることが出来る人はたぶん誰にもいない
でしょう。それはUNIXは長い歴史を人々とともに積み重ねてきたからです。
どのような歴史があるかは
[[OS誕生からLinuxまでの歴史]]
を参照してください。
 
UNIX的なものとは何かという議論は一章の[[UNIXの定義]]で行っていますので、
そちらを参照して下さい。
 
さて、なぜLinuxが授業向きのオペレーティングシステムであるかです。理由
は2つです。
 
* Linux は IEEE Std 1003.1 (POSIX 1003.1)を目指して作られた。
 
* Linux はカーネルとミドルウェアを切り離して考えている。
 
* 初学者向けLinuxの情報は溢れている。
 
==== スタンダードということ ====
 
UNIXがこれだけ広まった原動力はあきらかに4.1BSDから4.4BSDまでを作りあげ
たUniversity of California BerkeleyのComputer System Research Groupの
活躍のおかげです。高速なファイルシステム、仮想記憶、TCP/IPなど最新の技
術が取り込まれており、それが大学や研究所を中心に広まっていったからです。
こう聞くとBSDの方がよりUNIXの中心にいるような気がします。
 
しかしスタンダードなUNIXとは何かということで考えるとPOSIX仕様を忠実に
インプリメンテーションしようとしたLinuxと、研究プラットフォームとして
POSIXとの互換性を重要視していなかったBSDとは明らかにスタンスに差があり
ます。これはスタンダードなUNIXを教えるならばLinuxに軍配が上がります。
 
==== カーネルが独立している ====
 
カーネルが単一のコードで、複数のミドルウェアを持ちディストリビューショ
ンという形でいろいろなタイプのものが出ているLinuxの方がより教科書的で
す。教科書的にはカーネルとミドルウェア、そしてアプリケーションは独立し
ており、これらを自由に組み合わせることがIBM System/360の時代からのオペ
レーティングシステムの役目です。
 
しかし現実には、このようなシステムは滅多に見当たりません。なぜならば各々
の上から下までのコンポーネントが緊密に相互依存しているからです。また、
複数の組み合わせを試し安定させるとなると、その構築にも膨大な時間とコス
トがかかります。
 
これをLinuxは多数のデベロッパーを持つことにより乗り越えています。乗り
越える以上に過激ともいえる状況を作りだしています。たとえばext2、ext3、
XFS、JFS、ReiserFS を標準ファイルシステムとして選択できるようなオペレー
ティングシステムはある意味、原理主義的でもあり、あるいは過剰な感すらあ
ります。しかし大切なのは、各コンポーネントが切り離されているということ
です。机上の空論ではなく、実際の動いているコードであることが説得力を持つのです。
むかしは教科書上にしかなかった方法論が市場的にも受け入れられて
います。「カーネルもミドルウェアもアプリケーションも独立しています。
しかしそれは理屈であり、現実にはそのようなシステムは使われていません。」
と弁解しつつ説明する必要はないのです。
 
==== 初学者向けLinuxの情報 ====
 
Linuxは利用の裾野が広いので初学者向けの情報が溢れています。HOW TO 本の
たぐいはたくさん出ているので、いくらでも自分で学習できるので、授業は概
念的な理解に集中できます。この授業はオペレーティングシステムとしてUNIX
とは何であるかを考えていくことが中心です。HOW TO USE UNIXでもHOW TO
USE LINUXでもありません。それはわざわざ授業に出なくてもできることです
から。
 
以上のような理由からUNIXオペレーティングシステムの授業にLinuxを取り上
げています。
== 参考資料 ==
匿名利用者