standards - standardy C i Uniksa
Rozdział STANDARDY, który występuje w wielu
podręcznikach systemowych, identyfikuje różne
standardy, z którymi są zgodne dokumentowane interfejsy.
Poniższa lista zwięźle je opisuje.
- V7
- Wersja 7 (znana również jako Seventh Edition) Uniksa, wydana
przez AT&T/Bell Labs w 1979 roku. Po tym wydaniu systemy UNIX
rozdzieliły się na dwa główne dialekty: BSD i
System V.
- 4.2BSD
- Standard implementacji zdefiniowany w wydaniu 4.2 Berkeley Software
Distribution, wydany na Uniwersytecie Kalifornijskim Berkeley.
Było to pierwsze wydanie Berkeley zawierające stos TCP/IP
oraz interfejs programistyczny gniazd. 4.2BSD wydano w roku 1983.
- Wcześniejsze główne wydania BSD obejmowały
3BSD (1980), 4BSD (1980) i 4.1BSD (1981).
- 4.3BSD
- Następca 4.2BSD, wydany w roku 1986.
- 4.4BSD
- Następca 4.3BSD, wydany w roku 1993. Było to ostatnie
główne wydanie Berkeley.
- System V
- Standard implementacji zdefiniowany w wydaniu komercyjnego Systemu V
(piątego) firmy AT&T z roku 1983. Poprzednim
głównym wydaniem AT&T był System III z
roku 1981.
- System V release 2
(SVr2)
- Kolejne wydanie Systemu V z 1985 roku. SVr2 opisano formalnie w System
V Interface Definition w wersji 1 (SVID 1) opublikowanym w
1985.
- System V release 3
(SVr3)
- Następca SVr2, wydany w roku 1986. Wydanie opisano formalnie w
System V Interface Definition w wersji 2 (SVID 2).
- System V release 4
(SVr4)
- Następca SVr3, wydany w roku 1989. Tę wersję Systemu
V opisano w „Programmer's Reference Manual: Operating System API
(Intel processors)” (Prentice-Hall 1992, ISBN 0-13-951294-2).
Wydanie opisano formalnie w System V Interface Definition w wersji
3 (SVID 3) i jest uważane za kompletne, końcowe
wydanie Systemu V.
- SVID 4
- System V Interface Definition w wersji 4, wydane w roku 1995.
Dostępne pod adresem
http://www.sco.com/developers/devspecs/.
- C89
- Pierwszy standard języka C, przyjęty przez ANSI (American
National Standards Institute) w roku 1989 (X3.159-1989). Czasami
określany jako ANSI C, ale ponieważ C99
również jest standardem ANSI, to pojęcie jest
niejednoznaczne. Standard przyjęty również przez ISO
(ang. International Standards Organization — Międzynarodowa
Organizacja Normalizacyjna) w roku 1990 (ISO/IEC 9899:1990),
dlatego czasem bywa też nazywany ISO C90.
- C99
- Wydanie standardu języka C przyjęte przez ISO w roku 1999
(ISO/IEC 9899:1999). Dostępne pod adresem
http://www.open-std.org/jtc1/sc22/wg14/www/standards.
- C11
- Wydanie standardu języka C przyjęte przez ISO w roku 2011
(ISO/IEC 9899:2011).
- LFS
- Norma Large File Summit ukończona w roku 1996. Definiuje mechanizmy
pozwalające na obsługę dużych plików
(tj. 64-bitowych przesunięć plików) przez systemy
32-bitowe. Zob.
https://www.opengroup.org/platform/lfs.html.
- POSIX.1-1988
- Pierwszy standard POSIX, przyjęty przez IEEE jako IEEE Std
1003.1-1988, a następnie przyjęty (z niewielkimi zmianami)
jako standard ISO w roku 1990. Termin „POSIX” ukuł
Richard Stallman.
- POSIX.1-1990
- „Portable Operating System Interface for Computing
Environments”. IEEE 1003.1-1990 część 1,
przyjęty przez ISO w roku 1990 (ISO/IEC 9945-1:1990).
- POSIX.2
- IEEE Std 1003.2-1992, opisujący polecenia i narzędzia,
przyjęty przez ISO w roku 1993 (ISO/IEC 9945-2:1993).
- POSIX.1b
(uprzednio znany jako POSIX.4)
- IEEE Std 1003.1b-1993, opisujący funkcje czasu rzeczywistego
przenośnych systemów operacyjnych, przyjęty przy ISO
w roku 1996 (ISO/IEC 9945-1:1996).
- POSIX.1c
(uprzednio znany jako POSIX.4a)
- IEEE Std 1003.1c-1995, opisujący interfejsy wątków
POSIX.
- POSIX.1d
- IEEE Std 1003.1d-1999, opisujący dodatkowe rozszerzenia czasu
rzeczywistego.
- POSIX.1g
- IEEE Std 1003.1g-2000, opisujący sieciowy interfejs programistyczny
(w tym gniazda).
- POSIX.1j
- IEEE Std 1003.1j-2000, opisujący zaawansowane rozszerzenia czasu
rzeczywistego.
- POSIX.1-1996
- Poprawka 1996 POSIX.1, obejmująca POSIX.1b i POSIX.1c.
- XPG3
- Wydane w roku 1989, było to pierwsze wydanie X/Open Portability
Guide oparte na standardzie POSIX (POSIX.1-1988). Wielotomowy przewodnik
opracowany przez X/Open Group, konsorcjum wielu dostawców.
- XPG4
- Poprawka X/Open Portability Guide, wydana w roku 1992.
Włączyła POSIX.2.
- XPG4v2
- Poprawka z roku 1994 XPG4. Określana również jako
Spec 1170, ponieważ standard definiował 1170
interfejsów.
- SUS (SUSv1)
- Single UNIX Specification. Zestawienie standardów XPG4v2 i innych
X/Open (X/Open Curses Issue 4 wersja 2, X/Open Networking Service (XNS)
Issue 4). Systemy zgodne z tym standardem mogą
posługiwać się mianem UNIX 95.
- SUSv2
- Single UNIX Specification w wersji 2. Czasami określane
(nieprawidłowo) jako XPG5. Standard pojawił
się w roku 1997. Systemy zgodne z tym standardem mogą
posługiwać się mianem UNIX 98. Zob. też
http://www.unix.org/version2/.)
- POSIX.1-2001
- SUSv3
- Poprawka z roku 2001 i połączenie w jeden dokument
standardów POSIX.1, POSIX.2 i SUS przeprowadzone pod nadzorem
Austin Group
http://www.opengroup.org/austin/.
Standard dostępny pod adresem
http://www.unix.org/version3/.
- Standard określa dwa poziomy zgodności:
Zgodność z POSIX, którą stanowi
podstawowy zestaw interfejsów wymaganych od zgodnego systemu oraz
Zgodność z XSI, która dodatkowo wymaga
obecności zestawu interfejsów („rozszerzenia
XSI”), będących opcjonalnymi przy zgodności z
POSIX. Systemy zgodne z XSI mogą posługiwać
się mianem UNIX 03.
- Dokument POSIX.1-2001 jest podzielony na cztery części:
- XBD: Definicje, słownik i określenie konceptów
oraz plików nagłówkowych.
- XSH: Określenie funkcji (tj. wywołań
systemowych i funkcji bibliotecznych w faktycznych implementacjach).
- XCU: Określenie poleceń i narzędzi (tj. obszar
uprzednio opisany przez POSIX.2).
- XRAT: Szerszy opis innych części standardu.
- POSIX.1-2001 jest zgodny z C99, co oznacza, że wszystkie funkcje
biblioteczne zestandardyzowane w C99, są również
częścią standardu POSIX.1-2001.
- Single UNIX Specification w wersji 3 (SUSv3) składa się z
Base Specifications zawierających opisane wyżej XBD, XSH,
XCU i XRAT oraz — jako dodatkowy tom nieobecny w POSIX.1-2001
— X/Open Curses Issue 4 wersja 2.
- Wydano dwa Technical Corrigenda (z pomniejszymi poprawkami i
usprawnieniami) oryginalnego standardu 2001: TC1 w roku 2003 oraz TC2 w
roku 2004.
- POSIX.1-2008
- SUSv4
- Prace nad kolejnym wydaniem POSIX.1/SUS ukończono i przyjęto
w roku 2008. Standard jest dostępny pod adresem
http://www.unix.org/version4/.
- Zmiany w tej rewizji nie są tak rozległe jak te,
które występowały w POSIX.1-2001/SUSv3, lecz dodano
pewną liczbę nowych interfejsów oraz zmodyfikowano
różne detale istniejących specyfikacji. Wiele z
interfejsów, które były opcjonalne w POSIX.1-2001,
stały się obowiązkowe w rewizji 2008 standardu. Kilka
interfejsów obecnych w POSIX.1-2001 oznaczono jako
przestarzałe w POSIX.1-2008 lub zupełnie usunięto ze
standardu.
- Poprawiony standard ma taką samą strukturę jak
poprzednik. Single UNIX Specification w wersji 4 (SUSv4) składa
się z Base Specifications zawierającej XBD, XSH, XCU i XRAT
oraz z X/Open Curses Issue 7 jako dodatkowy tom nieobecny w
POSIX.1-2008.
- Ponownie występują dwa poziomy zgodności:
Zgodność z POSIX oraz Zgodność z
XSI określającą dodatkowy zestaw
interfejsów oprócz obecnych w podstawowej normie.
- Gdy rozdział STANDARDY podręcznika systemowego wspomina
POSIX.1-2001, można zwykle przyjąć, że
interfejs jest zgodny również z POSIX.1-2008, chyba
że określono inaczej.
- Technical Corrigendum 1 (pomniejsze poprawki i usprawnienia) standardu
wydano w roku 2013.
- Technical Corrigendum 2 standardu wydano w roku 2016.
- Więcej informacji można znaleźć na stronie
internetowej Austin Group:
http://www.opengroup.org/austin/.
- SUSv4 2016
edition
- Odpowiednik POSIX.1-2008, z dołączonymi Technical Corrigenda
1 i 2 oraz normą XCurses.
- POSIX.1-2017
- Rewizja POSIX technicznie identyczna z POSIX.1-2008 z naniesionymi
Technical Corrigenda 1 i 2.
- SUSv4 2018
edition
- Odpowiednik POSIX.1-2017, z dołączeniem normy XCurses.
Interfejsy udokumentowane w POSIX.1/SUS są dostępne
jako podręczniki systemowe w sekcjach 0p (pliki
nagłówkowe), 1p (polecenia) i 3p (funkcje); zatem można
je odczytać poleceniem „man 3p open”.
Tłumaczenie niniejszej strony podręcznika:
Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną
dokumentacją. Bliższe informacje o warunkach licencji
można uzyskać zapoznając się z
GNU General
Public License w wersji 3 lub nowszej. Nie przyjmuje się
ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika
prosimy zgłaszać na adres listy dyskusyjnej
manpages-pl-list@lists.sourceforge.net.