.\" -*- coding: UTF-8 -*- .\" Written by Oron Peled . .\" .\" SPDX-License-Identifier: GPL-1.0-or-later .\" .\" I tried to be as much generic in the description as possible: .\" - General boot sequence is applicable to almost any .\" OS/Machine (DOS/PC, Linux/PC, Solaris/SPARC, CMS/S390) .\" - kernel and init(1) is applicable to almost any UNIX/Linux .\" - boot scripts are applicable to SYSV-R4 based UNIX/Linux .\" .\" Modified 2004-11-03 patch from Martin Schulze .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH boot 7 "5 февраля 2023 г." "Linux man\-pages 6.03" .SH ИМЯ boot \- процесс запуска системы, основанный на UNIX System V Release 4 .SH ОПИСАНИЕ \fBПроцесс запуска\fP (или «\fBпоследовательность запуска\fP») варьируется в отдельных местах на разных системах, но в целом её можно разделить на несколько основных шагов, управляемых следующими компонентами: .IP (1) 5 оборудование .IP (2) загрузчик операционной системы .IP (3) ядро .IP (4) начальный процесс пользовательского пространства (\fIinit\fP и \fIinittab\fP) .IP (5) загрузочные сценарии .PP Далее следует их более подробное описание. .SS Оборудование После подачи питания или аппаратной перезагрузки управление передаётся программе, хранящейся в памяти, доступной только на чтение (обычно это PROM). По историческим причинам, связанным с персональными компьютерами, эту программу часто называют \fBBIOS\fP. .PP Эта программа, обычно, выполняет простейшие тесты компьютера и читает дополнительные из энергонезависимой памяти. Эта память в ПК реализована на базе памяти CMOS с питанием от батареи, и для краткости называется просто \fBCMOS\fP, хотя её официальное название вне мира ПК — \fBNVRAM\fP (nonvolatile RAM). .PP Параметры, хранящиеся в NVRAM, отличаются в разных системах, но как минимум, в ней хранится информация об устройстве с загрузчиком ОС или о порядке просмотра устройств; такое устройство называют \fBзагрузочным устройством\fP. На аппаратной загрузочной стадии из постоянного места загрузочного устройства загружается загрузчик ОС, а затем ему передаётся управление. .TP Примечание: Устройство, с которого может быть прочитан загрузчик ОС, может находиться в сети; в этом случае детали загрузки определяются протоколами типа DHCP, TFTP, PXE, Etherboot и т. п. .SS "Загрузчик ОС" Основной задачей загрузчика ОС является поиск ядра на некоем устройстве, загрузка его в память и запуск. Большинство загрузчиков ОС имеют интерактивный режим, позволяют указывать альтернативное ядро (резервное, если не заработает последнее собранное) и передавать ядру необязательные параметры. .PP В обычных ПК загрузчик ОС расположен в начальном 512\-байтовом блоке загрузочного устройства — в так называемой главной загрузочной записи \fBMBR\fP (Master Boot Record). .PP В большинстве систем загрузчик ОС в силу разных обстоятельств крайне ограничен. Даже на не ПК существуют некоторые ограничения на размер и сложность загрузчика, ну а ограничение MBR до 512 байт на ПК (включая таблицу разделов) делает почти невозможным сделать его многофункциональным. .PP Поэтому, в большинстве систем действие по загрузке ОС разделено между первичным загрузчиком ОС и вторичным загрузчиком ОС; вторичный загрузчик ОС может находиться внутри большего постоянного хранилища, например в определённом дисковом разделе. .PP В Linux системным загрузчиком ОС часто является программа \fBlilo\fP(8) или \fBgrub\fP(8). .SS Ядро После загрузки ядро инициализирует различные компоненты компьютера и ОС; каждая часть ПО, ответственного за эту задачу, обычно, считается \fBдрайвером\fP какого\-то компонента. Ядро запускает процесс создания виртуальной памяти (это процесс ядра, в современных ядрах Linux называется «kswapd») и монтирует одну из файловых систем в качестве корневой (\fI/\fP). .PP Некоторые из параметров, которые могли быть переданы ядру, влияют на эти действия (например, можно переопределить корневую файловую систему по умолчанию). Для получения более подробной информации о параметрах ядра Linux читайте \fBbootparam\fP(7). .PP Только после этого ядро создаёт первый пользовательский процесс \fBPID\fP (идентификатор процесса) которого равен 1. Обычно, этот процесс исполняет программу \fI/sbin/init\fP, передавая ей все оставшиеся параметры загрузки, не обработанные ядром. .SS "Корневой процесс пользовательского пространства" .TP Примечание: Дальнейшее описание применимо к ОС на основе UNIX System V Release 4. Однако, в некоторых широко используемых системах используется похожий, но существенно отличающийся подход, называемый \fBsystemd\fP(1), процесс загрузки которого подробно описан в \fBbootup\fP(7). .PP При запуске \fI/sbin/init\fP считывается файл \fI/etc/inittab\fP для получения дальнейших инструкций. Этот файл определяет, что должно быть запущено, когда программа \fI/sbin/init\fP получит команду перейти на определённый \fIуровень выполнения\fP (run\-level). Это позволяет администратору легко настроить окружение под какую\-то задачу; для каждого уровня выполнения определён свой набор служб (например, \fBS\fP это \fIоднопользовательский\fP (single\-user) режим, на уровне \fB2\fP запускаются почти все сетевые службы). .PP Администратор может изменить текущий уровень выполнения с помощью \fBinit\fP(1) и определить текущий уровень, используя \fBrunlevel\fP(8). .PP Однако, было бы неудобно управлять отдельными службами в одном файле, поэтому в \fI/etc/inittab\fP указывается набор сценариев, в действительности только запускающих/останавливающих отдельные службы. .SS "Загрузочные сценарии" .TP Примечание: Следующее описание применимо к системам, основанным на UNIX System V Release 4. Однако в некоторых широко используемых системах (Slackware Linux, FreeBSD, OpenBSD) используется немного другая схема загрузочных сценариев. .PP Для каждой управляемой службы (почтовой, сервера nfs, cron и т. п.) существует отдельный сценарий запуска в особом каталоге (\fI/etc/init.d\fP в большинстве версий Linux). Каждый из этих сценариев воспринимает в качестве отдельного аргумента слово «start» (вызывает запуск сценария) или слово «stop» (остановка службы). Сценарий может (необязательно) воспринимать и другие параметры (например, «restart» для остановки и запуска, «status» для отображения состояния службы и т. п.). Запуск сценария без параметров обычно покажет все возможные аргументы. .SS "Последовательность каталогов запуска" Для того, чтобы разные сценарии запускались/останавливались на разных уровнях выполнения в некотором, чётко определённом порядке, существует так называемая \fIпоследовательность каталогов запуска\fP. Это список каталогов, обычно \fI/etc/rc[0\-6S].d\fP. В каждом из этих каталогов есть ссылки (обычно символические) на сценарии в каталоге \fI/etc/init.d\fP. .PP A primary script (usually \fI/etc/rc\fP) is called from \fBinittab\fP(5); this primary script calls each service's script via a link in the relevant sequencing directory. Each link whose name begins with \[aq]S\[aq] is called with the argument "start" (thereby starting the service). Each link whose name begins with \[aq]K\[aq] is called with the argument "stop" (thereby stopping the service). .PP Для определения порядка запуска или остановки сценариев в одном уровне выполнения имена ссылок содержат \fIпорядковые номера\fP. Также, для понимания смысла имён, они, обычно, заканчиваются на имя службы, которую они обслуживают. Например: ссылка \fI/etc/rc2.d/S80sendmail\fP запускает службу sendmail на уровне выполнения 2. Это случится после запуска \fI/etc/rc2.d/S12syslog\fP, но перед запуском \fI/etc/rc2.d/S90xfs\fP. .PP Через управление этими ссылками осуществляется управление порядком загрузки и уровнями выполнения; во многих системах существуют инструменты, помогающие в решении этой задачи (например, \fBchkconfig\fP(8)). .SS "Настройки загрузки" Программу, предоставляющую службу, часто называют \fBдемоном\fP (daemon). Обычно, демоны могут воспринимать разные параметры командной строки и параметры. Для изменения таких параметров системным администраторам без редактирования текста сценария загрузки можно использовать отдельные файлы настроек. Они расположены в особом каталоге (обычно, \fI/etc/sysconfig\fP в старых системах Red Hat) и используются загрузочными сценариями. .PP В старых системах UNIX эти файлы содержали именно параметры командной строки демона, но в современных системах Linux (а также в HP\-UX) эти файлы просто содержат разные переменные оболочки. Загрузочные сценарии в \fI/etc/init.d\fP читают и включают эти файлы настроек (то есть, выполняют команду \fBsources\fP для своего файла настройки) и после этого используют значения переменных. .SH ФАЙЛЫ \fI/etc/init.d/\fP, \fI/etc/rc[S0\-6].d/\fP, \fI/etc/sysconfig/\fP .SH "СМ. ТАКЖЕ" \fBinit\fP(1), \fBsystemd\fP(1), \fBinittab\fP(5), \fBbootparam\fP(7), \fBbootup\fP(7), \fBrunlevel\fP(8), \fBshutdown\fP(8) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Artyom Kunyov , Azamat Hackimov , Dmitriy Ovchinnikov , Dmitry Bolkhovskikh , ITriskTI , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .