Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1461

.pdf
Скачиваний:
7
Добавлен:
30.04.2022
Размер:
1.19 Mб
Скачать

4.2.4. Доступ к файлам

Основные виды доступа к файлам:

Последовательный - байты читаются по порядку. Использовались, когда были магнитные ленты.

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

4.2.5. Имя пути

Для организации дерева каталогов нужен некоторый способ указания файла.

Два основных метода указания файла:

– абсолютное имя пути - указывает путь от корневого каталога, например:

-для Windows \usr\ast\mailbox

-для UNIX /usr/ast/mailbox

относительное имя пути - путь указывается от текущего каталога (рабочего каталога), например:

-если текущий каталог /usr/, то абсолютный путь

/usr/ast/mailbox перепишется в ast/mailbox

-если текущий каталог /usr/ast/, то абсолютный путь

/usr/ast/mailbox перепишется в mailbox

-если текущий каталог /var/log/, то абсолютный путь

/usr/ast/mailbox перепишется в ../../usr/ast/mailbox

./ - означает текущий каталог

../ - означает родительский каталог

81

4.3. Базовая система ввода/вывода (BIOS)

BIOS (англ. basic input/output system — «базовая система ввода-вывода»), также БСВВ, — реализованная в виде микропрограмм часть системного про-граммного обеспечения, которая предназначается для предоставления операционной системе API-доступа к аппаратуре компьютера и подключенным к нему устройствам.

В персональных IBM PC-совместимых компьютерах, использующих мик-роархитектуру x86, BIOS представляет собой набор записанных в микросхему EEPROM (ПЗУ) персонального компьютера микропрограмм (образующих системное программное обеспечение), обеспечивающих начальную загрузку компьютера и последующий запуск операционной системы.

BIOS – это программа, записанная на чип, который находится непосредственно на материнской плате. Он очень важен в работе компьютера, так как именно он задаёт все основные низкоуровневые настройки вашему компьютеру.

Без BIOS’a компьютер просто не сможет работать по причине того, что он просто не сможет понять как ему работать, то есть откуда загружаться, какие функции системной платы задействовать а какие нет, как регулировать скорость вращения кулеров и т.д., этот список можно продолжать очень долго.

Чтобы попасть в настройки БИОСа, при загрузке компьютера нужно нажать клавишу Delete это по общему правилу, но бывают и исключения. Вместо клавиши Delete некоторые производители материнских плат и ноутбуков на запуск настроек БИОСа назначают такие клавиши как: F1, F2 и некоторые другие клавиши, в зависимости от производителя.

82

4.4. Головная запись загрузки

Рассмотрим более подробно структуру жесткого диска. Базовой единицей жесткого диска является раздел, создаваемый во время разметки жесткого диска. Каждый раздел содержит один том, обслуживаемый какой-либо файловой системой и имеющий таблицу оглавления файлов - корневой каталог. Некоторые операционные системы поддерживают создание томов, охватывающих несколько разделов. Жесткий диск может содержать до четырех основных разделов. Это ограничение связано с характером организации данных на жестких дисках IBM-совместимых компьютеров. Многие операционные системы позволяют создавать, так называемый, расширенный (extended) раздел, который по аналогии с разделами может разбиваться на несколько логических дисков.

В первом физическом секторе жесткого диска располагается головная запись загрузки и таблица разделов

(табл. 3). Головная запись загрузки (master boot record, MBR) - первая часть данных на жестком диске. Она зарезервирована для программы начальной загрузки BIOS (ROM Bootstrap routine), которая при загрузке с жесткого диска считывает и загружает в память первый физический сектор на активном разделе диска, называемый загрузочным сектором (Boot Sector). Каждая запись в таблице разделов (partition table) содержит начальную позицию и размер раздела на жестком диске, а также информацию о том, первый сектор какого раздела содержит загрузочный сектор.

Различие между файловыми системами заключается, в основном, в способах распределения пространства между файлами на диске и организации на диске служебных областей.

83

 

Таблица 3

Таблица деления диска

Размер (байт)

Описание

446

Загрузочная запись (MBR)

16

Запись 1 раздела

16

Запись 2 раздела

16

Запись 3 раздела

16

Запись 4 раздела

2

Сигнатура 055AAh

 

 

4.5. Структура файловых систем

ФС хранятся на дисках. Большинство дисков делятся на несколько разделов с независимой ФС на каждом разделе. Сектор 0 диска называется главной загрузочной записью (MBR, Master Boot Record) и используется для загрузки компьютера. В конце главной загрузочной записи содержится таблица разделов. В этой таблице хранятся начальные и конечные адреса (номера блоков) каждого раздела. Один из разделов помечен в таблице как активный. При загрузке компьютера BIOS считывает и исполняет MBR-запись, после чего загрузчик в MBR-записи определяет активный раздел диска, считывает его первый блок, называемый загрузочным, и исполняет его. Программа, находящаяся в загрузочном блоке, загружает ОС, содержащуюся в этом разделе.

Для единообразия каждый дисковый раздел начинается с загрузочного блока, даже если в нем не содержится загружаемой ОС. К тому же в этом разделе может быть в дальнейшем установлена ОС, поэтому зарезервированный загрузочный блок оказывается полезным.

Во всем остальном строение раздела диска меняется от системы к системе. Часто ФС содержат некоторые из элементов, показанных на рис. 1. Один из таких элементов,

84

называемый суперблоком, содержит ключевые параметры ФС и считывается в память при загрузке компьютера или при первом обращении к ФС. Типичная информация, хранящаяся в суперблоке, включает идентификатор, позволяющее различать системные файлы, количество блоков в ФС, а также другую ключевую административную информацию.

Рис. 1. Типичная структура файловой системы

4.6. Процесс начальной загрузки ОС

Включается тумблер питания.

Блок питания проводит самодиагностику. Когда все электрические параметры в норме БП посылает сигнал Power Good процессору. Время между включением питания и уходом сигнала обычно 0.1-0.5 секунд.

Таймер микропроцессора получает сигнал Power

Good.

С получением этого сигнала таймер перестает посылать сигнал Reset процессору, позволяя тому включиться.

CPU начинает выполнять код ROM BIOS.

Процессор загружает ROM BIOS начиная с адреса FFFF:0000.

85

По этому адресу прописан только переход на адрес настоящего кода BIOS ROM.

Система выполняет начальный тест железа.

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

BIOS ищет адаптеры, которые могут потребовать загрузки своего BIOS-а.

Самым типичным случаем в этом случае является видео карта. Загрузочная процедура сканирует память с адреса C000:0000 по C780:0000 для поиска видео ROM. Таким образом загружаются системы всех адаптеров.

ROM BIOS проверяет выключение это или перезагрузка.

Процедура два байта по адресу 0000:0472. Любое значение отличное от 1234h является свидетельством "холодного" старта.

Если это включение ROM BIOS запускает полный

POST (Power On Self Test). Если это перезагрузка, то из

POST процедуры исключается проверка памяти.

Процедуру POST можно разделить на три компоненты:

Видео тест инициализирует видео адаптер, тестирует карту и видео память, показывает конфигурацию или возникшие ошибки.

Идентификация BIOS-а показывает версию прошивки, производителя и дату.

Тест памяти проверяет чипы памяти и подсчитывает размер установленной памяти.

Ошибки, которые могут возникнуть в ходе POST проверки можно разделить на смертельные и не очень :). Во втором случае они показываются на экране, но позволяют продолжить процесс загрузки. Ясно, что в первом случае

86

процесс загрузки останавливается, что обычно сопровождается серией бип-кодов.

BIOS читает конфигурационную информацию из

CMOS.

Небольшая область памяти (64 байт) питается от батарейки на материнской платы. Самое главное для загрузки в ней - порядок, в котором должны опрашиваться приводы, какой из них должен быть первым - дисковод, CD-ROM или винчестер.

Если первым является жесткий диск, BIOS проверяет самый первый сектор диска на наличие Master Boot Record (MBR). Для дисковода проверяется Boot Record в первом секторе.

Master Boot Record - первый сектор на цилиндре 0, 0 головке, 512 байт размером. Если она находится, то загружается в память по адресу 0000:7C00, потом проверяется на правильную сигнатуру - два последних байта должны быть 55AAh. Отсутствие MBR или этих проверочных байт останавливает процесс загрузки и выдает предупреждение. Сама MBR состоит из двух частей - системного загрузчика

(partition loader или Boot loader), программы, которая получает управление при загрузке с этого жесткого диска; таблицы разделов (партиций), которая содержит информацию о логических дисках, имеющихся на жестком диске.

Правильная MBR запись записывается в память и управление передается ее коду.

Процесс установки нескольких операционных систем на один компьютер обычно заменяет оригинальный лоадер на свою программу, которая позволяет выбрать с какого диска производить остальную загрузку.

Дальше Boot Loader проверяет таблицу партиций в поисках активной. Загрузчик дальше ищет загрузочную запись (Boot Record) на самом первом секторе раздела.

В данном случае Boot Record это еще 512 байт - таблица с

87

описанием раздела (количество байт в секторе, количество секторов в кластере и т.п.) и переход на первый файл операционной системы (IO.SYS в DOS).

Загрузка Windows XP

Управление передается операционной системе. Как же она работает, как проходит процесс загрузки?

Boot Record проверяется на правильность и если код признается правильным то код загрузочного сектора исполняется как программа.

Загрузка Windows XP контролируется файлом NTLDR, находящемся в корневой директории системного раздела. NTLDR работает в четыре приема:

1.Начальная фаза загрузки.

2.Выбор системы.

3.Определение железа.

4.Выбор конфигурации.

В начальной фазе NTLDR переключает процессор в защищенный режим. Затем загружает соответствующий драйвер файловой системы для работы с файлами любой файловой системы, поддерживаемой XP.

Если кто забыл, то наша любимая ОСь может работать с FAT16, FAT-32 и NTFS.

Если в корневой директории есть BOOT.INI, то его содержание загружается в память. Если в нем есть записи более чем об одной операционной системе, NTLDR останавливает работу - показывает меню с выбором и ожидает ввода от пользователя определенный период времени.

Если такого файла нет, то NTLDR продолжает загрузку с первой партиции первого диска, обычно это C:\.

Если в процессе выбора пользователь выбрал Windows NT, 2000 или XP, то проверяется нажатие F8 и

88

показ соответствующего меню с опциями загрузки.

После каждой удачной загрузки XP создает копию текущей комбинации драйверов и системных настроек известную как

Last Known Good Configuration. Этот коллекцию можно использовать для загрузки в случае если некое новое устройство внесло разлад в работу операционной системы.

Если выбранная операционная система XP, то NTLDR находит и загружает DOS-овскую программу NTDETECT.COM для определения железа, установленного в компьютере.

NTDETECT.COM строит список компонентов, который потом используется в ключе HARDWARE ветки

HKEY_LOCAL_MACHINE реестра.

Если компьютер имеет более одного профиля оборудования программа останавливается с меню выбора конфигурации.

После выбора конфигурации NTLDR начинает загрузку ядра XP (NTOSKRNK.EXE).

В процессе загрузки ядра (но перед инициализацией) NTLDR остается главным в управлении компьютером. Экран очищается и внизу показывается анимация из белых прямоугольников. Кроме ядра загружается и Hardware Abstraction Layer (HAL.DLL), дабы ядро могло абстрагироваться от железа. Оба файла находятся в директории System32.

NTLDR загружает драйвера устройств, помеченные как загрузочные. Загрузив их NTLDR передает управление компьютером дальше.

Каждый драйвер имеет ключ в

HKEY_LOCAL_MACHINE\SYSTEM\Services. Если значение

Start равно SERVICE_BOOT_START, то устройство считается загрузочным. Для кажого такого устройства на экране печатается точка.

89

NTOSKRNL в процессе загрузки проходит через две фазы - так называемую фазу 0 и фазу 1. Первая фаза инициализирует лишь ту часть микроядра и исполнительные подсистемы, которая требуется для работы основных служб и продолжения загрузки. На этом этапе на экране показывается графический экран со статус баром.

XP дизейблит прерывания в процессе фазы 0 и включает их только перед фазой 1. Вызывается HAL для подготовки контроллера прерываний. Инициализируются Memory Manager, Object Manager, Security Reference Monitor и Process Manager. Фаза 1 начинается когда HAL подготавливает систему для обработки прерываний устройств. Если на компьютере установлено более одного процессор они инициализируются. Все исполнительные подсистемы реинициализируются в следующем порядке:

1.Object Manager

2.Executive

3.Microkernel

4.Security Reference Monitor

5.Memory Manager

6.Cache Manager

7.LPCS

8.I/O Manager

9.Process Manager

Инициализация Менеджера ввода/Вывода начинает процесс загрузки всех системных драйверов. С того момента где остановился NTLDR загружаются драйвера по приоритету.

Сбой в загрузке драйвера может заставить XP перезагрузиться и попытаться восстановить Last Known Good

Configuration.

Последняя задача фазы 1 инициализации ядра -

запуск Session Manager Subsystem (SMSS). Подсистема

90