To sięga nieco zawiłej historii Uniksa (Wikipedia ma uproszczony schemat , który jest daleki od ukończenia). W szczególności przez pewien czas istniały dwa główne prądy: System V opracowany przez AT&T oraz BSD opracowany na University of California, Berkeley. Było to na początku lat 80., na długo przed Linuksem (1991), nie mówiąc już o Ubuntu (2004). Często te dwa prądy podejmowały różne decyzje, i nawet dziś można znaleźć odniesienie do wariantów lub funkcji „System V” i „BSD”.
Te ps
terminy tekstowa z jednego z pierwszych wydań Unix (nie było w wersji 1, najwcześniej strona człowiek mogę znaleźć w Internecie jest od wersji 5 (str.94) w 1974 roku). W tym czasie ps
miał tylko kilka opcji, na przykład ps a
wyświetlał wszystkie procesy zamiast tylko użytkownika i ps x
wyświetlał procesy bez podłączonego terminala. Zauważysz, że opcje nie zaczynają się od -
: w tamtym czasie konwencja używania -
opcji nie była prawie systematyczna, jak ma to miejsce obecnie, była głównie rzeczą dla poleceń, które przyjmowały nazwy plików jako normalne argumenty.
Z biegiem czasu różne aspekty Uniksa rozszerzyły się ps
o wiele więcej opcji. Wariant BSD postanowił zachować oryginalną składnię, bez żadnych wiodących -
, a
i x
nadal istnieje. W wariancie System V wybrano konwencję składni -
opcji i zastosowano różne litery (na przykład ps -e
do wyświetlenia wszystkich procesów). Oracle (wcześniej Sun) Solaris jest przykładem wariantu System V (Solaris dostarcza również osobny ps
plik wykonywalny, w katalogu, który nie jest ustawiony domyślnie PATH
, dla aplikacji napisanych z myślą o BSD).
W momencie pojawienia się Linuksa ludzie, którzy go używali, często mieli wcześniejsze doświadczenia z jednym wariantem Uniksa. Linux czasami robił rzeczy w sposób System V, czasem w BSD, czasem po swojemu, albo na podstawie względów technicznych, albo na podstawie doświadczenia i gustów każdego, kto zaimplementował tę funkcję. ps
Polecenie Linuksa zaczęło się od opcji podobnych do BSD, np. ps ae
Aby wyświetlić wszystkie procesy i uwzględnić zmienne środowiskowe na liście. Z biegiem czasu (w latach 1990, nie pamiętam dokładnie kiedy), autorzy Linuksa ps
dodanych opcji dla osób, które zostały wykorzystane do Systemu V. Więc dzisiaj albo ps ax
czy ps -e
będzie lista wszystkich procesów pod Linuksem, a tam jest jeszcze zmienna środowiskowa ( PS_PERSONALITY
) zrobićps
zachowują się bardziej jak różne stare uniksowe warianty Uniksa, ze względu na stare skrypty i osoby o ustalonych nawykach.
Ludziom, którzy używali kilku wariantów Uniksa, nie podobało się, że musieliby modyfikować swoje programy i swoje nawyki podczas przełączania się z jednego wariantu na Uniksa. Podjęto więc wysiłek w celu standaryzacji podzbioru funkcjonalności. Doprowadziło to do powstania standardu POSIX (prowadzonego przez IEEE ), który Ubuntu w zasadzie podąża. Pierwsze wydanie, którego zakres obejmował ps
polecenie, ukazało się w 1992 r .; ten nie jest dostępny online, ale wydanie z 1997 roku jest. Dla tego ps
polecenia, podobnie jak w wielu innych przypadkach, POSIX przyjął sposób działania Systemu V.
W ps
standardzie składnia polecenia jest taki, który jest kompatybilny zarówno z System V i POSIX. Ponadto można powiedzieć, że ta składnia jest standardowa, ponieważ -
domyślnie wprowadza opcje. Niektóre opcje istnieją tylko w jednej z dwóch składni; na szczęście można je łączyć w ramach tego samego połączenia.
Ogólnie rzecz biorąc, „BSD” vs. „System V” nie ma żadnych implikacji technicznych. Odwołuje się do historii: „BSD” jest jakimkolwiek wyborem BSD dokonanym w latach 80. i później, „System V” jest jakimkolwiek wyborem dokonanym przez AT&T i ich partnerów (szczególnie Sun). „POSIX” jest jakimkolwiek wyborem dokonanym przez komitet normalizacyjny IEEE.
ps
Badanie historycznych różnic między tym, w jaki sposób systemy zaimplementowane w czasie optargs, stoi na krawędzi otchłani, której człowiek nie chciał wiedzieć.