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

提供: UnixClassWiki
2009年10月3日 (土) 07:02時点におけるHironobu (トーク)による版

移動先: 案内検索

はじめに

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のディストリビューションの1つであるubuntuの説明 「実際にLinuxを使ってみよう#いろいろなUbuntu 」の部分でも取り上げたように カーネル、ミドルウェア、アプリケーションの構成の違いで、デスクトップ向け、 サーバ向け、教育向け、メディアクリエータ向けなど様々な特性を持った ディストリビューションを示すことが可能なのです。

初学者向けGNU/Linuxの情報

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

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