POSIX -Standard

POSIX -Standard

POSIX: Ein Überblick

Die tragbare Betriebssystemschnittstelle (POSIX) ist ein IEEE. Theoretisch sollte POSIX -konformer Quellcode nahtlos tragbar sein. In der realen Welt geht der Anwendungsübergang häufig auf systemspezifische Probleme aus. Die POSIX -Compliance erleichtert jedoch Portanwendungen, die zu Zeiteinsparungen führen können. Entwickler sollten sich also mit den Grundlagen dieses weit verbreiteten Standards vertraut machen.

Geschichte von Posix

Frühe Programmierer mussten ihre Anwendungen für jedes neue Computermodell von Grund auf neu schreiben. Aber das IBM System/360 hat das verändert. 1964 führte es das Betriebssystem OS/360 ein. IBM nutzte die gleiche Hardware -Architektur, um es den neuen Modellen zu ermöglichen, dasselbe Betriebssystem wiederzuverwenden. Das Vorhandensein eines gemeinsamen Betriebssystems über mehrere Maschinen verfügt über die erste Stufe für die Anwendungsübertragbarkeit.

In den späten 1960er Jahren eröffnete die Ankunft von Unix neue Möglichkeiten. Die Bell Labs von AT & T war für die anfängliche Entwicklung dieses neuen Betriebssystems verantwortlich. Es könnte über Maschinen mehrerer Anbieter laufen. Aber Unix begann in verschiedene Geschmacksrichtungen zu greifen. Neben dem AT & T -System V gab es Berkeley Software Distribution (BSD), Xenix und mehr. Es war nicht einfach, über diese Geschmacksrichtungen zu portieren. Das Versprechen der Anwendungsportabilität traf eine Straßennutzung. In den kommenden Jahrzehnten würde die Einführung neuer Betriebssysteme es nur komplexer für Portanwendungen für Hardware, Betriebssysteme und Anbieter machen.

Der POSIX -Standard wurde in den 1980er Jahren entwickelt, um das Problem der Portabilität zu lösen. Der Standard wurde basierend auf System V und BSD UNIX definiert. POSIX definiert das Betriebssystem nicht, sondern nur die Schnittstelle zwischen einer Anwendung und einem Betriebssystem. Die Programmierer haben die Freiheit, ihr Betriebssystem und ihre Anwendung trotzdem zu schreiben, solange die Schnittstelle zwischen den beiden geehrt wird. Da POSIX unabhängig von Hardware, Betriebssystem oder Anbieter ist, ist es einfacher, die Anwendungsportabilität zu erreichen.

Der erste POSIX -Standard wurde 1988 veröffentlicht. Formal hieß es IEEE Standard 1003.1-1988 Tragbare Betriebssystemschnittstelle für Computerumgebungen “. Im Jahr 1990 wurde eine internationale Version des gleichen Standards mit geringfügigen Variationen als ISO/IEC 9945-1: 1990 Informationstechnologie - tragbare Betriebssystemschnittstelle (POSIX) - Teil 1: System Application Program Interface (API) veröffentlicht.

Anfangs wurde POSIX in mehrere Standards unterteilt:

Posix.1: Kernleistungen
Posix.1b: Echtzeit-Erweiterungen
Posix.1c: Fadenverlängerungen
Posix.2: Hülle und Versorgungsunternehmen

Nach 1997 brachte die Austin -Gruppe den gesamten Standard unter einen einzigen Regenschirm. Seitdem posixe die Versionen.1-2001 (auch als IEEE STD 1003 bekannt.1-2001), posix.1-2004 (auch als IEEE STD 1003 bekannt.1-2004) und POSIX.1-2008 (auch als IEEE STD 1003 bekannt.1-2008) wurden veröffentlicht.

Beispiele für einige posix-konforme Systeme sind AIX, HP-UX, Solaris und MacOS (seit 10.5 Leopard). Andererseits, Android, FreeBSD, Linux Distributions, OpenBSD, VMware usw., Folgen Sie den größten Teil des POSIX -Standards, aber sie sind nicht zertifiziert.

Grundlagen von POSIX

Posix.1-2008 Standardverträge mit vier Hauptbereichen:

  1. Basisdefinitionsvolumen: Allgemeine Begriffe, Konzepte und Schnittstellen.
  2. Systemen Schnittstellen Volumen: Definitionen von Systemservicefunktionen und Unterroutinen. Beinhaltet auch Portabilität, Fehlerbehandlung und Fehlerwiederherstellung.
  3. Lautstärke von Shell and Utilities: Definition von Schnittstellen jeder Anwendung auf Befehlsschalen und gemeinsame Dienstprogramme.
  4. Grundvolumen: Enthält Informationen und Geschichte zu zusätzlichen oder weggeworfenen Merkmalen und den Begründen der Entscheidungen.

Der Standard umfasst keine grafischen Schnittstellen, Datenbankschnittstellen, Objekt-/Binärcode -Portabilität, Systemkonfigurationen, E/A -Überlegungen oder Verfügbarkeit von Ressourcen.

Einige der Leitprinzipien hinter POSIX Design sind:

  • POSIX wird erstellt, um die Anwendungsportabilität zu erleichtern. Es ist also nicht nur für Unix -Systeme. Nicht-Unix-Systeme können auch posix-konform sein.
  • Der Standard diktiert nicht die Entwicklung der Anwendung oder des Betriebssystems. Es definiert nur den Vertrag zwischen ihnen.
  • Der POSIX-konforme Anwendungsquellcode sollte in der Lage sein, über viele Systeme hinweg zu laufen, da der Standard auf der Quellcodeebene definiert ist. Der Standard garantiert jedoch kein Objekt oder eine Binärcode -Ebene -Portabilität. Die binäre ausführbare Datei kann also nicht einmal auf ähnlichen Maschinen mit identischen Hardware- und Betriebssystemen ausgeführt werden. Nur die Quellcode -Portabilität wird im Standard behandelt.
  • POSIX ist in Bezug auf Standard c geschrieben C. Entwickler können es jedoch in jeder Sprache implementieren, die ihnen gefällt.
  • Der Standard befasst sich nur mit Aspekten des Betriebssystems, die mit Anwendungen interagieren.
  • Der Standard ist in Bezug auf Länge und breit in Bezug auf den Umfang der Umfang, um eine große Auswahl von Systemen abzudecken.
  • POSIX wurde entwickelt, um die Portabilität zu vereinfachen. So spart es auf lange Sicht Zeit und Geld. Wenn Ihre Anwendungen jedoch nicht posix-konform sind, erfordert dies möglicherweise zu Beginn erhebliche Zeit- und Ressourceninvestitionen.

POSIX -Anwendungsentwicklung

Der Zweck von POSIX war die Verbesserung der Portabilität. Wenn Ihr Quellcode dem Standard folgt, können Sie den Code auf einem anderen Computer leicht kompilieren und ausführen. Wenn POSIX jedoch als allgemeine Anforderung für eine Anwendung definiert ist, kann dies Verwirrung verursachen. Der vollständige POSIX-Standard beträgt 4000 Seiten mit mehr als 1350 Schnittstellen. Es macht keinen Sinn, alles zu implementieren. Jedes Projekt sollte also die Aspekte von POSIX definieren, die bestimmte Anforderungen entsprechen.

In der Entwicklungsgemeinschaft gibt es Missverständnisse, dass POSIX -Standard alt und irrelevant ist. Es ist nicht wahr. POSIX ist ein lebendes Dokument, das regelmäßig von der Austin -Gruppe aktualisiert wird. Jeder kann sich der Gruppe anschließen und an der Verbesserung des Standards teilnehmen. Der Standard wird aktiv auf den heutigen Servern, Workstationen, Routern, mobilen Geräten, eingebetteten Systemen und mehr verwendet. Es wird für Unix- und Linux -Maschinen verwendet.

Entwickler sollten sich jedoch bewusst sein, dass POSIX Standard Probleme hat. Sie können jeden Fehler, den Sie entdecken, der Austin -Gruppe melden, und es wird für die nächste Revision untersucht.

Abschluss
Possix mag zunächst entmutigend erscheinen. Dennoch sollten Anwendungsentwickler die Grundlagen kennenlernen, da sie von Zeit zu Zeit als Anforderung auftauchen werden. Aufgrund des großen Umfangs des Standards ist es nicht möglich, Experte für das vollständige Dokument zu werden. Entwickler können sich an die Unix- und Linux -Gemeinschaften wenden, um mehr zu lernen. Die Gemeinden können Ihre Fragen beantworten und Ihnen ein besseres Eindruck davon geben, welcher Teil des Standards für Ihr Projekt relevant ist.

Weiteres Studium:

  • POSIX Full Dokument
  • POSIX FAQ
  • Die Austin Common Standards Revision Group

Verweise:

  • POSIX FAQ, Austin Group
  • Austin -Gruppe
  • Dokument 7542098/
  • POSIX- und UNIX -Systemdienstekonzepte
  • OpenGroup Doc 9699919799
  • Was ist posix?, Universität von Indiana
  • Standards docs @ open-std.Org
  • Bill Gallmeister, POSIX -Programmierhandbuch
  • POSIX Programmierer Guide, Donald Lewine
  • Stackoverflow Was ist posix
  • Geschichte von Uniux, Darwinsys.com
  • Austin Open Group, Posix Paper
  • Wikipedia posix