[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