|
|
Компьютеры - Процесс загрузки Linux - Процесс init25 апреля 2011
Оглавление: 1. Процесс загрузки Linux 2. Фаза загрузчика 3. Фаза ядра 4. Процесс init
« |
Init является родителем всех процессов. Его главная задача создавать процессы по сценарию из файла /etc/inittab . В этом файле обычно содержатся записи, указывающие init породить getty для каждой линии, по которой пользователи могут входить в систему. Он также контролирует автономные процессы, требуемые какой-либо системе. Уровень выполнения программная конфигурация системы, которая позволяет существовать только заданной группе процессов. Процессы, порождаемые init на каждом из таких уровней выполнения, определяются в файле /etc/inittab . |
» |
По сути Init организует и поддерживает всё пользовательское пространство, что включает в себя также проверку и монтирование файловых систем, запуск нужных пользовательских служб и, переключение в пользовательскую среду, когда запуск системы завершится. Он похож на процессы init в Unix и BSD, от которых произошёл, но в некоторых случаях он изменён или переделан. В обычной системе Linux init с параметром, известном как уровень выполнения, принимающим значения от 1 до 6, и определяющим, какие подсистемы следует включить. Для каждого уровня выполнения есть собственные сценарии, которые регламентируют различные процессы, участвующие в установлении или снятии данного уровня, и именно эти сценарии считаются необходимыми для процесса загрузки. Сценарии Init обычно хранятся в каталогах с именами вида /etc/rc… . Главный файл конфигурации уровней для init /etc/inittab .
Во время загрузки системы он проверяет, описан ли уровень по умолчанию в /etc/inittab , а если же нет запрашивает его через системную консоль. Затем он продолжает выполнять все соответствующие сценарии загрузки для этого уровня, включая загрузку модулей, проверку целостности файловой системы, перемонтирование её для чтения-записи и настройку сети.
В частности, по сообщению Red Hat, процесс init следует такой схеме:
- Он просматривает сценарий
sysinit , который "устанавливает путь к среде, запускает swap , проверяет файловые системы и делает всё, что необходимо для инициализации системы. Это, в частности, системные и аппаратные часы, специальные процессы для последовательного порта и т. п.
- Затем Init просматривает конфигурацию, указанную для заданного уровня выполнения.
- После этого Init устанавливает исходную библиотеку функций для системы. Это определяет, как следует запустить или снять программу и как определить её PID.
- Затем он запускает все предусмотренные процессы и создает сессию входа пользователя в систему.
После того, как он породил все заданные процессы, init переходит в режим ожидания и ждет одного из трёх событий:
- Нормального или аварийного завершения порождённых процессов.
- Сигнала аварии питания.
- Запроса от
/sbin/telinit на изменение уровня выполнения.
Это относится к программе init в стиле UNIX System V. Другие программы init могут вести себя иначе.
Просмотров: 4454
|