「UNIXとは何か」の版間の差分

提供: UnixClassWiki
移動先: 案内検索
(カーネルが独立している)
(UNIXの定義)
(2人の利用者による、間の25版が非表示)
1行目: 1行目:
==  UNIXの定義 ==  
+
== UNIXとは何か ==
 +
===  UNIXの定義 ===  
  
  
UNIXは1969年にベル研究所のKen Thompson、Dennis Ritchieらが作ったオペレー
+
UNIXは1969年にベル研究所のKen Thompson、Dennis Ritchieらが作ったオペレーティングシステムの名前です。最初はわかりました。では、「現在のUNIXの定義は?」と聞かれた場合、どのような答えが帰ってくるでしょうか。
ティングシステムの名前です。最初はわかりました。では、「現在のUNIXの定
+
義は?」と聞かれた場合、どのような答えが帰ってくるでしょうか。
+
  
  
10行目: 9行目:
 
* 1969年に作られたUNIXを源流にもつもの
 
* 1969年に作られたUNIXを源流にもつもの
  
これはなかなかわかりやすい定義です。ほとんどすべてのUNIXの仲間と呼ばれ
+
 
るオペレーティングシステムに当てはまります。しかしながら、Linuxはオリ
+
これはなかなかわかりやすい定義です。ほとんどすべてのUNIXの仲間と呼ばれるオペレーティングシステムに当てはまります。しかしながら、GNU/LinuxはオリジナルのUNIXを源流に持ちません。GNU/Linuxのカーネルは最初Linus Torvaldsがゼロから書き始めたものです。しかしだからといってUNIXらしいGNU/LinuxをUNIXの仲間から排除はできません。
ジナルのUNIXを源流に持ちません。Linuxは最初Linus Torvaldsがゼロから書
+
 
き始めたものです。しかしだからといってUnixらしいLinuxは、やはりUNIXの
+
仲間なのです。
+
  
 
* (現在The Open Groupが保持している)商標の利用許可を過去に得ていたもの
 
* (現在The Open Groupが保持している)商標の利用許可を過去に得ていたもの
  
* The Open Groupの定めるUNIX 03仕様を満たし、それをThe Open Groupが認めたもの<ref>[http://www.opengroup.org/certification/unix-home.html UNIX® System Certification]</ref>
 
  
 +
* The Open Groupの定めるUNIX標準仕様を満たし、それをThe Open Groupが認めたもの<ref>[http://www.opengroup.org/membership/forums/platform/unix The UNIX® Standard]</ref>
 +
 +
 +
UNIX標準仕様とは、The Open Groupが定めるThe Single UNIX Specificationのことです<ref>2018年現在は ''SINGLE UNIX® SPECIFICATION, VERSION 4, 2018 EDITION'' となっています。何年かに一度改定されるので最新の規格は Open Group のサイトで確認してください。</ref>。これを取ると商標としてのUNIX(R)を利用できるようになることができます。これをUNIXの定義とすると "OS X version 10.11 El Capitan" や  "Solaris 10 Operating System" や  "AIX 6 Operating System V6.1.2 with SP1"などはUNIXですが、FreeBSDやGNU/Linuxは、UNIXでなくなってしまいます。
  
UNIX 03とは、The Open Groupが定めるThe Single UNIX Specification規格の
 
2003 年度版です。これを取ると商標としてのUNIX(R)を利用できるようになる
 
ことはあってもUNIXの定義とはいえません。なぜならばFreeBSDやLinuxは、
 
UNIXでなくなってしまいます。
 
  
 
* IEEE Std 1003.1 (POSIX 1003.1) 準拠あるいはISO/IEC 9945 準拠のもの
 
* IEEE Std 1003.1 (POSIX 1003.1) 準拠あるいはISO/IEC 9945 準拠のもの
  
IEEE Std 1003.1 とISO/IEC 9945は内容的に同じものですが、これらの仕様に
+
 
準拠したものがUNIXであるといえば、技術的な意味において間違いはありませ
+
IEEE Std 1003.1 とISO/IEC 9945は内容的に同じものですが、これらの仕様に準拠したものがUNIXであるといえば、技術的な意味において間違いはありません。しかし、何か足りないような…
ん。しかし、何か足りません。
+
  
  
39行目: 34行目:
 
* UNIXの思想や文化を継承するもの
 
* UNIXの思想や文化を継承するもの
  
UNIXの思想や文化を継承するものといいますが、その思想や文化とは何を指し
+
 
ているのでしょうか。ここはDon Libes と Sandy ResslerのLife with Unix本
+
UNIXの思想や文化を継承するものといいますが、その思想や文化とは何を指しているのでしょうか。ここはDon Libes と Sandy ResslerのLife with Unix
を参考にしてまとめてみます。
+
<ref> Life with UNIX―UNIXを愛するすべての人に, ドン ライブ (著), サンディ レスラ (著), 福崎 俊博 (翻訳), 坂本 文 (翻訳),  ISBN 4756107834 </ref>
 +
本を参考にしてまとめてみます。
  
 
=== UNIXの思想 ===
 
=== UNIXの思想 ===
  
* 小さいことは美しい --- 問題は小さく分割し、個々に解決する小さいコマンドを使い、それを組み合わせて全体の問題を解決する。
 
  
* 20%の労力で80%を解決する --- すべての問題を万能に解決するようなシステムを目指さない。労力少なく、おおよその問題を解決する。
+
* 小さいことは美しい ~ 問題は小さく分割し、個々に解決する小さいコマンドを使い、それを組み合わせて全体の問題を解決する。
  
* 単純に保て --- 単純であるべきものは単純にしておく。
 
  
こんな風に考えるのがUNIX流だといえるでしょう。実はこれらは別にUNIX独自
+
* 20%の労力で80%を解決する ~ すべての問題を万能に解決するようなシステムを目指さない。労力少なく、おおよその問題を解決する。
の思想ではなく、既に社会にある考え方です。「小さいことは美しい」は経済
+
学者 E. F. Schumacher の著書"Small Is Beautiful : Economics as if
+
People Mattered"の考え方です。「20% / 80%」はイタリアの経済学者
+
V. Paretoのパレートの法則です。「単純に保て」は"Keep It Simple
+
(Stupid)" は、エンジニアの口伝伝承であるマーフィーの法則の1つとして知
+
られています。
+
  
ただ、これが現在のLinuxにも当てはまるかは、筆者は少々疑問です。今の
 
Linuxのカーネル一つ取っても、たくさんの参加者によって組み込まれた、非
 
常に多肢に渡る色々な機能を持っています。何でも投げ込むキッチンシンク
 
(流し台)になっています。小さいことは美しいとか、少なくとも単純である
 
べきものは、単純であるという部分はかなり怪しくなってきています。
 
  
このように、どこまでがオペレーティングシステムなのかという問題と同じく、
+
* 単純に保て ~ 単純であるべきものは単純にしておく。
UNIXの定義もどこまでがUNIXなのかの境界線がわかりづらい問題なのです。
+
  
  
:'''調べてみよう'''
+
こんな風に考えるのがUNIX流だといえるでしょう。実はこれらは別にUNIX独自の思想ではなく、既に社会にある考え方です。
:みんなそれぞれのUNIXの定義があるはずです。色々なUNIXの定義を見つけてみよう。また自分なりのUNIXの定義をしたならば、どんな定義になるだろうか。
+
「小さいことは美しい」は経済学者 E. F. Schumacher の著書"Small Is Beautiful : Economics as if People Mattered"
 +
<ref> Small Is Beautiful: Economics as if People Mattered ,  1989/6/1, E. F. Schumacher (著), ISBN 0060916303 </ref>
 +
<ref> スモール イズ ビューティフル (講談社学術文庫) 文庫 – 1986/4/7, F・アーンスト・シューマッハー (著), 小島 慶三 (翻訳), 酒井 懋 (翻訳) ISBN 4061587307</ref>
 +
の考え方です。
 +
「20% / 80%」はイタリアの経済学者 V. Paretoのパレートの法則です。
 +
「単純に保て」は"Keep It Simple(Stupid)" は、エンジニアの口伝伝承であるマーフィーの法則の1つとして知られています。
  
=== なぜUNIXオペレーティングシステムの授業にLinuxを取り上げるのか ===
 
  
UNIXとは何かという問いに一言で答えることが出来る人はたぶん誰にもいない
+
ただ、これが現在のGNU/Linuxのシステム、あるいはLinuxカーネルにも当てはまるかは、筆者は少々疑問です。今のLinuxカーネル一つ取っても、たくさんの参加者によって組み込まれた、非常に多肢に渡る色々な機能を持っています。何でも投げ込むキッチンシンク(流し台)になっています。
でしょう。それはUNIXは長い歴史を人々とともに積み重ねてきたからです。
+
コードからみた場合、「小さいことは美しい」とか「単純であるべきものは、単純であれ」という部分はかなり怪しくなってきています。
どのような歴史があるかは
+
[[http://h2np.net/docs/os-history.html OS誕生からLinuxまでの歴史]]
+
を参照してください。
+
  
UNIX的なものとは何かという議論は一章の[[UNIXの定義]]で行っていますので、
 
そちらを参照して下さい。
 
  
さて、なぜLinuxが授業向きのオペレーティングシステムであるかです。理由
+
実際 UNIX をベル研で開発していた人たちは UNIX System V の時には UNIX 捨て、 UNIX のオリジナルのアイデアを徹底させ、さらに新しく展開した[https://9p.io/plan9/ Plan 9]というオペレーティングシステムを開発していました。
は2つです。
+
<ref> Plan 9 from Bell Labs Fourth Edition https://9p.io/plan9/ </ref>
 +
むしろこちらの方がUNIXのオリジナルコンセプトに忠実だと筆者は考えるほどです。
 +
であれば、現在UNIXと呼ばれているもの自体が既にUNIX的ではなくなってしまっているという不思議な結論に達してしまいます。
  
* Linux は IEEE Std 1003.1 (POSIX 1003.1)を目指して作られた。
 
  
* Linux はカーネルとミドルウェアを切り離して考えている。
+
このように、どこまでがオペレーティングシステムなのかという問題と同じく、 UNIX の定義もどこまでが UNIX なのかの境界線がはっきりとしない問題だと言えるでしょう。
  
* 初学者向けLinuxの情報は溢れている。
 
  
==== スタンダードということ ====
+
:'''調べてみよう'''
 +
:色々なUNIXの定義を見つけてみよう。また自分なりのUNIXの定義をしたならば、どんな定義になるだろうか。
  
UNIXがこれだけ広まった原動力はあきらかに4.1BSDから4.4BSDまでを作りあげ
+
=== ここまでの歴史 ===
たUniversity of California BerkeleyのComputer System Research Groupの
+
活躍のおかげです。高速なファイルシステム、仮想記憶、TCP/IPなど最新の技
+
術が取り込まれており、それが大学や研究所を中心に広まっていったからです。
+
こう聞くとBSDの方がよりUNIXの中心にいるような気がします。
+
  
しかしスタンダードなUNIXとは何かということで考えるとPOSIX仕様を忠実に
+
UNIXの歴史に関しては Éric Lévénez氏が管理する'''UNIX History'''というサイトを参照してください。UNIXの過去から現在までにいたるまでのタイムラインチャートなど色々と参考になる資料があります。
インプリメンテーションしようとしたLinuxと、研究プラットフォームとして
+
POSIXとの互換性を重要視していなかったBSDとは明らかにスタンスに差があり
+
ます。これはスタンダードなUNIXを教えるならばLinuxに軍配が上がります。
+
  
==== カーネルが独立している ====
+
* http://www.levenez.com/unix/
  
カーネルが単一のコードで、複数のミドルウェアを持ちディストリビューショ
+
== 脚注 ==
ンという形でいろいろなタイプのものが出ているLinuxの方がより教科書的で
+
す。教科書的にはカーネルとミドルウェア、そしてアプリケーションは独立し
+
ており、これらを自由に組み合わせることがIBM System/360の時代からのオペ
+
レーティングシステムの役目です。
+
  
しかし現実には、このようなシステムは滅多に見当たりません。なぜならば各々
 
の上から下までのコンポーネントが緊密に相互依存しているからです。また、
 
複数の組み合わせを試し安定させるとなると、その構築にも膨大な時間とコス
 
トがかかります。
 
  
これをLinuxは多数のデベロッパーを持つことにより乗り越えています。乗り
+
<references/>
越える以上に過激ともいえる状況を作りだしています。たとえばext2、ext3、
+
XFS、JFS、ReiserFS を標準ファイルシステムとして選択できるようなオペレー
+
ティングシステムはある意味、原理主義的でもあり、あるいは過剰な感すらあ
+
ります。しかし大切なのは、各コンポーネントが切り離されているということ
+
です。机上の空論ではなく、実際の動いているコードであることが説得力を持つのです。
+
むかしは教科書上にしかなかった方法論が市場的にも受け入れられて
+
います。「カーネルもミドルウェアもアプリケーションも独立しています。
+
しかしそれは理屈であり、現実にはそのようなシステムは使われていません。」
+
と弁解しつつ説明する必要はないのです。
+
  
==== 初学者向けLinuxの情報 ====
+
----
  
Linuxは利用の裾野が広いので初学者向けの情報が溢れています。HOW TO 本の
+
[[目次]]へ
たぐいはたくさん出ているので、いくらでも自分で学習できるので、授業は概
+
念的な理解に集中できます。この授業はオペレーティングシステムとしてUNIX
+
とは何であるかを考えていくことが中心です。HOW TO USE UNIXでもHOW TO
+
USE LINUXでもありません。それはわざわざ授業に出なくてもできることです
+
から。
+
 
+
以上のような理由からUNIXオペレーティングシステムの授業にLinuxを取り上
+
げています。
+
 
+
== 参考資料 ==
+
 
+
 
+
<references/>
+

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

UNIXとは何か

UNIXの定義

UNIXは1969年にベル研究所のKen Thompson、Dennis Ritchieらが作ったオペレーティングシステムの名前です。最初はわかりました。では、「現在のUNIXの定義は?」と聞かれた場合、どのような答えが帰ってくるでしょうか。


  • 1969年に作られたUNIXを源流にもつもの


これはなかなかわかりやすい定義です。ほとんどすべてのUNIXの仲間と呼ばれるオペレーティングシステムに当てはまります。しかしながら、GNU/LinuxはオリジナルのUNIXを源流に持ちません。GNU/Linuxのカーネルは最初Linus Torvaldsがゼロから書き始めたものです。しかしだからといってUNIXらしいGNU/LinuxをUNIXの仲間から排除はできません。


  • (現在The Open Groupが保持している)商標の利用許可を過去に得ていたもの


  • The Open Groupの定めるUNIX標準仕様を満たし、それをThe Open Groupが認めたもの[1]


UNIX標準仕様とは、The Open Groupが定めるThe Single UNIX Specificationのことです[2]。これを取ると商標としてのUNIX(R)を利用できるようになることができます。これをUNIXの定義とすると "OS X version 10.11 El Capitan" や "Solaris 10 Operating System" や "AIX 6 Operating System V6.1.2 with SP1"などはUNIXですが、FreeBSDやGNU/Linuxは、UNIXでなくなってしまいます。


  • IEEE Std 1003.1 (POSIX 1003.1) 準拠あるいはISO/IEC 9945 準拠のもの


IEEE Std 1003.1 とISO/IEC 9945は内容的に同じものですが、これらの仕様に準拠したものがUNIXであるといえば、技術的な意味において間違いはありません。しかし、何か足りないような…


調べてみよう
IEEE Std 1003.1 とはどんな規格なのか調べてみよう。


  • UNIXの思想や文化を継承するもの


UNIXの思想や文化を継承するものといいますが、その思想や文化とは何を指しているのでしょうか。ここはDon Libes と Sandy ResslerのLife with Unix [3] 本を参考にしてまとめてみます。

UNIXの思想

  • 小さいことは美しい ~ 問題は小さく分割し、個々に解決する小さいコマンドを使い、それを組み合わせて全体の問題を解決する。


  • 20%の労力で80%を解決する ~ すべての問題を万能に解決するようなシステムを目指さない。労力少なく、おおよその問題を解決する。


  • 単純に保て ~ 単純であるべきものは単純にしておく。


こんな風に考えるのがUNIX流だといえるでしょう。実はこれらは別にUNIX独自の思想ではなく、既に社会にある考え方です。 「小さいことは美しい」は経済学者 E. F. Schumacher の著書"Small Is Beautiful : Economics as if People Mattered" [4] [5] の考え方です。 「20% / 80%」はイタリアの経済学者 V. Paretoのパレートの法則です。 「単純に保て」は"Keep It Simple(Stupid)" は、エンジニアの口伝伝承であるマーフィーの法則の1つとして知られています。


ただ、これが現在のGNU/Linuxのシステム、あるいはLinuxカーネルにも当てはまるかは、筆者は少々疑問です。今のLinuxカーネル一つ取っても、たくさんの参加者によって組み込まれた、非常に多肢に渡る色々な機能を持っています。何でも投げ込むキッチンシンク(流し台)になっています。 コードからみた場合、「小さいことは美しい」とか「単純であるべきものは、単純であれ」という部分はかなり怪しくなってきています。


実際 UNIX をベル研で開発していた人たちは UNIX System V の時には UNIX 捨て、 UNIX のオリジナルのアイデアを徹底させ、さらに新しく展開したPlan 9というオペレーティングシステムを開発していました。 [6] むしろこちらの方がUNIXのオリジナルコンセプトに忠実だと筆者は考えるほどです。 であれば、現在UNIXと呼ばれているもの自体が既にUNIX的ではなくなってしまっているという不思議な結論に達してしまいます。


このように、どこまでがオペレーティングシステムなのかという問題と同じく、 UNIX の定義もどこまでが UNIX なのかの境界線がはっきりとしない問題だと言えるでしょう。


調べてみよう
色々なUNIXの定義を見つけてみよう。また自分なりのUNIXの定義をしたならば、どんな定義になるだろうか。

ここまでの歴史

UNIXの歴史に関しては Éric Lévénez氏が管理するUNIX Historyというサイトを参照してください。UNIXの過去から現在までにいたるまでのタイムラインチャートなど色々と参考になる資料があります。

脚注

  1. The UNIX® Standard
  2. 2018年現在は SINGLE UNIX® SPECIFICATION, VERSION 4, 2018 EDITION となっています。何年かに一度改定されるので最新の規格は Open Group のサイトで確認してください。
  3. Life with UNIX―UNIXを愛するすべての人に, ドン ライブ (著), サンディ レスラ (著), 福崎 俊博 (翻訳), 坂本 文 (翻訳), ISBN 4756107834
  4. Small Is Beautiful: Economics as if People Mattered , 1989/6/1, E. F. Schumacher (著), ISBN 0060916303
  5. スモール イズ ビューティフル (講談社学術文庫) 文庫 – 1986/4/7, F・アーンスト・シューマッハー (著), 小島 慶三 (翻訳), 酒井 懋 (翻訳) ISBN 4061587307
  6. Plan 9 from Bell Labs Fourth Edition https://9p.io/plan9/

目次