Це сягає дещо покрученої історії Unix (у Вікіпедії є спрощена схема , яка далеко не повна). Зокрема, деякий час існували два основні струми: Система V, розроблена AT&T, і BSD, розроблена в Каліфорнійському університеті, Берклі. Це було приблизно на початку 1980-х, задовго до Linux (1991), не кажучи вже про Ubuntu (2004). Часто ці два струми приймали різні рішення, і навіть сьогодні ви знайдете випадкові посилання на варіанти або функції "System V" та "BSD".
У ps
датах команди назад від одного з перших випусків Unix (це було не в версії 1, сама ранній людина сторінка , яку я можу знайти в Інтернеті від версії 5 (с.94) в 1974 році). У той час ps
було лише кілька варіантів, наприклад ps a
, відображалися б усі процеси, а не лише користувач, і ps x
відображалися б процеси, не пов'язані з терміналом. Ви зауважите, що параметри починаються не з -
того часу: умова використання -
параметрів не була майже систематичною, як це є сьогодні, здебільшого це стосується команд, які вважають імена файлів звичайними аргументами.
З часом різні нитки Unix розширилися ps
з багатьма іншими можливостями. Варіант BSD вирішив зберегти оригінальний синтаксис, без ведучого -
, а a
й до x
сих пір існує і сьогодні. Варіант System V вирішив прийняти синтаксичну умову -
для варіантів і використовував різні літери (наприклад, ps -e
для відображення всіх процесів). Oracle (раніше Sun) Solaris - це приклад варіанту System V (Solaris також постачає окремий ps
виконуваний файл у каталозі, який не за замовчуванням PATH
, для програм, написаних на увазі BSD).
У той час, коли на сцену вийшов Linux, люди, які його використовували, часто мали попередній досвід того чи іншого варіанту Unix. Linux іноді робив речі System V, іноді BSD, іноді по-своєму, або на основі технічних міркувань, або на основі досвіду та смаків того, хто реалізував цю функцію. ps
Команда Linux почалася з BSD-подібних параметрів, наприклад ps ae
для відображення всіх процесів та включення змінних середовищ у список. З часом (наприкінці 1990-х років я не пам'ятаю точно, коли), автори ps
доданих варіантів Linux для людей, які звикли до System V. Тож сьогодні ps ax
або ps -e
перелічуватимуться всі процеси під Linux, і навіть існує змінна середовище ( PS_PERSONALITY
) зробитиps
поводитись більше, як різні варіанти Unix старих варіантів Unix, заради старих сценаріїв та людей із встановленими звичками.
Людям, які використовували кілька варіантів Unix, не сподобалось, що їм доведеться змінювати свої програми та свої звички під час переходу з одного варіанту Unix на інший. Тому було спроба стандартизувати підмножину функціоналу. Це призвело до стандарту POSIX (на чолі з IEEE ), за яким Ubuntu за великим рахунком випливає. Перше видання, в обсяг якого входила ps
команда, вийшло в 1992 році; ця інформація недоступна в Інтернеті, але видання 1997 року . Для ps
команди, як і у багатьох інших випадках, POSIX прийняв System V способу виконання дій.
У ps
стандартному синтаксисі командний є один , який поєднає з System V і POSIX. Крім того, цей синтаксис можна вважати стандартним, оскільки він використовує -
для введення опції за замовчуванням. Деякі параметри існують лише в одному з двох синтаксисів; на щастя, їх можна змішати в одному дзвінку.
Взагалі кажучи, "BSD" проти "System V" не має жодних технічних наслідків. Це стосується історії: "BSD" - це будь-який вибір BSD, зроблений у 1980-х роках і після цього, "System V" - це будь-який вибір AT&T та їхніх партнерів (особливо Sun). "POSIX" - це будь-який вибір, який зробив комітет зі стандартизації IEEE.
ps
отарги - це стояти на межі прірви, яку людина не мала знати.