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