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

提供:UnixClassWiki
ナビゲーションに移動 検索に移動

はじめに

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

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

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

  • 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 本のたぐい[1]はたくさん出ているので、いくらでも自分で学習できるので、授業は概念的な理解に集中できます。この授業はオペレーティングシステムとして UNIX とは何であるかを考えていくことが中心です。HOW TO USE UNIXでもHOW TO USE GNU/Linuxでもありません。それはわざわざ授業に出なくてもできることですから。


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


参考

  1. アマゾンで初心者向けLinux本を検索できます。 http://astore.amazon.co.jp/h2npbook-22