POSIX

Tragbare Betriebssystemschnittstelle (IEEE 1003)
Abkürzung Posix
Status Veröffentlicht
Jahr begann 1988; Vor 34 Jahren
Letzte Version IEEE STD 1003.1-2017
2017; vor 5 Jahren
Organisation Austin -Gruppe (IEEE Computer Society, Die offene Gruppe, ISO/IEC JTC 1/SC 22/Wg 15)
Verwandte Standards ISO/IEC 9945
Domain Anwendungsprogrammierschnittstellen
Webseite erhalten.PoSixCertified.ieeee.org

Das Tragbare Betriebssystemschnittstelle (Posix) ist eine Familie von Standards angegeben durch die IEEE Computer Society zur Aufrechterhaltung der Kompatibilität zwischen Betriebssysteme.[1] POSIX definiert sowohl die System- als auch die Benutzerebene Anwendungsprogrammierschnittstellen (API) zusammen mit der Befehlszeile Muscheln und Dienstprogrammoberflächen für Softwarekompatibilität (Portabilität) mit Varianten von Unix und andere Betriebssysteme.[1][2] POSIX ist auch a Warenzeichen des IEEE.[1] POSIX soll sowohl von Anwendungs- als auch von Systementwicklern verwendet werden.[3]

Name

Ursprünglich wurde der Name "POSIX" auf IEEE STD 1003.1-1988, das 1988 veröffentlicht wurde IEEE 1003 Und die ISO/IEC -Standardnummer ist ISO/IEC 9945.

Die Standards stammen aus einem Projekt, das um 1985 begann. Richard Stallman schlug den Namen vor Posix (ausgesprochen als Pahz-Knicks, wie in positiv, nicht so wie poh-six) an die IEEE anstelle des früheren IEEE-IX. Das Komitee fand es leichter ausgesprochen und unvergesslich und übernahm es so.[1][4]

Überblick

Unix wurde als Grundlage für eine Standard-Systemschnittstelle ausgewählt, teilweise, weil es "Hersteller-neutral" war. Es gab jedoch mehrere Hauptversionen von UNIX-daher musste ein gemeinsames Konominatorsystem entwickelt werden. Die POSIX -Spezifikationen für Unix-artig Betriebssysteme bestanden ursprünglich aus einem einzigen Dokument für den Kern Programmierschnittstelle, aber schließlich zu 19 separaten Dokumenten (Possix.1, Possix.2 usw.).[5] Der standardisierte Benutzer Befehlszeile und Skriptschnittstelle waren auf dem basierend auf dem UNIX -System v Hülse.[6] Viele Programme, Dienste und Dienstprogramme auf Benutzerebene (einschließlich awk, Echo, ed) wurden ebenfalls standardisiert, zusammen mit den erforderlichen Diensten auf Programmebene (einschließlich Basic I/o: Datei, Terminal, und Netzwerk). POSIX definiert auch einen Standard Fäden Bibliotheks -API, die von den meisten modernen Betriebssystemen unterstützt wird. Im Jahr 2008 wurden die meisten Teile von POSIX zu einem einzigen Standard kombiniert (IEEE STD 1003.1-2008, auch bekannt als POSIX.1-2008).

Ab 2014, POSIX -Dokumentation ist in zwei Teile unterteilt:

  • POSIX.1, 2013 Ausgabe: POSIX-Basisdefinitionen, Systemoberflächen sowie Befehle und Dienstprogramme (einschließlich POSIX.1, Erweiterungen für POSIX.1, Echtzeitdienste, Threads-Schnittstelle, Echtzeit-Erweiterungen, Sicherheitsschnittstellen, Netzwerkdateizugriff und Netzwerkprozess-zu-Prozess-Kommunikation, Erweiterungen, Korrekturen und Erweiterungen, Schutz- und Steuerungsversorger sowie Stapelsysteme von Dienstprogrammen. Dies ist POSIX 1003.1-2008 mit technischem Corrigendum 1.)
  • POSIX -Konformitätstests: Eine Testsuite für POSIX begleitet den Standard: VSX-PCTs oder der VSX POSIX -Konformitätstestsuite.[7]

Die Entwicklung des POSIX -Standards findet in der statt Austin -Gruppe (ein Joint Arbeitsgruppe unter den IEEE, Die offene Gruppe, und die ISO/IEC JTC 1/SC 22/Wg 15).

Versionen

Teile vor 1997

Vor 1997 umfasste POSIX mehrere Standards:

Versionen nach 1997

Nach 1997 die Austin -Gruppe entwickelte die POSIX -Revisionen. Die Spezifikationen sind unter dem Namen bekannt Einzel -Unix -Spezifikation, bevor sie zu einem POSIX -Standard werden, wenn sie vom ISO offiziell genehmigt werden.

POSIX.1-2001 (mit zwei TCs)

Pox.1-2001 (oder IEEE STD 1003.1-2001) entspricht dem Einzel -Unix -Spezifikation, Version 3 Minus- X/offene Flüche.[9]

Dieser Standard bestand aus:

  • Die Basisdefinitionen, Ausgabe 6,
  • Die Systemoberflächen und Header, Ausgabe 6,
  • Die Befehle und Dienstprogramme, Ausgabe 6.

IEEE STD 1003.1-2004 umfasste ein kleines Update von POSIX.1-2001. Es enthielt zwei kleinere Updates oder Errata bezeichnet als Technische Corrigenda (TCS).[10] Der Inhalt ist im Web verfügbar.[11]

POSIX.1-2008 (mit zwei TCs)

Basisspezifikationen, Ausgabe 7 (oder IEEE STD 1003.1-2008, 2016 Ausgabe) ähnelt der aktuellen Version 2017 (zum 22. Juli 2018).[12][13]

Dieser Standard besteht aus:

  • Die Basisdefinitionen, Ausgabe 7,
  • Die Systemoberflächen und Header, Ausgabe 7,
  • die Befehle und Dienstprogramme, Ausgabe 7,
  • das Grundvolumen.

Pox.1-2017

IEEE STD 1003.1-2017 (Überarbeitung von IEEE STD 1003.1-2008)-IEEE 22. Juli 2018, der aktuelle Standard. Es ist technisch identisch mit POSIX.1-2008 mit technischen Corrigenda 1 und 2 angewendet. Eine kostenlose Online -Kopie ist möglicherweise noch verfügbar.[12]

Kontroversen

512- vs 1024-Byte-Blöcke

POSIX-Mandate 512-Byte-Standard Block Größen für die df und Du Versorgungsunternehmen, die die typische Größe der Blöcke auf Festplatten widerspiegeln. Wann Richard Stallman und die GNU Das Team implementierte POSIX für die GNU -BetriebssystemSie lehnten dies mit der Begründung ab, dass die meisten Menschen in Bezug auf 1024 Byte (oder 1) denken Kib) Blöcke. Die Umgebungsvariable Pox_me_harder wurde eingeführt, um dem Benutzer das Standardverhalten zu erzwingen.[14] Der variable Name wurde später in geändert Posixly_correct.[15] Diese Variable wird jetzt auch für eine Reihe anderer Verhaltensbekämpfung verwendet.

POSIX-orientierte Betriebssysteme

Abhängig vom Grad der Einhaltung der Standards kann man Betriebssysteme als vollständig oder teilweise kompatibel klassifizieren.

POSIX-zertifiziert

Aktuelle Versionen der folgenden Betriebssysteme wurden zertifiziert, um einem oder mehreren der verschiedenen POSIX -Standards zu entsprechen. Dies bedeutet, dass sie die automatisierten Konformitätstests bestanden haben[16] und ihre Zertifizierung ist nicht abgelaufen und das Betriebssystem wurde nicht eingestellt.[17][18]

Früher posix-zertifiziert

Einige Versionen der folgenden Betriebssysteme wurden zertifiziert, um einem oder mehreren der verschiedenen POSIX -Standards entspricht. Dies bedeutet, dass sie die automatisierten Konformitätstests bestanden haben. Die Zertifizierung ist abgelaufen und einige der Betriebssysteme wurden eingestellt.[17]

Meistens posix-konform

Das Folgende wird nicht als POSIX -konform zertifiziert und ist jedoch zum großen Teil entsprechend:

POSIX für Microsoft Windows

  • Cygwin Bietet eine weitgehend posix-konforme Entwicklung und Laufzeitumgebung für Microsoft Windows.
  • Mingw, a Gabel von Cygwin bietet eine weniger posix-konforme Entwicklungsumgebung und unterstützt kompatibel C-programmierte Anwendungen über Msvcrt, Microsofts alte visuelle C -Laufzeitbibliothek.
  • Microsoft POSIX -Subsystem, ein optionales Windows-Subsystem, das in Windows NT-basierten Betriebssystemen bis zu Windows 2000 enthalten ist. POSIX-1, wie es 1990 im Jahr 1990 stand, ohne Threads oder Steckdosen.
  • Interix, ursprünglich geöffnet von Softway Systems, Inc., ist ein Upgrade und Ersatz für Microsoft POSIX -Subsystem das wurde von gekauft von Microsoft 1999. wurde zunächst als eigenständiges Add-On-Produkt vermarkt Windows -Dienste für UNIX (SFU) und schließlich als Komponente in integriert in Windows Server 2003 R2 und spätere Windows OS veröffentlicht unter dem Namen "Subsystem für Unix-basierte Anwendungen" (SUA); später im Jahr 2012 veraltet gemacht (Windows 8)[38] und 2013 fallen (2012 R2, 8.1). Es ermöglicht eine vollständige POSIX -Konformität für bestimmte Microsoft Windows Produkte.
  • Windows -Subsystem für LinuxAuch als WSL bezeichnet, ist eine Kompatibilitätsebene für das Ausführen von Linux -Binärausführern unter Windows 10 unter Verwendung eines Linux -Bildes wie Ubuntu, Debian oder OpenSuse unter anderem, der als Upgrade und Ersatz für Windows -Dienste für UNIX fungiert. Es wurde im April 2016 in der Beta veröffentlicht. Die erste verfügbare Verteilung war Ubuntu.
  • DU GEWINNST Aus AT & T Research implementiert eine POSIX -Schicht über den Win32 -APIs.
  • MKS Toolkit, ursprünglich für MS-DOS erstellt, ist ein Softwarepaket, das von erstellt und verwaltet wird Mks Inc. das liefert a Unix-artig Umgebung für Skripten, Konnektivität und Portierung Unix und Linux Software auf 32- und 64-Bit Microsoft Windows Systeme. Eine Teilmenge davon wurde in die erste Veröffentlichung von enthalten Windows -Dienste für UNIX (SFU) 1998.[39][40]
  • Windows C -Laufzeitbibliothek und Windows Sockets API Implementieren Sie häufig verwendete POSIX -API -Funktionen für Datei-, Zeit-, Umgebungs- und Socket -Zugriff.[41] Obwohl die Unterstützung weitgehend unvollständig und nicht vollständig interoperabel mit POSIX-konformen Implementierungen ist.[42][43][diskutieren]

POSIX für OS/2

Meistens pox -konforme Umgebungen für OS/2:

  • EMX+GCC - weitgehend posix -konform

Possix für dos

Teilweise posix -konforme Umgebungen für DOS enthalten:

  • EMX+GCC - weitgehend posix -konform
  • DJGPP - teilweise posix -konform
  • DR-DOS Multitasking -Kern über EMM386 /Multi - Eine POSIX -Thread -Frontend -API -Erweiterung ist verfügbar

Konform über Kompatibilitätsschicht

Das Folgende ist nicht offiziell als POSIX -kompatibel zertifiziert, entspricht jedoch zum großen Teil den Standards, indem sie die POSIX -Unterstützung über eine Art von Kompatibilitätsfunktion (normalerweise Übersetzungsbibliotheken oder eine Ebene auf dem Kernel) implementieren. Ohne diese Merkmale sind sie normalerweise nicht konform.

Siehe auch

Verweise

  1. ^ a b c d "POSIX.1 FAQ". Die offene Gruppe. 13. Juni 2020. Abgerufen 22. Januar 2022.
  2. ^ "P1003.1-Standard für Informationstechnologie-Basisspezifikationen der Portable Operating System Interface (POSIX (TM)), Ausgabe 8". IEEE Standards Association.
  3. ^ "Einführung". Die Open Group Basis Specialations Ausgabe 7, 2018 Ausgabe. Abgerufen 22. Juli 2021.
  4. ^ "Der Ursprung des Namens posix". 2011. Abgerufen 28. September 2013.
  5. ^ PASC -Status (einschließlich POSIX) (Bericht). IEEE Computer Society. 4. Dezember 2003. Abgerufen 1. März 2015.
  6. ^ "Shell Command Language - Die Open Group Base Specialations Issue 7, 2013 Edition". Abgerufen 28. April 2020.
  7. ^ "Testsuiten VSX-PCTS2003". Die offene Gruppe.
  8. ^ "librt (3lib)". docs.oracle.com. Mannseiten Abschnitt 3: Bibliotheksoberflächen und Header. Oracle Corporation. 4. August 1998. Abgerufen 18. Februar 2016. librt, libpox4- possix.1b Echtzeit-Erweiterungsbibliothek [...] Librt ist der bevorzugte Name für diese Bibliothek. Der Name libpox4 wird für die Rückwärtskompatibilität beibehalten und sollte vermieden werden. Funktionen in dieser Bibliothek liefern die meisten Schnittstellen, die von der POSIX.1B -Echtzeiterweiterung angegeben sind.
  9. ^ "Die Single Unix -Spezifikation Version 3 - Übersicht". unix.org.
  10. ^ "IEEE STD 1003.1" (2004 ed.). Unix.org. Abgerufen 26. Juli 2009.
  11. ^ "IEEE STD 1003.1" (2004 ed.). Die offene Gruppe..
  12. ^ a b "Basisspezifikationen, Ausgabe 7, 2016 Ausgabe". Die offene Gruppe. Abgerufen 18. Dezember 2014.
  13. ^ "The Austin Common Standards Revision Group". Die offene Gruppe. Abgerufen 1. März 2016.
  14. ^ Stallman, Richard (28. August 1991). "Demokratie triumphiert in Festplatteneinheiten". Newsgroup:gnu.announce. Usenet: [email protected] - über Google Groups.
  15. ^ "GNU -Codierungsstandards". GNU.
  16. ^ "POSIX zertifiziert von IEEE und der Open Group - Programm Guide". Abschnitt 2, Ertragung der Zertifizierung. Abgerufen 22. Januar 2022.
  17. ^ a b "POSIX zertifiziert von IEEE und der Open Group - Programm Guide". Abschnitt 4, Erneuerungen und zertifizierte Produktaktualisierungen. Abgerufen 22. Januar 2022.
  18. ^ "Zertifizierte Produkte von Unternehmen". Die offene Gruppe. n.d. Abgerufen 22. Januar 2022.
  19. ^ a b "IBM". Die offene Gruppe. Abgerufen 23. Januar 2022.
  20. ^ "Huawei Technology Co., Ltd". Die offene Gruppe. Abgerufen 26. Mai 2017.
  21. ^ "Hewlett Packard". Die offene Gruppe. Abgerufen 26. Januar 2014.
  22. ^ a b "POSIX -Zertifizierungsregister". Get.PoSixCertified.ieee.org. Abgerufen 23. Januar 2022.
  23. ^ "Die offene Marke - Register für zertifizierte Produkte". Register für offene Markenprodukte. Die offene Gruppe. Abgerufen 20. Mai 2015.
  24. ^ "Apple Inc". Register für offene Markenprodukte. Die offene Gruppe. Abgerufen 20. Mai 2015.
  25. ^ "SCO OpenServer Release 5". Die offene Gruppe. 3. Mai 1995. Abgerufen 24. Dezember 2021.
  26. ^ "Unixware ® 7.1.3 und später". Die offene Gruppe. 16. Mai 2003. Abgerufen 24. Dezember 2021.
  27. ^ "Inspirur Co., Ltd". Die offene Gruppe. Abgerufen 26. Mai 2017.
  28. ^ "Silicon Graphics, Inc". Die offene Gruppe. Abgerufen 26. Januar 2014.
  29. ^ "Die offene Marke - Register für zertifizierte Produkte". Offene Gruppe. 23. Juli 2003. archiviert von das Original am 2. August 2003. Abgerufen 23. Januar 2022.
  30. ^ "QNX erreicht eine neue POSIX -Zertifizierung" (Pressemitteilung). Qnx. 8. April 2008. Abgerufen 16. Januar 2016.
  31. ^ "Oracle Corporation". Die offene Gruppe. Archiviert von das Original am 12. Juli 2017. Abgerufen 26. Januar 2014.
  32. ^ "Hewlett Packard". Die offene Gruppe. Archiviert von das Original am 9. Juli 2014. Abgerufen 26. Januar 2014.
  33. ^ Schweikhardt, Jens. "FreeBSD POSIX 2001 Utility Compliance". Freebsd.
  34. ^ Mark Halper (7. November 1994). "HP 3000 Sales Catch Market überrascht". Computerwelt. Vol. 28, nein. 4. IDG Enterprise.
  35. ^ LOOLTER, NICHOLAS A.; Jelinek, Jerry; Miner, David (21. März 2011). OpenSolaris Bibel. John Wiley & Sons. ISBN 9781118080313.
  36. ^ "OpenVOS POSIX.1: Konformitätshandbuch". Status Technologien. Abgerufen 26. November 2021.
  37. ^ Ultrix POSIX -Konformitätsdokument (PDF). Digital. Juni 1990. Abgerufen 13. Dezember 2021.
  38. ^ "In Windows Server 2012 entfernt oder veraltet.". Microsoft Docs. 31. August 2016.
  39. ^ "Windows NT-Dienste für UNIX-Add-On Pack". Microsoft. Archiviert von das Original am 8. Mai 1999.
  40. ^ "MKS löst Enterprise Interoperability Challenges" (Pressemitteilung). Archiviert von das Original am 28. April 1999.
  41. ^ "Veraltete CRT -Funktionen". Microsoft Docs. 15. Oktober 2009. Abgerufen 23. Juli 2022.
  42. ^ "Porting Socket -Anwendungen nach Winsock". Microsoft Docs. 7. Januar 2021. Abgerufen 23. Juli 2022.
  43. ^ "FAQ -Artikel von Winsock Programmer: BSD Sockets Kompatibilität". Warren Young. 31. August 2015. Abgerufen 8. Oktober 2015.
  44. ^ "Aminet - Dev/C/VBCC_POSIXLIB.LHA".
  45. ^ "IBM Pase für mich programmieren" (PDF). ibm.com. IBM. 2013. Abgerufen 25. November 2021.
  46. ^ "Ape - ANSI/POSIX -Umgebung". Plan 9 Dokumente. Bell Labs. Archiviert von das Original am 1. Juni 2016.
  47. ^ "Kapitel 29 - POSIX -Kompatibilität". MS Windows NT Workstation Resource Kit. Microsoft. Archiviert von das Original am 15. Januar 2008.
  48. ^ Echtzeitprodukte Technische Zusammenfassung, fünfte Ausgabe (PDF). Digital Equipment Corporation. Dezember 1992. Abgerufen 8. Dezember 2021.

Externe Links