- •Операционные системы (учебное пособие)
- •Введение
- •1. Операционная система: основные понятия
- •1.1. Понятие операционной системы, её роль и функции
- •1.2. Операционная и программная среды
- •1.3. Очередь и стек
- •1.4. Машинная команда, способы адресации, привилегированные команды
- •1.5.Система прерываний
- •1.6. Задачи, вычислительные процессы и ресурсы
- •Ресурс – это абстрактная структура, имеющая множество атрибутов, характеризующих способы доступа к ресурсу и его физическое представление в системе
- •1.7. Мультипрограммный, мультизадачный и многопользовательский режимы работы операционной системы. Режим разделения времени
- •2. Управление памятью в операционных системах
- •2.1. Память и отображения, виртуальное адресное пространство
- •2.2. Простое непрерывное распределение и распределение с перекрытием
- •2.3. Распределение памяти статическими разделами
- •2.4. Распределение памяти с динамическими разделами
- •2.5. Распределение памяти с фрагментацией задач
- •3. Управление процессами
- •3.1. Реализация последовательного процесса в операционной системе
- •3.2. Планирование и диспетчеризация процессов и задач
- •3.3. Управление параллельными процессами
- •3.3.1. Понятие параллельных процессов
- •3.3.2. Методы реализации взаимных исключений
- •3.3.3. Блокировка памяти
- •3.3.4. Применение специальных операций типа "проверка–установка"
- •3.3.5.Семафоры и их применение
- •3.3.6. Мониторы
- •3.3.7. Почтовые ящики, конвейеры и очереди сообщений
- •4. Проблема тупиков и её решение
- •4.1. Проблема тупиков, разделяемые ресурсы и модели параллельных процессов
- •4.2. Модель повторно используемых ресурсов Холта1
- •4.3. Сети Петри
- •4.4. Модель пространства состояний системы
- •4.5. Борьба с тупиками
- •4.5.1. Предотвращение тупиков
- •4.5.2. Обход тупиков
- •4.5.3. Обнаружение тупика
- •5. Жёсткий диск
- •5.1. Устройство накопителя жесткого диска (hdd) и адресация элементов дискового пространства
- •5.2. Логическая структура диска
- •5.3. Создание загрузочных дисков
- •6. Файловые системы
- •6.1. Файлы и каталоги
- •6.2. Понятие и функции файловой системы и системы управления файлами.
- •6.3. Обзор файловых систем
- •6.3.1. Файловая система fat16, fat32 и vfat
- •6.3.2. Файловая система ntfs
- •6.3.3. Файловые системы компакт-дисков
- •7. Средства защиты и восстановления операционных систем
- •7.1. Цифровая подпись драйверов и её верификация
- •7.2. Защита и проверка системных файлов
- •7.3. Откат драйверов
- •7.6. Безопасный режим загрузки
- •7.7. Мастер и точки восстановления системы
- •7.8. Резервное копирование и восстановление
- •7.9. Аварийное восстановление системы. Консоль восстановления.
- •8. Загрузчики операционных систем
- •8.1. Понятие загрузчика и виды его реализации
- •8.2. Решение проблемы четырех разделов в mbr
- •8.3. Установка загрузчиков ос
- •8.4. Настройка загрузчиков ос
- •8.5. Удаление загрузчиков ос
- •9. Системный реестр и системные службы
- •9.1. Назначение и структура реестра
- •9.2. Работа с реестром
- •9.3. Системные службы
- •10. Безопасность операционных систем
- •10.1. Угрозы, уязвимости, атаки
- •10.2. Политика безопасности
- •10.3. Защита от вторжений
- •10.4. Межсетевые экраны
- •10.5. Отключение ненужных служб
- •10.6. Защита от спама
- •10.7. Защита от вредоносных программ и вирусов средствами операционных систем
- •10.8. Защита конфиденциальной информации.
- •Список литературных источников
8. Загрузчики операционных систем
8.1. Понятие загрузчика и виды его реализации
Современная концепция взаимодействия аппаратного и программного обеспечения предусматривает нахождение в памяти машины любой программы, исполняемой в текущий момент времени. Поскольку операционная система является комплексом программ, то её важнейшие модули (ядро) также должны находиться в памяти машины. Между тем в момент старта машины ядро может находиться как в ПЗУ, так и на дисковом устройстве и даже на магнитной ленте, или вообще отсутствовать и загружаться по сети.
Загрузчик операционной системы – это системная программа или комплекс программ, выполняющее загрузку операционной системы в оперативную память вычислительной машины. В процессе загрузки операционной системы должны быть выполнены следующие действия:
ведётся начальный диалог с пользователем, например в целях выбора загружаемой операционной системы, если их установлено на компьютер несколько;
подготавливает аппаратуру компьютера к старту ядра операционной системы;
загрузка в оперативную память ядра операционной системы;
формирование параметров, передаваемых ядру операционной системы;
передача управления ядру операционной системы.
Например, на компьютерах архитектуры IBM PC загрузка происходит следующим образом:
BIOS копирует Master Boot Record из 512 байт первого сектора жёсткого диска в оперативную память и передаёт управление скопированному коду (внесистемному загрузчику);
внесистемный загрузчик читает и анализирует таблицу разделов жёсткого диска;
внесистемный загрузчик определяет активный раздел жёсткого диска и передаёт управление системному загрузчику активного раздела;
системный загрузчик загружает ядро операционной системы в оперативную память.
Простые загрузчики операционных систем самостоятельно выполняют весь процесс загрузки. Существуют комплексы загрузчиков, которые состоят из первичного, вторичного и т.д. загрузчиков возрастающей сложности, которые последовательно запускают друг друга. Такой процесс загрузки называется бутстрапом (bootstrap).
Существует множество загрузчиков операционных систем. Наиболее известны следующие загрузчики:
NTLDR – загрузчик ядра Windows NT;
Windows Boot Manager (bootmgr.exe, winload.exe) – загрузчик ядра Windows Vista;
OS/2 BootManager — загрузчик ядра OS/2;
SILO – загрузчик Linux и Solaris для машин с архитектурой SPARC;
Plop Boot Manager – универсальный загрузчик, запускается с помощью собственных загрузчиков Windows и Linux, а также со съемных носителей;
SyMon – универсальный загрузчик, независим от типа операционной системы;
Acronis OS Selector — коммерческая графическая утилита прилагаемая к Acronis Disk Director, поддерживает Windows и Linux, появляется перед каждой загрузкой системы, умеет копировать системы.
Штатным загрузчиком операционной систем Windows NT/2000/XP является загрузчик NTLDR, существующий в виде файла ntldr. Он может запускаться как с жёсткого диска, так и с переносных носителей CD-ROM и FLASH-накопителя. В процессе загрузки он последовательно запускает следующие файлы:
ntdetect.com – сбор информации о составе оборудования;
ntoskrnl.exe – ядро операционной системы1.
Для работы ntldr необходимо наличие в корневом каталоге диска, содержащего ntldr файла boot.ini, содержащего сведения, необходимые для организации загрузки. Пример текста файла boot.ini приведён на рис. 8.1.
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows Server 2000" /fastdetect
multi(0)disk(0)rdisk(1)partition(2)\WIN2KP="Windows XP Prof RU" /fastdetect
multi(0)disk(0)rdisk(0)partition(4)\WIN2KP="Windows 2000 Prof RU" /fastdetect
multi(0)disk(0)rdisk(2)partition(2)\WIN2KP="Windows XP Prof RU" /fastdetect
C:\="Microsoft Windows 98"
C:\CMDCONS\BOOTSECT.DAT="Recovery Console MS Windows 2000"/cmdcons
Рис. 8.1. Пример текста файла boot.ini
Данный файл позволяет организовать меню выбора одной из четырёх операционных систем, перечисленных в секции operating systems. В секции boot loader указано время ожидания выбора операционной системы и операционная система, загружаемая по умолчанию.
В секции operating systems перечислены установленные операционные системы. В строке C:\="Microsoft Windows 98" указано имя операционной системы, не являющейся членом семейства Windows NT, загрузчик которой находится в файле bootsect.dos, находящийся в корневом каталоге диска С:. В последней строке указан путь к файлу bootsect.dat, содержащему информацию для консоли восстановления и имя файла программы консоли восстановления системы.
Слово multi в описании меню указывает необходимость использования драйверов из BIOS компьютера. Слово disk(0) указывает на жёсткий магнитный диск с интерфейсом IDE2, слово rdisk(число) указывает номер накопителя, а слово partition определяет номер раздела, в который установлена операционная система.
Загрузчик работает также в момент перехода из спящего режима в рабочий режим. Признаком такого перехода является наличие файла hiberfil.sys, хранящего образ оперативной памяти компьютера и регистров процессора, существовавший в момент наступления спящего режима. В этом случае загрузчик просто загружает элементы образа на свои места и передаёт управление исполнявшейся программе.