POSIX
Abkürzung | Posix |
---|---|
Status | Veröffentlicht |
Jahr begann | 1988 |
Letzte Version | IEEE STD 1003.1-2017 2017 |
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 |
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[aktualisieren], 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:
- Pox.1: Kerndienste (beinhaltet Standard Ansi c) (IEEE STD 1003.1-1988)
- Verfahren Schöpfung und Kontrolle
- Signale
- Datei- und Verzeichnisoperationen
- Rohre
- C -Bibliothek (Standard c)
- I/o Portschnittstelle und Steuerung
- Prozessauslöser
- Pox.1b: Echtzeit-Erweiterungen (IEEE STD 1003.1B-1993, später als librt-die Echtzeit-Erweiterungsbibliothek)[8]
- Priorität Planung
- Echtzeitsignale
- Uhren und Timer
- Semaphoren
- Nachrichtenübergang
- Geteilte Erinnerung
- Asynchron und synchrone i/o
- Speicherverriegelungsschnittstelle
- Pox.1c: Fadenverlängerungen (IEEE STD 1003.1C-1995)
- Fadenerstellung, Kontrolle und Reinigung
- Thread -Planung
- Fadensynchronisation
- Signalhandhabung
- Pox.2: Shell and Utilities (IEEE STD 1003.2-1992)
- Befehlsinterpreter
- Dienstprogramme
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:
- Android (Erhältlich über Android NDK)
- Beos (und folglich Haiku)
- Contiki
- Darwin (Kern von Mac OS und iOS)
- Libelle BSD
- Freebsd[33]
- Illumos
- Linux (die meisten Verteilungen)
- Luchs
- Minix (jetzt Minix3)
- MPE/ix[34]
- Netbsd
- Nucleus rtos
- Nuttx
- OpenBSD
- OpenSolaris[35]
- Pikeos RTOs für eingebettete Systeme mit optionalen PSE51- und PSE52 -Partitionen; sehen Partition (Mainframe)
- Redox
- Rtems - POSIX -API -Unterstützung für IEEE STD. 1003.13-2003 PSE52
- Stratus OpenVos[36]
- Skyos
- Silbe
- Ultrix[37]
- Vsta
- VMware ESXI
- Xenix
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.
- Amigaos (durch die ixemulbibliothek oder VBCC_Posixlib[44])
- Ökos- POSIX ist Teil der Standardverteilung und wird von vielen Anwendungen verwendet. Abschnitt "Externe Links" unten enthält weitere Informationen.
- Ibm i (durch die Pase Kompatibilitätsschicht)[45]
- Morphos (durch die eingebaute Ixemul-Bibliothek)
- OpenVMS (über optionales POSIX -Paket)
- Plan 9 von Bell Labs Affen - ANSI/POSIX -Umgebung[46]
- AUFSTAND (ü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 später. Um posix konform zu sein, muss man optionale Funktionen von Windows NT und Windows 2000 Server aktivieren.[47]
- Windows XP Professional mit Service Pack 1 oder später
- Windows Server 2003
- Windows Server 2008 und ultimative und unternehmerische Versionen von Windows Vista
- Windows Server 2008 R2 und ultimative und unternehmerische Versionen von Windows 7
- wenn auch veraltet, noch verfügbar für Windows Server 2012 und Enterprise -Version von Windows 8
- Vaxeln (Teilweise Unterstützung von 1003.1 und 1003.4 über die Vaxeln Possix Runtime Library)[48]
Siehe auch
- Einzel -Unix -Spezifikation
- POSIX -Signal
- POSIX -Threads
- C POSIX -Bibliothek
- Gemeinsamer Benutzerzugriff- Nutzungsschnittstellenstandard
- Tragbarer Zeichensatz, Set von 103 Zeichen
- Echtzeit-Betriebssystem
- Interix-Ein Subsystem für POSIX- und UNIX-Umgebungs-Umgebungs-Subsysteme für die Windows NT-basierten Betriebssysteme von Microsoft
- Tron -Projekt- Alternative Betriebssystemstandards nach POSIX
Verweise
- ^ a b c d "POSIX.1 FAQ". Die offene Gruppe. 13. Juni 2020. Abgerufen 22. Januar 2022.
- ^ "P1003.1-Standard für Informationstechnologie-Basisspezifikationen der Portable Operating System Interface (POSIX (TM)), Ausgabe 8". IEEE Standards Association.
- ^ "Einführung". Die Open Group Basis Specialations Ausgabe 7, 2018 Ausgabe. Abgerufen 22. Juli 2021.
- ^ "Der Ursprung des Namens posix". 2011. Abgerufen 28. September 2013.
- ^ PASC -Status (einschließlich POSIX) (Bericht). IEEE Computer Society. 4. Dezember 2003. Abgerufen 1. März 2015.
- ^ "Shell Command Language - Die Open Group Base Specialations Issue 7, 2013 Edition". Abgerufen 28. April 2020.
- ^ "Testsuiten VSX-PCTS2003". Die offene Gruppe.
- ^ "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.
- ^ "Die Single Unix -Spezifikation Version 3 - Übersicht". unix.org.
- ^ "IEEE STD 1003.1" (2004 ed.). Unix.org. Abgerufen 26. Juli 2009.
- ^ "IEEE STD 1003.1" (2004 ed.). Die offene Gruppe..
- ^ a b "Basisspezifikationen, Ausgabe 7, 2016 Ausgabe". Die offene Gruppe. Abgerufen 18. Dezember 2014.
- ^ "The Austin Common Standards Revision Group". Die offene Gruppe. Abgerufen 1. März 2016.
- ^ Stallman, Richard (28. August 1991). "Demokratie triumphiert in Festplatteneinheiten". Newsgroup:gnu.announce. Usenet: [email protected] - über Google Groups.
- ^ "GNU -Codierungsstandards". GNU.
- ^ "POSIX zertifiziert von IEEE und der Open Group - Programm Guide". Abschnitt 2, Ertragung der Zertifizierung. Abgerufen 22. Januar 2022.
- ^ a b "POSIX zertifiziert von IEEE und der Open Group - Programm Guide". Abschnitt 4, Erneuerungen und zertifizierte Produktaktualisierungen. Abgerufen 22. Januar 2022.
- ^ "Zertifizierte Produkte von Unternehmen". Die offene Gruppe. n.d. Abgerufen 22. Januar 2022.
- ^ a b "IBM". Die offene Gruppe. Abgerufen 23. Januar 2022.
- ^ "Huawei Technology Co., Ltd". Die offene Gruppe. Abgerufen 26. Mai 2017.
- ^ "Hewlett Packard". Die offene Gruppe. Abgerufen 26. Januar 2014.
- ^ a b "POSIX -Zertifizierungsregister". Get.PoSixCertified.ieee.org. Abgerufen 23. Januar 2022.
- ^ "Die offene Marke - Register für zertifizierte Produkte". Register für offene Markenprodukte. Die offene Gruppe. Abgerufen 20. Mai 2015.
- ^ "Apple Inc". Register für offene Markenprodukte. Die offene Gruppe. Abgerufen 20. Mai 2015.
- ^ "SCO OpenServer Release 5". Die offene Gruppe. 3. Mai 1995. Abgerufen 24. Dezember 2021.
- ^ "Unixware ® 7.1.3 und später". Die offene Gruppe. 16. Mai 2003. Abgerufen 24. Dezember 2021.
- ^ "Inspirur Co., Ltd". Die offene Gruppe. Abgerufen 26. Mai 2017.
- ^ "Silicon Graphics, Inc". Die offene Gruppe. Abgerufen 26. Januar 2014.
- ^ "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.
- ^ "QNX erreicht eine neue POSIX -Zertifizierung" (Pressemitteilung). Qnx. 8. April 2008. Abgerufen 16. Januar 2016.
- ^ "Oracle Corporation". Die offene Gruppe. Archiviert von das Original am 12. Juli 2017. Abgerufen 26. Januar 2014.
- ^ "Hewlett Packard". Die offene Gruppe. Archiviert von das Original am 9. Juli 2014. Abgerufen 26. Januar 2014.
- ^ Schweikhardt, Jens. "FreeBSD POSIX 2001 Utility Compliance". Freebsd.
- ^ Mark Halper (7. November 1994). "HP 3000 Sales Catch Market überrascht". Computerwelt. Vol. 28, nein. 4. IDG Enterprise.
- ^ LOOLTER, NICHOLAS A.; Jelinek, Jerry; Miner, David (21. März 2011). OpenSolaris Bibel. John Wiley & Sons. ISBN 9781118080313.
- ^ "OpenVOS POSIX.1: Konformitätshandbuch". Status Technologien. Abgerufen 26. November 2021.
- ^ Ultrix POSIX -Konformitätsdokument (PDF). Digital. Juni 1990. Abgerufen 13. Dezember 2021.
- ^ "In Windows Server 2012 entfernt oder veraltet.". Microsoft Docs. 31. August 2016.
- ^ "Windows NT-Dienste für UNIX-Add-On Pack". Microsoft. Archiviert von das Original am 8. Mai 1999.
- ^ "MKS löst Enterprise Interoperability Challenges" (Pressemitteilung). Archiviert von das Original am 28. April 1999.
- ^ "Veraltete CRT -Funktionen". Microsoft Docs. 15. Oktober 2009. Abgerufen 23. Juli 2022.
- ^ "Porting Socket -Anwendungen nach Winsock". Microsoft Docs. 7. Januar 2021. Abgerufen 23. Juli 2022.
- ^ "FAQ -Artikel von Winsock Programmer: BSD Sockets Kompatibilität". Warren Young. 31. August 2015. Abgerufen 8. Oktober 2015.
- ^ "Aminet - Dev/C/VBCC_POSIXLIB.LHA".
- ^ "IBM Pase für mich programmieren" (PDF). ibm.com. IBM. 2013. Abgerufen 25. November 2021.
- ^ "Ape - ANSI/POSIX -Umgebung". Plan 9 Dokumente. Bell Labs. Archiviert von das Original am 1. Juni 2016.
- ^ "Kapitel 29 - POSIX -Kompatibilität". MS Windows NT Workstation Resource Kit. Microsoft. Archiviert von das Original am 15. Januar 2008.
- ^ Echtzeitprodukte Technische Zusammenfassung, fünfte Ausgabe (PDF). Digital Equipment Corporation. Dezember 1992. Abgerufen 8. Dezember 2021.
Externe Links
- "POSIX -Zertifizierungshaus". Die offene Gruppe/IEEE.