Как ядро “бросает” управление к определенной для распределения инициализации?

Небольшое улучшение на решении geekosaur. Это делает правильную вещь, даже если выражение оценивает к чему-то другому, чем строка.

(defun c5-eval-to-kill-ring ()
  (interactive)
  (kill-new (with-output-to-string (princ (call-interactively 'eval-expression)))))

(global-set-key (kbd "C-;") 'c5-eval-to-kill-ring)
3
24.02.2012, 01:27
2 ответа

Это - hardcoded, но можно переопределить значения по умолчанию параметром ядра init=....

От init/main.c:

if (execute_command) {
  run_init_process(execute_command);
  printk(KERN_WARNING "Failed to execute %s.  Attempting "
        "defaults...\n", execute_command);
}
run_init_process("/sbin/init");
run_init_process("/etc/init");
run_init_process("/bin/init");
run_init_process("/bin/sh");

panic("No init found.  Try passing init= option to kernel. "
      "See Linux Documentation/init.txt for guidance.");
8
27.01.2020, 21:09
  • 1
    Действительно ли безопасно принять это /etc/inittab является определенным для распределения и содержит сценарии, ответственные за инициализацию затем? –  haste 23.02.2012, 18:04
  • 2
    @haste Это не всегда inittab: это - то, что init использует (существует три init системы вокруг на Linux в эти дни: SysVinit, Upstart и Systemd; посмотрите то, Что соединение между "/etc/init.d" и "/etc/rcX.d" каталогами в Linux? –  Gilles 'SO- stop being evil' 24.02.2012, 01:27
  • 3
    @Gilles, Делает это означает, что ядро не поставлется ни с одним из них init варианты Вы упомянули? И в результате распределение ответственно за проверку init исполняемый файл доступен, где ядро посмотрело бы (параметром начальной загрузки или значениями по умолчанию)? –  haste 24.02.2012, 02:27
  • 4
    @haste: Корректный. В отличие от некоторых других систем (как FreeBSD), Linux является просто ядром. Все остальное добавляется распределением, и пуристы склонны называть полные системы "GNU/Linux" для выделения того, что в дополнение к ядру Linux, там полная лодка программ GNU необходима для получения применимой системы. –  Ansgar Esztermann 24.02.2012, 10:57
  • 5
    @haste ядро является только ядром. Рабочие системы Linux требуют многих утилит, которые поставляются отдельно и соединяются дистрибутивами; init один из них. (BTW Ansgar проект GNU не имеет init, весь выбор для init другими проектами. Много встроенных систем Linux не имеет никакого программного обеспечения, которые прибывают из проекта GNU, но это было бы исключительно редко на рабочем столе или сервере, и даже встроенные системы главным образом компилируются с компилятором GNU.) –  Gilles 'SO- stop being evil' 24.02.2012, 11:12

Википедия имеет хорошую статью о процессе запуска Linux.

Сегодня, обычно initramfs используется.

3
27.01.2020, 21:09

Теги

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