UNIX

コンピュータ・オペレーティング・システム

UNIX (ユニックス、Unix英語発音: [júːniks][1])は、コンピュータ用のマルチタスクマルチユーザーオペレーティングシステムの一種である。

Unix
UNIXおよびUnix系システムの系統図
開発者ケン・トンプソン, デニス・リッチー, ブライアン・カーニハン, ダグラス・マキルロイ, ジョー・オサンナ英語版ベル研究所
OSの系統Unix
開発状況開発継続中
ソースモデル歴史的にはある時期からクローズドソースとなったが、近年のUnix系プロジェクトの一部はオープンソースである。
初版1969年 (55年前) (1969)
カーネル種別モノリシック
既定のUIコマンドラインインタフェース & GUI (X Window System)
ライセンスプロプライエタリ
ウェブサイトopengroup.org/unix
テンプレートを表示

公式な商標は「UNIX」だが、商標以外の意味として「Unix」、またはスモールキャピタルを使用して「Unix」などとも書かれる。2007年に、「UNIX」の商標の所有者である標準化団体The Open Groupは、Single UNIX Specificationを完全に満たすと認証を受けたシステムのみが「UNIX」の商標を得られるとした。このためそれ以外のシステムは(ずっと以前から、AT&T版およびBSD以外を指して使われていた用語だが)「Unixシステムライク」または「Unixライク(Unix系)」と呼ばれるようになった。ただし The Open Groupはその呼称を気に入っていない[2]

2021年現在では「Unix」という語は、Unix標準に準拠するオペレーティングシステムの総称でもある。既にUnixシステムは多数の系統に分かれており、AT&Tの開発停止後も、多数の商用ベンダーや非営利組織などによって開発が続けられている。現在では多く使われているUnixとしてはmacOSAIXHP-UXSolarisなどがある(いずれも商用)。また認証を受けていないUnix系としてはLinux(派生OSにAndroid他)やMINIXBSDの派生OS(FreeBSDNetBSDOpenBSDDragonFly BSDなど)がある[3]

Unixは1969年AT&Tベル研究所にて、ケン・トンプソンデニス・リッチーらが開発を開始した[4]。当初はアセンブリ言語のみで開発されたが、1973年にほぼ全体をC言語で書き直した。1970年代から1980年代の初期にかけて、Unixは大学や研究所などの教育機関で広範囲に採用され、特にカリフォルニア大学バークレー校をオリジナルとするBSD系統が誕生した。

また Version 7 UnixUNIX System V の特徴を持つオペレーティングシステムは「伝統的なUNIX」(traditional Unix)とも呼ばれる。開発開始から半世紀以上に渡る技術の進歩やプロジェクトの変遷により、オリジナルのUNIXのソースコードは既に使われなくなったが、現在でも派生OSの開発は続けられており、特にシステムのバックエンドで動くスーパーコンピュータやサーバ向けの市場では圧倒的な存在感を示している。

概説

Unix系統の系統図

Unixオペレーティングシステムは、サーバワークステーションだけでなく、携帯機器でも広く使われている[5]。またUnix環境とクライアントサーバモデルは、個々のコンピュータによるコンピュータ処理を、コンピュータネットワークで連係されたコンピュータ処理に変革し、インターネット構築の重要な要素ともなった。

もともとUnixはベル研究所内部の開発プロジェクトであった。1973年のOSに関するシンポジウム以降、このOSはベル研究所外部にも知られるようになる。特に1980年代には、教育機関等でUnixが広がり、ユーザーが自前のツールをその上で作り、それを同僚などと共有する形が定着した[6]

Unixは当初はパイプの概念もなかった。その後の発展の中で、徐々に「パイプ」などが実装されていった。1977年には、PDP-11以外のプラットフォームで動作するようになった。その後移植が徐々に進み、Unixが動作するプラットフォームが増えていった。

Multicsで用いられていたコンピュータであるGE-645は約2MBのメモリを有していたが、最初にUnixが動作したコンピュータであるPDP-7は約16KBのメモリしか有していなかった。このため、Unixの実装にあたっては、メモリ上に載せられる機能は制限され、当初Multicsで予定されていた多くの機能を諦めざるをえなかった。また、メモリ上でUnixのカーネルが占める領域を除くと、各種のユーティリティやアプリケーションが使えるメモリは数KBしか残っていなかった[7]。このため、高機能でサイズの大きいアプリケーションを動かすことは不可能であり、単機能で小さいアプリケーションを作成し、それらを順につないでいく方法をとらざるをえなかった。このような、簡単なプログラムをコマンドラインインタプリタパイプ等を使ってつないでいくという方法は、単一の多機能プログラムで同等機能を実装するのとは逆の発想である。これらのコンセプトはUNIX哲学という言葉で表現されることがある。しかしながら、Unixの開発者であるトンプソンやリッチーは、Unixの開発にあたって何らかの「哲学」や「開発理念」があったとは語っていない。むしろ、理念が先にあったのではなく、メモリ制約等の現実的問題があり、それに適合するために、そのような方法にならざるをえなかったという側面が強い。また、商用Unixの中には、単一で多機能なアプリケーションも見られ、"Unix哲学"が一貫してUnixに関するすべての関係者で共有・実現されていたわけでもない。

その後、メモリの低価格化・大容量化によって、Unixは多くの機能を実現することが可能となった。今日のUnixは移植性マルチタスクタイムシェアリング方式によるマルチユーザなどを重視して設計されている。Unixでは、「オペレーティングシステム」は主となる制御プログラムであるカーネルと、多数のユーティリティより構成される。カーネルは、プログラムの開始や停止、ファイルシステムの取り扱い、他の多くのプログラムが共用する共通的な「低レベル」のタスク、そして重要なスケジューリングなどのサービスを提供する。これらのアクセスを調停するために、カーネルはシステムへの特権を持ち、システムは「ユーザー領域」と「カーネル領域」に分けられる。

カーネルの肥大化の潮流を逆転させ、より少ないユーティリティで最大のタスクを実行できるシステムに戻る目的で、マイクロカーネルのコンセプトが登場した。またコンピュータが1つのハードディスクと入出力用の端末から構成されていた時代には、Unixのファイルモデル(ストリーミングデータ)は最適な入出力として働いた。しかし現代のシステムではネットワークや新しい装置が求められ、グラフィカルユーザインタフェースが開発され、ファイルモデルはマウスなどが発生させる非同期イベントの取り扱いのタスクには不適当と判明し、1980年代には非同期入出力IPCのメカニズムに加えて、ソケット共有メモリメッセージキューセマフォなどが追加された。また通信プロトコルなどの機能はカーネルの外に移動した。

Unixは現在では、サーバパーソナルコンピュータの一部に加え、携帯電話などの組み込みシステムから、メインフレームスーパーコンピュータなどの一部にも使われている。

歴史


Unixの歴史は、1960年代中ごろに、マサチューセッツ工科大学 (MIT)、ベル研究所General Electric (GE) がGEのメインフレームコンピュータGE-645用にMulticsと呼ばれるタイムシェアリングオペレーティングシステムを共同開発していたことにさかのぼる[8]。Multicsは多くの革新的技術を導入したが、同時に、多くの問題を抱えてもいた。Multics の目指すものに賛同しても、巨大で複雑なものになっていくことに嫌気がさしたベル研究所は、プロジェクトから徐々に距離をおくようになった。

最後までMulticsに関与していたケン・トンプソン等はファイルシステムを担当していたが、設計が行われただけで実装されていない段階であった。トンプソン等は、実際にファイルシステムを実装してみたいと考えた。この作業は、当時ベル研究所内に使われない状態でおいてあったPDP-7を借りて行われた。ファイルシステムが完成すると、それを活用するためのユーティリティを作成していった。こうして、おおむねOSの機能を有するものができあがった[7]

1969年の夏、トンプソンはこれらを全面的に書き直し、新たなOSを作成した。トンプソンによれば、このOSはマルチプロセスを備えていたが、PDP-7には一台の端末しか接続されていなかったため同時に一人しか利用できなかった。そこでグラフィック表示用のディスプレイを端末として使い、同時に二人が利用できるようにした。このシステムは同僚の研究者達の好評を博し、二台の端末は常に満席であったという[9]

この時点では、OSの開発はベル研究所に認知されたものではなく、彼らの私的な活動であった。研究所からの資金提供はなく、OSには名前も付けられていなかった。できあがったOSはMulticsと比べると小さなOSであった事から、ブライアン・カーニハンによって、MulticsのMulti(多数の)をUni(単一の)に変えてUnicsと名付けられた[7][10][11][12]。後につづりがUnixと変更された。このつづりの変更の経緯について、カーニハンは「思い出せない」と言っているが、当時の開発グループ内では比較的年長者であったピーター・ノイマンは「法務上の理由であろう」と語っている[12]

PDP-7は当時としても古く、また開発グループの所有する計算機でもなかった。このため、開発グループでは、当時の最新機種であったPDP-11を購入し、その上でUnixが動作するようになった。1971年のUnixバージョン1はPDP-11/20上で動作した。バージョン3までのUnixはアセンブリ言語で開発された。ベル研究所ではその後もUnixの改良が続けられ、パイプなどの機能が追加されていった。1973年に公開されたバージョン4において、UnixはC言語で書き直された[7]。リッチーによれば、この高級言語の使用はコードの書き易さや可読性を念頭に置いたもので、この時点では移植性は重視されていなかった[13]という。1975年に公開されたバージョン6はソースコードと共にベル研究所の外部、主に大学に広く配布され、教育・研究に使われた。バージョン6の対象機種はPDP-11シリーズのみであった。1976年の12月、ウロンゴン大学のリチャード・ミラーらはInterdata 7/32への移植を開始した。彼らは1977年の4月にInterdata 7/32上でUnixを動かす事に成功し、7月には大学の正式なシステムとなった[14]

ベル研究所では、Unix上で開発されたアプリケーションを他のOSに移植する過程で、OS間の差異がその障壁となる事を認識していた。この解決策として、Unix自体を移植可能にするプロジェクトがスティーヴ・ジョンソンらによって1977年初頭に始まり、1978年の春にInterdata 8/32への移植を完了した[15]。この移植版自体は公開されなかったが、この時に開発されたソースコードチェックツールや新たなCコンパイラは、1979年に公開されたバージョン7と共に配布された。これらの、ベル研究所で開発された初期のUnixは、現在ではResearch Unixと呼ばれている。

1970年代末から1980年代初頭にかけて、Unixは学術分野だけではなく産業分野でも使われるようになっていき、HP-UX, SunOS/Solaris, AIX, Xenix等のOSが作られた。1980年代の末には、AT&T Unixシステムズ・ラボラトリーズサン・マイクロシステムズが共同でUNIX System V Release 4 (SVR4) を開発した。これは、後の多くの商用Unixの母体となった。

1990年代には、BSDLinuxといったUnixあるいはUnix系OSが、コンピュータ・ネットワークを通じて世界中の開発者の協力を得て開発され、人気を得ることになった。2000年には、AppleがUnixに基づいてDarwinというコアに基づくMac OS Xを開発した[16]

今日、Unixはサーバワークステーションモバイル機器などで広く使われている[17]

標準化

1980年代後半から始まったオペレーティングシステム標準化の動きはPOSIXとなって結実し、あらゆるオペレーティングシステムの共通のベースラインとなっている。IEEEは主要なUnixシステムに共通する構造からPOSIXを作り、1988年に最初のPOSIX標準を公表した。1990年代初め、よく似た標準化が業界団体Common Open Software Environment (COSE) イニシアティブによって開始され、The Open Groupの管理するSingle UNIX Specificationとなった。1998年、POSIXとSingle UNIX Specificationの共通定義を提供するため、IEEEとThe Open GroupはAustin Groupを立ち上げた。

1999年、互換性を達成するため、いくつかのUnixシステムベンダーはSVR4のExecutable and Linkable Format (ELF) をオブジェクトファイルおよび実行ファイルの標準規格とすることに合意した。これによって、同一CPUアーキテクチャでの各種Unixシステムでバイナリ互換性の大部分が確保されることになった。

Unix系オペレーティングシステム(特にLinux)におけるディレクトリ構成の標準としてはFilesystem Hierarchy Standardがある。

コンポーネント

Unixシステムは複数のコンポーネントから成っている。カーネルに加えて、開発環境、ライブラリ群、文書、ソースコードなどが含まれる。Unixは自己完結的ソフトウェアシステムだった。そのため重要な学習ツールとして頭角を現し、幅広い影響を及ぼすことになった。

各種コンポーネントを含めても初期のシステムは大きくはなかった。V7 UNIXの場合、全バイナリと全ソースにマニュアルなどの文書を含めても10MB以下であり、9トラックの磁気テープ一本で事足りた。文書を印刷したものも2巻にまとまっていた。

Unixコンポーネントの名前やファイルシステム上の位置は歴史と共に変化している。それでもV7の実装は多くの場合初期の正規な構造と見なされている。

  • カーネル – /usr/sys配下にソースコードがあり、以下のようなサブコンポーネントから成る。
  • 開発環境 – 初期のUnixには、ソースコードからシステム全体を作りなおせる程度の開発環境が含まれていた。
    • ccC言語コンパイラ(V3 UNIXから)
    • as – アセンブラ
    • ld – リンカ(リンケージエディタ
    • libライブラリ(/libまたは/usr/libにインストールされる)。libcはC言語のランタイムをサポートするシステムライブラリ。他に数学ライブラリ (libm) などの各種用途のライブラリがある。V7 UNIX では、システムライブラリの一部として標準入出力ライブラリstdioが初めて導入された。その後機能が追加されるにしたがってライブラリの数も膨大なものになっていった。
    • makeビルドマネージャ(PWB/UNIXから)。
    • include – ソフトウェア開発用ヘッダファイル群。標準インタフェースとシステム定数を定義している。
    • その他の言語 – V7 UNIXには、FORTRAN 77コンパイラ、任意精度演算言語(bc、dc)、スクリプト言語AWKが含まれており、その後のバージョンでさらに言語処理系が追加されていった。初期のBSDではPascal関連のツール群があり、最近のシステムではGNUコンパイラコレクションがある。
    • 他のツール群 – ファイルアーカイバ (ar)、シンボルテーブルを表示するツール (nm)、コンパイラ開発ツール (lex, yacc)、デバッグ用ツールなどがある。
  • コマンド – コマンドはUnixにおけるユーザープログラムの総称で、システム管理用(cronなど)、汎用ユーティリティ(grepなど)、テキストフォーマットや組版のパッケージといったアプリケーションに近いものなどが含まれる。
    • sh – 「シェル」はプログラム可能なコマンドラインインタプリタであり、ウィンドウシステムが登場する以前はUnixの主たるユーザインタフェースだった。GUIが主流となってからもよく使われている。
    • ユーティリティcplsgrepfind などUnixの中心的ツール群。さらに以下のように分類される。
      • システムユーティリティmkfs英語版fsck などのシステム管理ツール群
      • ユーザーユーティリティpasswdkill などの環境管理ツール群
    • 文書整形 – Unixは当初から文書作成と組版のシステムとして使われてきた。nrofftrofftbl英語版eqn英語版refer英語版pic といったコマンドがある。最近のUnixシステムでは、TeXGhostscriptのパッケージもある。
    • グラフィックスplotサブシステムは単純なベクター描画をデバイスに依存しない形で生成し、デバイス対応のインタプリタが実際の描画を行う。現代のUnixシステムでは標準ウィンドウシステムおよびGUIとしてX11を含んでいることが多く、またOpenGLをサポートしていることも多い。
    • 通信 – 初期のUnixシステムにはシステム間通信機能は含まれていなかったが、ユーザー間の通信機能として mailwrite があった。V7 UNIX でシステム間通信のためのUUCPが導入され、BSD 4.1c でTCP/IPユーティリティが追加された。
  • 文書 – Unix は付随する文書を全てオンラインの機械が読める形で含めた最初のOSである。
    • man – 各コマンド、ライブラリ関数、システムコールヘッダファイルなどのマニュアル。
    • doc – 主要サブシステムについての長めの文書。C言語やtroffに関するものなどがある。

影響

Unixシステムは他のオペレーティングシステムに大きな影響を及ぼした。成功の要因は以下の通りである。

  • 直接的な対話
  • IBMやDECといった大きなベンダーの支配下にならなかった点
  • 当初、AT&Tが無料で提供していた点
  • 安価なハードウェアで動作する点
  • 採用が容易で、他のマシンへの移行が容易

初期の実装では必須とされていたアセンブリ言語ではなく高水準言語で書かれている。先例として Multicsバロース B5000 があるが、このアイデアを一般化したのはUnixである。

当時の他のOSに比べて大幅に単純化したファイルモデルを採用しており、あらゆるファイルを単純なバイト列として扱っている。ファイルシステムの階層にサービスやデバイス(プリンター端末ディスクドライブなど)が含まれており、一様なインタフェースを提供しているが、単純なバイトストリームモデルに適さないハードウェア機能にアクセスする場合は、ioctlとモードフラグなどの追加機構を必要とすることがある。なおPlan 9ではこのモデルをさらに推し進め、追加機構を不要にしている。

Unixはまた、Multicsで導入された階層型ファイルシステムを一般化させた。当時の主要なOSでもストレージを複数のディレクトリやセクションに分割していたが、その階層レベルは固定で、1レベルということが多かった。いくつかの主要OSもMulticsにならってサブディレクトリを再帰的に追加する機能を備えるようになった。DECのRSX-11Mは "group, user" 型階層を採用し、それがVMSのディレクトリに進化した。CP/Mではボリューム単位であってディレクトリ階層がなかったが、MS-DOS 2.0 以降でサブディレクトリが利用可能となった。HPのMPEにおける group.account 型階層や、IBMのSSPOS/400のライブラリシステムもある。それらシステムがまとめられ、より広範囲なPOSIXのファイルシステム仕様となった。

Multicsはまた、コマンドラインインタプリタを通常のユーザーレベルのプログラムとし追加コマンドを個別のプログラムで提供したが、Unixがその方式を一般化させた。Unixシェルはコマンドの対話的使用にもスクリプト言語としても使える(シェルスクリプト。IBMのJCLのようなジョブ制御専用言語は存在しない)。シェルもOSコマンド群もそれぞれ独立したプログラムなので、ユーザーはシェルを選べるし、自分で書くこともできる。新たなコマンドを追加してもシェルを修正する必要はない。また、Unixの独創的なコマンドライン構文により、パイプでコマンド同士を連結して使用することが可能となった。後のコマンドラインインタプリタの多くはUnixシェルに触発されている。

Unixの根本的な単純化想定は、ほぼあらゆるファイルフォーマットに改行コードで分割されたASCIIテキストを採用した点である。初期のUnixにはバイナリエディタはなく、システムの設定は全てシェルスクリプトというテキストファイルで行われていた。入出力もバイト単位が基本であり、Record-oriented filesystemとは異なる。ほとんどあらゆるものをテキストで表したことでパイプの有効性が高まり、単純で汎用的なツール群を開発するだけで、それらを連結して複雑な処理が可能となった。テキストとバイトに集中したことで、他のシステムよりもスケーラビリティと移植性が遥かに向上した。その後、テキストに基づくインタフェースは様々に応用可能と判明し、印刷言語(PostScriptODF)やインターネット・プロトコル・スイート上のアプリケーション層のプロトコル(FTPSMTPHTTPSOAPSIPなど)に採用されている。

Unixは正規表現を一般化させるのにも一役買っており、今では様々な場面で正規表現が見られる。

C言語はUnix以上に広がり、今ではシステムプログラミングやアプリケーションプログラミングで広く使われている。

初期のUnix開発者らは、モジュール性と再利用性の概念をソフトウェア工学に導入する重要な役目を果たし、「ソフトウェアツール」という考え方を生み出すことになった。

Unixは比較的安価なコンピュータにTCP/IPプロトコルをもたらし、それがインターネットの爆発的な広がりに貢献するとともに、他のプラットフォームへのTCP/IP実装の手本となった。これによりネットワークの実装における多数のセキュリティホールが明らかとなった。

当初からUnixがオンライン文書を揃え、ソースコードへのアクセスを可能にしていたことは、プログラマの期待を高めることにつながり、1983年のフリーソフトウェア運動立ち上げに貢献した。

Unixの主要な開発者ら(およびUnix上で開発されたプログラム群)は、ソフトウェア開発の文化的規範を徐々に確立していき、その規範群がUnixのテクノロジー自体と同じくらい重要で有力なものとなっていった。それをUNIX哲学と呼ぶ。

フリーなUnix系OS

UNIXが商用の「閉じた」OSとなっていく中で、現在につながるフリーソフトウェア/オープンソースのムーブメントが勃興し、UNIX同様の操作性と機能を提供するフリーなOSが生み出された。

多くのUNIX系OSがオープンソースで開発されているが、以下に挙げるOSは、ライセンスなどの問題からUNIXとは公称しない。

GNU/Linux

1983年リチャード・ストールマンフリーソフトウェア財団 (Free Software Foundation; FSF) を設立し、GNU (Gnu's Not Unix) プロジェクトを開始した。このプロジェクトの目的は、再配布自由・改変自由なUNIXクローンのOSを作成することであった。このプロジェクトにより、多くのUNIXシステム上で動作するソフトウェア、例えばEmacsGCC等が作成され、これらソフトウェアは多くのUNIXシステムで使用されるようになった。しかしながら、OSの中核をなす "Hurd" の完成に手間取った(Hurdは現在も開発中)。

1991年リーナス・トーバルズLinuxカーネルを開発した。Linuxカーネルの特徴として、POSIXに準拠するように設計されたこと、GNUプロジェクトによって開発された様々なツールが動作するように作成されたこと、またライセンスにGPLが採用されたこと等が挙げられる。その結果、GNUプロジェクトの開発したソフトウェア等と共に、完全フリーのUNIXクローンとして利用されるようになった。有名な商用ディストリビューションとしてかつてRed Hat Linuxが存在し、現在ではRed Hat Enterprise LinuxSUSE Linux等がある。

なおLinuxという名称は本来カーネルのみの名称にすぎず、OSとして完成させるための他のシステムの多くはGNUプロジェクトの産物である。そのためFSF側ではOSとしての名称は「GNU/Linux」とすべきだと主張しており、この名称を採用した最も有名かつ完全にフリーなディストリビューションのひとつとして「Debian GNU/Linux」、およびそこから派生した「Ubuntu」などがある。ただし、そのようなディストリビューションの多くは、FSF の唱えるフリーソフトウェアの精神と相容れない仕様を含むものが多いため、FSF からは「不自由」なディストリビューションと見なされている。[18]

Linuxカーネルを利用した派生OSにAndroid他がある。

オープンソース系BSD

4.3BSD Network Release 2 (Net/2) に起源を持つのがFreeBSDNetBSDOpenBSDDragonFly BSDTrueOSのいわゆるBSD系Unixである。FreeBSDは安定性重視、NetBSDは新機能対応と移植性に優れ、OpenBSDはセキュリティを重視し、DragonFly BSDはマルチCPU構成での高性能という特徴を有し、TrueOSはカジュアルユーザにおいて簡単に導入して使えることを目指しており、特にFreeBSDはウェブ・ホスティングなどで標準的に使用されている。

USLとの和解以降これらBSD系UNIXはライセンス問題を排除した4.4BSD-Lite2をベースに移行し、いずれもフリーなOSとなっている。

オープンソース系BSDをベースとした商用OSとしてはAppleの「macOS」が知られており、中核部分を「Darwin」としてソース公開している。

2038年問題

Unixでは、システム時刻の値を1970年1月1日の午前0時0分0秒からの秒数で表しており、これをUNIX時間と呼ぶ。この値のデータ型は time_t で、歴史的に「符号つき long」と定義されている。32ビットのシステムでは、2038年1月19日にこの値が1個の0に31個の1が続く最大値 (0x7FFFFFFF) となり、1秒後には1個の1と31個の0が続く値 (0x80000000) となる。するとシステム時刻は、実装によって(符号ビットを無視するか否かによって)1901年または1970年にリセットされる。

1970年より前の時刻をUNIX時間で表すことは滅多にないため、time_t を符号なし32ビット整数と定義し直すという対策が考えられる。しかし、それでは単に問題を2106年2月7日に遅延させるだけであり、時刻の差を計算するソフトウェアでバグを生じる可能性がある。

この問題に対処しているバージョンもある。例えば、SolarisやLinuxの64ビット版では、time_t は64ビットとなっており、OS自身も64ビットのアプリケーション群も約2920億年間正しく動作する。64ビット版Solarisで既存の32ビットアプリケーションを動作させることもできるが、その場合は問題が残ったままである。一部ベンダーは標準の time_t はそのままにして、64ビットの代替データ型とそれを使用するAPIを別途用意している。NetBSDでは、次のメジャーバージョンである 6.x で32ビット版でも time_t を64ビットに拡張することを決定した。従来の32ビットの time_t を使用しているアプリケーションは、バイナリ互換性レイヤーを作って対応する。

ARPANET

1975年5月、DARPAは、ARPANETで使用するOSとしてなぜUnixが選ばれたのかを詳細に説明するRFC 681を文書化している。評価過程も文書化されている。当時のUnixのライセンス料は教育機関以外には2万ドル、教育機関には150ドルとなっていた。ARPAネットワーク全体でライセンス供与を受けるという提案に対して、ベル研究所はそういった示唆についてオープンだったと記されている。

その中で特に長所とされたのは、以下の点である。

  • ローカルな処理ファシリティ
  • コンパイラ
  • テキストエディタ
  • roff
  • 効率的なファイルシステムとアクセス制御
  • パーティションのマウント機能
  • デバイスファイルによる周辺機器の抽象化
  • Network Control Program (NCP) が統合されている点
  • ネットワークコネクションをスペシャルファイルとして扱え、標準的なI/O用システムコールでアクセスできる点
  • プログラム終了時に、オープンしていたファイルが全て自動的にクローズされる点

ブランディング

1993年10月、Unix System Vのソースについての権利を保有していたノベルは、登録商標の権利をX/Open(現在のThe Open Group)に移管し[19]、1995年にはUNIX関連事業をSCOに売却した[20]。ノベルが実際のソフトウェアの著作権もSCOに売却したのかについては2006年に裁判となり、最終的にノベルが勝利した。SCO側は控訴したが、2011年8月30日に裁判所が棄却したため、裁判は終結した[21]

アメリカなどで、登録商標としてのUNIXはThe Open Group が保有している。現在、日本における「UNIX」という商標は複数の区分で登録されており、電子計算機関連においてアメリカン テレフォン アンド テレグラム カムパニーやエックス/オープン・カンパニー・リミテッドの登録もある。

日本では、日本マランツ(現在は合併してディーアンドエムホールディングス)が、電気機器分野でUNIXという名前で先行して商標登録を行なっていたため、UNIXという商標の権利関係がはっきりしていなかったことがあった。このことから、書籍などでの商品名などの登録商標についての断り書き一覧などで「UNIXオペレーティングシステムは,AT&Tのベル研究所が開発し,AT&Tがライセンスしています.」(『Life with UNIX』邦訳版での例)などのように書かれたことがあった。現在も日本マランツは音響機器用に「unix」を使用している。他の国でも同様に分野を限定して同じ商標を別の意味で登録することができ、本棚、インクペン、瓶詰めの膠(にかわ)、おむつ、ヘアドライヤー、食品コンテナなどで登録された例がある[22]

Single UNIX Specificationに完全に準拠しているとThe Open Groupに認められたシステムだけがUNIXを名乗ることができる。そのため認証を受けていないシステムは「Unix系」と呼ばれる。

The Open Groupは "UNIX" を特定のOS実装ではなく、OSのクラスを指すものと定義している。すなわち、Single UNIX Specificationに準拠しているとThe Open Groupに認められたシステムのみがUNIX 98UNIX 03といった登録商標を付けることを許されており、そのためにベンダーは認証料と毎年のロイヤルティを支払わなければならない[23]。認証を受けたOSとしては、AIXHP-UXIRIXSolarisTru64(かつての "Digital UNIX")、A/UXmacOS[24][25]z/OSの一部などがある。

認証を受けていないシステムを表すため、(また、ジャーゴンファイルのUN*Xの項目によれば、商標であることを標示するための「TM」を避けるために)、「UN*X」のようにグロブ記法を使って表記されることがある。ジャーゴンファイルの記述によれば、法的にはUNIXと書いてもTMを付けることは強制されないのだが、この記法は広く使われてしまっている(ジャーゴンファイル訳本の『ハッカーズ大辞典』初版にある「逆にアスタリスクを使うと権利侵害になるらしい」という記述は誤訳なので注意)。

The Open Groupは商標の普通名称化を防ぐため、UNIX という語には常に「システム」などの語をつけて使って欲しいとしている。

本来の形は "Unix" なのだが、Unix という形もよく使われている。これについてデニス・リッチーは、Association for Computing Machinery (ACM) の開催した第3回OSシンポジウムにUnixの論文を送る際「troffと新たな組版システムを開発したばかりでスモールキャピタルを印字できることに興奮して、それを使ってしまったため」だとしている[26]。当時の多くのOSは大文字のみで名称を記述するのが一般的だったため、多くの人は習慣的に大文字のみで "UNIX" と記述した。

UnixやUnix系の複数のブランドを総称するため、Unixの複数形が時折使われることがある。最も一般的な複数形は Unixes だが、Unixをラテン語の名詞の第3格変化として扱い複数形を Unices とする例もよく見られる。古英語的に Unixen とする例はまれだが、ときおり見かける。

主なUnix系OS

フリーなもの

Berkeley Software Distribution (BSD) およびBSDの子孫
現在主要なものに、FreeBSDNetBSDがある。いずれも386BSDから生まれた。
FreeBSD
BSDの子孫。多くの派生版がある(中には有償のものも含まれる)。
Darwin
AppleがDarwinプロジェクトによってオープンソース化したmacOSの中核。FreeBSDのソースコードをベースとし、中核にはMachが使われている。
DragonFly BSD
FreeBSDから派生したBSDの子孫ハイブリッドカーネルを採用している。
NetBSD
BSDの子孫。58以上のアーキテクチャに対応している。
OpenBSD
NetBSDから派生したBSDの子孫
GNU/Linux
Linuxカーネルから派生した、Linuxディストリビューション全般やELIKS (en:Embeddable Linux Kernel Subsetを言う。中には有償のものも含まれる。Linux Standard Base仕様を元に設計されるため、ほぼPOSIX準拠となる。Linuxカーネルを利用した派生OSにAndroid他がある。
GNU/Hurd
GNUプロジェクトの公式OSとして現在開発中である。中核にはMachが使われている。
Solaris/OpenSolaris
サン・マイクロシステムズのOS。現在、最新版のSolaris 11が提供されているが、以前の版も最終リリースのものがダウンロード可能である(Solaris 8, Solaris 9)。もともとは有償版しかなかったが、SPARC版が無償化され、ついでx86版も(一度有償に戻ったが)無償化された。また、カーネル等の主要コンポーネントをオープンソース化したOpenSolarisもリリースされ、そこから多くの派生ディストリビューションも生まれている。
MINIX
IBM PCでも動作すること目的に開発された教育用Unix系OS。80386の仮想記憶には対応していなかったため、Linuxに仮想記憶が実装されるきっかけとなった事でも有名[27]。なお、当初はフリーではないライセンスでリリースされていたが、2000年にバージョン 2.0.2 が BSDライセンスのもとでリリースされ、フリーなOSとなった。
Haiku
BeOS互換のオープンソースOS。POSIXに準拠するよう開発されている。

フリーではないもの

AIX
IBMの、SVR4とBSD4.4をベースとしたUNIX。現在、最新版のAIX 7.2が提供されている。
ACIS英語版
IBMが6100RT/PCシリーズ用に提供していた4.2BSDベースのOS。アカデミック分野の顧客にのみ提供された。AT&T UNIXとBSDのライセンスを持つ顧客にはソースコードも提供された。
AOS
IBMが6100RT/PCシリーズ用に4.3BSDを移植したもの。アカデミック分野の顧客にのみ提供された。AT&T UNIXとBSDのライセンスを持つ顧客にはソースコードも提供された。
Domain/OS
アポロコンピュータが開発したワークステーションに搭載されたUNIXの機能も持つ独自OS。マイクロカーネル上のOS MiddlewareとしてBSD4.3とSVR3を搭載し同時独立動作を可能とした。ヒューレット・パッカード (HP) に買収されたその後は市場から姿を消した。
Ultrix
DECが同社のVAXやDECstation向けに出していた4.2BSD/4.3BSDベースのOS。初の64ビット実装を行ったUNIXとしても知られている
Tru64 UNIX
DECが開発した、Alphaアーキテクチャのサーバ/ワークステーション用のOS。当初は「OSF/1」と呼ばれ「Digital UNIX」を経て Tru64 UNIX となった。DECの買収とともに、コンパックヒューレット・パッカード (HP) へと引き継がれ、現在も販売されている。
DG/UX
DataGeneralのサーバ/ワークステーション用のOS製品の商標。System-V系をベースにしているが、一部BSD系の機能を付加
HP-UX
ヒューレット・パッカード (HP) のPA-RISCアーキテクチャによるサーバ/ワークステーション用のOS製品の商標。OSF/1への移行を前提にSVR3系をベースに実装されたが、そのまま発展したOS。HP-UX V10以降はSVR4ベースとなる。2002年リリースのHP-UX 11i v1.6では業界で初めてインテルItaniumプロセッサに対応する商用OSを提供した
OpenServer
SCOがマイクロソフトから引き継いだXENIXを発展させたIBM PC用のUNIX。一時期はPC用UNIXのトップシェアを誇っていた。
OS/390, z/OS
メインフレーム専用OSであるOS/390およびz/OSはPOSIX準拠OSである。通常UNIXと呼ばれないが、標準のUNIX環境(Unix System Services - USS)により、OS/390やz/OSのネイティブアプリケーションとPOSIX準拠アプリケーションを同時稼働できる。
macOS
独自改良のMachマイクロカーネルとFreeBSDのユーザランドによって実現されたOS (Darwin) 上にCocoa, Carbon, Core Foundationなどを実装したMac用OS。なお、2007年10月に出荷されたMac OS X v10.5以降は、The Open Groupの認証を受けたUNIXである[28]。また、同じくDarwinを実装した派生OSにiOSがある。
A/UX
Apple Computerが開発した、SVR2ベースのMacintosh用OS。X11やコンソールのほかに、Mac OSによく似たインターフェイスのウィンドウシステムを備えていた。当時のMacintoshはMac OS以外をブートできないため、いったんSystem7が起動する。
MachTen
MachマイクロカーネルとFreeBSDをベースとした、Mac OS内で起動するOS。
BeOS
BeのワークステーションであるBeBox、またはPower Mac、PC/AT互換機で動作するUNIX互換OS。メディアOSとしてマルチメディアを扱うのに長けた。マイクロカーネルにはMachを使用しているが、ユーザカーネルなどのソースコードはオリジナルUNIXは使用せず、POSIX仕様をベースに新しくフルスクラッチされた。
BSD/OS
初期BSDから分岐し商業プロダクトとなったUNIX。BSDiが開発、後に組込み系でリアルタイム制御に対応したUNIX互換OS「LINX」を開発・販売していたWind Riverがソフトウェア部門ごと買収。当初の名前はBSD/386
XENIX
マイクロソフトがSVR2をベースに開発・販売していたIBM PC向けUNIX。仮想メモリをもたない8086とFDで動作するシンプルなシステム。教育用および安価なUNIX環境として高いインストールベースを誇った。1983年SCOから販売されていたが、マイクロソフトがサーバOS戦略を独自路線(OS/2 → Windows NT)へ切り替えたため、後にSCOへ売却された。
PANIX
エー・アイ・ソフトが、SVR4をPC/AT互換機・PC-9800シリーズに移植して発売していたもの
UnixWare
USLの純正SVR4がノベルに売却され、ノベルの技術(Netwareのサポートなど)を取り入れられたUNIX。その後SCOへ売却される。
IRIX
シリコン・グラフィックス (SGI) のUNIX。GUIに優れる。映像製作分野でのシェアが高い。SVR4.2系
NeXTSTEP/OPENSTEP
NeXT ComputerのOS。当初は同社のワークステーション専用のOSで、Machに4.3BSD相当の機能を搭載したものであった。後にPC/AT互換機などで動作するOSとして単体販売もされた。
Coherent英語版
Marc Williams製。UNIXライクなOS。
UNICOS
Crayのスーパーコンピュータ用のUNIX。
RISC/os
ミップス・コンピュータシステムズのUNIXワークステーション/サーバ専用のUNIX。日本ではクボタコンピュータ(株)が代理店をしていた。
Σ
通産省主導の国策プロジェクトとして開発されたOS。開発当初はBSD系だったが後にSystem V (Release2) 系に路線変更。プロジェクト的には失敗に終わったとされ、また、その後も少なからず他の国策プロジェクトに悪影響を与えたとされる。
HI-UX
日立製作所のワークステーション、サーバで動作する。当初は68000系ワークステーションで稼働したSystem V系独自OSであったが、後にハードウェアアーキテクチャの変更(PA-RISC)に伴い、HP-UXをベースとした製品へ変更となった。
NEWS-OS
ソニー製のNEWSワークステーション専用のUNIX。当初は4.2BSDベースであったが、後に4.3BSDベースとなる。終末期にはSVR4.2ベースとなった(NEWS-OS6.x)。
OA/UX
シャープ製のOAシリーズ、IXシリーズのオフコン/ワークステーション専用のUNIX。当初はSystemIIIベースであったが、後にSystemVベースとなる。コンソール画面での漢字表示、オンボードの辞書ROMを用いたかな漢変換など独自の日本語化が行われていた。
UniOS-U/UniOS-B/UniOS-Σ
オムロンが開発・販売していたLUNAワークステーションのうちMC68030を用いたモデル専用のUNIX。SystemV系、BSD系、Σ準拠の3種類が供給された。MC88000を搭載したLUNA88k-WSのOSはMachマイクロカーネル(ユーザカーネルは4.xBSD)であった。
EWS-UX(UX/4800)
日本電気 (NEC) 製のEWS4800ワークステーション専用のUNIX。SVR3系のCISC版とSVR4(当初は、SVR4.0,後にSVR4.2、4.2MP)系のRISC版が存在する。その後、UP-UXをOSとするUP4800サーバ・シリーズが発売になり、これらが統合されてUX/4800に名前が変更となった。CPUをR10000シリーズ(64ビット)としたモデルの発売に伴い、32ビット版と64ビット版が提供されている。
PC/UX
NECPC-9800シリーズ80286ベースのもの)専用のUNIX。SVR2ベース。
SUPER-UX
NEC製SXスーパーコンピュータ向けのUNIX。なお、地球シミュレータ向けには、このOSを地球シミュレータ向けに拡張したものが利用されている。
SX/A
富士通ミニコンFACOM Aシリーズ(A30など)・Σ-Station(Σプロジェクトとは無関係)シリーズ専用のUNIX。純正SVR3をベースに4.2BSDのTCP/IP機能を盛り込まれていた。
SX/G
富士通ワークステーションFACOM Gシリーズや後継のFMGシリーズのUNIX。Unix System Vをベースにしていた。
UXP/DS
富士通DS/90GP7000Dシリーズ専用のUNIX、USL純正のSVR4をベースに開発された。
UXP/M
富士通製汎用機(FACOM後継機であるMシリーズ、GS (Gloval Server) シリーズ)で動作するSVR4互換のUNIX。他の富士通汎用機のOS (MSP/VSP) と同様に、VM上で稼動する。
RTU
MASSCOMP英語版製リアルタイムUNIX、世界で初めてUNIXをリアルタイム化したUNIX。SVR3系カーネルをベースに4.2BSDのTCP/IPを利用していた。コンカレント・コンピュータに買収後名前は消えるが、機能性は現在も継承されている。
CX/UX
ハリスコンピュータ製NHxxxxシリーズで動作する、SVR3系リアルタイムUNIX。SVR3系カーネルをベースに4.2BSDのTCP/IPを利用していた。コンカレント・コンピュータに買収後名前は消えるが、機能性は現在も継承されている。
PowerMAX OS
コンカレント・コンピュータ製PowerHawk、NightHawk、TurboHawkシリーズで動作する。SVR4ES/MP純正カーネル(USLのカーネルベース)にPOSIX1003.1b(リアルタイム)、POSIX1003.1c(POSIXスレッド)の拡張を行い、XPG4の認定も受けている。事実上、最後の商用UNIXにおけるリアルタイムUNIXである。(2011年現在、販売中)
NCR UNIX
NCRの発売するUNIX。

UNIX環境を提供するソフトウェア

OSではないが、UNIXに相当する環境を提供するソフトウェア。

脚注

参考文献

  • S.R. Bourne 著、三好 彰, 木下 恂(共訳) 編『UNIXシステム』マイクロソフトウェア、1985年。 
  • GLYN MOODY 小山祐司監訳『ソースコードの反逆』株式会社アスキー、2002年6月11日。 

関連文献

書籍
  • Salus, Peter H.: A Quarter Century of UNIX, Addison Wesley, 1 June 1994; ISBN 0-201-54777-5
映像
  • Computer Chronicles (1985). "UNIX".
  • Computer Chronicles (1989). "Unix".

関連項目

外部リンク