s3dworld писал(а):
Решил использовать CD-ROM для загрузки образа операционной системы и файлов. Но так же и хочу использовать HDD. Не очень хочется вникать в чужую файловую систему, поэтому думаю создать свою. Но смущает меня вот что.
Ну-ну. А ты уверен, что кто-то захочет вникать в твою ФС, когда практически все используют вполне конкретные и хорошо известные ФС.
s3dworld писал(а):
Существует IDE (ATA, PATA) и SATA. Например у меня на компьютере DVD-ROM подключен к IDE, а HDD - к SATA. Конечно обращение к секторам будет осуществляться по LBA, но всё же ведь это разные интерфейсы. Да и разрядность для обращения к секторам бывает разная: 28-битная, 32-битная и 48-битная.
Про 32-битную можно поподробнее?..
s3dworld писал(а):
Меня интересует разница программирования в защищённом режиме устройств HDD и CD-ROM/DVD-ROM в интерфейсах IDE и SATA. Что нужно конкретно про это знать? Есть ли золотая серединка или для каждого интерфейса свой подход? Как определять какие на компьютере есть интерфейсы (IDE, SATA) и подключены ли к ним устройства и какие если подключены?
Золотая середина есть. Методы детекта устройств тоже существуют.
s3dworld писал(а):
Ещё интересует способ получения и записи данных на эти устройства. Как это осуществляется? Да я через регистры будут читать статусы и посылать команды. Вроде бы есть регистр данных. Но как вытягиваются данные? Нужно мне считать сектор (512 байт), и откуда эти 512 байт мне попадут в память (не через 1-2 байтный регистр же?!)?
Именно через регистр, а как еще?
s3dworld писал(а):
Вроде бы есть какой-то DMA, но как я понимаю, он нужен только если есть многозадачность. Так? Можно про это всё по подробнее и про DMA. Вроде бы DMA - это передача данными без процессора. Стоит ли её всегда использовать?
Необязательно при многозадачности. Однако даже самые простые программы, работающие с дисками, требуют механизмов, схожих с многозадачными, поэтому лучше сразу начинать делать это правильно.
P.S. Мне кажется, что ты пытаешь разобраться во всех темах одновременно. В деталях вникать сразу во все очень сложно. К тому же все, о чем ты спрашиваешь, было уже неоднократно озвучено, в том числе и на страницах этого и других форумов.