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

提供: UnixClassWiki
移動先: 案内検索
(カーネルが独立している)
(同じ利用者による、間の35版が非表示)
1行目: 1行目:
== なぜUNIXオペレーティングシステムの授業にGNU/Linuxを取り上げるのか ==
+
== はじめに ==
  
UNIXとは何かという問いに一言で答えることが出来る人はたぶん誰にもいない
 
でしょう。それはUNIXは長い歴史を人々とともに積み重ねてきたからです。
 
どのような歴史があるかは
 
[[OS誕生からLinuxまでの歴史]]
 
を参照してください。
 
  
UNIX的なものとは何かという議論は''[[UNIXとは何か]]''で行っていますので、
+
UNIXとは何かという問いに一言で答えることが出来る人はたぶん誰もいないでしょう。それはUNIXは長い歴史を人々とともに積み重ねてきたからです。
そちらを参照して下さい。
+
どのような歴史があるかは [[OS誕生からLinuxまでの歴史]] を参照してください。UNIX的なものとは何かという議論は''[[UNIXとは何か]]''で行っていますので、そちらを参照して下さい。さて、なぜGNU/Linuxが授業向きのオペレーティングシステムであるかです。理由は3つです。
 +
 
  
さて、なぜGNU/Linuxが授業向きのオペレーティングシステムであるかです。理由
 
は2つです。
 
  
 
* GNU/Linuxは IEEE Std 1003.1 (POSIX 1003.1)を目指して作られた。
 
* GNU/Linuxは IEEE Std 1003.1 (POSIX 1003.1)を目指して作られた。
  
* GNU/Linuxはカーネルとミドルウェアを切り離して考えている。
+
* 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の時代からのオペレーティングシステムの役目です。
 +
 
 +
 
 +
しかしながらパソコン雑誌等では「販売するシステム・パッケージ=オペレーティング・システム」という表現をしており、また、世間一般
 +
<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/Linuxを取り巻く環境では、アプリケーション、ミドルウェア、カーネルといった各々のレイヤーで色々なバリエーションが存在し、また使われています。このような環境を示す中において、オペレーティングシステムとは何かを考えていくことが重要だと考えています。
インプリメンテーションしようとしたGNU/Linuxと、研究プラットフォームとして
+
POSIXとの互換性を重要視していなかったBSDとは明らかにスタンスに差があり
+
ます。これはスタンダードなUNIXを教えるならばGNU/Linuxに軍配が上がります。
+
  
=== カーネルが独立している ===
+
== 初学者向けGNU/Linuxの情報 ==
  
カーネルが単一のコードで、複数のミドルウェアを持ちディストリビューショ
+
GNU/Linuxは利用の裾野が広いので初学者向けの情報が溢れています。
ンという形でいろいろなタイプのものが出ているGNU/Linuxの方がより教科書的で
+
HOW TO本
す。教科書的にはカーネルとミドルウェア、そしてアプリケーションは独立し
+
は、たくさん出ているので、いくらでも自分で学習でき、授業は概念的な理解に集中できます。
ており、これらを自由に組み合わせることがIBM System/360の時代からのオペ
+
この授業はオペレーティングシステムとして UNIX とは何であるかを考えていくことが中心です。
レーティングシステムの役目です。
+
HOW TO USE UNIX でも HOW TO USE GNU/Linux でもありません。
 +
それはわざわざ授業に出なくてもできることですから。
  
しかし現実には、このようなシステムは滅多に見当たりません。なぜならば各々
 
の上から下までのコンポーネントが緊密に相互依存しているからです。また、
 
複数の組み合わせを試し安定させるとなると、その構築にも膨大な時間とコス
 
トがかかります。
 
  
これをGNU/Linuxは多数のデベロッパーを持つことにより乗り越えています。乗り
+
以上のような理由からUNIXオペレーティングシステムの授業に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を取り上
+
<references/>
げています。
+

2018年10月31日 (水) 10:06時点における版

はじめに

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の時代からのオペレーティングシステムの役目です。


しかしながらパソコン雑誌等では「販売するシステム・パッケージ=オペレーティング・システム」という表現をしており、また、世間一般 [1] でもそう思い込んでいます。現実にも自由にコンポーネントを組み合わせているシステムは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であるディストリビューションのバリエーションを用意しています。


このようにGNU/Linuxを取り巻く環境では、アプリケーション、ミドルウェア、カーネルといった各々のレイヤーで色々なバリエーションが存在し、また使われています。このような環境を示す中において、オペレーティングシステムとは何かを考えていくことが重要だと考えています。

初学者向けGNU/Linuxの情報

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


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

参考

  1. ウィキペディア日本語版の<オペレーティングシステム>の項には次のような表現があります。 「製品としてのOSには、デスクトップ環境やウィンドウシステムなど、あるいはデータベース管理システム (DBMS) などのミドルウェア、ファイル管理ソフトウェアやエディタや各種設定ツールなどのユーティリティ、基本的なアプリケーションソフトウェア(ウェブブラウザや時計などのアクセサリ)が、マーケティング上の理由などから一緒に含められていることもある。 」(2018年7月4日閲覧 しかしながら、ここでの「製品としてのOS」とはGNU/Linuxでいう所のディストリビューションと同等で、これは販売パッケージを意味しており、技術的な意味でのオペレーティング・システムを意味していません。このウィキペディア日本語版に掲載されている解釈では「Windows 95に含まれていたゲームのマインスイーパは(ユーザに娯楽を提供するというマーケッティング上の理由から)OSの一部」ということも導けます。実際にウィキペディア日本語版のマインスイーパでは 「1992年の Windows 3.1 からはOSに標準で付属するようになった。」(2018年8月8日閲覧) という表現がみられます。もちろんどんな形であれ本サイトの説明ではマインスイーパをOSのコンポーネントとして取り上げることはありません。