
- •Операционные системы. Определение, назначение, функции.
- •Види ос. Характеристика наиболее распространенных систем.
- •Структурная схема ос. Основные компоненты.
- •Загрузчик ос. Этапы загрузки на примере Lilo и grub
- •Характеристики ядра ос. Назначения и функции ядра.
- •Способы организации памяти. Достоинаства и недостатки каждого способоа.
- •Способы и средства организации виртуальной памяти.
- •Основные принципы и характеристики защищенного режима Intel x86
- •Физическая и виртуальная раскладка памяти в Linux.
- •Понятие задачи и процесса. Контекст процесса.
- •Диаграмма состояний процесса. Характеристика и назначение состояний.
- •Режим пользователя и режим ядра в контексте процессов ос.
- •Переключение процессора между процессами.
- •Понятие прерывания. Принцип работы программируемого контроллера прерывания.
- •Планировщик процессов. Основные способы и алгоритмы планирования процессов.
- •Требования к аппаратным средствам для современных ос.
- •Основные структуры данных для реализации процессов в Linux
- •Буферизация ввода-вывода. Принципы работы cash буферов.
- •Основы организации дискового пространства на внешних носителях.
- •Принцип отложенной записи для буферов ввода-вывода.
Загрузчик ос. Этапы загрузки на примере Lilo и grub
Загрузчик операционной системы — системное программное обеспечение, обеспечивающее загрузку операционной системы непосредственно после включения компьютера.
Загрузчик операционной системы:
обеспечивает необходимые средства для диалога с пользователем компьютера (например, загрузчик позволяет выбрать операционную систему для загрузки);
приводит аппаратуру компьютера в состояние, необходимое для старта ядра операционной системы (например, на не-x86 архитектурах перед запуском ядра загрузчик должен правильно настроить виртуальную память);
загружает ядро операционной системы в ОЗУ. Загрузка ядра операционной системы не обязательно происходит с жесткого диска. Загрузчик может получать ядро по сети. Ядро может храниться в ПЗУ или загружаться через последовательные интерфейсы (это может пригодиться на ранней стадии отладки создаваемой компьютерной системы);
формирует параметры, передаваемые ядру операционной системы (например, ядру Linux передаются параметры, указывающие способ подключения корневой файловой системы);
передаёт управление ядру операционной системы.
На компьютерах архитектуры IBM PC запуск загрузчика осуществляется программным обеспечением BIOS, записанной в ПЗУ компьютера, после успешного окончания процедуры POST. BIOS производит чтение 512 байт первого сектора НЖМД (MBR) в ОЗУ по адресу 0x00007C00 (0x07C0:0x0000 в формате реального режима), затем прочитанному коду передаётся управление. Этот код читает и анализирует таблицу разделов жёсткого диска, а затем, в зависимости от вида загрузчика, либо передаёт управление загрузочному коду активного раздела жёсткого диска, либо самостоятельно загружает ядро с диска в оперативную память и передаёт ему управление. Первоначально загрузчик работает в режиме реальной адресации при отключенной адресной линии A20, что создает определенные трудности при написании загрузчиков.
LILO (LInux LOader) — один из стандартных загрузчиков для Linux и BSD-систем.
LILO не зависит от файловой системы и поэтому может загружать операционную систему с жёсткого диска или с дискеты. В связи с этим LILO хранит пункты меню и положение загружаемых ядер непосредственно в теле загрузчика и требует обновления (при помощи запуска утилиты lilo) при каждом изменении конфигурации (изменении в файле lilo.conf или в расположении загружаемых ядер на диске).
LILO поддерживает до 16 пунктов меню при загрузке.
Два вида загрузки, поддерживаемые LILO — это загрузка Linux-ядра с опциональной поддержкой initrd и передача управления другому загрузчику (chainloading).
LILO может быть установлен в главном загрузочном секторе MBR или загрузочном секторе раздела.
LILO использует BIOS для доступа к жёстким дискам, с присущими этой схеме ограничениями.
GRUB — загрузчик операционной системы от проекта GNU. GRUB позволяет пользователю иметь несколько установленных операционных систем и при включении компьютера выбирать одну из них для загрузки.
Загрузчик 1-й фазы считывается BIOS из MBR (главной загрузочной записи).
Он загружает оставшуюся часть загрузчика (2-ю фазу). Если вторая фаза находится на большом диске, иногда загружается промежуточная фаза 1,5, которая содержит дополнительный код, позволяющий считывать цилиндры с номерами более 1024 (диски LBA). Загрузчик фазы 1,5 хранится (если это необходимо) в MBR или в загрузочном разделе.
Выполняется вторая фаза загрузчика и отображает меню запуска GRUB. Оно также позволяет выбрать среду выполнения и просмотреть параметры системы.
Когда операционная система выбрана, она загружается и ей передаётся управление.
GRUB поддерживает и прямой, и цепной способ загрузки, а также LBA, ext2, и «истинно командно-ориентированную, дооперационную среду на машинах x86». Он имеет три интерфейса: меню выбора, редактор настроек и командную консоль.
LILO старше GRUB и практически аналогичен ему в действии, за исключением того, что не содержит интерфейса командной строки. Поэтому все изменения нужно вносить в его настройки и записывать в MBR, после чего систему перезагружают. Таким образом, ошибка в настройках может сделать диск неспособным к загрузке без использования отдельного загрузочного устройства (дискеты и т. п.), содержащего программу для исправления ошибки. Кроме того, LILO не распознаёт файловые системы; вместо этого, адреса файлов-образов хранятся непосредственно в MBR, а BIOS используется для прямого к ним доступа.
Билет №3