Portable Operating System Interface
POSIX ISO/IEC/IEEE 9945 | |
---|---|
Basisdaten
| |
Entwickler | Portable Application Standards Committee |
Aktuelle Version | IEEE Std 1003.1-2008 |
Betriebssystem | Betriebssystem-unabhängig |
Kategorie | Programmierschnittstelle |
deutschsprachig | nein |
PASC Committee |
Das Portable Operating System Interface (POSIX [ˈpɒzɪks]) ist eine gemeinsam vom IEEE und der Open Group für Unix entwickelte standardisierte Programmierschnittstelle, welche die Schnittstelle zwischen Anwendungssoftware und Betriebssystem darstellt. Die internationale Norm trägt die Bezeichnung ISO/IEC/IEEE 9945.
Eine alternative Bezeichnung lautet (The Open Group Technical Standard) Base Specifications. POSIX bildet die Grundlage der Single UNIX Specification.[1]
Entwicklung[Bearbeiten | Quelltext bearbeiten]
Der heutige Standard ist eine Weiterentwicklung aus einem Projekt von 1985. Der Begriff POSIX wurde von Richard Stallman vorgeschlagen und kommt der Bitte des IEEE nach einem einprägsamen Namen nach;[2] er löste die Bezeichnung IEEE-IX ab. Die meisten Unix-Derivate halten sich weitgehend an die in IEEE1003.1 (1990) und IEEE1003.2 (1992) festgelegten Standards. Diese älteren Versionen wurden 2001 durch die überarbeitete Version IEEE Std 1003.1-2001 des IEEE und Open Group abgelöst. 2004 wurde eine leicht korrigierte Version IEEE Std 1003.1, 2004 Edition[3] veröffentlicht. Eine Revision erfolgte 2008,[4] diese erhielt 2013[5] und 2016[6] eine neue Edition. Im Jahr 2017 erfolgte wiederum eine Revision.[7]
Spezifikation[Bearbeiten | Quelltext bearbeiten]
Die Spezifikation der Benutzer- und Software-Schnittstelle des Betriebssystems ist in vier Teile gegliedert, die zusammen den Standard IEEE Std 1003.1-2008 bilden:
- Basis-Definitionen
- Eine Liste der im Standard benutzten Konventionen, Definitionen und Konzepte.
- System-Schnittstelle
- Die C-Systemaufrufe und dazugehörige Header-Dateien.
- Kommandozeileninterpreter und Hilfsprogramme
- Eine Liste der Hilfsprogramme und der Kommandozeileninterpreter.
- Erklärungen
- Erläuterungen über den Standard.
Weitere Hilfsprogramme wie awk, vi oder echo sind ebenfalls Teil des POSIX-Standards. Die C-Funktionen stellen unter anderem Ein- bzw. Ausgabe (für Dateien, Terminals und Netzwerkdienste) zur Verfügung und stellen Kontrolle über Prozesse sowie die Benutzer- und Gruppenverwaltung her.
POSIX-kompatible Betriebssysteme[Bearbeiten | Quelltext bearbeiten]
Betriebssysteme können vollständig oder teilweise POSIX-kompatibel sein – dies hängt davon ab, ob sie die POSIX-Standards gänzlich oder nur teilweise umsetzen. Die (meist minimalen) Abweichungen vom Standard sind heutzutage primär eine bewusste Entscheidung zugunsten anderer Kompatibilität und weniger ein Mangel an Umsetzbarkeit.
Vollständig POSIX-konform[Bearbeiten | Quelltext bearbeiten]
Folgende Betriebssysteme sind zum gesamten Standard vollständig kompatibel und somit POSIX-konform:
- A/UX
- AIX
- BSD/OS[8]
- HP-UX
- INTEGRITY
- IRIX
- LynxOS
- macOS inkl. Darwin
- MINIX
- OpenVMS
- penOS
- QNX
- RTEMS (POSIX 1003.1-2003 Profile 52)
- Solaris, OpenSolaris sowie illumos und darauf aufbauende Systeme
- UnixWare
- velOSity
- VxWorks
Weitgehend POSIX-kompatibel[Bearbeiten | Quelltext bearbeiten]
Diese Betriebssysteme sind größtenteils kompatibel aber nicht gänzlich konform zu den Standards:
- BeOS und dessen Open-Source-Nachfolger Haiku
- DragonFly BSD
- FreeBSD[9]
- GNU
- KasperskyOS
- Linux (siehe auch LSB)
- NetBSD
- Nucleus RTOS
- OpenBSD
- PikeOS (Echtzeitbetriebssystem für eingebettete Systeme mit optionalen PSE51- und PSE52-Partitionen)
- SkyOS
- Stratus VOS
- SuperUX
- Syllable
- VSTa
POSIX-Kompatibilitätserweiterungen[Bearbeiten | Quelltext bearbeiten]
Diese Betriebssysteme sind gewöhnlich nicht POSIX-kompatibel, es können aber Kompatibilitätserweiterungen eingesetzt werden. POSIX-Unterstützung wird in der Regel mittels Übersetzungsbibliotheken oder einer Zwischenschicht „über“ dem Kernel umgesetzt. Volle POSIX-Konformität ist meist nicht gegeben.
- Die NT-Kernel von Windows bei Nutzung der Microsoft Windows Services for UNIX.[10] Unterstützung von Untermengen wie die Posix Threads wird z. B. durch „Pthreads-w32“[11] ermöglicht.
- eCos – POSIX ist Teil der Standard-Distribution und wird von vielen Anwendungen verwendet.
- Plan 9: APE – ANSI/POSIX Environment[12]
- Symbian OS mit PIPS (PIPS Is POSIX on Symbian)
- AmigaOS/MorphOS mit der ixemul.library
Siehe auch[Bearbeiten | Quelltext bearbeiten]
- Geschichte von Unix
- Microsoft Windows Services for UNIX (Interix)
- Linux Standard Base
- Native POSIX Thread Library
- TRON-Projekt
Einzelnachweise[Bearbeiten | Quelltext bearbeiten]
- ↑ https://publications.opengroup.org/standards/unix/t101
- ↑ POSIX.1 FAQ (englisch) – Frequently Asked Questions zu POSIX® 1003.1 (Version 1.12) bei The Open Group; vom 2. Februar 2006
- ↑ IEEE Std 1003.1, 2004 Edition (englisch) – IEEE-Standard 1003.1-2004
- ↑ IEEE Std 1003.1-2008
- ↑ IEEE Std 1003.1-2008, 2013 Edition
- ↑ IEEE Std 1003.1-2008, 2016 Edition
- ↑ IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008) / The Open Group Base Specifications Issue 7, 2018 edition
- ↑ Zur POSIX-Konformität von BSD/OS (Memento vom 14. Juli 2011 im Internet Archive) (im Internetarchiv)
- ↑ Zur POSIX-Konformität von FreeBSD
- ↑ Erläuterung von Microsoft zu SFU. Abgerufen am 2. Januar 2011.
- ↑ Pthreads-w32: Open Source POSIX Threads for Win32
- ↑ APE – The ANSI/POSIX Environment. plan9.bell-labs.com, abgerufen am 21. Juli 2009 (englisch).
Literatur[Bearbeiten | Quelltext bearbeiten]
- W. Richard Stevens, Stephen A. Rago: Advanced Programming in the UNIX Environment, Second Edition. Paperback Auflage. Addison-Wesley, Boston 2008, ISBN 978-0-321-52594-9.
Weblinks[Bearbeiten | Quelltext bearbeiten]
- standards.ieee.org/regauth/posix
- Portable Application Standards Committee, dieses Gremium pflegt den Standard beim IEEE weiter (englisch)
- POSIX.1 FAQ Häufig gestellte Fragen (englisch)
- Inhalt von POSIX:2001 in der 2004-Ausgabe
- Inhalt von POSIX.1-2017 (mit Links für ältere Versionen: 2008, 2013, 2016)