Программа дискового начального загрузчика проверяет наличие на диске копии операционной системы 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) – архивированный файл.
Вся эта информация хранится в корневом каталоге логической структуры диска.
3.3.3.2 Каталоги
В операционной системе MS-DOS принята иерархическая структура организации каталогов. На каждом диске всегда имеется единственный главный (корневой) каталог. Он находится на нулевом уровне иерархической структуры и обозначается символом "\". Корневой каталог создается при формировании (инициализации, разметке) диска, имеет ограниченный размер и не может быть удален средствами DOS. В главный каталог могут входить другие каталоги и файлы, которые создаются командами операционной системы и могут быть удалены соответствующими командами.
Таким образом, любой каталог, содержащий каталоги нижнего уровня, может быть, с одной стороны, по отношению к ним родительским, а с другой – подчиненным по отношению к каталогу верхнего уровня. Если это не вызывает путаницы, употребляют термин "каталог", подразумевая или подкаталог, или родительский каталог в зависимости от контекста.
Каталоги на дисках организованы как системные файлы. Единственное исключение – корневой каталог, для которого отведено фиксированное место на диске. Доступ к каталогам можно получить, как к обыкновенному файлу.
Доступ к содержимому файла организован из главного каталога, через цепочку соподчиненных каталогов (подкаталогов) n-го уровня.
3.3.3.3 Путь и приглашение
Путь – цепочка соподчиненных каталогов, которую необходимо пройти по иерархической структуре к каталогу, где зарегистрирован искомый файл (рис. 3.13).
Корневой каталог:\ | Родительский каталог:\ | Подкаталог:\ | Имя файла |
Рис. 3.13. Структура пути
Из рисунка видно, что доступ к файлу осуществляется через каталог благодаря зарегистрированному в нем имени данного файла. Если каталог имеет иерархическую структуру, то доступ к файлу операционная система организует в зависимости от положения подкаталога, в котором зарегистрировано имя искомого файла.
Доступ к файлу можно организовать следующим образом:
– если имя файла зарегистрировано в текущем каталоге, то достаточно для доступа к файлу указать только его имя;
– если имя файла зарегистрировано в пассивном каталоге, то, находясь в текущем каталоге, вы должны указать путь, т. е. цепочку соподчиненных каталогов, через которые следует организовать доступ к файлу.
При задании пути имена каталогов записываются в порядке следования и отделяются друг от друга символом "\".
Взаимодействие пользователя с операционной системой осуществляется с помощью командной строки, индицируемой на экране дисплея. В начале командной строки всегда имеется приглашение, которое заканчивается символом ">". В нем могут быть отображены имена текущих диска и каталога, текущее время и дата, путь, символы-разделители.