Was ist POSIX (Portable Operating System Interface)?

10. Februar 2026

POSIX ist eine Reihe von Standards, die definieren, wie sich Betriebssysteme auf einer grundlegenden Ebene verhalten sollen.

Was ist POSIX?

Was versteht man unter POSIX?

POSIX (Portable Operating System Interface) ist eine Familie von IEEE-Standards (Institute of Electrical and Electronics Engineers), die einen gemeinsamen Standard fรผr Betriebssysteme festlegt. Betriebssystem Schnittstelle, sodass Software einmal geschrieben und mit minimalen ร„nderungen auf mehreren kompatiblen Systemen ausgefรผhrt werden kann.

Es definiert das Verhalten und die Signaturen des Schlรผssels APIs genutzt von Anwendungen, insbesondere das C POSIX standardisiert Bibliotheken und zugrundeliegende Systemaufrufe, die Kernbereiche wie Prozesse und Signale, Datei- und Verzeichnisoperationen, Berechtigungen, Interprozesskommunikationsprimitive, Zeitfunktionen und grundlegende Threads abdecken. Befehlszeilen Dienstprogramme und eine Shell-Umgebung, weshalb viele Skripte Wir gehen von einem POSIX-รคhnlichen /bin/sh-Verzeichnis und einem vorhersehbaren Satz von Werkzeugverhalten aus.

In der Praxis fungiert POSIX als Kompatibilitรคtsvertrag zwischen Anwendungen und dem Betriebssystem: Wenn ein Betriebssystem und seine Standardbibliotheken den POSIX-Spezifikationen folgen, kรถnnen sich Entwickler auf eine konsistente Semantik fรผr Dinge wie Dateideskriptoren, Pipes, Exit-Status und Fehlercodes verlassen, was die Portabilitรคt zwischen verschiedenen Betriebssystemen verbessert. UNIX und Unix-รคhnliche Plattformen (und zwar รผber verschiedene Anbieter und Distributionen hinweg).

Was ist die Geschichte von POSIX?

POSIX entstand aus den Portabilitรคtsproblemen der frรผhen UNIX-ร„ra, als verschiedene Hersteller Unix-Varianten auslieferten, die sich zwar รคhnlich, aber nicht identisch verhielten. Mitte der 1980er-Jahre startete das IEEE ein formelles Standardisierungsprojekt (das P1003-Projekt), um eine einheitliche, herstellerneutrale Schnittstelle fรผr ein โ€žportables Betriebssystemโ€œ zu definieren, die weitgehend auf gรคngigen UNIX-Praktiken basierte. Der Name โ€žPOSIXโ€œ selbst wurde von Richard Stallman, dem Grรผnder von POSIX, vorgeschlagen. GNU project, als kurze, aussprechbare Bezeichnung fรผr Portable Operating System Interface.

Der erste Kernstandard wurde als IEEE Std 1003.1-1988 verรถffentlicht und konzentrierte sich auf grundlegende Betriebssystemdienste und C/POSIX-Systemschnittstellen (Prozesse, Dateien/Verzeichnisse, Signale, Pipes und verwandte Grundlagen). Spรคter wurde er an ISO/IEC als Normenreihe 9945 angeglichen (z. B. ISO/IEC 9945-1:1990).

Von da an wurde POSIX durch Revisionen und zugehรถrige Spezifikationen erweitert und weiterentwickelt. Ein wichtiger Wendepunkt war die Grรผndung der Austin Group im Jahr 1998, einer gemeinsamen Initiative von IEEE, The Open Group und ISO/IEC zur Erstellung eines einheitlichen, harmonisierten Satzes von โ€žBasisspezifikationenโ€œ. Diese Arbeit fรผhrte zu POSIX.1-2001 (technisch ausgerichtet auf die Single UNIX Specification, Version 3), das Anfang 2002 verรถffentlicht wurde. Spรคtere wichtige Revisionen wie POSIX.1-2008 aktualisierten und prรคzisierten den Standard kontinuierlich.

POSIX-Beispiele

POSIX zeigt sich am deutlichsten in den gemeinsamen โ€žBausteinenโ€œ, die UNIX-รคhnliche Systeme verwenden. Deshalb laufen oft derselbe Code und dieselben Shell-Skripte auf Linux, BSD und macOS mit geringfรผgigen oder gar keinen ร„nderungen.

Gรคngige POSIX-Beispiele sind:

  • Datei- und Prozessschnittstellenwie beispielsweise open(), read(), write() und close() fรผr den Dateizugriff sowie fork() / execve() zum Starten neuer Programme.
  • Dateideskriptoren und Pipes, die es Programmen ermรถglichen, Daten untereinander auszutauschen, indem sie Funktionen wie pipe() und dup2() verwenden.
  • Signalewie beispielsweise SIGINT und SIGTERM, die Programme auf standardisierte Weise mit sigaction() verarbeiten.
  • Threads, bereitgestellt durch die POSIX Threads (pthreads) APIs, einschlieรŸlich Funktionen wie pthread_create() und pthread_mutex_lock().
  • POSIX-konforme Shell-Skripte, geschrieben fรผr /bin/sh und unter Verwendung portabler Hilfsprogramme wie sh, grep, sed, awk, find und tar, die sich systemรผbergreifend konsistent verhalten.

Diese Standardisierung ermรถglicht es, POSIX-basierte Software auf verschiedenen UNIX-รคhnlichen Plattformen lauffรคhig zu machen.

Wozu dient POSIX?

POSIX dient dazu, Software portabel und vorhersehbar auf UNIX- und UNIX-รคhnlichen Betriebssystemen zu machen, indem die Schnittstellen standardisiert werden, auf die Programme angewiesen sind. Entwickler nutzen es als Grundlage fรผr das grundlegende Verhalten des Betriebssystems, einschlieรŸlich der Erstellung und Verwaltung von Prozessen, des Zugriffs auf Dateien und Verzeichnisse, der Funktionsweise von Berechtigungen, des Verhaltens von Signalen und Zeitfunktionen sowie der Funktionsweise von Interprozesskommunikationsbausteinen wie Pipes.

Dadurch lรคsst sich derselbe Anwendungscode mit minimalen ร„nderungen auf verschiedenen Systemen kompilieren und ausfรผhren. POSIX dient auรŸerdem als Portabilitรคtsziel fรผr Shell-Skripte und Kommandozeilen-Tools, da es eine gemeinsame Shell-Umgebung und ein standardisiertes Verhalten von Hilfsprogrammen definiert und somit die Unterschiede zwischen Distributionen und Anbietern hinsichtlich der Kompatibilitรคt auf verschiedenen Systemen reduziert.

Welche Betriebssysteme unterstรผtzen POSIX?

Die meisten modernen UNIX- und UNIX-รคhnlichen Betriebssysteme unterstรผtzen POSIX in gewissem MaรŸe, entweder vollstรคndig oder mit gut dokumentierten Erweiterungen und Lรผcken.

Native UNIX-Systeme wie Linux, FreeBSD, OpenBSD, NetBSD und macOS basieren alle auf POSIX-Konzepten und bieten eine umfassende POSIX-Konformitรคt. KerneC-Bibliotheken, Shells und Kernprogramme. Diese Systeme sind der Hauptgrund, warum POSIX weiterhin relevant ist, da sie es ermรถglichen, dieselben Anwendungen und Skripte mit minimalen Anpassungen auf verschiedenen Herstellern und Distributionen auszufรผhren.

Einige Nicht-UNIX-Systeme unterstรผtzen POSIX teilweise oder รผber Kompatibilitรคtsschichten. Beispielsweise waren IBM AIX, HP-UX und Solaris in der Vergangenheit nach POSIX und der Single UNIX Specification zertifiziert.

Windows ist nicht POSIX-nativ, bietet aber eingeschrรคnkte POSIX-Unterstรผtzung durch Umgebungen wie das Windows-Subsystem fรผr Linux (WSL) oder Kompatibilitรคtsschichten wie Cygwin, die POSIX-APIs auf dem Windows-Kernel bereitstellen.

POSIX-Konformitรคtsstufen

POSIX-Konformitรคtsstufen

POSIX-Konformitรคt ist keine einfache Angelegenheit. Systeme geben typischerweise die Konformitรคt mit einer bestimmten POSIX-Edition (z. B. POSIX.1) an und beanspruchen optional die Konformitรคt mit weiteren Funktionsgruppen. Einige Anbieter gehen noch einen Schritt weiter und lassen sich formal zertifizieren. Die Stufen der POSIX-Konformitรคt sind:

  • POSIX-Basiskonformitรคt (POSIX.1 / IEEE 1003.1)Das Betriebssystem stellt die im Basisstandard definierten erforderlichen POSIX-Schnittstellen und -Verhaltensweisen bereit, einschlieรŸlich der Kernsemantik fรผr Prozesse, Dateien und Systemaufrufe sowie des an diese Spezifikationsausgabe gebundenen Basisverhaltens von Shell und Dienstprogrammen.
  • POSIX-Konformitรคt mit Optionsgruppenรœber die Basis hinaus definiert POSIX optionale Funktionsumfรคnge (Optionsgruppen). Ein System kann โ€žPOSIX-konformโ€œ sein und zusรคtzlich unterstรผtzte Optionen beanspruchen (z. B. zusรคtzliche Hilfsprogramme oder erweiterte API-Semantik).
  • SUS/Single UNIX Specification (XSI + POSIX base). Die Single UNIX Specification ist eine Obermenge, die รผber die POSIX-Basis hinaus zusรคtzliche Schnittstellen und Semantik erfordert, insbesondere die XSI-Option (X/Open System Interfaces), die in POSIX optional ist, aber fรผr das UNIX-Branding unter SUS erforderlich ist.
  • POSIX-zertifiziert (formales Zertifizierungsprogramm)Unabhรคngig von โ€žAnsprรผchenโ€œ kรถnnen Produkte formell im Rahmen des Programms โ€žPOSIXโ„ข: Certified by IEEE and The Open Groupโ€œ zertifiziert werden. Dabei handelt es sich um einen definierten Prozess zur Registrierung und Validierung von Konformitรคtsaussagen.
  • UNIXยฎ-zertifiziert (Markenebene)Systeme, die vollstรคndig konform mit der Single UNIX Specification sind und entsprechend zertifiziert wurden, dรผrfen die Marke UNIXยฎ verwenden. Dies stellt eine stรคrkere, markenrechtlich geschรผtzte Konformitรคtsstufe dar als die Unterstรผtzung nach dem POSIX-Standard.

POSIX-Standards

POSIX ist kein einzelnes Dokument, sondern eine Familie verwandter Standards. ร„ltere POSIX-Dokumente wurden in separaten Teilen verรถffentlicht (APIs vs. Shell/Tools), wรคhrend modernes POSIX als eine konsolidierte Spezifikation gepflegt und regelmรครŸig รผberarbeitet wird. Zu den Standards gehรถren:

  • POSIX.1 (IEEE Std 1003.1)Der Kernstandard, der die grundlegenden Betriebssystem-APIs und Verhaltensweisen definiert, die von Anwendungen verwendet werden (z. B. Prozesse und Dateien). I / O Semantik) als grundlegende โ€žPortable OS-Schnittstelleโ€œ.
  • POSIX.2 (IEEE Std 1003.2). Der Standard fรผr die Befehlsinterpreter (Shell) und gemeinsam DienstprogrammeSkripte kรถnnen sich daher auf eine einheitliche Shell-Sprache und ein konsistentes Tool-Verhalten in kompatiblen Systemen verlassen.
  • POSIX.1b (IEEE Std 1003.1b). Echtzeit-Erweiterungen, die standardisierte Schnittstellen und Semantik hinzufรผgen, die fรผr Echtzeit-Anwendungsfรคlle benรถtigt werden (z. B. Echtzeitsignale, Uhren/Timer, gemeinsam genutzter Speicher, Semaphore).
  • POSIX.1c (IEEE Std 1003.1c). Threading-Erweiterungen, die das POSIX-Thread-Modell standardisierten (pthreads), sodass Multithread-Programme systemรผbergreifend portierbar sind.
  • Vereinheitlichte POSIX.1-Revisionen (ร„ra der Austin Group)Spรคtere รœberarbeitungen fassen die ehemals separaten Teile zu einem einzigen Satz von โ€žBasisspezifikationenโ€œ zusammen (รผblicherweise in Bรคnden wie Basisdefinitionen, Systemschnittstellen und Shell & Dienstprogramme dargestellt) und aktualisieren diesen im Laufe der Zeit, z. B. POSIX.1-2008, POSIX.1-2017Und der neueste POSIX.1-2024 (IEEE Std 1003.1-2024).

Vorteile und Grenzen von POSIX

POSIX sorgt fรผr Konsistenz in UNIX-รคhnlichen Systemen, indem es einen gemeinsamen Satz von Betriebssystemschnittstellen und Werkzeugverhalten definiert. Das Verstรคndnis seiner Vorteile und Grenzen hilft zu klรคren, wann die Verwendung von POSIX die Portabilitรคt und Wartbarkeit verbessert und wann plattformspezifische Funktionen oder Erweiterungen erforderlich sind, um die eigenen Anforderungen zu erfรผllen.

POSIX-Vorteile

POSIX ist vor allem deshalb wertvoll, weil es das erwartete Verhalten des Betriebssystems standardisiert, von dem viele Anwendungen und Skripte abhรคngen. Dadurch werden plattformspezifische Anpassungen und unerwartete Probleme reduziert. Zu seinen Vorteilen gehรถren:

  • Portabilitรคt zwischen UNIX-รคhnlichen SystemenCode, der fรผr POSIX-APIs (Dateien, Prozesse, Signale usw.) geschrieben wurde, lรคsst sich mit grรถรŸerer Wahrscheinlichkeit auf verschiedenen Betriebssystemen mit minimalen ร„nderungen kompilieren und ausfรผhren.
  • Vorhersagbares SystemverhaltenStandardisierte Semantik fรผr Dinge wie Dateideskriptoren, Exit-Status, Berechtigungen und Fehlerbehandlung sorgt dafรผr, dass sich Programme in verschiedenen Umgebungen einheitlicher verhalten.
  • Skript und Werkzeug Interoperabilitรคt. Eine POSIX-Shell und Standarddienstprogramme ermรถglichen portable Shell-Skripte und zuverlรคssige Befehlspipelines รผber verschiedene Distributionen und Hersteller hinweg.
  • Einfachere Wartung und Einarbeitung. Eine gemeinsame Basislinie reduziert bedingte Codepfade und โ€žSonderfรคlleโ€œ, wodurch Projekte einfacher zu warten und fรผr neue Mitwirkende leichter verstรคndlich werden.
  • Breitere Kompatibilitรคt mit dem ร–kosystem. Viele Laufzeitumgebungen, Build-Systeme und Open-Source Die Tools setzen ein POSIX-รคhnliches Verhalten voraus, daher verbessert die POSIX-Unterstรผtzung die Kompatibilitรคt mit bestehender Software.
  • HerstellerneutralitรคtPOSIX bietet ein stabiles Zielsystem, das die Abhรคngigkeit der Software von den proprietรคren Schnittstellen eines einzelnen Betriebssystemherstellers vermeidet.

POSIX-Beschrรคnkungen

POSIX ist eine nรผtzliche Grundlage, deckt aber nicht alle Funktionen moderner Systeme ab, und die tatsรคchliche Einhaltung kann variieren. Zu den Einschrรคnkungen gehรถren:

  • Kein vollstรคndiger Funktionsumfang des Betriebssystems. POSIX konzentriert sich auf Kern-APIs und -Tools, daher erfordern viele praktische Anforderungen (erweiterte Netzwerkfunktionen, moderne Sicherheitsframeworks, Container-Primitive usw.) oft Nicht-POSIX-Erweiterungen.
  • Abweichungen bei der Einhaltung in der PraxisSysteme kรถnnen sich darin unterscheiden, welche optionalen Funktionen sie implementieren und wie sie sich in Grenzfรคllen verhalten. Daher bedeutet โ€žPOSIX-รคhnlichโ€œ nicht immer, dass รผberall identische Ergebnisse erzielt werden.
  • Kleinste-gemeinsame-Nenner-BedingungenDie strikte Einhaltung von POSIX kann bedeuten, dass plattformspezifische Funktionen vermieden werden, die die Leistung, die Beobachtbarkeit oder die Funktionalitรคt verbessern kรถnnten.
  • Werkzeugunterschiede auรŸerhalb des StandardsAuch wenn รผberall entsprechende Hilfsprogramme existieren, kรถnnen Implementierungen zusรคtzliche Optionen hinzufรผgen oder Standardwerte รคndern, sodass Skripte immer noch nicht funktionieren, wenn sie auf nicht POSIX-konforme Optionen angewiesen sind (hรคufig bei sed, awk, tar usw.).
  • Zertifizierung ist nicht universell.Viele Systeme unterstรผtzen POSIX im Allgemeinen ohne formale Zertifizierung, daher sind mรถglicherweise weiterhin Tests und Kompatibilitรคtsprรผfungen erforderlich, anstatt sich auf ein Konformitรคtslabel zu verlassen.
  • Sich wandelnde Erwartungen vs. Standardtempo. Die Standard-Updates, aber populรคre Plattformen und ร–kosysteme kรถnnen schneller reagieren, daher zielen Entwickler in der Praxis oft auf โ€žPOSIX + De-facto-Erweiterungenโ€œ ab.

Ist POSIX veraltet?

POSIX ist nicht veraltet als BaselineAuch wenn es nicht alle Funktionen moderner Betriebssysteme beschreibt, ist es dennoch relevant, da es die Kernprozesse, die Dateiein- und -ausgabe sowie das Verhalten von Shell und Hilfsprogrammen standardisiert, auf denen eine Vielzahl von Systemsoftware und -tools basiert. Zudem wird es von der Austin Group aktiv gepflegt und รผberarbeitet und ist nicht in der Zeit stehen geblieben.

Das โ€žaltmodischeโ€œ Gefรผhl entsteht dadurch, dass viele wichtige Funktionen, wie beispielsweise fortgeschrittene, nur unter Linux verfรผgbare APIs, macOS-spezifische Frameworks, moderne Sicherheitsmodelle, Container und einige neuere Netzwerkfunktionen, auรŸerhalb von POSIX liegen. Daher zielen reale Projekte oft auf โ€žPOSIX plus Plattformerweiterungenโ€œ ab und validieren das Verhalten durch Tests, anstatt zu erwarten, dass der Standard allein alles abdeckt.


Anastazija
Spasojeviฤ‡
Anastazija ist eine erfahrene Content-Autorin mit Wissen und Leidenschaft fรผr cloud Computer, Informationstechnologie und Online-Sicherheit. Bei phoenixNAP, konzentriert sie sich auf die Beantwortung brennender Fragen zur Gewรคhrleistung der Datenrobustheit und -sicherheit fรผr alle Teilnehmer der digitalen Landschaft.