Когда я вызываю gnome-control-center
от панели поиска
Истинная команда, в которой могут быть найдены выполнения OS ps
:
me@alpha:~$ ps -ef | grep gnome-control-center
me 13952 7293 0 12:20 tty2 00:00:00 gnome-control-center
me 15523 7835 0 12:27 pts/0 00:00:00 grep --color=auto gnome-control-center
Это указывает, что операционная система открывает терминал tty2
, команда исходных данных gnome-control-center
, и нажимает Enter.
Когда дело доходит до init или процесса systemd
me@alpha:~$ ps -ef | head -5
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:34 ? 00:00:05 /sbin/init splash
root 2 0 0 10:34 ? 00:00:00 [kthreadd]
root 3 2 0 10:34 ? 00:00:00 [rcu_gp]
root 4 2 0 10:34 ? 00:00:00 [rcu_par_gp]
Со ссылкой на PID 1 его команда /sbin/init splash
.
От того, где это вводится, /sbin/init splash
, и нажмите Enter?
tty ?
который обозначает процесс демона.
Действительно ли правильно, если я понимаю, что процессы демона вызываются от терминала, имя которого ?
и этот терминал является бабушкой всех процессов?
Спасибо за учебное руководство Sergiy о Ядре.
Я получил идею интуитивно из изображения из книги, названной "Усовершенствованное Программирование в Среде Unix".
Системный вызов fork
должен породить новый процесс, который можно было назвать от оболочки или из приложений.
?
символ указывает, что существует нет tty
связанный с процессом. Другими словами, нет никакого физического или виртуального устройства, где тот процесс может записать информацию. Однако /sbin/init
процесс является на самом деле "бабушкой" всех процессов в системе, прямо или косвенно. Куда это прибывает из? Ядро Linux запускает его. Ядро можно назвать "главной бабушкой" всех процессов. Шаги описаны в документации ядра Linux:
Операция
При использовании initrd, система обычно загружается следующим образом:
- загрузчик загружает ядро и начальный псевдодиск
- ядро преобразовывает initrd в “нормальный” псевдодиск и освобождает память, используемую initrd
- если корневое устройство не является/dev/ram0, старая (удержанная от использования) change_root процедура выполнена. посмотрите раздел “Obsolete root change mechanism” ниже.
- корневое устройство смонтировано. если это-/dev/ram0, изображение initrd затем смонтировано как корень
- /sbin/init выполняется (это может быть любым допустимым исполняемым файлом, включая сценарии оболочки; это выполняется с uid 0 и может сделать в основном все, что init может сделать).
- init монтирует “реальную” корневую файловую систему
- init помещает корневую файловую систему в корневом каталоге с помощью pivot_root системного вызова
- должностные лица init/sbin/init в новой корневой файловой системе, выполняя обычную последовательность начальной загрузки
- initrd файловая система удалена
Отметьте также это ?
указывает, что это - демон. Заключить демону в кавычки (7) страница справочника:
Демон является сервисным процессом, который работает в фоновом режиме и контролирует систему или предоставляет функциональность другим процессам.