Загрузка ОС
Интерфейсы между операционной системой и прошивкой платформы
BIOS
Расположение BIOS
Алгоритм работы BIOS
Ограничения BIOS
EFI
Особенности EFI
Совместимость с ОС для платформы x86, требующими для работы интерфейса «legacy BIOS»
Недостатки UEFI
Cхемы разметки дисков
MBR (Master Boot Record)
Структура MBR
Код загрузчика
Структура раздела
Признак активности раздела
Код типа раздела
Расширенный раздел
Схемы адресации
Начало раздела в LBA- адресации
Вторичная MBR
GUID Partition Table (GPT) 
Структура GPT
Структура GUID Partition Entries Array
2.77M
Category: informaticsinformatics

Загрузка ОС

1. Загрузка ОС

• Задача загрузки ОС прежде всего заключается в
вызове ПО, прошитого в микросхеме
(начального загрузчика), т.к. в оперативной
памяти при включении компьютера ничего
нет.
• Это ПО - интерфейс между прошивкой
платформы и ОС. Основное предназначение
его: корректно инициализировать
оборудование при включении системы и
передать управление загрузчику операционной
системы.

2. Интерфейсы между операционной системой и прошивкой платформы

• BIOS (англ. Basic Input-Output System —
базовая система ввода-вывода). Используется
IBM PC-совместимыми персональными
компьютерами.
• Extensible Firmware Interface (EFI)
(англ. Расширяемый интерфейс прошивки).

3. BIOS

• Набор микропрограмм системного программного
обеспечения низкого уровня, обеспечивающих
начальный запуск ПК, тестирование (система POST) и
первичная настройка оборудования, распределение
ресурсов между устройствами и активация процедуры
загрузки операционной системы

4. Расположение BIOS

• Вначале: микросхемы постоянной памяти (ПЗУ
или ROM), запись на которые единожды
осуществлялась на заводе.
• Позже: микросхемы EPROM и EEROM, в которых
имелась возможность в случае необходимости
осуществлять перезапись BIOS, но только с
помощью специального оборудования
• Сейчас: микросхемы, созданных на основе флэшпамяти, перезаписывать которые можно с
помощью специальных программ прямо на ПК в
домашних условиях (перепрошивка)

5. Алгоритм работы BIOS

Алгоритм работы BIOS
• тестирование оборудования (POST)
• начальная инициализация оборудования
• Определение из CMOS с какого устройства
производить дальнейшую загрузку
• считывание одного сектора (512 байт), который
находится по адресу: «цилиндр 0, головка 0,
сектор 1», в область памяти по адресу 0000:7c00
• проверка, что этот сектор оканчивается
сигнатурой 55ААh
• передача управления по адресу 0000:7c00 (то
есть сектору MBR)

6. Ограничения BIOS

• не возможность использовать более 1
Мб адресного пространства памяти
• 16-битный исполняемый код
• адресуемое пространство на жёстком
диске может составить максимум 2ТБ
• ограничение на создание первичных
разделов
• не обеспечение безопасности

7. EFI

• 2000г. Intel
выпустила
первую версию
• 2005г. Intel
внесла EFI в UEFI
Forum
(переименован в
UEFI)
• С 2011г.
Массовое
внедрение UEFI
для начальной
загрузки ПК
EFI

8. Особенности EFI

• Модульный программируемый интерфейс, включающий
тестовые, рабочие и загрузочные сервисы, драйверы устройств,
протоколы коммуникаций, функциональные расширения и
собственную графическую оболочку (мини ОС)
• Менеджер загрузки EFI используется для выбора и загрузки ОС
(загрузчик ОС является приложением EFI).
• Кроссплатформенность и независимость от процессорной
архитекторы
• Среда оболочки. Пользователь для выполнения некоторых
операций может загрузить оболочку EFI (EFI shell), вместо того,
чтобы загружать ОС.
• В дополнение к стандартной схеме разметки дисков — Master
boot record (MBR), EFI имеет поддержку GUID Partition
Table (GPT), которая свободна от характерных для MBR
ограничений.

9. Совместимость с ОС для платформы x86, требующими для работы интерфейса «legacy BIOS»

• достигается с помощью модуля
поддержки совместимости (CSM).
CSM включает 16-битную программу
(CSM16), реализуемую изготовителем
BIOS, и слой, связывающий CSM16 с
инструментарием.

10.

Загрузка ПК

11. Недостатки UEFI

• Усложнение архитектуры
• Проблемы с Secure Boot
• Невозможность установки старых ОС (в
некоторых случаях)

12. Cхемы разметки дисков

• Жесткий диск имеет 2 уровня логической структуры.
• Первый уровень представляет собой разбиение
диска на разделы.
• На втором уровне задается формат раздела и
заносится на него информация.
• 1-й сектор цилиндра 0 стороны 0 разбитого на
разделы жесткого диска хранит схему разметки
дисков.
• Стандартная схема разбивки носит название MBR.
• С распространением 64-разрядных процессоров,
популярность набирает схема разметки на основе
GPT.

13. MBR (Master Boot Record)

• Разделы МBR применяются в Microsoft DOS,
Microsoft Windows, Linux и в системах
FreeBSD и OpenBSD на платформе IA32.
• При старте BIOS загружает MBR и передает
ей управление.
• Эта система получила наибольшее
распространение, но она же оказалась
наиболее сложной.

14. Структура MBR

• Загрузочный код
• Таблица разделов (Partition Table)
• Сигнатура
смещение
000h
1BEh
1BEh
1CEh
1DEh
1EEh
1FEh
длина
446
64
16
16
16
16
2
Описание
Код загрузчика
Таблица разделов
Раздел 1
Раздел 2
Раздел 3
Раздел 4
Сигнатура 55ААh

15. Код загрузчика

Код загрузчика
• Задача загрузчика - проанализировать
таблицу разделов жесткого диска, затем
передать управление загрузочному
коду активного раздела
• Возможна организация меню для выбора
пользователем операционной системы
Таблица разделов
В таблице разделов хранится информация о
типе разделов и их расположении на жёстком
диске.

16. Структура раздела

Смещ. Длина Описание
00h
1
Признак активности раздела
01h
04h
05h
08h
3
1
3
4
Начало раздела в CHS-адресации
Код типа раздела
Конец раздела в CHS-адресации
Начало раздела в LBA- адресации
0Ch
4
Количество секторов раздела

17. Признак активности раздела

Признак активности раздела
• признак, обозначающий возможность загрузки
операционной системы с данного раздела.
• Для стандартных загрузчиков может принимать
следующие значения:
80h — раздел является активным;
00h — раздел является неактивным;
другие значения являются ошибочными и
игнорируются.

18. Код типа раздела

Код типа раздела
• 0 – раздел не используется
• 5 или 15 – расширенный раздел
• Остальные значения – код типа файловой
системы раздела
например:
7 –NTFS, 0Bh – FAT32, 83h – Linux

19. Расширенный раздел

• Необходим, когда на жестком диске более 4
логических дисков
• описывает не раздел, а область пространства
накопителя, в которой расположены другие
разделы – указывает на вторичную MBR
(EBR).

20. Схемы адресации

Схема адресации CHS (cylinder, head, sector) имеет ограничения, т.к. в
исходной спецификации ATА задействован 16-разрядный номер цилиндра, 4разрядный номер головки и 8-разрядный номер сектора.
Более новые версии BIOS, транслируют «свои» диапазоны адресов в
диапазоны адресов, соответствующие спецификации ATА. Процесс
трансляции не работает для дисков объемом более 8,1 Гбайт.
От схемы адресации CHS пришлось отказаться. Стандартной стала схема
адресации LBA (Logical Block Addresses), в которой каждый сектор обозначается
одним числом, начиная с 0.

21. Начало раздела в LBA- адресации

• Для нерасширенного раздела: адрес начала
раздела относительно адреса текущей MBR
• Для расширенного раздела: адрес
вторичной MBR (EBR) относительно адреса
первой вторичной MBR

22. Вторичная MBR

• Имеет такую же структура как и первичная
MBR, но код загрузчика обычно пустой и в
ней не может быть активных разделов
• В таблице разделов EBR имеется обычно
одна или две записи. Первая описывает
обычный раздел, а вторая является
расширенным разделом (указывает на
следующую EBR)

23.

24.

25.

Алгоритм именования дисков
1. Для логического диска, найденного в MBR, в
соответствии с файловой системой с загрузочного сектора
определить серийный номер;
2. Определить количество и имена логических дисков,
созданных операционной системой, воспользовавшись для
этого функцией GetLogicalDrives.
3. Для каждого логического диска через функцию
GetVolumeInformation получить серийный номер;
4. Выполнить сравнение серийных номеров найденных в
п.3 и п.1, совпадение их позволит назначить логическим
дискам, найденным в п.1 соответствующие имена.

26. GUID Partition Table (GPT) 

GUID Partition Table (GPT)
• В отличие от MBR, GPT не имеет жёсткой фиксации, поэтому на
GPT-диске можно создавать практически неограниченное
количество логических разделов.
• Резервирование загрузочных данных и сведений о таблице
разделов. Если в MBR-дисках они хранятся в одном месте — в
первых физических секторах, то в дисках с разметкой GPT они
могут храниться где-то ещё, но уже в виде копий.
• Разметка GPT позволяет работать с дисками объёмом больше 2
Тб. Диски 3 Тб и больше будут читаться и в MBR, но доступно
пользователю будет только 2 Тб.
• Важнейшим
техническим
отличием
GPT
от
традиционной таблицы разделов является полный отказ от
использования
дисковых
адресов
формата CHS
и
окончательный переход на адресацию LBA. Кроме того, GPT
упрощает разбиение дисков на большое число разделов.

27. Структура GPT

28. Структура GUID Partition Entries Array


Заголовок
Массив разделов
Обозначение
Смещение
Размер
Описание
Signature
00h
8
Сигнатура заголовка
Revision
08h
4
Версия формата заголовка; Сейчас используется первая версия
заголовка, которой соответствует значение 00010000h
HeaderSize
0Ch
4
Размер заголовка GPT в байтах.
HeaderCRC32
Reserved
MyLBA
AlternateLBA
10h
14h
18h
20h
4
4
8
8
Контрольная сумма заголовка GPT.
Зарезервированное поле, = 0
LBA этой копии заголовка
LBA другой копии заголовка
FirstUsableLBA
28h
8
LBA первого блока, с которого могут начинаться разделы
LastUsableLBA
30h
8
LBA последнего блока, после которого не может быть разделов
DiskGUID
PartitionEntryLBA
NumberOfPartitionEntries
SizeOfPartitionEntry
38h
48h
50h
54h
16
8
4
4
Уникальный идентификатор (GUID) этого диска
LBA начала массива разделов диска
Количество записей в массиве разделов диска
Размер каждой записи массива разделов; должен быть кратен 8
PartitionEntryArrayCRC32 58h
Reserved
5Сh
4
Контрольная сумма масcива разделов.
Резервная область заголовка, должна содержать нули

29.

Структура записи GPT
Обозначение
Смещение Размер
PartitionTypeGUID
0h
16
UniquePartitionGUID 10h
16
StartingLBA
20h
8
Описание
GUID типа данного раздела.
Определяет файловую систему,
используемую для хранения
данных в этом разделе
GUID раздела. Является
уникальным идентификатором
LBA первого блока данного
раздела на диске
EndingLBA
28h
8
LBA последнего блока данного
раздела на диске
Attributes
30h
8
Атрибуты раздела
PartitionName
38h
72
Reserved
80h
Строка в кодировке Unicode,
содержащая имя данного раздела
размер записи - Неиспользуемая часть записи
80h
массива разделов
English     Русский Rules