OSDev http://osdev.su/ |
|
int 13h все диски http://osdev.su/viewtopic.php?f=6&t=813 |
Страница 1 из 1 |
Автор: | scuter [ 26 окт 2013, 18:22 ] |
Заголовок сообщения: | int 13h все диски |
скажите как узнать какие диски есть на компьютере особо интересует CD USB. |
Автор: | pavia [ 26 окт 2013, 19:05 ] |
Заголовок сообщения: | Re: int 13h все диски |
Int 13h для данной задачи не годится его основная цель вернуть параметры загрузочного диска. Конечно можно попытаться выполнить перебор по DL, но скорее всего у вас не получиться. Плюс к тому же некоторые устройства такие как то USB, CD-ROM, RAID, SCSI, LAN могут эммулировать загрузочный диск подменяя 0h,1h, 80h, 81h |
Автор: | scuter [ 26 окт 2013, 19:19 ] |
Заголовок сообщения: | Re: int 13h все диски |
pavia писал(а): Int 13h для данной задачи не годится его основная цель вернуть параметры загрузочного диска. Конечно можно попытаться выполнить перебор по DL, но скорее всего у вас не получиться. Плюс к тому же некоторые устройства такие как то USB, CD-ROM, RAID, SCSI, LAN могут эммулировать загрузочный диск подменяя 0h,1h, 80h, 81h ну а загрузчик с USB, CD-ROM как тогда писать, в boot драйвер не поместится же. |
Автор: | pavia [ 26 окт 2013, 19:57 ] |
Заголовок сообщения: | Re: int 13h все диски |
scuter писал(а): ну а загрузчик с USB, CD-ROM как тогда писать, в boot драйвер не поместится же. Что непонятного в фразе Цитата: его основная цель вернуть параметры загрузочного диска. BIOS передаёт тебе номер диска. Его подставляешь в 13h для получения геометрии и выполняешь чтения секторов с диска. Описание int 13h можно прочитать здесь http://yadi.sk/d/0cSvG2WT2gSBs http://ru.osdev.wikia.com/wiki/Расширенный_дисковый_сервис_(EDD) Описание того как работает загрузка можешь прочитать в specsbbs101.pdf Для CD добавляется следующее specscdrom.pdf wpbootcd.pdf USB просто эмулирует либо Floppy либо HDD диск (80h). Делает согласно specsbbs101.pdf |
Автор: | phantom-84 [ 26 окт 2013, 20:02 ] |
Заголовок сообщения: | Re: int 13h все диски |
scuter писал(а): ну а загрузчик с USB, CD-ROM как тогда писать, в boot драйвер не поместится же. В BIOS есть функция перечисления дисков, но в общем pavia прав. Полного перечисления дисков с ее помощью не сделаешь. В лучшем случае сгодится для вторичного загрузчика.Когда с USB, CD-ROM выполняется загрузка, BIOS делает диск "видимым" и передает его номер в загрузчик в регистре dl. Этого достаточно. |
Автор: | scuter [ 29 окт 2013, 18:04 ] |
Заголовок сообщения: | Re: int 13h все диски |
кстати на счёт загрузки с жёсткого диска, адресное пространство LBA в современных дисках больше чем 4гб, а MBR рассчитан на нечто меньшее, так вот какой MBR в современных жёстких дисках, то есть формат портишена. |
Автор: | phantom-84 [ 29 окт 2013, 18:41 ] |
Заголовок сообщения: | Re: int 13h все диски |
4 гига секторов, ты хотел сказать, а то кто-нибудь подумает, что тебя только что выпустили из пещеры Так вот эти 4 гига секторов дают 2 тб пространства (если отбросить всякие опасные форматы, когда раздел начинается далеко не в начале диска, но все равно имеет размер около 2 тб). Для большинства современных дисков пока этого хватает, но ты прав, не сегодня, так завтра MBR-разметка уступит свое место GPT-разметке на большинстве дисков. Местоположение загрузчика не меняется, но теперь он должен обрабатывать GPT, а не таблицу в конце MBR. Естественно, речь идет не об EFI-загрузке, а о BIOS-загрузке. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |