記事のページ

Mac OS X と UNIX

MacOSX-UNIX.jpg
 話は横道にそれる。"Mac の UNIX 使い"としては知っておきたい知識である。昔々、あるところ(AT&T 社のベル研究所)に、ある OS が生まれた。おじいさんとおばあさんが作ったわけではない。こいつは C言語というプログラミング言語で書き直されて、いろいろなコンピュータへの移植が可能になってからは急速に普及するようになった。UNIX の誕生である。
Next-c.jpg
 その後 AT&T 社が中心になって発展した SystemV系と呼ばれるものからは、AIX、HP、IRIX、UX といった各種商用 UNIX が生まれ、その SystemV系にならって、カリフォルニア大学バークレー校が作り出した BSD(Berkley Software Distribution)系と呼ばれるものから、FreeBSD、NetBSD、OpenBSD といったオープンソース UNIX (無償、要するにタダ、である)が生まれた。後者の BSD系が現在のインターネット発展の基礎になったものである。これらが本家本元の UNIX と呼ばれる OS である。
 一方で、フィンランドのリーナス・トーパルズという天才学生が、当時の UNIX の標準規格であった"POSIX"に沿って、いわば UNIXクローンとも言うべき UNIX互換の OS を1人で作りあげてしまう。この OS は世界中の無償協力者(今で言う"オタク")がよってたかってその完成度を高めていった。Linux の誕生である。したがって、Linux は UNIX ではない。ただし、UNIX互換であることに間違いはない。
 似たような無償協力の状況は他でも生まれていて、自由が保証されたコンピュータソフトウェア環境の構築を目指して設立された Free Software Foundation (通称 FSF。社長はGNU Emacsの開発で有名な Richard M.Stallman 氏) は、「GNUプロジェクト」という UNIX互換ソフトウェア群の開発プロジェクトを進めていた。アップルでさえ FSF からは目の敵にされていた時期もある。「GNU」とは「グヌー」と称し、「Gnu is Not Unix.」の略で、略語の展開形に略語自身が含まれる冗談のような命名となっている。「GNUプロジェクト」は、フリーソフトウェアの理念にしたがい、修正・再配布自由な UNIX互換システムの構築を目的としていた。どこかで目にされた方も多いと思うが、GNU で開発されたソフトウェアに適用されている GPL(The GNU General Public License)は、「あらゆるソフトウェアは自由に利用できるべき」というライセンスとして知られている。
 一般に OS として最も基本的な、ハードウェア割り込み、CPU 例外、システムコールといったイベントを処理する中核の部分は、 Kernel(カーネル)と呼ばれ、最も重要なパーツである。リーナス・トーパルズが自分の作り上げた Linux を GPL にしてくれたおかげで、「GNUプロジェクト」ではなかなか開発のすすんでいなかった Kernel (カーネル部分) に Linux を使うことができるようになって、 GNU/Linux とも呼ばれるようになった。現在、マイクロソフトを脅かすまでの存在になる Linux はこうして生まれてきたのである。今ではかなりのバリエーションを生み、RedHat系(RedHat Linux および Fedora Core、Turbo Linux等)、Slackware系、Debian系(Debin GNU/Linux) などがある。
 さて、現在のアップルの CEO は言わずと知れたスティーブ・ジョブスである。彼は、ご存知、好漢スティーブ・ウォズニアックとともにアップルコンピュータを創業したのであるが、一時期自分の会社の CEO をやめさせられていた時期がある。彼はその間に"NeXT"というコンピュータ会社を創業し、金属筐体(たしかマグネシウムだった)の独創的なコンピュータを創り出したのであるが、登場したのがあまりにも早すぎて、逆に時代が追いついてきていなかったため、商業的にはあまり成功したとは言えなかった。しかしその価値のわかる玄人には驚嘆の目を持って迎えられたものである。あの時代に Mac OSX のような DOCK 付きのデスクトップをすでに持っていたのだ。日本ではキャノンが販売代理店となっていて、大阪大学あたりは大量に導入したはずだ。あのキューブ型の筐体デザインやキーボード、なにもかもが素晴らしかった。筆者もキーボードだけはかなり長期にわたって使用していたものである。この革新的なコンピュータは、"NeXTSTEP"という OS で動いており、Kernel(カーネル)部分にカーネギーメロン大学で開発された "Machカーネル" を使っていた。 "Machカーネル" は、サービスやドライバがモジュールとしてカーネルと分離された柔軟な構造になっていたが、 "NeXTSTEP" はこの Machカーネルの上に BSD サービスのためのモジュールを実装していて、本家 UNIX 用の各種ライブラリを使うことができた。したがって、"NeXTSTEP" も UNIX ではないが、UNIX互換であるということになる。ちなみに世界で最初の Webサーバは "NeXTSTEP" で動いていた。
 その後、スティーブ・ジョブスがアップルの CEO に復帰し "NeXT" はアップルに買収されることになるのであるが、Mac OSX はこの "NeXTSTEP" から生まれた "OPENSTEP" をもとにして作られたものである。したがって、Mac OS X すなわち "Darwin" は、"Machカーネル" の上に各種ドライバと FreeBSD サービスのモジュールが一体化された構造になっている。そして、このカーネルの上に "Core Service" として Mac OS 独自の "ライブラリ" である "Carbon" および "Cocoa" が乗っており、その上で "Aqua" という美しい名前の GUI、すなわち日頃私たちが目にしている美しいデスクトップが動いている。ところで、"Carbon" や "Cocoa" のように規模が大きいモジュールについては、ライブラリと呼んでも間違いではないが、"フレームワーク"と呼ぶのが一般的である。ライブラリもフレームワークも他のプログラムが動くために必要なさまざまな機能を提供するための、いわば部品であり、単独で働くことはない。"Carbon" は、旧 Mac OS が使っていたフレームワークで、"Cocoa" は Mac OS X が使っている最新のフレームワークである。
 ところで、Mac OSX のカーネルの開発コードは "XNU" である。これは、"Mac OS X is Not Unix" の意味である。Mac OSX は UNIX ではない。みずからそう宣言している。ただし、UNIX互換であることに間違いはない。 Mac OSX はソフトウェア開発環境に独自の "Objective-C" が採用されていることをはじめ、ファインダーの Dock や、iTunes、iPodのインターフェースに至るまで、ありとあらゆる場所に "NeXT" の遺伝子を色濃く残している。
 およその概略だけを書いたのだが、本来の UNIX ではない、のである。なにを UNIX と称するのかについては、商標の問題もからんで本国では訴訟まで起きているようなのできちんと峻別しておきたいところだが、 GNU/Linux も Mac OSX も、 UNIX ではない、と宣言はしているが、UNIX系列、UNIX互換であることは間違いのないところであろう。

この記事について

この記事は著者が2007年9月16日に書いたものです。

コメントおよびツッコミ大歓迎です。
すべてのコメントに目をとおさせていただいておりますが、そのうちのいくつかを選んで公開しておりますので、ご了承いただけたら幸いです。

この記事は "マックの道具箱" カテゴリ内の記事です。

カテゴリ内の前の記事は
Mac OS X と AMP(下)」です。

カテゴリ内の次の記事は
Mac OS X と コンパイル」です。

最近の記事はメインページで見られます。過去に書かれた記事はアーカイブで見られます。著者自身の撮影した写真は、写真集でご覧になれます。

Made on a Mac