Может кто-нибудь сказать мне или указать мне ссылку, которая точно сообщает, какие программы или процессы выполняются при запуске Linux. т.е. начиная с grub (загрузчик linux)
Вы можете выбрать свой любимый вкус.
Процесс загрузки после запуска ядра на самом деле довольно прост. Ядро запускает init
, который анализирует /etc/inittab
и запускает все остальное с помощью скриптов. Эти сценарии запускают различные программы-демоны, которые могут работать в фоновом режиме во время нормальной работы системы. init
также порождает любые процессы getty
, которые обслуживают пользователей при входе в систему на консоли (обычно) и иногда на других интерфейсах (чаще всего последовательных).
В разных дистрибутивах Linux используются разные методы для определения сценариев и порядка их выполнения (некоторые различия для данного уровня выполнения, если это инициализация в стиле SysV). Страница Википедии для init может дать вам более подробную информацию, но в основном она разбита на выбор стилей для метода хранения / ссылки на скрипты, которые вызовет init. Само ядро не зависит от типа используемых соглашений init - оно просто запускает init как первый процесс на уровне пользователя.
В системе инициализации в стиле SysV - уровень выполнения (в основном, метод, позволяющий загружать систему в различных возможных конфигурациях запуска. Вы можете провести аналогию с Windows "Профили оборудования", "Безопасный режим" и т.д., Если вы знакомы с Windows.) Определяет, какие сценарии выполняются. В системе инициализации в стиле BSD серия сценариев rc
определяет, что запускается при каждой загрузке.
Некоторые дистрибутивы запускают init
с исходного RAM-диска. Initrd - это файловая система, используемая во время загрузки для загрузки модулей ядра и начальной загрузки системы до точки, где "настоящая" корневая файловая система может быть смонтирована и доступна.
В большинстве Linux-систем первым запускаемым процессом является /sbin/init
который затем использует файл /etc/inittab
(man) для запуска других процессов.
Если вы используете дистрибутив Ubuntu, возможно, вы используете upstart, первый двоичный файл также называется /sbin/init
но файлы в /etc/init/
используются для настройки поведения при запуске.
RHEL3/4/5:
В Ubuntu 10 и RHEL6(бета-версия на данный момент) классический init был заменен на "Upstart", который использует каталог /etc /init вместо /etc /inittab. /etc /init содержит несколько отдельных файлов с настройками того, что они делают, и какие условия заставляют их работать. Один из них эквивалентен /etc/rc.d/rc.sysinit, большинство остальных эквивалентны сценариям /etc/init.d.