Diese stammt aus der etwas gewundenen Geschichte von Unix (Wikipedia hat ein vereinfachtes Diagramm , das ist weit von vollständig). Insbesondere gab es eine Zeit lang zwei Hauptströmungen: das von AT & T entwickelte System V und das an der University of California in Berkeley entwickelte BSD . Dies war um die frühen 1980er Jahre, lange vor Linux (1991), geschweige denn Ubuntu (2004). Oft haben diese beiden Strömungen unterschiedliche Entscheidungen getroffen, und auch heute finden Sie gelegentlich Hinweise auf Varianten oder Merkmale von „System V“ und „BSD“.
Der ps
Befehl stammt aus einer der ersten Versionen von Unix (er war nicht in Version 1, die früheste Online-Manpage, die ich finden kann, stammt aus Version 5 (S.94) im Jahr 1974). ps
Hatte zu der Zeit nur ein paar Optionen, würde zum Beispiel ps a
alle Prozesse statt nur des Benutzers ps x
anzeigen und würde Prozesse ohne angeschlossenes Terminal anzeigen. Sie werden bemerken, dass die Optionen nicht mit beginnen -
: Zu der Zeit war die Konvention der Verwendung -
von Optionen nicht so systematisch wie heute, es war meistens eine Sache für Befehle, die Dateinamen als normale Argumente verwendeten.
Im Laufe der Zeit wurden die verschiedenen Stränge von Unix um ps
viele weitere Optionen erweitert. Die BSD - Variante wählte die ursprüngliche Syntax, ohne führenden zu behalten -
, und a
und x
existiert noch heute. Die System V-Variante hat die syntaktische Konvention von -
for options übernommen und verschiedene Buchstaben verwendet (z. B. ps -e
um alle Prozesse anzuzeigen). Oracle (ehemals Sun) Solaris ist ein Beispiel für eine System V-Variante (Solaris ps
liefert PATH
für Anwendungen, die unter Berücksichtigung von BSD geschrieben wurden, auch eine separate ausführbare Datei in einem nicht standardmäßig festgelegten Verzeichnis aus ).
Zu der Zeit, als Linux auf den Markt kam, hatten die Leute, die es nutzten, oft schon Erfahrung mit der einen oder anderen Unix-Variante. Linux hat die Dinge manchmal nach System V, manchmal nach BSD und manchmal nach eigenem Ermessen gemacht, entweder aufgrund technischer Überlegungen oder aufgrund der Erfahrung und des Geschmacks derer, die das Feature implementiert haben. Der Linux- ps
Befehl begann mit BSD-ähnlichen Optionen, z. B. ps ae
um alle Prozesse anzuzeigen und Umgebungsvariablen in die Auflistung aufzunehmen. Im Laufe der Zeit (Ende der 1990er Jahre, ich weiß nicht genau, wann) haben die Autoren von Linux ps
Optionen für Benutzer hinzugefügt, die an System V gewöhnt waren. Daher werden heute entweder alle Prozesse unter Linux aufgelistet ps ax
oder ps -e
es gibt sogar eine Umgebungsvariable ( PS_PERSONALITY
) zu machenps
verhalten sich eher wie verschiedene Unix-alte Unix-Varianten, zum Wohle alter Skripte und Menschen mit festgelegten Gewohnheiten.
Menschen, die mehrere Unix-Varianten verwendeten, mochten es nicht, dass sie ihre Programme und Gewohnheiten ändern mussten, wenn sie von einer Unix-Variante zu einer anderen wechselten. Daher wurde versucht, eine Teilmenge der Funktionalität zu standardisieren. Dies führte zum POSIX- Standard (angeführt von der IEEE ), dem Ubuntu im Großen und Ganzen folgt. Die erste Ausgabe, deren Umfang den ps
Befehl umfasste , erschien 1992; Dieser ist nicht online verfügbar, die Ausgabe von 1997 jedoch. Für den ps
Befehl verwendete POSIX wie in vielen anderen Fällen die System V-Methode.
Die ps
Standardsyntax des Befehls ist sowohl mit System V als auch mit POSIX kompatibel. Darüber hinaus kann diese Syntax als Standard bezeichnet werden, da standardmäßig -
Optionen eingeführt werden. Einige Optionen sind nur in einer der beiden Syntaxarten verfügbar. Zum Glück können sie im selben Anruf gemischt werden.
Im Allgemeinen hat „BSD“ gegenüber „System V“ keine technischen Auswirkungen. Es bezieht sich auf die Geschichte: „BSD“ ist die Wahl, die BSD in den 1980er Jahren getroffen hat, und so weiter. „System V“ ist die Wahl, die AT & T und ihre Partner (insbesondere Sun) getroffen haben. „POSIX“ ist die Wahl, die das IEEE-Standardisierungskomitee getroffen hat.
ps
Laufe der Zeit implementiert wurden, bedeutet, am Rande eines Abgrunds zu stehen, den man nicht wissen sollte.