Глава 3
РАБОТА С ДИСКОМ НА ФИЗИЧЕСКОМ УРОВНЕ
В Турбо Паскале есть довольно богатый набор подпрограмм, рассчитанных на работу с файлами и каталогами. Однако в некоторых нестандартных приложениях, таких как защита программ от компьютерных вирусов или нелегального копирования (см. главы 6 и 7), требуется обратиться не к файлу, а к диску как таковому, т.е. работать с диском на фи — зическом уровне (чтение/запись дисковых секторов безотносительно их логической привязки к тому или иному файлу). В этой главе обсуждаются общие проблемы работы с дисками и описываются средства модуля F_Disk, содержащего набор соответствующих подпрограмм.
Работа с диском на физическом уровне требует от программиста предельного внимания, так как ошибочное обращение может безвозвратно нарушить файловую структуру. Я настоятельно рекомендую использовать описываемые в этом разделе средства только в случае крайней необходимости, когда стандартные подпрограммы не могут обеспечить требуемого результата. Думаю, что Вы будете достаточно благоразумны и пожертвуете отдельную дискету для Ваших экспериментов с диском.
3.1. СТРУКТУРА ДИСКОВ ДОС
Чтобы работать с диском на физическом уровне, необходимо ясно представлять себе детали устройства и особенности использования диска. В этом разделе излагаются минимальные сведения о физическом устройстве и логической организации дисковых накопителей, используемых в ПК.
3.1.1. Принцип работы дисковых накопителей
Любой дисковый накопитель информации использует принцип независимого перемещения диска и головок считывания/записи. Диск имеет двустороннее ферромагнитное покрытие и вращается специальным двигателем со строго постоянной скоростью. С каждой стороны диска к ферромагнитному слою тесно прилегают по одной головке считывания/записи (см. рис.3.1).
Головки могут перемещаться в радиальном направлении отдельным шаговым приводом и фиксироваться в любом новом положении. Собственно говоря, только возможностью перемещения головок относительно диска дисковые накопители радикально отличаются от обычных бытовых магнитофонов, во всем остальном принципы их действия очень схожи:
головки взаимодействуют с вращающимся ферромагнитным слоем диска и записывают или считывают информацию подобно тому, как записывается или считывается звук на магнитной ленте. Однако в отличие от магнитофонов для поиска нужной информации на диске не требуется просматривать всю записанную информацию от самого начала, а достаточно