Cela remonte à l'histoire quelque peu tortueuse d' Unix (Wikipedia a un schéma simplifié , qui est loin d'être complet). En particulier, pendant un certain temps, il y avait deux courants majeurs: le système V développé par AT&T, et BSD développé à l'Université de Californie, Berkeley. C'était vers le début des années 1980, bien avant Linux (1991), sans parler d'Ubuntu (2004). Souvent, ces deux courants ont pris des décisions différentes, et même aujourd'hui, vous trouverez la référence occasionnelle aux variantes ou fonctionnalités du «Système V» et du «BSD».
La ps
commande remonte à l'une des premières versions d'Unix (elle n'était pas dans la version 1, la première page de manuel que je peux trouver en ligne est de la version 5 (p.94) en 1974). À l'époque, il ps
n'y avait que quelques options, par exemple ps a
, afficherait tous les processus au lieu de seulement celui de l'utilisateur et ps x
afficherait les processus sans terminal connecté. Vous remarquerez que les options ne commencent pas par -
: à l'époque, la convention d'utilisation -
des options n'était pas presque systématique comme c'est le cas aujourd'hui, c'était surtout une chose pour les commandes qui prenaient les noms de fichiers comme arguments normaux.
Au fil du temps, les différents volets d'Unix se sont étendus ps
avec de nombreuses autres options. La variante de BSD a choisi de conserver la syntaxe originale, sans leader -
, et a
et x
existent encore aujourd'hui. La variante System V a choisi d'adopter la convention syntaxique des -
options for et a utilisé différentes lettres (par exemple ps -e
pour afficher tous les processus). Oracle (anciennement Sun) Solaris est un exemple de variante System V (Solaris fournit également un ps
exécutable distinct , dans un répertoire qui n'est pas par défaut PATH
, pour les applications écrites avec BSD en tête).
Au moment où Linux est entré en scène, les personnes qui l'utilisaient avaient souvent une expérience préalable d'une variante d'Unix ou d'une autre. Linux a parfois fait les choses à la manière du System V, parfois à la manière de BSD, parfois à sa manière, soit en fonction de considérations techniques, soit en fonction de l'expérience et des goûts de quiconque avait implémenté la fonctionnalité. La ps
commande de Linux a commencé avec des options de type BSD, par exemple ps ae
pour afficher tous les processus et inclure des variables d'environnement dans la liste. Au fil du temps (à la fin des années 1990, je ne me souviens pas exactement quand), les auteurs des ps
options supplémentaires de Linux pour les personnes habituées au système V. Donc, aujourd'hui ps ax
ou ps -e
listera tous les processus sous Linux, et il y a même une variable d'environnement ( PS_PERSONALITY
) pour faireps
se comporter davantage comme diverses anciennes variantes Unix d'Unix, pour le bien des anciens scripts et des personnes ayant des habitudes définies.
Les gens qui utilisaient plusieurs variantes Unix n'aimaient pas devoir modifier leurs programmes et leurs habitudes lors du passage d'une variante Unix à une autre. Il y a donc eu un effort pour normaliser un sous-ensemble de fonctionnalités. Cela a conduit au standard POSIX (dirigé par l' IEEE ), que Ubuntu suit dans l'ensemble. La première édition dont la portée incluait la ps
commande est sortie en 1992; celui-ci n'est pas disponible en ligne, mais l' édition 1997 l' est. Pour la ps
commande, comme dans de nombreux autres cas, POSIX a adopté la façon de procéder System V.
La ps
syntaxe standard de la commande est compatible avec System V et POSIX. De plus, cette syntaxe peut être considérée comme standard car elle utilise -
pour introduire des options par défaut. Certaines options n'existent que dans l'une des deux syntaxes; heureusement, ils peuvent être mélangés dans le même appel.
D'une manière générale, «BSD» vs «System V» n'a aucune implication technique. Il fait référence à l'histoire: «BSD» est le choix que BSD a fait dans les années 80 et à peu près, «System V» est le choix qu'AT & T et ses partenaires (en particulier Sun) ont fait. «POSIX» est tout choix fait par le comité de normalisation IEEE.
ps
optargs, c'est se tenir au bord d'un abîme que l'homme n'était pas censé savoir.