Sie werden das Akronym hören oder darüber lesen:POSIX, auf verschiedenen Online-Foren und Artikeln. Programmierer und Systementwickler scheinen sich darüber am meisten Sorgen zu machen. Es kann mysteriös klingen, und obwohl es viele gute Quellen zu diesem Thema gibt, gehen einige Diskussionsforen (Kürze ist Teil ihrer Natur) nicht ins Detail, was es ist, und dies kann zu Verwirrung führen. Was ist denn eigentlich POSIX?
Was ist POSIX?
POSIX ist eigentlich kein Ding. Es beschreibt eine Sache – ähnlich wie ein Etikett. Stellen Sie sich ein Kästchen mit der Aufschrift vor:POSIX , und in der Box ist ein Standard. Ein Standard besteht aus Regelwerken und Anweisungen, mit denen sich POSIX befasst. POSIX ist eine Abkürzung für Portable Operating System Interface . Es ist ein IEEE 1003.1-Standard, der die Sprachschnittstelle zwischen Anwendungsprogrammen (zusammen mit Befehlszeilen-Shells und Dienstprogrammschnittstellen) und dem UNIX-Betriebssystem definiert.
Die Einhaltung des Standards stellt die Kompatibilität sicher, wenn UNIX-Programme von einer UNIX-Plattform auf eine andere verschoben werden. Der Fokus von POSIX liegt hauptsächlich auf Funktionen von AT&Ts System V UNIX und BSD UNIX.
Ein Standard muss formuliert und von Regeln befolgt werden, wie das Ziel der Interoperabilität zwischen Betriebssystemen erreicht werden kann. POSIX deckt solche Dinge ab wie:Systemschnittstellen und Befehle und Dienstprogramme, Netzwerkdateizugriff, um nur einige zu nennen – POSIX bietet viel mehr als das.
Warum POSIX?
Mit einem Wort:Portabilität.
Vor über 60 Jahren mussten Programmierer Code komplett neu schreiben, wenn sie wollten, dass ihre Software auf mehr als einem System läuft. Dies geschah aufgrund der damit verbundenen Kosten nicht allzu oft, aber Portabilität wurde Mitte der 1960er Jahre zu einem Feature – nicht durch POSIX – sondern in der Mainframe-Arena.
IBM führte die System/360-Familie von Mainframe-Computern ein. Verschiedene Modelle hatten ihre einzigartigen Spezialisierungen, aber die Hardware war so beschaffen, dass sie dasselbe Betriebssystem verwenden konnten:OS/360.
Das Betriebssystem konnte nicht nur auf verschiedenen Modellen ausgeführt werden, auch Anwendungen konnten darauf ausgeführt werden. Dies hielt nicht nur die Kosten niedrig, sondern schuf auch Computersysteme – Systeme über eine Produktlinie hinweg, die zusammenarbeiten könnten. Heute ist alles üblich – Netzwerke und Systeme, aber damals war das eine Riesensache!
Als UNIX ungefähr zur gleichen Zeit auf den Markt kam, war es auch vielversprechend, da es auf Maschinen verschiedener Hersteller laufen konnte. Als UNIX jedoch begann, sich in verschiedene Varianten zu verzweigen, wurde das Portieren von Code über diese UNIX-Varianten hinweg schwierig. Das Versprechen der UNIX-Portabilität verlor an Boden.
Um dieses Portabilitätsproblem zu lösen, wurde POSIX in den 1980er Jahren gegründet. Der Standard wurde auf der Grundlage von AT&Ts System V UNIX und BSD UNIX definiert, den beiden damals größten Varianten. Es ist wichtig zu beachten, dass POSIX nicht gegründet wurde, um zu kontrollieren, wie die Betriebssysteme erstellt wurden – jedes Unternehmen konnte seine UNIX-Variante so gestalten, wie es ihm gefiel. POSIX befasste sich nur damit, wie eine Anwendung mit dem Betriebssystem kommuniziert. In der Programmierersprache ist eine Schnittstelle die Methode, mit der der Code eines Programms mit einem anderen Programm kommunizieren kann. Die Schnittstelle erwartet, dass Programm A eine bestimmte Art von Informationen an Programm B liefert. Ebenso erwartet Programm A, dass Programm B mit einer bestimmten Art von Daten antwortet.
Wenn ich zum Beispiel eine Datei mit dem cat-Befehl lesen möchte, würde ich so etwas in die Befehlszeile eingeben:
cat myfile.txt
Ohne viel Programmiersprache zu verwenden, sage ich nur, dass der cat-Befehl das Betriebssystem aufruft, um die Datei abzurufen, damit cat sie lesen kann. cat liest sie und zeigt dann den Inhalt der Datei auf dem Bildschirm an. Es gibt viele Wechselwirkungen zwischen der Anwendung (cat
) und das Betriebssystem. Wie dieses Zusammenspiel funktioniert, interessierte POSIX. Wenn das Zusammenspiel über die verschiedenen UNIX-Varianten hinweg gleich sein könnte, wäre die Portabilität – unabhängig von Betriebssystem, Hersteller und Hardware – wiederhergestellt.
Die Einzelheiten, wie all dies erreicht wird, sind im Standard definiert.
Die Einhaltung ist freiwillig
Jeder von uns hat mindestens eine Nachricht gesehen wie:„Um Hilfe zu erhalten, geben Sie ein:xxxxx – Hilfe.“ Dies ist unter Linux üblich und nicht POSIX-kompatibel. POSIX hat nie den doppelten Bindestrich benötigt, sie erwarten einen Bindestrich. Der Doppelstrich kommt von GNU, schadet aber Linux nicht und trägt etwas zu seinem Charakter bei. Gleichzeitig ist Linux größtenteils konform, insbesondere wenn es um Systemaufrufschnittstellen geht. Aus diesem Grund können wir X-, GNOME- und KDE-Anwendungen auf Linux, Sys V UNIX und BSD UNIX ausführen. Verschiedene Befehle wie ls, cat, grep, find, awk und viele mehr funktionieren in den verschiedenen Varianten gleich.
Compliance ist in der Regel ein willentlicher Schritt. Wenn der Code konform ist, ist es einfacher, zu einem anderen System zu wechseln; Es wäre, wenn überhaupt, nur sehr wenig Codeumschreibung erforderlich. Wenn Code auf verschiedenen Systemen funktionieren kann, erweitert sich seine Verwendung. Personen, die andere Systeme verwenden, können von der Verwendung des Programms profitieren. Für den angehenden Programmierer kann das Erlernen des Schreibens von POSIX-kompatiblen Programmen nur seiner Karriere helfen. Für diejenigen Leser, die sich für den Bereich der Linux-Konformität interessieren, finden sich viele gute Informationen unter:Linux Standard Base.
Aber ich bin kein Programmierer oder Systemdesigner…
Viele Menschen, die an Computern arbeiten, sind keine Programmierer oder Designer von Betriebssystemen. Sie sind die medizinischen Schreibkräfte, Sekretärinnen, die Briefe, Aufgabenlisten, diktierte Memos und so weiter schreiben. Andere tabellieren Zahlen, sammeln und verarbeiten Daten, betreiben Online-Shops, schreiben Bücher und Artikel (und einige von uns lesen sie). In fast jedem Job gibt es wahrscheinlich einen Computer in der Nähe.
POSIX betrifft auch diese Benutzer, ob sie es wissen oder nicht. Benutzer müssen sich nicht an den Standard halten, aber sie erwarten, dass ihre Computer funktionieren. Wenn Betriebssysteme und Programme dem POSIX-Standard entsprechen, profitieren sie von der Interoperabilität. Sie werden in der Lage sein, von einem System zu einem anderen zu wechseln, mit der vernünftigen Erwartung, dass die Maschinen ähnlich wie andere funktionieren. Ihre Daten sind weiterhin zugänglich und sie können weiterhin Änderungen daran vornehmen.
POSIX und andere Standards werden ständig weiterentwickelt. Wenn die Technologie wächst, wächst auch der Standard. Standards sind eigentlich ein vereinbartes System, das von Menschen, Herstellern, Organisationen usw. verwendet wird, um Aufgaben auf effiziente Weise auszuführen. Geräte eines Herstellers können mit dem Gerät eines anderen Herstellers zusammenarbeiten. Denken Sie darüber nach:Ihr Bluetooth-Ohrhörer kann auf einem Apple iPhone genauso gut verwendet werden wie auf einem Android-Telefon. Unser Fernseher kann sich mit Videos und Sendungen aus verschiedenen Netzwerken wie Amazon Prime, BritBox, Hulu verbinden und diese streamen – um nur einige zu nennen. Jetzt können wir sogar unsere Herzfrequenz mit unseren Telefonen überwachen. All dies wird größtenteils durch die Einhaltung von Standards ermöglicht.
Vorteile in Hülle und Fülle. Das gefällt mir.
Und was ist mit dem X?
Ich gebe es zu, ich habe nie gesagt, wofür das „X“ in POSIX steht. Opensource.com hat einen ausgezeichneten Artikel, in dem Richard Stallman erklärt, was das „X“ in POSIX bedeutet. Hier ist es, in seinen Worten:
Das IEEE hatte die Entwicklung der Spezifikation abgeschlossen, hatte aber keinen prägnanten Namen dafür. Der Titel sagte so etwas wie „Portable Operating System Interface“, obwohl ich mich nicht an die genauen Worte erinnere. Als prägnanten Namen legte das Komitee „IEEEIX“ auf. Das fand ich keine gute Wahl. Es ist hässlich auszusprechen – es würde wie ein Schreckensschrei „Ayeee!“ klingen – also erwartete ich, dass die Leute die Spezifikation stattdessen „Unix“ nennen würden.
Da GNU nicht Unix ist und Unix ersetzen sollte, wollte ich nicht, dass die Leute GNU ein „Unix-System“ nennen. Ich habe daher einen prägnanten Namen vorgeschlagen, den die Leute tatsächlich verwenden könnten. Da ich keine besondere Inspiration hatte, generierte ich auf ungeschickte Weise einen Namen:Ich nahm die Initialen von „Portable Operating System“ und fügte „ix“ hinzu. Das IEEE hat dies eifrig übernommen.
Schlussfolgerung
Der POSIX-Standard ermöglicht es Entwicklern, Anwendungen, Tools und Plattformen auf vielen Betriebssystemen zu erstellen, wobei ein Großteil des gleichen Codes verwendet wird. Es ist keineswegs erforderlich, Code gemäß dem Standard zu schreiben, aber es hilft sehr, wenn Sie Ihren Code auf andere Systeme portieren möchten.
Grundsätzlich richtet sich POSIX an Betriebssystemdesigner und Softwareentwickler, aber als Benutzer eines Systems sind wir von POSIX betroffen, ob wir es erkennen oder nicht. Aufgrund des Standards sind wir in der Lage, auf einem UNIX- oder Linux-System zu arbeiten und diese Arbeit auf ein anderes System zu übertragen und ohne Schluckauf daran zu arbeiten. Als Benutzer profitieren wir von zahlreichen Vorteilen in Bezug auf Benutzerfreundlichkeit und systemübergreifende Wiederverwendung von Daten.
Originalartikel