なぜUNIXオペレーティングシステムの授業にGNU/Linuxを取り上げるのか

提供: UnixClassWiki
2007年11月19日 (月) 13:09時点におけるHironobu (トーク)による版

移動先: 案内検索

なぜUNIXオペレーティングシステムの授業にGNU/Linuxを取り上げるのか

UNIXとは何かという問いに一言で答えることが出来る人はたぶん誰にもいない でしょう。それはUNIXは長い歴史を人々とともに積み重ねてきたからです。 どのような歴史があるかは OS誕生からLinuxまでの歴史 を参照してください。

UNIX的なものとは何かという議論はUNIXとは何かで行っていますので、 そちらを参照して下さい。

さて、なぜGNU/Linuxが授業向きのオペレーティングシステムであるかです。理由 は2つです。

  • GNU/Linuxは IEEE Std 1003.1 (POSIX 1003.1)を目指して作られた。
  • GNU/Linuxはカーネルとミドルウェアを切り離して考えている。
  • 初学者向けGNU/Linuxの情報は溢れている。

スタンダードということ

UNIXがこれだけ広まった原動力はあきらかに4.1BSDから4.4BSDまでを作りあげ たUniversity of California BerkeleyのComputer System Research Groupの 活躍のおかげです。高速なファイルシステム、仮想記憶、TCP/IPなど最新の技 術が取り込まれており、それが大学や研究所を中心に広まっていったからです。 こう聞くとBSDの方がよりUNIXの中心にいるような気がします。

しかしスタンダードなUNIXとは何かということで考えるとPOSIX仕様を忠実に インプリメンテーションしようとしたGNU/Linuxと、研究プラットフォームとして POSIXとの互換性を重要視していなかったBSDとは明らかにスタンスに差があり ます。これはスタンダードなUNIXを教えるならばGNU/Linuxに軍配が上がります。

カーネルが独立している

カーネルが単一のコードで、複数のミドルウェアを持ちディストリビューショ ンという形でいろいろなタイプのものが出ているGNU/Linuxの方がより教科書的で す。教科書的にはカーネルとミドルウェア、そしてアプリケーションは独立し ており、これらを自由に組み合わせることがIBM System/360の時代からのオペ レーティングシステムの役目です。

しかし現実には、このようなシステムは滅多に見当たりません。なぜならば各々 の上から下までのコンポーネントが緊密に相互依存しているからです。また、 複数の組み合わせを試し安定させるとなると、その構築にも膨大な時間とコス トがかかります。

これをGNU/Linuxは多数のデベロッパーを持つことにより乗り越えています。乗り 越える以上に過激ともいえる状況を作りだしています。たとえばext2、ext3、 XFS、JFS、ReiserFS を標準ファイルシステムとして選択できるようなオペレー ティングシステムはある意味、原理主義的でもあり、あるいは過剰な感すらあ ります。しかし大切なのは、各コンポーネントが切り離されているということ です。机上の空論ではなく、実際の動いているコードであることが説得力を持つのです。 むかしは教科書上にしかなかった方法論が市場的にも受け入れられて います。「カーネルもミドルウェアもアプリケーションも独立しています。 しかしそれは理屈であり、現実にはそのようなシステムは使われていません。」 と弁解しつつ説明する必要はないのです。

初学者向けGNU/Linuxの情報

GNU/Linuxは利用の裾野が広いので初学者向けの情報が溢れています。HOW TO 本の たぐいはたくさん出ているので、いくらでも自分で学習できるので、授業は概 念的な理解に集中できます。この授業はオペレーティングシステムとしてUNIX とは何であるかを考えていくことが中心です。HOW TO USE UNIXでもHOW TO USE GNU/Linuxでもありません。それはわざわざ授業に出なくてもできることです から。

以上のような理由からUNIXオペレーティングシステムの授業にGNU/Linuxを取り上 げています。