差分

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