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
からオンラインで入手可能である。
-
LFS The Large File Summit specification, completed
in 1996. This specification defined mechanisms that allowed 32-bit systems
to support the use of large files (i.e., 64-bit file offsets). See
https://www.opengroup.org/platform/lfs.html
- POSIX.1-1988
- This was the first POSIX standard, ratified by IEEE as IEEE
Std 1003.1-1988, and subsequently adopted (with minor revisions) as an ISO
standard in 1990. The term "POSIX" was coined by Richard
Stallman.
- POSIX.1-1990
- "Portable Operating System Interface for Computing
Environments". IEEE 1003.1-1990 part 1, ratified by ISO in 1990 (
ISO/IEC 9945-1:1990).
- 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 (formerly known as
POSIX.4a)
- 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
- Released in 1989, this was the first release of the X/Open
Portability Guide to be based on a POSIX standard (POSIX.1-1988). This
multivolume guide was developed by the X/Open Group, a multivendor
consortium.
- XPG4
- A revision of the X/Open Portability Guide, released in
1992. This revision incorporated POSIX.2.
- 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.org/version2/
も参照のこと。
- POSIX.1-2001, SUSv3
- This was a 2001 revision and consolidation of the POSIX.1,
POSIX.2, and SUS standards into a single document, conducted under the
auspices of the Austin Group
http://www.opengroup.org/austin/
The standard is available online at
http://www.unix.org/version3/
- The standard defines two levels of conformance: POSIX
conformance, which is a baseline set of interfaces required of a
conforming system; and XSI Conformance, which additionally
mandates a set of interfaces (the "XSI extension") which are
only optional for POSIX conformance. XSI-conformant systems can be branded
UNIX 03.
- POSIX.1-2001 文書は
4つの部分に分けることができる:
-
XBD:
定義、用語と概念、ヘッダーファイルの仕様。
-
XSH: 関数の仕様
(関数とは、実際の実装でのシステムコールと
ライブラリ関数のことである)。
-
XCU:
コマンドとユーティリティの仕様
(以前、 POSIX.2
に記載されていた内容)。
-
XRAT:
参考情報と規格のそれ以外の部分
- POSIX.1-2001 は C99
と整合がとられており、
C99
で標準化されたライブラリ関数は
POSIX.1-2001 でも
標準化されている。
- The Single UNIX Specification version 3 (SUSv3) comprises
the Base Specifications containing XBD, XSH, XCU, and XRAT as above, plus
X/Open Curses Issue 4 version 2 as an extra volume that is not in
POSIX.1-2001.
- Two Technical Corrigenda (minor fixes and improvements) of
the original 2001 standard have occurred: TC1 in 2003 and TC2 in
2004.
- POSIX.1-2008, SUSv4
- POSIX.1/SUS
の次の改訂版に関する作業は
2008
年に完了し承認された。この標準は
http://www.unix.org/version4/
からオンラインで入手できる。
- この改訂版での変更は
POSIX.1-2001/SUSv3
で行われた変更ほど大きくないが、
多くの新しいインターフェイスが追加され、既存の仕様に関しても
種々の詳細が変更されている。
POSIX.1-2001 では任意 (optional)
とされていたインターフェイスの多くが
2008
年版の標準では必須
(mandatory) になる。 POSIX.1-2001
に存在するインターフェイスのいくつかは、
POSIX.1-2008
では廃止予定の印が付けられたり、
標準から完全に削除されたりしている。
- The revised standard is structured in the same way as its
predecessor. The Single UNIX Specification version 4 (SUSv4) comprises the
Base Specifications containing XBD, XSH, XCU, and XRAT, plus X/Open Curses
Issue 7 as an extra volume that is not in POSIX.1-2008.
- Again there are two levels of conformance: the baseline
POSIX Conformance, and XSI Conformance, which
mandates an additional set of interfaces beyond those in the base
specification.
- 一般には、マニュアルページの「準拠」の章のリストに
POSIX.1-2001 が
あれば、他に注意書きがなければ、そのインターフェイスは
POSIX.1-2008
にも準拠していると考えてよい。
- この標準の Technical
Corrigendum 1 (正誤表 1;
細かな修正と改良) が
2013
年にリリースされた。
- この標準の Technical
Corrigendum 2 (正誤表 2) が 2016
年にリリースされた。
- 詳しい情報は Austin
Group のウェブサイト
http://www.opengroup.org/austin/
に載っている。
- SUSv4 2016 edition
- This is equivalent to POSIX.1-2008, with the addition of
Technical Corrigenda 1 and 2 and the XCurses specification.
- POSIX.1-2017
- This revision of POSIX is technically identical to
POSIX.1-2008 with Technical Corrigenda 1 and 2 applied.
- SUSv4 2018 edition
- This is equivalent to POSIX.1-2017, with the addition of
the XCurses specification.
The interfaces documented in POSIX.1/SUS are available as manual pages under
sections 0p (header files), 1p (commands), and 3p (functions); thus one can
write "man 3p open".
getconf(1),
confstr(3),
pathconf(3),
sysconf(3),
attributes(7),
feature_test_macros(7),
libc(7),
posixoptions(7),
system_data_types(7)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。