OSDev

для всех
Текущее время: 28 апр 2024, 13:52

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: int 13h все диски
СообщениеДобавлено: 26 окт 2013, 18:22 

Зарегистрирован: 10 апр 2012, 23:19
Сообщения: 277
скажите как узнать какие диски есть на компьютере
особо интересует CD USB.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: int 13h все диски
СообщениеДобавлено: 26 окт 2013, 19:05 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Int 13h для данной задачи не годится его основная цель вернуть параметры загрузочного диска.
Конечно можно попытаться выполнить перебор по DL, но скорее всего у вас не получиться.
Плюс к тому же некоторые устройства такие как то USB, CD-ROM, RAID, SCSI, LAN могут эммулировать загрузочный диск подменяя 0h,1h, 80h, 81h


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: int 13h все диски
СообщениеДобавлено: 26 окт 2013, 19:19 

Зарегистрирован: 10 апр 2012, 23:19
Сообщения: 277
pavia писал(а):
Int 13h для данной задачи не годится его основная цель вернуть параметры загрузочного диска.
Конечно можно попытаться выполнить перебор по DL, но скорее всего у вас не получиться.
Плюс к тому же некоторые устройства такие как то USB, CD-ROM, RAID, SCSI, LAN могут эммулировать загрузочный диск подменяя 0h,1h, 80h, 81h

ну а загрузчик с USB, CD-ROM как тогда писать, в boot драйвер не поместится же.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: int 13h все диски
СообщениеДобавлено: 26 окт 2013, 19:57 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: int 13h все диски
СообщениеДобавлено: 26 окт 2013, 20:02 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
scuter писал(а):
ну а загрузчик с USB, CD-ROM как тогда писать, в boot драйвер не поместится же.
В BIOS есть функция перечисления дисков, но в общем pavia прав. Полного перечисления дисков с ее помощью не сделаешь. В лучшем случае сгодится для вторичного загрузчика.

Когда с USB, CD-ROM выполняется загрузка, BIOS делает диск "видимым" и передает его номер в загрузчик в регистре dl. Этого достаточно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: int 13h все диски
СообщениеДобавлено: 29 окт 2013, 18:04 

Зарегистрирован: 10 апр 2012, 23:19
Сообщения: 277
кстати на счёт загрузки с жёсткого диска,
адресное пространство LBA в современных дисках больше чем 4гб, а MBR рассчитан на нечто меньшее,
так вот какой MBR в современных жёстких дисках, то есть формат портишена.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: int 13h все диски
СообщениеДобавлено: 29 окт 2013, 18:41 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
4 гига секторов, ты хотел сказать, а то кто-нибудь подумает, что тебя только что выпустили из пещеры :) Так вот эти 4 гига секторов дают 2 тб пространства (если отбросить всякие опасные форматы, когда раздел начинается далеко не в начале диска, но все равно имеет размер около 2 тб). Для большинства современных дисков пока этого хватает, но ты прав, не сегодня, так завтра MBR-разметка уступит свое место GPT-разметке на большинстве дисков.

Местоположение загрузчика не меняется, но теперь он должен обрабатывать GPT, а не таблицу в конце MBR. Естественно, речь идет не об EFI-загрузке, а о BIOS-загрузке.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB