UNIXとは
UNIXとは、AT&Tのベル研究所で開発されたOSを指します。ケン・トンプソンやデニス・リッチーによって開発された、マルチタスク・マルチユーザ型のOSです。UNIXでは処理をプロセスと命名しており、マルチプロセッシング型とも呼ばれています。
1969年に登場した際は、アセンブリ言語で記述されていましたが、UNIX開発者のデニス・リッチーらが開発したC言語によって1973年に書き直されました。 【参考】:The UNIX® Standard
語源や意味合いとしては、当時稼働していたMultics(Multiplexed information and computer system)のOS改良に見切りをつけ、"マルチ"の対義語である"ユニ"を称した「Uniplexed information and computer system」から命名したとされています。
UNIXのもたらした成果
UNIXの貢献としては、以下のようなことが挙げられます。
- 今日のオープンシステム標準を確立したこと
- C言語が有益であることを証明できたこと
- 初めて高水準言語である、C言語で記述したOSとして高水準言語の利用加速につながったこと
C言語は、UNIX開発者のケン・トンプソンが開発したB言語をベースに改良したものです。UNIX OSの記述で用いられていたアセンブラの置き換えに活用できたことで、ハードウェアとの親和性が高いことがメリットとして挙げられます。
UNIXの成り立ち
AT&Tのベル研究所で開発されたUNIXですが、1970年代以降多くの大学や研究機関で利用が拡大しました。その流れでカリフォルニア大学バークレー校によって開発されたBSD(Berkeley Software Distribution)は、BSD UNIXとして慣れ親しんだ学生を中心に多くの商用UNIXの登場を加速させました。
その後、ライセンス条件や派生したUNIX仕様の違いにより、1980年代以降UNIX InternationalとOSF(Open Software Foundation)の2大UNIX標準化陣営が対抗しました。その後、OSの標準インターフェイスを定めるIEEEのPOSIX標準とともにThe Open Groupに統合されていきました。 【参考】:POSIX™ Certification
The Open Groupとは
The Open Groupとは、UNIXの商標管理やスタンダード準拠に関する仕様・要件を定義し、認定する公式団体を指します。
1980年代後半に起こった、UNIX覇権争いにおける2つの団体であるAT&T系UNIXの団体であるUNIX Internationalと、他ベンダーから成るOSF(Open Software Foundation)は、一時市場を巻き込んだ対立関係にありました。
その後、1990年代前半にAT&TがUNIXをNovelに売却したことで、商標権譲渡を受けたX/OpenがOSFと合併し、現在の団体である「The Open Group」が設立されました。
UNIXの構成要素
OSは、ハードウェアアクセスを隠蔽することで利便性を高めています。またシステム資源を有効活用したり、システム性能を最大限発揮したりするためにいくつかのモジュールやコンポーネントに分解されます。UNIXは、OSの機能を以下のコンポーネントで構成しています。
・カーネル カーネルとは、メモリー・CPU・I/O等のハードウェア管理を担当します。ハードウェア制御のためにプロセッサの特権モードを使って実行します。ユーザが利用する場合はシステムコールを発行し、カーネルへ要求を通知することで処理を実行します。
カーネルはユーザのプログラムをプロセスとして管理し、システム資源を有効活用します。
・常駐プロセス・デーモン カーネルと異なり、ユーザーアドレス空間で動作します。システム資源の監視や、プロセス間で処理を分担しアプリケーション実行環境を管理します。
・システムライブラリ システムコールインターフェースやライブラリを提供します。提供ライブラリは、カーネルとの通信やプロセス通信・ネットワーク通信等に用いられます。
・コマンド システム管理者が使用するシステムコマンドや、一般ユーザが利用するコマンドが提供されます。コマンドを用いてファイル管理やプロセス管理等を行います。
・シェル カーネルと対になるもので、対話型の操作環境を提供します。コマンドインタープリタですので、インタラクティブに利用できますし、シェルスクリプトを作成することでバッチ処理にも利用できます。
これらの要素の考え方は、オープンシステムの原点として多数のOSに影響を与えています。コマンド体系の多くはその後のOSに影響を与えました。パイプやリダイレクト処理、あるいは正規表現等は現在の言語体系やコマンドインタープリタでも考え方に違いはありません。
UNIXの代表的なコマンド
UNIXの仕様は、Single UNIX Specification(SUS)で定義されています。UNIXコマンドは、Shell & Utilities(XCU:The Single UNIX® Specification Commands & Utilities)に掲載されています。 【参考】:The Open Group Base Specifications Issue 7, 2018 edition 【参考】:Shell & Utilities: Detailed Toc
UNIXの代表的なコマンドとしては、シェルコマンドがあります。この他外部コマンドも多数あります。初心者の方でも、以下のコマンドを覚えておくとよいでしょう。
・基本操作 cat:入出力結果やファイルのコピー <、>:シェルのリダイレクト |:シェルのパイプ(プロセス間通信)
・ファイル・ディレクトリ操作 ls:ファイルやディレクトリの表示 pwd:カレントディレクトリの表示 cd、chdir:カレントディレクトリの変更 cp:ファイルやディレクトリのコピー mv:ファイルやディレクトリの移動 rm:ファイルやディレクトリの削除 mkdir:ディレクトリの作成 rmdir:ディレクトリの削除 ln:シンボリックリンク・ハードリンクの作成
・プロセス管理 ps:実行プロセス情報の表示 top:プロセス情報のリアルタイム表示 nice:プロセスプライオリティの変更 kill:プロセスの終了(シグナル送信) cron、crontab:プロセススケジューラと実行設定 at:指定時刻にジョブをスケジュール
・テキスト操作・編集 vi:テキストエディタ more:表示のページング
・バックアップ tar:バックアップ(ファイルアーカイブ) dd:ファイル・ディスクのダンプ・コピー
・管理者コマンド su:スーパーユーザ(管理者)や他のユーザとしてログイン chown:ファイルオーナの変更 chgrp:ファイルグループの変更 vipw:パスワードファイルの編集 reboot:システムを再起動する shutdown:システムをシャットダウンする
UNIXとLinuxの違い
UNIXとLinuxの違いですが、おおまかに次の様に考えるとよいでしょう。
・UNIX 1969年に登場し、2000年代前半まで業務用システムを中心に活用されました。業務用で必要とされる信頼性と機能を有しますが、ライセンス管理されており品質保証の観点から商用UNIXが多数をしめます。
商用UNIXは個別に実装されていたことから派生UNIXが現れ、一時期規格団体で覇権争いがあったものの、現在はThe Open Groupによってライセンスと仕様が管理されています。
・Linux 1991年に、UNIX互換APIを搭載したフリー・オープンソースソフトウェアとして登場しました。ライセンスがフリーであり、デスクトップPCでの利用が急増しました。その後、企業向けシステムやモバイル端末に至るまで幅広く利用されています。
オープンであるためデベロッパが多く、保守サービス提供もされているため、幅広い用途に利用が拡大しています。
UNIXとLinuxともにアプリケーションやミドルウェアに利用上はほとんど違いがありません。シェルやコマンド体系もほとんど同一です。システム管理のコマンド体系はUNIXやLinuxディストリビューションにより多少の違いや機種依存性があります。
UNIXライクなOS
UNIXライクなOS(UNIX Like OS)とは、UNIX系OSと一般的に呼ばれるOSです。具体的には、UNIXの認定を取得していないものの、UNIXと同等の機能が実装されているOSを指します。代表的な例として、LinuxやFreeBSDをはじめとするBSD系OSが挙げられます。
Linuxは、商用UNIXが高価なためリーナス・トーバルズによって開発されたUNIX互換APIを実装したOSです。UNIXはライセンス管理されていますが、Linuxはフリーでオープンソースのため、1991年登場により爆発的に利用が加速しました。
1993年まで続いたUNIX戦争に嫌気をさした開発者が自由に利用できるOSとしてLinuxを使いだしたことも背景に挙げられます。
UNIXの認定区分
UNIXはThe Open Groupによってライセンス管理されており、認定基準が設定されています。認定区分は以下のサイトをご確認ください。 【参考】:UNIX® Certification
商用UNIXの実装の違いを吸収するために、POSIXに基づき策定されたThe Single UNIX Specificationという同等性の保証も行われています。詳細は以下のリンクをご確認ください。 【参考】:The Single UNIX Specification, Version 4
UNIX認定製品
UNIX認定は、The Open Groupによって実施されています。認定によってSingle UNIX Specificationの準拠性が保証されます。認定公式サイトではUNIX95以降の認定状況が掲載されています。直近の認定スタンダードであるUNIX 03およびUNIX V7は、以下の製品が認定されています。 【参考】:UNIX® Certified Products
・Apple Apple silicon-basedとIntel-basedでそれぞれUNIX 03認定を取得しています。認定バージョンはmacOS version 12.0 Montereyです。
・IBM AIX version 7、 7.1 TL5以降、同7.2 TL2以降、 AIX 5L for POWER V5.3 dated 7-2006以降、 AIX 6 Operating System V6.1.2 with SP1以降でUNIX 03認定を取得しています。さらに7.2 TL5以降では最新のUNIX V7スタンダードに準拠します。
・Hewlett Packard Enterprise HP-UX 11i V3 Release B.11.31以降がUNIX 03認定を取得しています。
・Huawei Technology Huawei EulerOS 2.0でUNIX 03認定を取得しています。
旧来はUNIXの種類と言えば、SUN SolarisやSunOSあるいはAIX・HP-UXでしたが、macOSがUNIX認定を取得したことで、業務システムからデスクトップ環境までカバーされるようになりました。
オープンシステムの原点となるOSを理解しましょう
UNIXは初の高水準言語で記述されたOSであり、現在のオープンシステムの原点となるOSです。C言語やシェルの発展と、仕様の標準化に貢献しました。UNIXの流れを理解することで、現在主流となっているLinuxの理解度が向上します。UNIXに触れる機会があれば、率先して携わることをおすすめします。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから