Операционная система MS-DOS
© Александр Фролов, Григорий Фролов
Том 1, книга 3, М.: Диалог-МИФИ, 1992.
Введение
Каждый, кто когда-либо работал на персональном
компьютере, знает, что диски предназначены для
хранения больших и очень больших объемов
информации (десятки и сотни мегабайтов), что
информация хранится в виде файлов, а файлы
находятся в каталогах. Во всех языках
программирования и для всех трансляторов
существуют те или иные средства, позволяющие
записывать информацию в файлы и читать ее из
файлов, как отдельными байтами, так и блоками.
Можно также создавать файлы и каталоги, удалять
или переименовывать их.
Информация может записываться или читаться как
последовательным, так и прямым методом доступа. В
первом случае при записи информация всегда
добавляется в конец файла, при чтении программа
получает информацию из файла последовательно,
байт за байтом. Прямой метод доступа позволяет
записывать или считывать данные, которые
находятся в произвольном месте файла. Программа
при этом сама указывает смещение в файле для
записи или чтения данных.
Все описанные выше операции с файлами (и многие
другие) можно выполнить с помощью стандартных
средств, предоставляемых в распоряжение
программиста библиотеками трансляторов и систем
программирования. Для большинства программ
вполне достаточно файлового сервиса стандартных
библиотек трансляторов.
Однако системным программистам часто
требуются более развитые средства управления
дисками и файловой системой, чем те, которые
обеспечиваются стандартными библиотеками,
функциями DOS, и даже функциями BIOS. В отдельных
сложных случаях приходится прибегать к
недокументированным прерываниям DOS или
использовать недокументированные управляющие
блоки, рискуя потерять совместимость
разрабатываемой программы с будущими версиями
MS-DOS.
В первой книге первого тома мы говорили об
использовании недокументированных, т.е.
отсутствующих в фирменной документации по MS-DOS,
возможностей. Использование
недокументированных прерываний и структур
данных часто облегчает решение сложных
системных задач, однако в различных версиях MS-DOS
эти возможности могут быть реализованы
по-разному. Отлаженная в MS-DOS версии 3.30 программа,
использующая недокументированные возможности,
возможно, не будет правильно работать в MS-DOS
версии 4.0 или 5.0. Используйте недокументированные
прерывания и структуры данных только тогда,
когда это действительно необходимо.
В третьей книге первого тома приводится
подробное описание работы с дисками на всех
уровнях - от программирования контроллера диска
до использования функций стандартной библиотеки
транслятора Quick C. Мы будем излагать материал,
отталкиваясь от самого низкого уровня и
постепенно переходя ко все более
высокоуровневым средствам управления дисковой
подсистемой. Для наглядности на следующем
рисунке приведена иерархия средств управления
дисками и файловой системой:
Примерно в соответствии с этим рисунком и
расположен материал в книге.
|