Single UNIX Specification (SUS) について
Single
UNIX Specification(SUS)は、
コンピュータの
オペレーティングシステム(OS)が「
UNIX」を名乗るために満たすべき標準規格の総称です。これは、異なるベンダーのシステム間でのソフトウェアの移植性を向上させることを目指して策定されました。SUSは、
IEEEと
The Open Groupが協力して標準化作業を進め、現在はAustin Groupが開発と保守を担当しています。
歴史
1980年代中期、
UNIX系OS間のインターフェースの標準化プロジェクトが始まりました。これは、企業が異なるベンダーのシステムを利用する際に、ソフトウェアの移植コストを削減したいという要望に応えるものでした。この標準化の基盤として選ばれたのは、ベンダーに依存しない中立的なOSと考えられていた
UNIXでした。
1988年、この標準化作業の成果として、
IEEE 1003(ISO/IEC 9945としても登録)または
POSIX(Portable Operating System Interface for uniX)が誕生しました。しかし、
1990年代初頭には、
UNIX戦争の影響で主要ベンダーがCOSEアライアンスを結成し、Common API Specification(Spec 1170)を策定しました。この仕様は無料で入手可能であったため、
IEEEがアクセス料を徴収した
POSIXよりも広く普及しました。
1997年、
The Open GroupはSingle
UNIX Specification Version 2(SUSv2)をリリースしました。この仕様は、Base Definitions, System Interfaces and Headers, Commands and Utilities, Networking Services, X/Open
Cursesといった要素から構成され、「
UNIX 98」ブランドの中核となりました。
1998年には、Austin Groupがこれらの仕様の統合を開始し、その結果としてSingle
UNIX Specification Verision 3(SUSv3)が誕生しました。これは
POSIX:2001(
IEEE Std 1003.1-2001)としても採用され、2002年1月30日にリリースされました。SUSv3は「
UNIX 03」ブランドの中核となりました。
その後、2004年には
POSIX:2001の改訂版(
POSIX:2004)がリリースされ、2008年12月には大幅な修正が加えられた
POSIX:2008(
IEEE Std 1003.1-2008)が公表されました。これがSingle
UNIX Specification, Version 4(SUSv4)の中核となっています。
仕様
SUSv3は合計3700ページにも及ぶ大規模な仕様であり、以下の4つの主要なテーマに分類されています。
1.
Base Definitions (XBD): 仕様記述で用いられる定義や規則、準拠システムが提供すべき
C言語のヘッダーファイルのリストです。84個のヘッダーファイルが規定されています。
2.
Shell and Utilities (XCU): コマンド(ユーティリティ)のリストと、シェルshの詳細が記載されています。160個のユーティリティが定義されています。
3.
System Interfaces (XSH): 提供すべき
システムコールとC
ライブラリの詳細です。1123個のシステムインターフェースが規定されています。
4.
Rationale (XRAT): この標準に関する解説が記述されています。
ユーザーコマンドラインインターフェースとスクリプトインターフェースは
POSIXシェルで、
KornShellの初期バージョンをベースとした拡張版
Bourne Shellです。その他のユーザーレベルのプログラムやサービス、ユーティリティにはawk, echo, ed, viなどが含まれます。プログラムレベルでは、I/O(ファイル、
端末、ネットワーク)サービスなどが要求されています。また、PCTS (Posix Certification Test Suite) と呼ばれるテストプログラム集も付属しています。
SUSには、CURSES (XCURSES) の仕様も含まれており、372個の関数と3つのヘッダーファイルが定義されています。これらを含めると、SUSv3では合計1742個のインターフェースが規定されています。
重要な点として、この仕様を満たすために
AT&Tの
UNIXの
ソースコードを使う必要はありません。例えば、
IBMの
OS/390|OS_390(現在のz/OS)は、独自のコードで実装されていますが、「
UNIX」として認定されています。
準拠システムを示すマーク
SUSに準拠したシステムには、以下のマークが付与されます。
UNIX 98: SUS Version 2 に準拠したシステムを示すマーク
UNIX 03: SUS Version 3 に準拠したシステムを示すマーク
その他、古いマークとしては
UNIX 93や
UNIX 95が存在します。
各種OSの準拠状況
以下は、いくつかの主要なOSのSUSへの準拠状況です。
AIX:
AIX 5L V5.2(一部更新)と
AIX 5L V5.3、
AIX 6.1が
UNIX 03準拠として登録されています。
AIX 5L V5.2は
UNIX 98準拠です。
HP-UX:
HP-UX 11i V3 Release B.11.31が
UNIX 03準拠として登録されています。以前のバージョンは
UNIX 95準拠です。
macOS: macOS X v10.5 Leopard以降が
UNIX 03準拠として登録されています。
macOS Server: macOS Server v10.5で
UNIX 03準拠として登録されています。
SCO:
UnixWare 7.1.3は
UNIX 95準拠、
OpenServer 5は
UNIX 93準拠です。
z/OS:
IBM z/OSは1.9以前が
UNIX 95準拠、z/OS 1.9は
UNIX 03に準拠するように設計されています(完全準拠かどうかは不明)。
EulerOS: Huaweiが開発したEulerOS 2.0が
UNIX 03準拠として登録されています。
過去に登録されていたシステムとして、
Solaris, Tru64
UNIX,
IRIXなどがあります。
Solarisは、Oracleと
富士通によって
UNIX 03準拠で登録されていましたが、現在では登録されていません。また、Tru64
UNIXは
UNIX 98準拠、
IRIXは
UNIX 95準拠で登録されていました。
未登録のUNIX系システム
LinuxやFreeBSDのような
Unix系OSは、仕様変更が頻繁に行われるため、認証を受けるためのコストに見合わないとして、SUSへの登録を一般的に行っていません。
BSD系: 現在、無料で利用可能なBSD系システムはSUSに登録されていません。ただし、FreeBSDはSUSの大部分に準拠するための計画が進められています。DarwinはmacOSの基盤であるBSDベースのオープンソースOSであり、SUSv3に準拠しています。
Linux系: かつてはUnifix
Linux 2.0が
POSIX.1に準拠していましたが、2007年12月の時点ではSUSに登録された
Linuxディストリビューションは存在しません。ただし、
Linuxは可能な限り
POSIX互換になるように設計されており、
Linux Standard Baseを通じて、
POSIXやSUSを拡張した共通の基準を提供しています。
参考文献
Andrew Josey (2004-10-28). Single
UNIX Specification Frequently Asked Questions.
関連項目
UNIX戦争
manページ
POSIX
オープンシステム
オープン標準
外部リンク
The Single
UNIX Specification
Text of the Single
UNIX Specification, version 2
Text of the Single
UNIX Specification, version 3 (=
POSIX:2001), 2004 edition
Text of
POSIX.1-2017, 2018 edition
Register of products certified for the
UNIX and other Open Group brands
Unix-Wars (Living Internet)
Unix Standards (
エリック・レイモンド, The Art of Unix Programming)
*
AIX Commands, Tools, Scripts and Explanations