Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_os.docx
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
627 Кб
Скачать
☆

8.Загрузка в ос Linux

Точные детали процесса загрузки варьируется от системы к системе, однако общая схема этапов сохраняется. При включении компьютера начинается работа bios, которая производит тестирование при включении, а также начальное обнаружение устройств и их инициализацию. Затем, в память считывается и исполняется первый сектор загрузочного диска. Этот сектор содержит небольшую программу, считывающую автономную программу с загрузочного устройства (boot). Программа сначала копирует сама себя в старшие адреса памяти. после этого она считывает корневой каталог из загрузочного устройства. для этого она должна понимать формат файловой системы (существую загрузчики, которым не обязательна эта инфомарция). После этого программа boot считывает ядро операционной системы и передает ему управление. На этом этапе команда boot завершает свою работу.

Начальный код ядра написан на ассемблере. И является машинно-зависимым. Данный код выполняет следующие действия:

а) настраивает стэк ядра;

б) определяет тип центрального процессора;

в) вычисляет количество имеющейся оперативной памяти;

г) инициализирует прерывания;

д) разрешает работу блока управления памятью;

е) вызывает процедуру main. (написана на языке C).

Процедура main проделывает работу по инициализации остальной части операционной системы. В первую очередь выделяется память под буфер сообщений. В данный буфер записываются сообщения о ходе инициализации системы. Далее выделяется память для структур данных ядра. Большенство структур имеет фиксированный размер. Однако существуют такие, которые зависят от размера оперативной памяти (кэш страниц,таблица страниц). Далее операционная система начинает определение конфигурации компьютера. Для этого OS считывает файлы конфигурации, в которых сообщаются возможные устройства ввода\вывода, и проверяет, какие из них присутствуют на самом деле. Если устройство присутствует, оно добавляется в таблицу подключенных устройств. Иначе, устройство игнорируется.

После завершения конфигурации всего аппаратного обеспечения нужно настроить стек и загрузить процесс 0 (с самым высоким приоритетов). Процесс - продолжает инициализацию:

а) программирование таймера;

б) монтирование корневой файловой системы;

в) создание процесса 1 (init);

г) создание процесса 2 (page deamon).

Процесс init проверяет свои флаги, в зависимости от которых он запускает систему в однопользовательском или многопользовательском режиме.

Однопользовательский режим - в этом случае init создает процесс исполняющий оболочку и ждет, когда тот завершит свою работу.

Многопользовательский режим - в этом случае init создает процесс rc, который проверяет противоречивость файловой системы. Далее считывается файл ttys, в котором перечисляются терминалы и некоторые их свойства. для каждого из разрешенных терминалов он создает копию самого себя и запускает программу getty. Эта программа устанавливает для каждой линии скорость и прочие свойства, а также выводит сообщение для приглашения в систему (login:). Далее она считывает данные логина с клавиатуры, запускает программу login и завершает свою работу. Login запращивает у пользователя пароль, сравнивает с зашифрованным паролем. Если пароль верен, то логин запускает оболочку, если нет, то процесс запроса повторяется.

9. Структура памяти процесса в ОС Linux

10.Управление памятью в ОС Linux. Карта памяти.

11.Алгоритмы выделения памяти в ОС Linux.

12.Виртуальное адресное пространство в ОС Linux.

Виртуальные адресные пространства делятся на однородные, непрерывные, выровненные по границам области. Каждая область состоит из участка смежных страниц с одинаковой защитой и страничной организацией. Между областями виртуального адресного пространства могут быть пустые промежутки. Ссылка на такой промежуток приводит к фатальной страничной ошибке. Каждая область описывается в ядре, структурой vm_area_struct. Все эти элементы связываются вместе в список, отсортированный по виртуальным адресам. Когда список становится слишком длинным (более, чем 32 элемента), для ускорения поиска по нему создается дерево. В элементе vm_area_struct перечислены свойства области, например режим защиты, направление роста сегмента, информация о том, закреплен (не подкачивается) ли он в памяти, является ли данная область приватной для какого-либо процесса, имеет ли область резервное хранение на диске, и, если имеет, то где.

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