POSIX - POSIX
Status | Veröffentlicht |
---|---|
Jahr begonnen | 1988 |
Letzte Version | IEEE Std 1003.1-2017 2017 |
Organisation | Austin Group ( IEEE Computer Society , The Open Group , ISO/IEC JTC 1 ) |
Zugehörige Normen | ISO / IEC 9945 |
Domain | Anwendungsprogrammierschnittstellen |
Abkürzung | POSIX |
Webseite | get |
Das Portable Operating System Interface ( POSIX ) ist eine Familie von Standards, die von der IEEE Computer Society spezifiziert wurden, um die Kompatibilität zwischen Betriebssystemen aufrechtzuerhalten . POSIX definiert sowohl die Anwendungsprogrammierschnittstellen (API) auf System- als auch Benutzerebene zusammen mit Befehlszeilen- Shells und Dienstprogrammschnittstellen für die Softwarekompatibilität (Portabilität) mit Varianten von Unix und anderen Betriebssystemen. POSIX ist auch eine Marke des IEEE. POSIX soll sowohl von Anwendungs- als auch von Systementwicklern verwendet werden.
Name
Ursprünglich bezog sich der Name "POSIX" auf die 1988 veröffentlichte IEEE Std 1003.1-1988. Die Familie der POSIX-Standards wird offiziell als IEEE 1003 bezeichnet und die ISO/IEC-Standardnummer lautet ISO / IEC 9945.
Die Standards gingen aus einem Projekt hervor, das um 1985 begann. Richard Stallman schlug dem IEEE statt des früheren IEEE-IX den Namen POSIX (ausgesprochen als pahz-icks, nicht als poh-six ) vor . Der Ausschuss fand es leichter aussprechbar und einprägsam und nahm es daher an.
Überblick
Unix wurde als Basis für eine einheitliche Systemschnittstelle auch deshalb gewählt, weil es „herstellerneutral“ war. Es gab jedoch mehrere Hauptversionen von Unix – daher bestand die Notwendigkeit, ein System mit einem gemeinsamen Nenner zu entwickeln. Die POSIX - Spezifikationen für Unix-ähnliche Betriebssysteme bestanden ursprünglich aus einem einzigen Dokument für den Kern Programmierschnittstelle , aber schließlich stiegen auf 19 separate Dokumente (POSIX.1, POSIX.2, etc). Die standardisierte Benutzerbefehlszeile und Scripting - Schnittstelle wurde basierend auf dem System V - Shell. Viele Programme, Dienste und Dienstprogramme auf Benutzerebene (einschließlich awk , echo , ed ) wurden ebenfalls standardisiert, zusammen mit den erforderlichen Diensten auf Programmebene (einschließlich grundlegender E/A : file , terminal und network ). POSIX definiert auch eine Standard- Threading- Bibliotheks-API, die von den meisten modernen Betriebssystemen unterstützt wird. Im Jahr 2008 wurden die meisten Teile von POSIX in einem einzigen Standard (IEEE Std 1003.1-2008 , auch bekannt als POSIX.1-2008) zusammengefasst.
Ab 2014 ist die POSIX-Dokumentation in zwei Teile gegliedert:
- POSIX.1, 2013 Edition: POSIX-Basisdefinitionen, Systemschnittstellen und Befehle und Dienstprogramme (einschließlich POSIX.1, Erweiterungen für POSIX.1, Echtzeitdienste, Threads-Schnittstelle, Echtzeiterweiterungen, Sicherheitsschnittstelle, Netzwerkdateizugriff und Netzwerk-Prozess-zu-Prozess-Kommunikation, Benutzerportabilitätserweiterungen, Korrekturen und Erweiterungen, Schutz- und Kontroll-Utilities und Batch-System-Utilities. Dies ist POSIX 1003.1-2008 mit technischer Berichtigung 1.)
- POSIX Conformance Testing: Eine Testsuite für POSIX begleitet den Standard: VSX-PCTS oder die VSX POSIX Conformance Test Suite .
Die Entwicklung des POSIX-Standards erfolgt in der Austin Group (einer gemeinsamen Arbeitsgruppe von IEEE, The Open Group und ISO/IEC JTC 1 ).
Versionen
Teile vor 1997
Vor 1997 umfasste POSIX mehrere Standards:
-
POSIX.1 : Kerndienste (enthält Standard ANSI C ) (IEEE Std 1003.1-1988)
- Prozesserstellung und -kontrolle
- Signale
- Datei- und Verzeichnisvorgänge
- Rohre
- C-Bibliothek (Standard C)
- E/A- Port-Schnittstelle und -Steuerung
- Prozessauslöser
-
POSIX.1b : Echtzeiterweiterungen (IEEE Std 1003.1b-1993, später als librt erscheinend – die Realtime Extensions Library))
- Priority Scheduling
- Echtzeitsignale
- Uhren und Timer
- Semaphoren
- Nachrichtenübergabe
- Geteilte Erinnerung
- Asynchrone und synchrone E/A
- Schnittstelle zum Sperren des Speichers
-
POSIX.1c : Thread-Erweiterungen (IEEE Std 1003.1c-1995)
- Thread-Erstellung, -Steuerung und -Bereinigung
- Thread-Planung
- Thread-Synchronisierung
- Signalverarbeitung
-
POSIX.2 : Shell und Dienstprogramme (IEEE Std 1003.2-1992)
- Befehlsinterpreter
- Dienstprogramme
Versionen nach 1997
Nach 1997 entwickelte die Austin Group die POSIX-Revisionen. Die Spezifikationen sind unter dem Namen Single UNIX Specification bekannt , bevor sie bei formeller Genehmigung durch die ISO zu einem POSIX-Standard werden.
POSIX.1-2001 (mit zwei TCs)
POSIX.1-2001 (oder IEEE Std 1003.1-2001) entspricht der Single UNIX Specification Version 3.
Diese Norm bestand aus:
- die Basisdefinitionen, Ausgabe 6,
- die Systemschnittstellen und Header, Ausgabe 6,
- die Befehle und Dienstprogramme, Ausgabe 6.
IEEE Std 1003.1-2004 beinhaltete ein kleineres Update von POSIX.1-2001. Es beinhaltete zwei kleinere Aktualisierungen oder Errata , die als Technical Corrigenda (TCs) bezeichnet werden. Seine Inhalte sind im Web verfügbar.
POSIX.1-2008 (mit zwei TCs)
Base Specifications, Issue 7 (oder IEEE Std 1003.1-2008 , Edition 2016) ähnelt der aktuellen Version 2017 (Stand 22. Juli 2018).
Diese Norm besteht aus:
- die Basisdefinitionen, Ausgabe 7,
- die Systemschnittstellen und Header, Ausgabe 7,
- die Befehle und Dienstprogramme, Ausgabe 7,
- das Rational-Volumen.
POSIX.1-2017
IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008) - IEEE Standard for Information Technology – Portable Operating System Interface (POSIX(R)) Base Specifications, Issue 7 ist entweder von The Open Group oder IEEE erhältlich und ist ab 22. Juli 2018, der aktuelle Standard. Es ist technisch identisch mit POSIX.1-2008, wobei die Technischen Berichtigungen 1 und 2 angewendet wurden. Eine kostenlose Online-Kopie ist möglicherweise noch verfügbar.
Kontroversen
512- vs. 1024-Byte-Blöcke
POSIX Mandate 512-Byte - Standard - Blockgrößen für den df und ich Dienstprogramme, was die typische Größe der Blöcke auf Festplatten. Als Richard Stallman und das GNU- Team POSIX für das GNU-Betriebssystem implementierten , lehnten sie dies mit der Begründung ab, dass die meisten Leute in 1024 Byte (oder 1 KiB ) Blöcken denken . Die Umgebungsvariable POSIX_ME_HARDER wurde eingeführt, damit der Benutzer das normkonforme Verhalten erzwingen kann. Der Variablenname wurde später in POSIXLY_CORRECT geändert . Diese Variable wird jetzt auch für eine Reihe anderer Verhaltens-Macken verwendet.
POSIX-orientierte Betriebssysteme
Je nach Erfüllungsgrad der Standards kann man Betriebssysteme als vollständig oder teilweise POSIX-kompatibel einstufen. Zertifizierte Produkte finden Sie auf der Website des IEEE.
POSIX-zertifiziert
Einige Versionen der folgenden Betriebssysteme wurden für die Konformität mit einem oder mehreren der verschiedenen POSIX-Standards zertifiziert. Das bedeutet, dass sie die automatisierten Konformitätstests bestanden haben.
Überwiegend POSIX-konform
Die folgenden, obwohl nicht offiziell als POSIX-kompatibel zertifiziert, erfüllen größtenteils:
- Android (verfügbar über Android NDK)
- BeOS (und anschließend Haiku )
- Contiki
- Darwin (Kern von macOS und iOS )
- DragonFly BSD
- FreeBSD
- leuchten
- Linux (die meisten Distributionen — siehe Linux Standard Base )
- LynxOS
- MINIX (jetzt MINIX3 )
- MPE/iX
- NetBSD
- Nukleus-RTOS
- NuttX
- OpenBSD
- OpenSolaris
- PikeOS RTOS für eingebettete Systeme mit optionalen PSE51- und PSE52-Partitionen; siehe Partition (Mainframe)
- Redox
- RTEMS – POSIX-API-Unterstützung für IEEE Std. 1003.13-2003 PSE52
- SkyOS
- Silbe
- VSTa
- VMware ESXi
- VxWorks ( VxWorks wird oft als Shell um Nicht-POSIX-Kernel verwendet — dh TiMOS/SROS )
- Xenix
POSIX für Microsoft Windows
- Cygwin bietet eine weitgehend POSIX-konforme Entwicklungs- und Laufzeitumgebung für Microsoft Windows .
- MinGW , ein Fork von Cygwin, bietet eine weniger POSIX-konforme Entwicklungsumgebung und unterstützt kompatible C- programmierte Anwendungen über Msvcrt , Microsofts alte Visual C-Laufzeitbibliothek.
- Microsoft POSIX-Subsystem , ein optionales Windows-Subsystem, das in Windows NT-basierten Betriebssystemen bis Windows 2000 enthalten ist. POSIX-1, wie es in der Revision von 1990 stand, ohne Threads oder Sockets.
- Interix , ursprünglich OpenNT von Softway Systems, Inc., ist ein Upgrade und Ersatz für das Microsoft POSIX-Subsystem , das 1999 von Microsoft gekauft wurde. Es wurde zunächst als eigenständiges Add-on-Produkt vermarktet und später als Komponente in Windows Services for UNIX (SFU) und schließlich als Komponente in Windows Server 2003 R2 und spätere Windows OS-Releases unter dem Namen "Subsystem for UNIX-based Applications" (SUA) integriert; später eingestellt im Jahr 2012 (Windows 8) und im Jahr 2013 (2012 R2, 8.1) eingestellt. Es ermöglicht die vollständige POSIX-Konformität für bestimmte Microsoft Windows- Produkte.
- Windows Subsystem for Linux , auch bekannt als WSL, ist eine Kompatibilitätsschicht für die native Ausführung von ausführbaren Linux-Binärdateien unter Windows 10 unter Verwendung eines Linux-Images wie Ubuntu, Debian oder OpenSUSE unter anderem als Upgrade und Ersatz für Windows Services for UNIX. Es wurde im April 2016 als Beta-Version veröffentlicht. Die erste verfügbare Distribution war Ubuntu.
- UWIN von AT&T Research implementiert eine POSIX-Schicht über den Win32-APIs.
- MKS Toolkit , ursprünglich für MS-DOS entwickelt, ist ein Softwarepaket, das von MKS Inc. produziert und gewartet wird und eine Unix-ähnliche Umgebung für Skripting, Konnektivität und Portierung von Unix- und Linux- Software auf 32- und 64-Bit- Microsoft Windows- Systeme bietet . Ein Teil davon wurde 1998 in die erste Version von Windows Services for UNIX (SFU) aufgenommen.
- Die Windows C-Laufzeitbibliothek und die Windows Sockets-API implementieren häufig verwendete POSIX-API-Funktionen für den Datei-, Zeit-, Umgebungs- und Socketzugriff, obwohl die Unterstützung weitgehend unvollständig und nicht vollständig mit POSIX-kompatiblen Implementierungen kompatibel ist.
POSIX für OS/2
Meist POSIX-kompatible Umgebungen für OS/2 :
- emx+gcc – weitgehend POSIX-konform
POSIX für DOS
Teilweise POSIX-kompatible Umgebungen für DOS umfassen:
- emx+gcc – weitgehend POSIX-konform
- DJGPP – teilweise POSIX-konform
- DR-DOS- Multitasking-Kern über EMM386 /MULTI – eine POSIX-Threads-Frontend-API-Erweiterung ist verfügbar
Kompatibel über Kompatibilitätsschicht
Die folgenden sind nicht offiziell als POSIX-kompatibel zertifiziert, entsprechen jedoch größtenteils den Standards, indem sie POSIX-Unterstützung über eine Art Kompatibilitätsfunktion implementieren (normalerweise Übersetzungsbibliotheken oder eine Schicht auf dem Kernel). Ohne diese Funktionen sind sie normalerweise nicht konform.
- eCos – POSIX ist Teil der Standarddistribution und wird von vielen Anwendungen verwendet. Der Abschnitt 'externe Links' unten enthält weitere Informationen.
- AmigaOS (über die ixemul-Bibliothek)
- MorphOS (über die eingebaute ixemul-Bibliothek)
- OpenVMS (über optionales POSIX-Paket)
- Plan 9 von Bell Labs APE - ANSI/POSIX-Umgebung
- RIOT (über optionales POSIX-Modul)
- Symbian OS mit PIPS (PIPS ist POSIX auf Symbian)
-
Windows NT-Kernel bei Verwendung von Microsoft SFU 3.5 oder SUA
- Windows 2000 Server oder Professional mit Service Pack 3 oder höher . Um POSIX-kompatibel zu sein, müssen optionale Funktionen von Windows NT und Windows 2000 Server aktiviert werden.
- Windows XP Professional mit Service Pack 1 oder höher
- Windows Server 2003
- Windows Server 2008 und Ultimate- und Enterprise-Versionen von Windows Vista
- Windows Server 2008 R2 und Ultimate- und Enterprise-Versionen von Windows 7
- obwohl veraltet, weiterhin verfügbar für Windows Server 2012 und die Enterprise-Version von Windows 8
- UNIX System Services , die unter z/OS ausgeführt werden (als konform zertifiziert)
Siehe auch
- POSIX-Signal
- POSIX-Gewinde
- TRON-Projekt – alternative OS-Standards zu POSIX
- Gemeinsamer Benutzerzugriff – Benutzeroberflächenstandard
- Interix – ein POSIX- und Unix-Umgebungssubsystem mit vollem Funktionsumfang für Microsofts Windows NT-basierte Betriebssysteme
- C POSIX-Bibliothek
- Echtzeit-Betriebssystem
- Portabler Zeichensatz , Satz von 103 Zeichen, der in jedem POSIX-kompatiblen Zeichensatzgebietsschema unterstützt werden sollte
Verweise
Externe Links
- "POSIX-Zertifizierungshaus" . Die offene Gruppe/IEEE.