Терминал называют “?” бабушка всех процессов?

Когда я вызываю gnome-control-center от панели поиска

searching for "gnome-control" in the Applications menu

Истинная команда, в которой могут быть найдены выполнения 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 должен породить новый процесс, который можно было назвать от оболочки или из приложений.

diagram from book

1
задан 16 January 2019 в 20:41

1 ответ

? символ указывает, что существует нет tty связанный с процессом. Другими словами, нет никакого физического или виртуального устройства, где тот процесс может записать информацию. Однако /sbin/init процесс является на самом деле "бабушкой" всех процессов в системе, прямо или косвенно. Куда это прибывает из? Ядро Linux запускает его. Ядро можно назвать "главной бабушкой" всех процессов. Шаги описаны в документации ядра Linux:

Операция

При использовании initrd, система обычно загружается следующим образом:

  1. загрузчик загружает ядро и начальный псевдодиск
  2. ядро преобразовывает initrd в “нормальный” псевдодиск и освобождает память, используемую initrd
  3. если корневое устройство не является/dev/ram0, старая (удержанная от использования) change_root процедура выполнена. посмотрите раздел “Obsolete root change mechanism” ниже.
  4. корневое устройство смонтировано. если это-/dev/ram0, изображение initrd затем смонтировано как корень
  5. /sbin/init выполняется (это может быть любым допустимым исполняемым файлом, включая сценарии оболочки; это выполняется с uid 0 и может сделать в основном все, что init может сделать).
  6. init монтирует “реальную” корневую файловую систему
  7. init помещает корневую файловую систему в корневом каталоге с помощью pivot_root системного вызова
  8. должностные лица init/sbin/init в новой корневой файловой системе, выполняя обычную последовательность начальной загрузки
  9. initrd файловая система удалена

Отметьте также это ? указывает, что это - демон. Заключить демону в кавычки (7) страница справочника:

Демон является сервисным процессом, который работает в фоновом режиме и контролирует систему или предоставляет функциональность другим процессам.

3
ответ дан 3 December 2019 в 07:22

Другие вопросы по тегам:

Похожие вопросы: