The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

boot (7)
  • boot (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
  • boot (1) ( Русские man: Команды и прикладные программы пользовательского уровня )
  • >> boot (7) ( Русские man: Макропакеты и соглашения )
  • boot (7) ( Linux man: Макропакеты и соглашения )
  • boot (8) ( FreeBSD man: Команды системного администрирования )
  • boot (9) ( FreeBSD man: Ядро )
  • Ключ boot обнаружен в базе ключевых слов.
  •  

    НАЗВАНИЕ

    boot-scripts - общее описание последовательности загрузки системы  

    ОПИСАНИЕ

    Последовательность загрузки варьируется в отдельных местах на разных системах, но в целом все равно разбивается на несколько основных шагов: (i) включение оборудования, (ii) загрузчик ОС, (iii) запуск ядра, (iv) работа init и inittab, (v) загрузочные скрипты. Теперь опишем каждый из этих шагов более подробнее.

     

    Включение оборудования

    После включения компьютера или перезагрузки управление машиной передается программе, вшитой в память ПЗУ (сейчас обычно это память PROM). В мире PC эта программа называется BIOS.

    Эта программа обычно осуществляет простейшие тесты системы и реализует доступ к памяти, где хранятся дополнительные настройки компьютера. Этот блок в PC реализован на памяти CMOS с питанием от батареи, и для краткости называется просто CMOS, хотя официальное ее название снаружи мира PC - nvram (non-volatile ram).

    Параметры, хранящиеся в nvram, отличаются в разных системах, но как минимум там хранится информация о загрузочном устройстве или о методе поиска загрузочного устройства.

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

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

     

    Загрузчик ОС

    В мире PC загрзчик операционной системы расположен в первом секторе загрузочного устройства - в так называемой главной загрузочной записи MBR (Master Boot Record).

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

    Тем не менее, большинство операционных систем хитрят и указывают в начальном загрузчике вызов вторичного загрузчика ОС, расположенного в особом месте на разделе диска.

    В Linux системным загрузчиком ОС обычно является программа lilo(8) или grub(8). Оба они могут устанавливаться как вторичные загрузчики (то есть раздел DOS с установленным MBR указывает на них), либо как загрузчик из двух частей, где первая часть кода в MBR запускает вторую, расподложенную на системном загрузочном разделе.

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

     

    Запуск ядра

    Когда ядро загружено, то оно: инициализирует устройства (через их драйвера), запускает процесс обмена (это "процесс ядра", теперь обычно называется kswapd на последних ядрах Linux), и подключает корневую файловую систему (/).

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

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

     

    Работа init и inittab

    При запуске init считывается файл /etc/inittab для более подробных и дальнейших инструкций. Этот файл определяет, что должно быть запущено на разных уровнях загрузки (run-levels).

    Это позволяет системному администратору легко определять и управлять схемой загрузки, так как на каждом уровне запуска определены разные алгоритмы загрузки и разные наборы сервисов (например: 4 это однопользовательский режим, на 2 запускаются почти все сетевые сервисы и т.п.). Администратор может изменить текущий уровень запуска с помощью init(8) и определить текущий уровень запуска, используя runlevel(8).

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

     

    Загрузочные скрипты

    Примечание:
    Следующее описание применимо к системам, основанным на SYSV-R4, к которым на текущий момент относятся большинство коммерческих *nix-систем (Unices) - Solaris, HPUX, Irix, Tru64, а также большинство дистрибутивов Linux - RedHat, Debian, Mandrake, Suse, Caldera. Некоторые системы (Slackware Linux, FreeBSD, OpenBSD) имеют немного другую схему работы загрузочных скриптов.

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

     

    Последовательность каталогов запуска

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

    Первичный скрипт (обычно /etc/rc) вызывается из inittab(5) и запускает остальные скрипты сервисов через ссылки в подкаталогах. Все ссылки с именами, начинающимися на 'S' вызываются с аргументом на 'K' запускаются с аргументом 'stop' (тем самым останавливая сервис).

    Для придания порядка пуску скриптов в одном уровне запуска имена ссылок содержат порядковые номера. Также для понимания смысла имен они обычно заканчиваются на имя сервиса, который они обслуживают. Например: ссылка /etc/rc2.d/S80sendmail запускает сервис sendmail на уровне запуска 2. Это случится после запуска /etc/rc2.d/S12syslog, но перед запуском /etc/rc2.d/S90xfs.

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

     

    Настройки загрузки

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

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

    ФАЙЛЫ

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

     

    СМ. ТАКЖЕ

    inittab(5), bootparam(7), init(8), runlevel(8), shutdown(8)


     

    Index

    НАЗВАНИЕ
    ОПИСАНИЕ
    Включение оборудования
    Загрузчик ОС
    Запуск ядра
    Работа init и inittab
    Загрузочные скрипты
    Последовательность каталогов запуска
    Настройки загрузки
    ФАЙЛЫ
    СМ. ТАКЖЕ


    Поиск по тексту MAN-ов: 




    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру