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