コラム10.  :UNIXとC言語

偉大なるOS、UNIX

UNIXというOSは、1969年、アメリカのAT&Tのベル研究所にて、ケン・トンプソン、デニス・リッチー、ブライアン・カーニハン、などといったメンバーによって開発されました。

その当時から、コンピュータ用のOSはいくつも存在しており、UNIXはその中の一つにすぎませんでした。しかし、当初アセンブリ言語のみで開発されたこのOSが、1973年にほぼ全体をC言語で書き直しを行ったことにより、UNIXとC言語の運命は大きく変わりました。

当初、OSをUNIXで書き直したことにより、OSのパフォーマンスは一時的に低下しました。しかし、同時に開発が容易になり、異なるハードウェアへの移植性も向上し、UNIXとC言語というOSと言語の組み合わせが世界的に爆発的に普及するきっかけを作ることになったのです。

UNIXの系統

1970~1980年代の初期にかけて、UNIXは大学や研究機関などで広く採用されるようになりました。それとともに、いくつかの系統に分かれてきましたが、大きく分けるとカリフォルニア大学バークレー校をオリジナルとするBSD系統と、本家AT&Tによって開発されたSYSTEM-Vといった系統に分かれてきました。

1980年代から1990年代初めごろまで、BSDとSYSTEM-Vは、UNIXの大きなふたつの系統となり、それぞれ競い合いながら発展してきたことから、UNIX戦争などという言い方がなされるようになりました。

当時は、BSDはデスクトップワークステーション等で使われたのに対し、SYSTEM-Vは大規模マルチユーザシステム向けのシステム向けに最適と言われていましたが、のちにPOSIXのような標準化作業がなされて、この二つの系統は徐々に統一されていきました。

UNIX系OSの現在

このように、多くの系統に分かれていたUNIXですが、2007年にUNIXの商標の所有者である標準化団体の「The Open Group」によって認証を受けたOSのみが「UNIX」の商標を得られることになりました。

この認定を受けたOSとしては、Mac OS X、AIX、HP-UX、Solarisなどがあります。それに対し、認証を受けていないOSとしては、Linux、FreeBSD、OpenBSDなどがあります。このように、認証を受けていないものの中身がUNIXと言っていいようなOSのことを、「UNIXシステムライク」もしくは「UNIXライク」などと言ったりします。

ちなみに、現在スマートフォンの主要OSであるAndroidは、実はLinuxをベースとしており、広い意味での「UNIXライク」なOSといえるのです。こうしてみると、UNIX系統のOSがいかに広く普及しているかがよくわかります。

UNIXとオープンソース

しかし、いったいなぜUNIXおよびUNIX系統のOSがこれだけ普及するようになったのでしょうか?実はそのことはUNIXがC言語で記述されていることと、大きく関連しています。

UNIXが開発された当時ベル研究所の当時の親会社AT&Tはコンピュータ産業への進出を禁止されていたことから、UNIXを販売することはできませんでした。そこで、UNIX製作者の一人であるケン・トンプソンはUNIXをソースコードと共にメディアのコピー代だけで希望者に発送したのです。

もしもUNIXが、ハードに大きく依存するアセンブラで記述されていたのなら、こういったことは不可能だったでしょう。しかし、C言語で記述されていたことにより、様々なハードウェアの上にUNIXを移植できるようになったのです。

そのためUNIXは爆発的に普及し、同時にUNIXにはオープンな文化が育まれ、OSに限らずUNIX上で利用できる様々なソフトウェアはソースコードが公開されるようになり、コンピュータ技術を飛躍的に前進させたのです。

UNIX系OSのソースコード

一般に、UNIXおよびUNIX系のソースコードというと「カーネル」というシステムの核になる部分のソースコードを言うようになります。UNIXおよびUNIX系列のOSのカーネルはC言語で記述されており、誰でもコピーして簡単に思料することができます。

特によく普及してるのがLINUX系統のもので、前述のAndroidのように、新たにコンピュータのOSを作る際にはLINUXのカーネルをそのまま流用するケースが多いようです。このように、UNIXとC言語の組み合わせは、現在でもコンピュータの世界に非常に大きな影響を与えているのです。