[room] Как работают стартовые скрипты?

Alexei V. Mezin =?iso-8859-1?q?alex=5Fat=5Fibh_=CE=C1_mail=2Eru?=
Чт Дек 20 18:39:32 MSK 2007


Alexei V. Mezin пишет:
> Шишков Евгений пишет:
>> Vyatcheslav Perevalov пишет:
>>> В сообщении от 20 декабря 2007 Alexei V. Mezin написал(a):
>>>> И не пора ли
>>>> издавать учебники (с цветными диаграммами взаимосвязи компонентов и
>>>> прочими иллюстрациями потоков исполнения) на тему "стартовые скрипты
>>>> Линукс"?
>>> Кстати, было бы неплохо.
>>>
>> Я бы тоже почитал. Т.к. приходится иногда писАть.
> 
> Отправляю копию в Курилку.

В старые добрые времена, когда деревья были большими, а трава гораздо 
зеленее, понять, как загружается системы было довольно просто: ядро 
загружает "процесс No1" init, и далее все согласно десятку относительно 
несложных скриптов в /etc/rc.d. А теперь все как-то заметно усложнилось, 
часть функционала переехала в загадочные бинарники (udev?), часть 
осталась в скриптах, но поселилась в /lib (опять же udev), часть 
скриптов и настроек живет в /usr (жила? во всяком случае было время, что 
*.fdi лежили в usr). Причем проследить порядок вызова тех или иных 
скриптов, или понять, какие именно конфиги участвуют в процессе загрузки 
стало почти невозможно.

И, судя по тому, что многие вопросы в рассылках остаются без какого-либо 
внятного ответа, никто не знает, как вся эта кухня работает, или знает, 
но удачно скрывает свои знания. Может кто-то где-то поделился 
сокровенным? Или готов поделиться? Или всем миром навалимся на wiki и 
напишем некое подобие мануала на тему "как же стартует наш линукс"? 
Что-то навроде:
- ядро после загрузки запускает init.
- init выполняет сначала /etc/rc.d/rc.sysinit
-- в rc.sysinit с помощью команд ХХХХ устанавливаются такие-то и 
такие-то параметры согласно конфигам  в /XXX/YYY
-- из rc.sysinit запускается такой-то демон (конфиги тут и тут), он ждет 
того/сего
- init выполняет содержимое /etc/rc.d/rc.XXX/
-- первыми в списке запускается udev
--- udev согласно настройкам из XXX делает то и то
-- затем запускаются сервисы ...
-- запускается сервис hotplug, который согласно конфигам в XXX загружает 
то и сё, в результате udev создает устройства и выполняет скрипты из 
XXXXX....

и так далее.



Подробная информация о списке рассылки smoke-room