検索この項目では、オペレーティングシステムについて説明しています。日本マランツのブランド「unix」については「日本マランツ#unixブランド」をご覧ください。ソースモデル歴史的にはある時期からクローズドソースとなったが、近年のUnix系プロジェクトの一部はオープンソースである。[júːniks][1])は、コンピュータ用のマルチタスク・マルチユーザーのオペレーティングシステムの一種である。公式な商標は「UNIX」だが、商標以外の意味として「Unix」、またはスモールキャピタルを使用して「Unix」などとも書かれる。Unixは1969年、AT&Tのベル研究所にて、ケン・トンプソン、デニス・リッチー、ブライアン・カーニハン、ダグラス・マキルロイ、マイク・レスク(英語版)、ジョー・オサンナ(英語版)らが開発を開始した。当初アセンブリ言語のみで開発されたが、1973年にほぼ全体をC言語で書き直したことで、実行効率は低下したが、その後の開発が容易になり、異なるハードウェアへの移植性も向上した。現在では「Unix」という語は、Unix標準に準拠するあらゆるオペレーティングシステムの総称でもある。現在ではUnixシステムは多数の系統に分かれており、AT&Tの開発停止後も、多数の商用ベンダーや非営利組織などによって開発が続けられている。1970年代から1980年代の初期にかけて、Unixは大学や研究所などの教育機関で広範囲に採用され、特にカリフォルニア大学バークレー校をオリジナルとするBSD系統が誕生した。Unix)とも呼ばれる。Specificationを完全に満たすと認証を受けたシステムのみが「UNIX」の商標を得られるとした。このためそれ以外のシステムは(ずっと以前から、AT&T版およびBSD以外を指して使われていた用語だが)「Unixシステムライク」または「Unixライク(Unix系)」と呼ばれるようになった。Groupはその呼称を気に入っていない[2]。現在では多く使われているUnixとしてはmacOS、AIX、HP-UX、Solarisなどがある(いずれも商用)。BSDなど)がある[3]。外部リンク概説[編集]Unix系統の系統図Unixオペレーティングシステムは、サーバやワークステーションだけでなく、携帯機器でも広く使われている[4]。Unix環境とクライアントサーバモデルは、個々のコンピュータによるコンピュータ処理を、コンピュータネットワークで連係されたコンピュータ処理に変革し、インターネット構築の重要な要素ともなった。Unixは「プログラマの仕事台」を意図して開発されたもので、アプリケーションソフトウェアを動作させる汎用OSは意図していなかった。このOSが学界に広がり始めると、ユーザーが自前のツールをその上で作り、それを同僚などと共有する形でシステムが大規模化していった[5]。UnixとC言語はAT&Tにより開発され、政府や教育機関に配布され、他のオペレーティングシステムよりも幅広く各種のコンピュータファミリーに移植された。このためUnixは「オープンシステム」の同義語となった。Unixは移植性、マルチタスク、タイムシェアリング方式によるマルチユーザなどを重視して設計された。Unixシステムは、様々なコンセプトで特徴付けられている。ファイルとして扱う事、多数のソフトウェアツールを組み合わせて使用する事、簡単なプログラムはコマンドラインインタプリタのパイプを使ってつなげることができ、単一の多機能プログラムで同等機能を実装するのとは逆の発想であること、などである。これらのコンセプトはUNIX哲学として知られている。いう本で「システムのパワーは、プログラム自身からではなくプログラム間の関係から生じるという考え方」としている。Unixでは、「オペレーティングシステム」は主となる制御プログラムであるカーネルと、多数のユーティリティより構成される。カーネルは、プログラムの開始や停止、ファイルシステムの取り扱い、他の多くのプログラムが共用する共通的な「低レベル」のタスク、そして重要なスケジューリングなどのサービスを提供する。これらのアクセスを調停するために、カーネルはシステムへの特権を持ち、システムは「ユーザー領域」と「カーネル領域」に分けられる。カーネルの肥大化の潮流を逆転させ、より少ないユーティリティで最大のタスクを実行できるシステムに戻る目的で、マイクロカーネルのコンセプトが登場した。コンピュータが1つのハードディスクと入出力用の端末から構成されていた時代には、Unixのファイルモデル(ストリーミングデータ)は最適な入出力として働いた。現代のシステムではネットワークや新しい装置が求められ、グラフィカルユーザインタフェースが開発され、ファイルモデルはマウスなどが発生させる非同期イベントの取り扱いのタスクには不適当と判明し、1980年代には非同期入出力やIPCのメカニズムに加えて、ソケット、共有メモリ、メッセージキュー、セマフォなどが追加された。通信プロトコルなどの機能はカーネルの外に移動した。Unixは現在では、サーバーやパーソナルコンピュータの一部に加え、携帯電話などの組み込みシステムから、メインフレームやスーパーコンピュータなどの一部にも使われている。開発がなされた[6]。Multicsは様々な技術革新をもたらしたが、多くの問題も抱えていた。開発者によって意図されたわけではないが、結果的にMulticsはやがて巨大で複雑なものとなり、ベル研究所はプロジェクトから徐々に距離を置くようになっていった。Multicsプロジェクトに最も遅くまで関わったベル研究所の研究員として、ケン・トンプソン、デニス・リッチー、M・D・マキルロイ、J・F・オサンナらがおり[7]、彼らはOS開発をもっと小規模に再開させることを決めた。当時についてリッチーは「我々が守りたかったのは、プログラミングのためのよい環境だけでなく、仲間意識を生み出すシステムだった。遠隔アクセスとタイムシェア型のマシンで提供される共同社会的コンピューティングの本質は、単にプログラムの入力手段がキーパンチから端末になったというだけでなく、仲間同士のコミュニケーションを促進するということは経験からわかっていた」と述べている[7]。ケン・トンプソンはMultics開発に携わりながら、その上でファイルとページングの新たなシステムのシミュレーションプログラムを書いた。TravelというゲームもMultics上で開発した。このゲームはGE-645上で動作させるにはコストが高く、実際に性能もあまり良くなかった。彼はベル研究所であまり使われていないDEC製のシステムであるPDP-7を発見[8]。このPDP-7上でアセンブリ言語を用いてこのゲームを移植し[9]、さらにベル研究所のトンプソンとリッチーを中心とする研究者チームが階層型ファイルシステム、プロセスとデバイスファイルの概念、コマンドラインインタプリタ、いくつかの小さなユーティリティプログラムを開発した[7]。これがUNIXの始まりである。1969年に開発された当初のUNIXはアセンブリ言語で記述されていた。アセンブリ言語で記述されたソフトウェアは、ハードウェアの能力を最大限に生かすことができる。可読性が低く移植性に欠ける。この当時はOS、特にOSの中核をなすカーネルは、アセンブリ言語だけで記述されることが一般的であった。ハードウェアメーカーがそれぞれ独自のOSを提供していたため移植性の問題は重要ではなかった。そもそも当時の高級言語にはシステム・プログラミングに向いているものがなかったため、アセンブリ言語を使うより他に選択の余地はなかったといえる。