Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
NuM_Lektsii_OSISP - лекции на Линуксу.doc
Скачиваний:
74
Добавлен:
18.02.2016
Размер:
287.74 Кб
Скачать

Тема 8: Загрузка linux

Когда включается компьютер, система bios выполняет тестирование при включении (post), а также начальное обнаружение устройств и их инициализацию. Затем в память считывается и исполняется первый сектор загрузочного диска (MBR (master boot record)). Этот сектор содержит небольшую 512-байтовую программу, считывающую автономную программу под названием boot с загрузочного устройства. Программа boot сначала копирует саму себя в фиксированный адрес памяти в старших адресах, чтобы освободить нижнюю память для операционной системы. После этого перемещения программа bootсчитывет корневой каталог с загрузочного устройства. Затем boot считывает ядро операционной системы и передает ему управление. На этом этапе программа boot завершает свою работу, далее работает ядро системы. Начальный код ядра написан на ассемблере и является машинозависимым. Как правило этот код настраивает стек ядра, определяет тип центрального процессора, вычисляет количество имеющейся в наличии оперативной памяти, отключает прерывания, разрешает работу блока управления памятью и вызывает процедуру main, чтобы запустить остальную часть операционной системы. Далее основную работу по инициализации операционной системы производит код, написанный на языке C. Происходит так называемая логическая инициализация. Затем выделяется память для структур данных ядра. Пример: кэш страниц, структуры таблиц страниц и т. д. Операционная система начинает определение конфигурации компьютера. ОС считывает файлы конфигурации, в которых сообщается, какие типы устройств ввода вывода могут присутствовать, и проверяет, какие из них отсутствуют. Если устройство отвечает, то оно добавляется к таблице подключенных устройств, если устройство не отвечает, то оно считается отсутствующим и в дальнейшем игнорируется. После завершения конфигурации всего аппаратного обеспечения нужно загрузить процесс 0, настроить его стек и запустить. Процесс 0 продолжает инициализацию, выполняя такие задачи, как программирование таймеров реального времени, монтирование корневой файловой системы, а так же создание процесса 1 (init) и процесса 2. Процесс init проверяет свои флаги, в зависимости от которых он запускает операционную систему в однопользовательском либо многопользовательском режиме. В первом случае он создает процесс, выполняющий оболочку, во втором случае процессinitсоздает процесс, исполняющий инициализационный сценарий оболочки системы, считывается файл, в котором перечисляются терминалы и некоторые их свойства. Для каждого разрешенного терминала он создает копию самого себя. А также, для каждого из терминалов процесс init запускает getty. Данная программа устанавливает для каждой линии скорость и прочие свойства, после чего выводит на терминале приглашение к входу в систему. Далее данная программа пытается прочитать с клавиатуры имя пользователя. После ввода регистрационного имени программа getty завершает свою работу запуском программы регистрации /bin/login, после этого программа login запрашивает пароль, шифрует его и сравнивает с зашифрованным паролем, хранящимся в файле. Если пароль правильный, то login запускает оболочку пользователя.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]