47121 (597321), страница 28
Текст из файла (страница 28)
4) зарезервированное поле для возможного использования в будущем – 10 байт;
5) время – 2 байт. Здесь хранится время создания или последней модификации файла. Первые 5 бит занимают часы, вторые 3 бит – минуты, третьи 5 бит – секунды. В последнем поле каждая единица соответствует 2 с;
6) дата – 2 байт. Здесь хранится дата создания последней модификации файла. Первые 7 бит занимают годы, которые отсчитываются от значения 1980 (от 1980 г.), вторые 4 бит – месяцы, третьи 5 бит – дни;
7) номер начального кластера – 2 байт. Начальный кластер является первой частью пространства данных в файле на дискете;
8) размер файла – 4 байт. Наличие этого поля связано с тем, что файл обычно частично занимает последний отведенный ему кластер, а здесь указывается его точная длина.
Все остальное место на диске занимает область данных, содержащая файлы данных или подкаталогов.
3.3.1.2 Логическая структура жесткого магнитного диска
Особенности логической структуры жесткого магнитного диска обусловлены наличием несистемного загрузчика NSB (главный загрузочный сектор MBR – MASTER BOOT RECORD).
Каждый жесткий диск (как отдельное электронное устройство) имеет еще одну область, которая называется главной загрузочной записью, или сектором MBR, или несистемным загрузчиком (NSB). Единый жесткий диск может быть разбит на несколько логических дисков, с которыми она может работать как с отдельными устройствами. Именно поэтому физические сектора на жестком диске могут характеризоваться в двух системах координат: физической (сектор, головка, цилиндр) и логической (номер логического сектора).
Для MBR на жестком диске всегда выделяется физический сектор 1 (сектор 1, головка 0, цилиндр 0). Логического номера он не имеет, так как является общим для всех логических дисков.
Этот сектор содержит программу IPL1 (Initial Program Loa-ding 1), расположенную в его начале, которая при своем выполнении сканирует содержимое второго важного элемента MBR – таблицу разделов диска (Partition Table) (рис. 3.10), состоящую, в свою очередь, из четырех 16-байтных элементов (разделов), разбитых на поля. Они содержат информацию о номерах начального и конечного секторов, номерах головок и цилиндров для соответствующего раздела, а также числе секторов, предшествующих разделу и включенных в раздел. Из четырех разделов, на которые может быть поделен диск, только два могут принадлежать MS-DOS: первичный (Primary) и расширенный (Extended), два оставшихся резервируются для других операционных систем: OS/2, Xenix, UNIX, Windows NT и т. д.
Рис. 3.10. Структура MBR
Не следует отождествлять понятия "раздел" и "логический диск", поскольку, например, с расширенным разделом могут быть связаны несколько логических дисков.
Байт поля "Признак загрузки" используется программой IPL1 (при ее выполнении) для выяснения, какой из разделов диска содержит загружаемую операционную систему. Активный (загружаемый) раздел в этом поле содержит код 80h, остальные разделы должны быть помечены кодом 00h.
В поле "Начало раздела" хранятся номера головки, сектора и цилиндра стартового сектора раздела; в поле "Конец раздела" – соответствующие величины для конечного сектора этого раздела.
Число секторов до начала раздела хранится в 4-байтном поле "Относительный сектор". Это число определяется путем последовательного подсчета секторов, начиная с сектора 1, головки 0, цилиндра 0 физического диска, и увеличения номера сектора на дорожке, затем номера головки и цилиндра.
Число секторов в разделе хранится в 4-байтном поле "Размер". Как и для предыдущего поля, первое слово содержит младшую часть числа, второе – старшую.
Еще одно важное поле элементов таблицы разделов – "Тип раздела". Код в нем указывает, какой именно операционной системе принадлежит данный раздел.
Если поле "Тип раздела" содержит код 05h (Extended-раздел), то физический сектор, определяемый в поле "Начало раздела" диска, является вовсе не загрузочным сектором (BR) расширенного раздела, а вторичным главным загрузочным сектором жесткого диска SMBR (Secondary Master Boot Record). Этот сектор содержит собственную таблицу разделов, называемую таблицей логического диска LDT (Logical Drive Table), и непременную сигнатуру AA55h. Эта таблица и определяет местоположение и размер раздела, с которым MS-DOS обращается как с отдельным физическим диском.
Отличия SMBR-сектора от MBR-сектора:
-
во-первых, он не содержит программы IPL1 и соответственно никогда не определяет загрузочный диск;
-
во-вторых, таблица логического диска включает максимум два 16-байтных элемента, а не четыре, как основная таблица разделов. Причем, если поле "Тип раздела" первого элемента таблицы определяет размер элемента FAT, то такое же поле второго элемента таблицы (если он существует) содержит код Extended-раздела – 05h. Таким образом, второй элемент таблицы логического диска может определять следующий вторичный загрузочный сектор и т. д.
Каждый диск, определяемый таблицей логического диска, содержит сектор BR, две копии FAT, корневую директорию и, безусловно, область данных (рис. 3.11).
Рис. 3.11. Логическая структура жесткого магнитного диска
Таким образом, Extended-раздел может быть поделен на логические диски от D до Z по количеству букв латинского алфавита.
3.3.2 Начальная загрузка MS-DOS
При загрузке или перезагрузке системы выполнение начинается с адреса OFFFFOH (рис. 3.12). Это определяется особенностями семейства микропроцессоров 8086/8088, а не самой системы MS-DOS. Системы, базирующиеся на этих процессорах, сконструированы так, что адрес OFFFFOH лежит внутри области ПЗУ и содержит машинную команду передачи управления программе проверки системы и программе начального загрузчика ПЗУ.
Программа начального загрузчика ПЗУ считывает в некоторую область памяти программу дискового начального загрузчика, начиная с первого сектора загружаемого диска (сектор загрузчика), и затем передает ей управление. Кроме того, сектор загрузчика содержит таблицу с информацией о формате диска.
Программа дискового начального загрузчика проверяет наличие на диске копии операционной системы MS-DOS. Для этого считывается первый сектор корневого каталога и определяется, являются ли его первые два файла системными файлами IO.SYS и MSDOS.SYS (или IBMBIO.COM и IBMDOS.COM) (в указанном порядке). Если этих файлов там нет, то пользователю предлагается сменить диск и нажать на произвольную клавишу для новой попытки. Если оба системных файла найдены, то дисковый начальный загрузчик считывает их в память и передает управление на точку входа модуля IO.SYS. В некоторых реализациях дисковый начальный загрузчик считывает в память только файл IO.SYS, который, в свою очередь, загружает файл MSDOS.SYS.
Файл IO.SYS, загруженный с диска, обычно состоит из двух отдельных модулей. Первый из них BIOS содержит связанный набор резидентных драйверов таких устройств, как консоль, последовательный порт, печатающее устройство, блочно-ориентированное устройство и таймер, а также программу инициализации, выполняемую только при начальной загрузке системы.
Второй модуль SYSINIT, поддерживаемый системой Microsoft, компонуется в файл IO.SYS, как и BIOS, изготовителем компьютера.
Рис. 3.12. Алгоритм загрузки системы MS-DOS
SYSINIT вызывается с помощью программы инициализации BIOS. Модуль определяет величину непрерывной памяти, доступной системе, и затем располагается по ее старшим адресам. Далее модуль переносит ядро системы DOS MSDOS.SYS из области ее начальной загрузки в область окончательного расположения в памяти, перекрывая начальную программу SYSINIT в любую другую расширяемую программу инициализации, которая содержалась в файле IO.SYS.
Далее SYSINIT вызывает программу инициализации в модуле MSDOS.SYS. Ядро DOS инициализирует ее внутренние таблицы и рабочие области, устанавливает векторы прерываний по адресам с 2OH по 2FH и перебирает связанный список резидентных драйверов устройств, вызывая функцию инициализации для каждого из них.
Функции драйверов определяют состояние оборудования, выполняют всю необходимую инициализацию аппаратуры и устанавливают векторы для внешних аппаратных прерываний имеющихся драйверов.
В процессе инициализации ядро DOS проверяет блоки параметров диска, возвращаемые с помощью резидентных драйверов блочно-ориентированных устройств, определяет наибольший размер сектора, который будет использован в системе, строит блоки параметров дисковода и выделяет буфер сектора диска, затем управление передается модулю SYSINIT.
Когда ядро DOS проинициализировано и все резидентные драйверы доступны, модуль SYSINIT может открыть файл CONFIG.SYS. Этот необязательный файл содержит различные команды, которые позволяют пользователю настраивать среду MS-DOS. Например, пользователь может задать дополнительные драйверы аппаратных устройств, число буферов диска, максимально возможное число одновременно открытых файлов и имя файла командного процессора (оболочки).
Если файл CONFIG.SYS найден, он загружается в память для выполнения. Драйверы, указанные в файле CONFIG.SYS, последовательно загружаются в память, активизируются с помощью вызовов соответствующих модулей инициализации и заносятся в связанные списки драйверов. Функции инициализации каждого из них сообщают модулю SYSINIT размер памяти, отведенной под соответствующий драйвер.
После загрузки всех устанавливаемых драйверов SYSINIT закрывает все дескрипторы файлов и открывает вновь консоль (CON), принтер (PRN) и последовательный порт (AUX) как устройство стандартных ввода и вывода, ошибки, печати и последовательного устройства. Это позволяет символьно-ориентированному драйверу, установленному пользователем, замещать резидентные драйверы BIOS стандартных устройств.
В конце своего выполнения модуль SYSINIT вызывает функцию EXEC для загрузки интерпретатора командной строки, или оболочки. Стандартной оболочкой является COMMAND.COM, однако с помощью файла CONGIG.SYS можно устанавливать и другие оболочки. После загрузки оболочка высвечивает на экране дисплея запрос и ждет от пользователя ввода команды. Теперь система MS-DOS готова для работы и модуль SYSINIT уже не требуется.
3.3.3 Файловая система MS-DOS
Файловая система MS-DOS – часть операционной системы, управляющая размещением и доступом к файлам и каталогам.
Каталог – справочник файлов с указанием месторасположения на диске – бывает текущим, в котором работа пользователя производится в текущее машинное время; пассивным, с которым в данный момент времени не имеется связи; родительским, имеющий подкаталог.
Подкаталог – каталог, который входит в другой каталог.
Доступ – процедура устанавливания связи с памятью и размещенными в ней файлами для записи и чтения.
Файл – логически связанная совокупность данных или программ, для размещения которой во внешней памяти выделяется именованная область.
С понятием файловой системы тесно связано понятие файловой структуры диска, под которой понимают, как размещаются на диске главный каталог, подкаталоги, файлы, операционная система, а также какие для них выделены объемы секторов, кластеров, дорожек.
При формировании файловой структуры диска операционная система MS-DOS работает по определенным правилам:
-
файл или каталог могут быть зарезервированы с одним и тем же именем в различных каталогах, но в одном и том же каталоге только один раз;
-
порядок следования имен файлов и подкаталогов в родительском каталоге произвольный;
-
файл может быть разбит на несколько частей, для которых выделяются участки дискового пространства одинакового объема на разных дорожках и секторах.
3.3.3.1 Файлы
Файл служит учетной единицей информации в операционной системе. Любые действия с информацией в MS-DOS осуществляются над файлами: запись на диск, вывод на экран, ввод с клавиатуры, печать, считывание информации CD-ROM и пр.
На диске файл не требует для своего размещения непрерывного пространства, обычно он занимает свободные кластеры в разных частях диска. Сведения о номерах этих кластеров хранятся в FAT-таблице.
В файлах могут храниться разнообразные виды и формы представления информации: тексты, рисунки, чертежи, числа, программы, таблицы и т. п. Особенности конкретных файлов определяются их формами.
Под формами понимается элемент языка, в символическом виде описывающий представление информации в файле.
Текстовая информация хранится в файле в кодах ASCII, в так называемом текстовом формате. Содержимое текстовых файлов можно просмотреть на экране дисплея с помощью разных программных средств, в том числе и в MS-DOS.
Любой другой файл с нетекстовой информацией просмотреть теми же средствами, что и текстовый файл, не удается. При просмотре на экран будут выводиться абсолютно непонятные символы.
Для характеристики файла используются следующие параметры:
-
полное имя файла;
-
объем файла в байтах;
-
дата создания файла;
-
время создания файла;
-
специальные атрибуты файла:
1) R (Read only) – только для чтения;
2) H (Hidden) – скрытый файл;
3) S (System) – системный файл;
4) A (Archive) – архивированный файл.















