Single UNIX Specification

Single UNIX Specificationは、"UNIX"を名乗ることができるコンピュータのオペレーティングシステム  の標準規格全体を総称したものである。SUSは、IEEEと The Open Group の標準化作業の結果に基づくもので、Austin Group が開発および保守を行っている。

1. 歴史
-----

1980年代中頃、様々なUNIX系OSのインタフェースを標準化するプロジェクトが開始され、これらがSUSの元となった。標準化の必要性は様々なベンダーのシステムを使っている企業の要望によるもので、ベンダーの異なるシステムでのソフトウェア移植のコストをなるべく減らしたいということから始まった。その標準化のベースとしてUNIXが選択された。というのもUNIXはベンダーに依存していない中立なOSと考えられたからである。

この標準化作業の結果できたのが1988年の IEEE 1003またはPOSIX  である。

1990年代初期、それとは別にUNIX戦争の結果として、いくつかの主要ベンダーがCOSEアライアンスを結成し、Common API Specification または Spec 1170 と呼ばれる仕様を策定した。この仕様は無料で入手可能であったため、IEEEがアクセス料を徴収したPOSIXよりも一般化した。

1997年、the Open Group が Single UNIX Specification Version 2  をリリース。この仕様は以下の部分から構成されている。

Base Definitions, Issue 5
System Interfaces and Headers, Issue 5
Commands and Utilities, Issue 5
Networking Services, Issue 5
X/Open Curses, Issue 4, Version 2そして、これが UNIX 98 ブランドの中核となった。

1998年、Austin Group と呼ばれる共同ワーキンググループがこれらの仕様の統合を開始し、その成果が Single UNIX Specification Verision 3  となり、POSIX:2001としても採用された。これは2002年1月30日にリリースとなった。この仕様は以下の部分から構成されている。

Base Definitions, Issue 6
System Interfaces and Headers, Issue 6
Commands and Utilities, Issue 6そして、これが UNIX 03 ブランドの中核となった。

2004年、POSIX:2001 の改訂版がリリースされ、2つの技術的訂正がなされている。これを POSIX:2004と呼ぶ。

2008年12月、Austin Group は新たな大幅修正版 POSIX:2008を公表した。これが Single UNIX Specification, Version 4  の中核となっている。この仕様は以下の部分から構成されている。

Base Definitions, Issue 7
System Interfaces and Headers, Issue 7
Commands and Utilities, Issue 7

2. 仕様
-----

SUSv3 は全部で3700ページに及び、テーマ別に以下の4つに分けられている。

Base Definitions  : 仕様記述に使われる定義と約束事のリストと、準拠するシステムが必ず提供しなければならないC言語のヘッダーファイルのリスト。全部で84のヘッダファイルが提供されている。 Shell and Utilities  : ユーティリティのリストとシェル sh の詳細。全部で160のユーティリティが示されている。 System Interfaces  : 提供しなければならないシステムコールとCライブラリの詳細。全部で1123のシステムインタフェースが示されている。 Rationale  : この標準についての解説この標準でのユーザのコマンドラインインターフェイスとスクリプトインターフェイスはPOSIXシェルであり、KornShell の初期バージョンをベースにした拡張版 Bourne Shell である。他のユーザレベルのプログラムやサービス、ユーティリティとしては、awk、echo、ed、viなどが含まれる。プログラムレベルで要求されているサービスとしては、I/Oサービスなどがある。標準にはテストプログラム集が付随していて、PCTS  と呼ばれている。

さらに、SUSには CURSES  の仕様も含まれている。372の関数と3つのヘッダファイルが定義されている。これを含めると、SUSv3は全部で1742のインタフェースを定義している。

注意しなければならないのは、この仕様を満たすためにAT&TのUNIXのソースコードを使う必要はないという点である。実際、IBMのOS/390はコードは完全に独自だが "UNIX" と名乗ることを認定されている。

3. 準拠システムを示すマーク
---------------

準拠システムを示すふたつのマークが存在する。

UNIX 98 : SUS Version 2 に準拠したシステムを示すマーク UNIX 03 : SUS Version 3 に準拠したシステムを示すマークこれらより古い準拠システム示すマークとして UNIX 93 や UNIX 95 がある。

4. 各種OSの準拠状況
------------

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 : UNIXを標榜しつつも長らくSUSを取得していなかったが、Mac OS X v10.5 Leopard以降が Open Brand UNIX 03 に登録されている。 macOS Server : Leopard同様、Mac OS X Server v10.5 で Open Brand UNIX 03 に登録された。 SCO
UnixWare 7.1.3 は UNIX 95 準拠として登録されている。
OpenServer 5 は UNIX 93 準拠として登録されている。 z/OS : IBM z/OSは1.9以前は UNIX 95 準拠として登録されていた。2007年9月28日にリリースされた z/OS 1.9 は UNIX 03 にさらに近くなると発表した。 EulerOS : Huaweiが開発しているx86-64 用のOSであるEulerOS 2.0はUNIX 03準拠として登録されている。標準CコンパイラとしてGNU Compiler Collection を用いているRed Hat系のLinuxディストリビューションであることが登録書類に示されている。

4.1. 過去に登録されていたシステム
-------------------

Solaris : 富士通とOracleそれぞれによって登録がなされており、Solaris 10は2017年頃までは両社、以降2020年1月頃まではOracleによって UNIX 03 準拠として登録されていた。Solaris 11は2020年1月頃まではOracleによって UNIX V7 準拠として登録されていた。Solaris 8 および 9 は UNIX 98 準拠として登録されていた。 Tru64 UNIX : Tru64 UNIX V5.1A およびその後のリリースは UNIX 98 準拠として登録されていた。 IRIX : SGI IRIX 6.5 は UNIX 95 準拠として登録されていた。

4.2. 登録されていないUNIX系システム
----------------------

Unix系のLinuxやFreeBSDなどのシステムベンダーは、仕様変更が頻繁に行われるため、その度に認証を受ける必要が生じ、コストに見合わないため認証を受けないのが一般的である。

4.2.1. BSD系
-----------

現在、無料で入手可能な BSD系システムは SUS 準拠として登録されていない。

FreeBSD は "C99 and POSIX Conformance Project" により SUS の大部分に準拠する計画がある。

DarwinはFreeBSDベースのオープンソースのオペレーティングシステムである。これはmacOSのサブセットのオープンソース版とも言える。DarwinはSUSv3準拠である。

4.2.2. ほとんどのLinux系OS
--------------------

かつてドイツの Unifix Linux 2.0 という古いディストリビューション/バージョンが POSIX.1 に準拠していた。2007年12月の時点では、SUSに準拠・登録されたLinuxディストリビューションは存在していない。

リーナス・トーバルズは、Linuxが可能な限り POSIX互換となるよう設計した。当初、この大部分は推測によるもので、彼はLinuxが始まってからしばらくしてPOSIX標準の印刷されたものを購入した。彼は、他のシステムのmanページを見て、システムコールの動作を決めていたとも述べている。

Linuxシステムには、共通な拡張、共通なデファクトスタンダードがあり、それらは Linux Standard Base から提供されている。これは、POSIX 仕様や Single UNIX Specification その他のオープン標準に基づき、それらを一部拡張しているものである。デファクトスタンダードとして多くのLinuxディストリビューションがこれを採用しているdate=2007年7月}}。

5. 参考文献
-------

6. 脚注
-----

7. 関連項目
-------

UNIX戦争
manページ
POSIX
オープンシステム
オープン標準

8. 外部リンク
--------

[1]
[2]
[3]
[4]
[5]
[6] 
[7] 
[8]