Главная » 2017 » Ноябрь » 16 » man 7 boot
23:58
man 7 boot

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


boot - процесс запуска системы, основанный на UNIX System V Release 4



ОПИСАНИЕ


Процесс запуска (или «последовательность запуска») варьируется в отдельных местах
на разных системах, но в целом её можно разделить на несколько основных шагов,
управляемых следующими компонентами:

1. оборудование

2. загрузчик операционной системы

3. ядро

4. начальный процесс пользовательского пространства (init и inittab)

5. загрузочные сценарии

Далее следует их более подробное описание.

Оборудование
После подачи питания или аппаратной перезагрузки управление передаётся программе,
хранящейся в памяти, доступной только на чтение (обычно это PROM). По историческим
причинам, связанным с персональными компьютерами, эту программу часто называют
BIOS.

Эта программа, обычно, выполняет простейшие тесты компьютера и читает
дополнительные из энергонезависимой памяти. Эта память в ПК реализована на базе
памяти CMOS с питанием от батареи, и для краткости называется просто CMOS, хотя её
официальное название вне мира ПК — NVRAM (nonvolatile RAM).

Параметры, хранящиеся в NVRAM, отличаются в разных системах, но как минимум, в ней
хранится информация об устройстве с загрузчиком ОС или о порядке просмотра
устройств; такое устройство называют загрузочным устройством. На аппаратной
загрузочной стадии из постоянного места загрузочного устройства загружается
загрузчик ОС, а затем ему передаётся управление.

Примечание:
Устройство, с которого может быть прочитан загрузчик ОС, может находиться в
сети; в этом случае детали загрузки определяются протоколами типа DHCP,
TFTP, PXE, Etherboot и т. п.

Загрузчик ОС
Основной задачей загрузчика ОС является поиск ядра на некоем устройстве, загрузка
его в память и запуск. Большинство загрузчиков ОС имеют интерактивный режим,
позволяют указывать альтернативное ядро (резервное, если не заработает последнее
собранное) и передавать ядру необязательные параметры.

В обычных ПК загрузчик ОС расположен в начальном 512-байтовом блоке загрузочного
устройства — в так называемой главной загрузочной записи MBR (Master Boot Record).

В большинстве систем загрузчик ОС в силу разных обстоятельств крайне ограничен.
Даже на не ПК существуют некоторые ограничения на размер и сложность загрузчика,
ну а ограничение MBR до 512 байт на ПК (включая таблицу разделов) делает почти
невозможным сделать его многофункциональным.

Поэтому, в большинстве систем действие по загрузке ОС разделено между первичным
в современных ядрах Linux называется «kswapd») и монтирует одну из файловых систем
в качестве корневой (/).

Некоторые из параметров, которые могли быть переданы ядру, влияют на эти действия
(например, можно переопределить корневую файловую систему по умолчанию). Для
получения более подробной информации о параметрах ядра Linux читайте bootparam(7).

Только после этого ядро создаёт первый пользовательский процесс PID (идентификатор
процесса) которого равен 1. Обычно, этот процесс исполняет программу /sbin/init,
передавая ей все оставшиеся параметры загрузки, не обработанные ядром.

Корневой процесс пользовательского пространства
Примечание:
Дальнейшее описание применимо к ОС на основе UNIX System V Release 4.
Однако, в некоторых широко используемых системах используется похожий, но
существенно отличающийся подход, называемый systemd(1), процесс загрузки
которого подробно описан в bootup(7).

При запуске /sbin/init считывается файл /etc/inittab для получения дальнейших
инструкций. Этот файл определяет, что должно быть запущено, когда программа
/sbin/init получит команду перейти на определённый уровень выполнения (run-level).
Это позволяет администратору легко настроить окружение под какую-то задачу; для
каждого уровня выполнения определён свой набор служб (например, S это
однопользовательский (single-user) режим, на уровне 2 запускаются почти все
сетевые службы).

Администратор может изменить текущий уровень выполнения с помощью init(1) и
определить текущий уровень, используя runlevel(8).

Однако, было бы неудобно управлять отдельными службами в одном файле, поэтому в
/etc/inittab указывается набор сценариев, в действительности только
запускающих/останавливающих отдельные службы.

Загрузочные сценарии
Примечание:
Следующее описание применимо к системам, основанным на UNIX System V
Release 4. Однако в некоторых широко используемых системах (Slackware
Linux, FreeBSD, OpenBSD) используется немного другая схема загрузочных
сценариев.

Для каждой управляемой службы (почтовой, сервера nfs, cron и т. п.) существует
отдельный сценарий запуска в особом каталоге (/etc/init.d в большинстве версий
Linux). Каждый из этих сценариев воспринимает в качестве отдельного аргумента
слово «start» (вызывает запуск сценария) или слово «stop» (остановка службы).
Сценарий может (необязательно) воспринимать и другие параметры (например,
«restart» для остановки и запуска, «status» для отображения состояния службы и т.
п.). Запуск сценария без параметров обычно покажет все возможные аргументы.

Последовательность каталогов запуска
Для того, чтобы разные сценарии запускались/останавливались на разных уровнях
выполнения в некотором, чётко определённом порядке, существует так называемая
последовательность каталогов запуска. Это список каталогов, обычно
/etc/rc[0-6S].d. В каждом из этих каталогов есть ссылки (обычно символические) на
сценарии в каталоге /etc/init.d.

Первичный сценарий (обычно /etc/rc) вызывается из inittab(5); он запускает
остальные сценарии служб через ссылки в соответствующих подкаталогах. Все ссылки с

Через управление этими ссылками осуществляется управление порядком загрузки и
уровнями выполнения; во многих системах существуют инструменты, помогающие в
решении этой задачи (например, chkconfig(8)).

Настройки загрузки
Программу, предоставляющую службу, часто называют демоном (daemon). Обычно, демоны
могут воспринимать разные параметры командной строки и параметры. Для изменения
таких параметров системным администраторам без редактирования текста сценария
загрузки можно использовать отдельные файлы настроек. Они расположены в особом
каталоге (обычно, /etc/sysconfig в старых системах Red Hat) и используются
загрузочными сценариями.

В старых системах UNIX эти файлы содержали именно параметры командной строки
демона, но в современных системах Linux (а также в HP-UX) эти файлы просто
содержат разные переменные оболочки. Загрузочные сценарии в /etc/init.d читают и
включают эти файлы настроек (то есть, выполняют команду sources для своего файла
настройки) и после этого используют значения переменных.



ФАЙЛЫ


/etc/init.d/, /etc/rc[S0-6].d/, /etc/sysconfig/



СМОТРИТЕ ТАКЖЕ


init(1), systemd(1), inittab(5), bootparam(7), bootup(7), runlevel(8), shutdown(8)



Категория: (7) Различные описания, соглашения и прочее | Просмотров: 489 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar