Я провожу эксперимент с ОС. До сих пор весь мой код использовал прерывание BIOS в реальном режиме для управления жестким диском и дискетой. Но как только мой код включит режим защиты процессора, вся процедура обслуживания прерывания BIOS в реальном режиме будет недоступна. Как я могу прочитать / записать жесткий диск и дискету? Нужно ли мне сейчас установить драйверы для оборудования? С чего начать? Является ли это одной из причин того, что операционная система так сложна в разработке?
Я знаю, что все оборудование управляется чтением и записью в определенные регистры управления или данных. Например, я знаю, что регистры командного блока жесткого диска находятся в диапазоне от 0x1F0 до 0x1F7. Но мне интересно, совпадают ли адреса регистров столь многих различных аппаратных средств на платформе ПК? Или мне нужно это определить перед их использованием? Как их обнаружить ??
Поскольку я не уверен, как читать / записывать дискету или жесткий диск в режиме защиты, мне нужно использовать прерывание BIOS для загрузки всего необходимого файла ядра с дискеты в память. Но что мне делать, если размер моего файла ядра превышает ограничение в 1 мегабайт в реальном режиме?
За любые ответы я выражаю свою глубокую признательность.
Обновлять
Смутно припоминаю, что есть способ сначала переключить защищенный режим, а потом снова переключиться в реальный режим. И тогда мы могли бы использовать процедуру BIOS в защищенном режиме. Может я неправильно помню. Кто-то правильно это помнил?