差分

移動先: 案内検索
/* カーネルが独立している */
== なぜUNIXオペレーティングシステムの授業にGNU/Linuxを取り上げるのか はじめに ==
UNIXとは何かという問いに一言で答えることが出来る人はたぶん誰にもいない
でしょう。それはUNIXは長い歴史を人々とともに積み重ねてきたからです。
どのような歴史があるかは
[[OS誕生からLinuxまでの歴史]]
を参照してください。
UNIX的なものとは何かという議論はUNIXとは何かという問いに一言で答えることが出来る人はたぶん誰もいないでしょう。それはUNIXは長い歴史を人々とともに積み重ねてきたからです。どのような歴史があるかは [[OS誕生からLinuxまでの歴史]] を参照してください。UNIX的なものとは何かという議論は''[[UNIXとは何か]]''で行っていますので、で行っていますので、そちらを参照して下さい。さて、なぜGNU/Linuxが授業向きのオペレーティングシステムであるかです。理由は3つです。そちらを参照して下さい。
さて、なぜGNU/Linuxが授業向きのオペレーティングシステムであるかです。理由
は2つです。
* GNU/Linuxは IEEE Std 1003.1 (POSIX 1003.1)を目指して作られた。
* GNU/Linuxはカーネルとミドルウェアを切り離して考えている。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の時代からのオペレーティングシステムの役目です。  しかしながらパソコン雑誌等では「販売するシステム・パッケージ=オペレーティング・システム」という表現をしており、また、世間一般<ref>[https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0 ウィキペディア日本語版の<オペレーティングシステム>]の項には次のような表現があります。''「製品としてのOSには、デスクトップ環境やウィンドウシステムなど、あるいはデータベース管理システム (DBMS) などのミドルウェア、ファイル管理ソフトウェアやエディタや各種設定ツールなどのユーティリティ、基本的なアプリケーションソフトウェア(ウェブブラウザや時計などのアクセサリ)が、マーケティング上の理由などから一緒に含められていることもある。 」([https://ja.wikipedia.org/w/index.php?title=%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0&oldid=68960550 2018年7月4日閲覧]) '' しかしながら、ここでの「製品としてのOS」とはGNU/Linuxでいう所のディストリビューションと同等で、これは販売パッケージを意味しており、技術的な意味でのオペレーティング・システムを意味していません。このウィキペディア日本語版に掲載されている解釈では「Windows 95に含まれていたゲームのマインスイーパは(ユーザに娯楽を提供するというマーケッティング上の理由から)OSの一部」ということも導けます。実際にウィキペディア日本語版のマインスイーパでは ''「1992年の Windows 3.1 からはOSに標準で付属するようになった。」([https://ja.wikipedia.org/w/index.php?title=%E3%83%9E%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%91&oldid=69194639 2018年8月8日閲覧])'' という表現がみられます。もちろんどんな形であれ本サイトの説明ではマインスイーパをOSのコンポーネントとして取り上げることはありません。</ref>でもそう思い込んでいます。現実にも自由にコンポーネントを組み合わせているシステムはGNU/Linux以外ではあまり見当たりません。各々の上から下までのコンポーネントが緊密に相互依存させている場合が多く、選択肢を狭めることによって独自性を強調しようとする方向性を持っています。
* 初学者向けGNU/Linuxの情報は溢れている。
=== スタンダードということ ===他方、GNU/Linuxは多様性を持つという方向性で進んでいます。たとえばext2、ext3、ext4、XFS、JFSほか、を標準ファイルシステムとして選択できるようなオペレーティングシステムはある意味、原理主義的でもあり、あるいは過剰な感すらあります。しかし、教科書的にオペレーティングシステムを説明する上で、このような各コンポーネントが切り離されているというのは重要なポイントです。「理屈の上では、カーネルもミドルウェアもアプリケーションも独立しており入れ替えが可能ですが、実際のシステムはそうではなくワンパッケージになっているのが現状です。」と弁明を入れながら説明する必要ありません。例えばGNU/Linuxのディストリビューションの1つであるubuntuの説明「[[実際にGNU/Linuxを使ってみよう#GNU/Linuxディストリビューション]] 」で示したようにカーネル、ミドルウェア、アプリケーションの構成の違いで、デスクトップ向け、サーバ向け、教育向け、メディアクリエータ向けなど様々な特性を持ったディストリビューションを示すことが可能になっています。GNU/Linuxの主要なディストリビューションDebianではDebian GNU/HurdはカーネルはGNU/Hurd、Debian GNU/kFreeBSDはカーネルがFreeBSDであるディストリビューションのバリエーションを用意しています。
UNIXがこれだけ広まった原動力はあきらかに4.1BSDから4.4BSDまでを作りあげ
たUniversity of California BerkeleyのComputer System Research Groupの
活躍のおかげです。高速なファイルシステム、仮想記憶、TCP/IPなど最新の技
術が取り込まれており、それが大学や研究所を中心に広まっていったからです。
こう聞くとBSDの方がよりUNIXの中心にいるような気がします。
しかしスタンダードなUNIXとは何かということで考えるとPOSIX仕様を忠実にインプリメンテーションしようとしたGNUこのようにGNU/Linuxと、研究プラットフォームとしてPOSIXとの互換性を重要視していなかったBSDとは明らかにスタンスに差があります。これはスタンダードなUNIXを教えるならばGNU/Linuxに軍配が上がります。Linuxを取り巻く環境では、アプリケーション、ミドルウェア、カーネルといった各々のレイヤーで色々なバリエーションが存在し、また使われています。このような環境を示す中において、オペレーティングシステムとは何かを考えていくことが重要だと考えています。
=== カーネルが独立している =初学者向けGNU/Linuxの情報 ==
カーネルが単一のコードで、複数のミドルウェアを持ちディストリビューションという形でいろいろなタイプのものが出ているGNUGNU/Linuxの方がより教科書的でLinuxは利用の裾野が広いので初学者向けの情報が溢れています。HOW TO本は、たくさん出ているので、いくらでも自分で学習でき、授業は概念的な理解に集中できます。す。教科書的にはカーネルとミドルウェア、そしてアプリケーションは独立しこの授業はオペレーティングシステムとして UNIX とは何であるかを考えていくことが中心です。ており、これらを自由に組み合わせることがIBM SystemHOW TO USE UNIX でも HOW TO USE GNU/360の時代からのオペLinux でもありません。レーティングシステムの役目です。それはわざわざ授業に出なくてもできることですから。
しかし現実には、このようなシステムは滅多に見当たりません。なぜならば各々
の上から下までのコンポーネントが緊密に相互依存しているからです。また、
複数の組み合わせを試し安定させるとなると、その構築にも膨大な時間とコス
トがかかります。
これをGNU以上のような理由からUNIXオペレーティングシステムの授業にGNU/Linuxは多数のデベロッパーを持つことにより乗り越えています。乗り越える以上に過激ともいえる状況を作りだしています。たとえばext2、ext3、XFS、JFS、ReiserFS を標準ファイルシステムとして選択できるようなオペレーティングシステムはある意味、原理主義的でもあり、あるいは過剰な感すらあります。しかし大切なのは、各コンポーネントが切り離されているということです。机上の空論ではなく、実際の動いているコードであることが説得力を持つのです。むかしは教科書上にしかなかった方法論が市場的にも受け入れられています。「カーネルもミドルウェアもアプリケーションも独立しています。しかしそれは理屈であり、現実にはそのようなシステムは使われていません。」と弁解しつつ説明する必要はないのです。Linuxを取り上げています。
=== 初学者向けGNU/Linuxの情報 =参考 ==
GNU/Linuxは利用の裾野が広いので初学者向けの情報が溢れています。HOW TO 本の
たぐいはたくさん出ているので、いくらでも自分で学習できるので、授業は概
念的な理解に集中できます。この授業はオペレーティングシステムとしてUNIX
とは何であるかを考えていくことが中心です。HOW TO USE UNIXでもHOW TO
USE GNU/Linuxでもありません。それはわざわざ授業に出なくてもできることです
から。
以上のような理由からUNIXオペレーティングシステムの授業にGNU<references/Linuxを取り上げています。>