POSIX - POSIX

Tragbare Betriebssystemschnittstelle (IEEE 1003)
Status Veröffentlicht
Jahr begonnen 1988 ; Vor 33 Jahren ( 1988 )
Letzte Version IEEE Std 1003.1-2017
2017 ; vor 4 Jahren ( 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 .posixcertified .ieee .org

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:

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:

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.

Siehe auch

Verweise

Externe Links