名前
standards - C と UNIX
の標準規格
説明
多くのマニュアルページの「準拠
(CONFORMING TO)」の章は、
そのページに記載されたインターフェースが準拠する
各種の標準規格を示すものである。
以下にこれらの標準規格の簡単な説明を記す。
- V7
- バージョン 7 (第 7
版とも呼ばれる) UNIX。
1979 年に AT&T/Bell Labs
によりリリースされた。
この時点以降、 UNIX
システムは BSD と System V
の二つの系譜に分かれた。
- 4.2BSD
- カリフォルニア大バークレー校
(the University of California at Berkeley)
によりリリースされた
Berkeley Software Distribution リリース 4.2
によって規定された、実装に基づく標準規格
(implementation standard)。
バークレーによるリリースの中で
TCP/IP
スタックとソケット
API
を含む最初のリリースである。
これより前のBSD
の主なリリースとしては
3BSD (1980), 4BSD (1980), 4.1BSD (1981)
がある。
- 4.3BSD
- 1986
年にリリースされた
4.2BSD の後継。
- 4.4BSD
- 1993
年にリリースされた
4.3BSD の後継。
バークレー (Berkeley)
による最後の大きなリリースである。
- System V
- AT&T の商用 System V (5)
リリースの 1983
年版により規定された
実装に基づく標準規格。
一つ前の AT&T
の大きなリリースは
1981
年にリリースされた
System III である。
- System V release 2
(SVr2)
- System V
の二番目のリリースであり、1985
年に作成された。 SVr2
は正式には 1985
年に発行された System V
Interface Definition version 1 (SVID 1)
に記載されている。
- System V release 3
(SVr3)
- SVr2 の後継。1986
年にリリースされた。
このリリースは正式には
System V Interface Definition version 2 (SVID 2)
に記載されている。
- System V release 4
(SVr4)
- SVr3 の後継。1989
年にリリースされた。
このバージョンの System V
については "Programmer's Reference
Manual: Operating System API (Intel processors)" (Prentice-Hall 1992,
ISBN 0-13-951294-2)
に記載されている。
このリリースは正式には
System V Interface Definition version 3 (SVID 3)
に記載されており、System
V
の最終的なリリースと考えられている。
- SVID 4
- System V Interface Definition version 4。 1995
年に発行された。
インターネットでは
http://www.sco.com/developers/devspecs/
で入手できる。
- C89
- 最初の C
言語の標準規格である。
ANSI (American National Standards Institute) により 1989
年の承認された
(X3.159-1989)。
時には、この規格は
ANSI C
とも呼ばれるが、 C99
も ANSI
標準なので、この言い方はあいまいである。
この規格は 1990 年に ISO
(International Standards Organization) による
承認も受けており
(ISO/IEC 9899:1990)、 そのため ISO
C90
として参照されることもたまにある。
- C99
- C
言語の標準規格のこの改訂版は
ISO により 1999
年に承認された (ISO/IEC
9899:1999)。
http://www.open-std.org/jtc1/sc22/wg14/www/standards
からオンラインで入手可能である。
- C11
- C
言語の標準規格のこの改訂版は
ISO により 2011
年に承認された (ISO/IEC
9899:2011)。
http://www.open-std.org/jtc1/sc22/wg14/www/standards
からオンラインで入手可能である。
- POSIX.1-1990
- "Portable Operating System Interface for Computing
Environments". 1990 年に ISO
により承認された、IEEE
1003.1-1990 part 1 (ISO/IEC 9945-1:1990)。 "POSIX"
という言葉は Richard Stallman
が初めて作った。
- POSIX.2
- IEEE Std 1003.2-1992.
コマンドとユーティリティについて説明が書かれており、
1993 年に ISO
により承認された
(ISO/IEC 9945-2:1993)。
- POSIX.1b
(以前は POSIX.4
とも言われた)
- IEEE Std 1003.1b-1993.
移植可能なオペレーティングシステムのためのリアルタイム機能について
記載されており、 1996
年の ISO
により承認された
(ISO/IEC 9945-1:1996)。
- POSIX.1c
- IEEE Std 1003.1c-1995. POSIX
スレッドインターフェースについて記載している。
- POSIX.1d
- IEEE Std 1003.1c-1999.
追加のリアルタイム拡張について記載している。
- POSIX.1g
- IEEE Std 1003.1g-2000.
(ソケットを含めた)
ネットワーク API
について記載している。
- POSIX.1j
- IEEE Std 1003.1j-2000.
高度なリアルタイム拡張について記載している。
- POSIX.1-1996
- POSIX.1 の 1996 年の改訂版。
POSIX.1b と POSIX.1c
を取り込んでいる。
- XPG3
- 1989
年リリースの、マルチベンダによる業界団体である
X/Open 社による X/Open Portability Guide
の最初の大きなリリースである。
この指針は POSIX
標準規格に基づいている。
- XPG4
- 1992
年にリリースされた、X/Open
Portability Guide
(移植性に関する指針)
の改訂版。
- XPG4v2
- XPG4 の 1994年改訂版。 Spec
1170 とも呼ばれる。 1170
とはこの標準規格が定義しているインターフェースの数を表すものである。
- SUS (SUSv1)
- Single UNIX Specification.
この規格は、XPG4v2
やその他の X/Open
による標準規格 (X/Open Curses
Issue 4 version 2, X/Open Networking Service (XNS) Issue 4)
を再構成したものである。
この規格に準拠するシステムは
UNIX 95
を名乗ることができる。
- SUSv2
- Single UNIX Specification version 2. XPG5
と呼ばれることもある。
この規格は 1997
年に登場した。
この規格に準拠するシステムは
UNIX 98
を名乗ることができる。
http://www.UNIX-systems.org/version2/
も参照のこと。
- POSIX.1-2001,
SUSv3
- これは POSIX.1, POSIX.2, SUS の
2001年の改訂版である。
また、POSIX.1, POSIX.2, SUS
を一つの文書に統合したものである。
この統合は Austin Group (
http://www.opengroup.org/austin/)
の後援の元で行われた。
インターネットでは
http://www.unix-systems.org/version3/
で入手できる。
また、この規格に書かれているインターフェースについては
Linux
のマニュアルページパッケージの
1p, 3p セクションでも
参照できる
(例えば、"man 3p open")。
この規格では、
POSIX Conformance (POSIX 準拠) と XSI
Conformance (XSI 準拠)
の二段階の適合性を定義している。
POSIX 準拠
は準拠するシステムに必要とされるインターフェースの基本セットであり、
XSI 準拠) では "XSI
拡張"
という追加のインターフェース群が義務付けられている
(POSIX 準拠では XSI
拡張の実装は任意
(optional) となっている)。 XSI
準拠のシステムは UNIX
03
を名乗ることができる
(XSI 準拠の内容が Single UNIX
Specification version 3 (SUSv3)
である)。
POSIX.1-2001 文書は
4つの部分に分けることができる:
XBD:
定義、用語と概念、ヘッダーファイルの仕様。
XSH: 関数の仕様
(関数とは、実際の実装でのシステムコールと
ライブラリ関数のことである)。
XCU:
コマンドとユーティリティの仕様
(以前、 POSIX.2
に記載されていた内容)。
XRAT:
参考情報と規格のそれ以外の部分
POSIX.1-2001 は C99
と整合がとられており、
C99
で標準化されたライブラリ関数は
POSIX.1-2001 でも
標準化されている。
元の 2001
年版の標準に対する
Technical Corrigenda (正誤表;
細かな修正と改良)
が二つ行われている:
2003 年の TC1 (POSIX.1-2003
と呼ばれる) と 2004 年の
TC2 (POSIX.1-2004 と呼ばれる)
である。
- POSIX.1-2008,
SUSv4
- POSIX.1/SUS
の次の改訂版に関する作業は
2008
年に完了し承認された。
この改訂版での変更は
POSIX.1-2001/SUSv3
で行われた変更ほど大きくないが、
多くの新しいインターフェイスが追加され、既存の仕様に関しても
種々の詳細が変更されている。
POSIX.1-2001 では任意 (optional)
とされていたインターフェイスの多くが
2008
年版の標準では必須
(mandatory) になる。 POSIX.1-2001
に存在するインターフェイスのいくつかは、
POSIX.1-2008
では廃止予定の印が付けられたり、
標準から完全に削除されたりしている。
改訂された標準は
POSIX.1-2001 と同じく 4
つの部分に分けられ、
前回と同様に二段階の適合性を定義している。
基本セットである
POSIX Conformance (POSIX 準拠) と、
基本仕様のインターフェイスに加えて追加のインターフェイス群が
義務付けられている
XSI Conformance (XSI 準拠)
の二つである。
一般には、マニュアルページの「準拠」の章のリストに
POSIX.1-2001 が
あれば、他に注意書きがなければ、そのインターフェイスは
POSIX.1-2008
にも準拠していると考えてよい。
この標準の Technical Corrigendum
1 (正誤表;
細かな修正と改良)
が 2013
年にリリースされている
(POSIX.1-2013
と呼ばれる)。
詳しい情報は Austin Group
のウェブサイト
http://www.opengroup.org/austin/
に載っている。
この文書について
この man ページは Linux
man-pages
プロジェクトのリリース
3.79 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man-pages/
に書かれている。