Запуск UNIX принято называть загрузкой операционной системы (в англ. терминологии - boot). При загрузке происходит запуск процессов, относящихся к ядру ОС, конфигурирование основных компонентов системы; после этого стартуют и инициализируются процессы, обеспечивающие все предоставляемые данной машиной сервисы, включая возможность работы пользователей.
При остановке происходит обратный процесс. Каждый сервис должен корректно завершить свою работу (освободить системные ресурсы, удалить временные файлы, сохранить данные из оперативной памяти на диске и т.п.), после чего происходит поэтапный останов общесистемных функций – блокировка сетевой подсистемы, сброс содержимого буферной кэш-памяти на диск и т.п. Некорректная остановка UNIX-системы (в частности, выключение питания ЭВМ при работе системы) может привести к крайне нежелательным последствиям, вплоть до разрушения файловой системы и потери данных на дисках.
6.1 Загрузка UNIX
После включения компьютера запускается программа-загрузчик, обычно расположенная в начальном секторе жесткого диска. Основной функцией загрузчика является считать в оперативную память ядро операционной системы и передать управление программному коду ядра. При этом ядру могут быть переданы некоторые параметры (чаще всего - сведения об аппаратных устройствах компьютера), называемые параметрами загрузки. Как правило, каждый вариант UNIX имеет собственную специфическую программу-загрузчик. Некоторые загрузчики позволяют пользователю выбрать одну из нескольких установленных на компьютере операционных систем.
Обычно процесс загрузки состоит из шести этапов:
1. Загрузка и инициализация ядра. На этом этапе ядро считывается из файла (/unix, /boot/vmunix или др.), запускается его программный код, выделяется память под структуры данных ядра, производится установка начальных значений (инициализация) этих данных.
2. Распознавание и конфигурирование устройств. При этом ядро распознает и тестирует компоненты аппаратного обеспечения компьютера. К работе подготавливаются включенные в ядро драйверы устройств; при необходимости, устанавливаются загружаемые модули ядра. Большинство ядер выдает на экран краткую информацию о каждом обнаруженном устройстве.
3. Создание системных процессов. Число и характер этих процессов зависит от типа операционной системы. В BSD-системах создаются три процесса:
- swapper – процесс с PID = 0;
- init - процесс с PID = 1;
- pagedaemon - процесс с PID = 2.
Число системных процессов в System V варьируется:
- sched – процесс с PID = 0;
- init - процесс с PID = 1;
- различные процессы управления памятью.
Дальнейшие операции по запуску операционной системы выполняет процесс init. Этот процесс является (прямо или косвенно) предком всех запускаемых в процессе работы процессов. Остальные системные процессы отвечают за управление ресурсами системы и доступ к устройствам.
4. Выполнение команд оператора (однопользовательский режим). При нормальной загрузке этот этап пропускается, однако он может быть активизирован указанием определенных параметров загрузки. Кроме того, если при запуске системы обнаруживаются повреждения файловой системы (напр., в результате некорректного выключения), система приостанавливает загрузку и переходит в однопользовательский режим. На этом этапе оператору предоставляется стандартный интерпретатор команд shell, из которого он может выполнить любые действия по восстановлению файловой системы, редактированию файлов конфигурации и т.п. Командный интерпретатор выполняется от имени суперпользователя - root. Завершение работы с интерпретатором приводит к продолжению загрузки.
5. Выполнение сценариев инициализации системы. Сценарии инициализации представляют собой командные файлы (скрипты), отвечающие за запуск основных подсистем и служебных процессов. Более подробно этот этап рассматривается ниже.
6. Переход в основной (многопользовательский) режим. С этого момента система функционирует в полном объеме.
Все этапы загрузки сопровождаются выводом на системную консоль (на экран) кратких сообщений. Для оператора загрузка выглядит как характерное «пробегание» по экрану множества строк текста. Некоторые системы (AIX; частично - UnixWare) скрывают эти сообщения от пользователя, выдавая на экран графические изображения.
Помимо ядра, любая реальная UNIX-система в стандартном режиме содержит ряд работающих процессов – сетевые сервисы, демоны cron, syslog и т.д. Для каждой системы в целом, и для ее отдельных компонентов, требуются настройка индивидуальных параметров.
В UNIX запуск служебных процессов и начальная установка параметров вынесена за пределы функций ядра и возложена на более простой и гибкий механизм – shell-сценарии. При загрузке процесс init автоматически запускает определенные сценарии, в которых содержатся последовательности команд, отвечающие за запуск и инициализацию всех стандартных и прикладных подсистем. Сценарии формируются при установке системы и могут быть скорректированы администратором под реальную среду и конкретные задачи. В современных ОС объем сценариев инициализации достаточно велик – от нескольких сотен до нескольких тысяч строк текста. Чтобы упростить администратору внесение требуемых изменений, ряд параметров (напр., раскладка клавиатуры, часовой пояс или IP-адреса сетевых интерфейсов) выносятся в отдельные текстовые файлы несложной структуры – файлы конфигурации. При загрузке сценарии инициализации читают данные из этих файлов и используют их в качестве параметров при запуске подсистем ОС.
Структура сценариев инициализации принципиально отличается в System V и BSD; это различие является наиболее заметным для пользователя различием между двумя ветвями семейства UNIX.
Сценарии инициализации в BSD UNIX.
В BSD UNIX все операции по запуску и начальному конфигурированию системы объединены в несколько (обычно три-четыре) командных файлов – сценариев. Эти файлы располагаются в каталоге /etc и имеют имена, начинающиеся буквами «rc». Рассмотрим назначение файлов на примере ОС SunOS.
Первым запускается сценарий /etc/rc.boot. Здесь выполняются команды, отвечающие за общесистемные начальные настройки – установка важнейших системных переменных, инициализация сетевых интерфейсов, проверка целостности файловых систем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.