так откуда же мы?

Тема в разделе "WASM.OS.DEVEL", создана пользователем ruextra, 3 авг 2010.

  1. ruextra

    ruextra New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2009
    Сообщения:
    14
    ситуация такая:
    (речь от 1 лица)
    1) к примеру я загрузчик находящийся в загрузочной области на одном из дисков
    2) включаем пк
    3) биос помещает меня в озу
    вопрос:
    1) Как узнать скакого диска был загружен?
    2) Обязательно ли ковырять биос?
    3) Если обязательно, то какие сервисы прерываний за это отвечают?
     
  2. Vic3Dexe

    Vic3Dexe New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2009
    Сообщения:
    53
    1. В dl хранится номер загрузочного устройства.
    2. Зачем? Они все разные, но протокол загрузки всегда один. Курим Bios Boot Specification.
    3. См. п. 1.

    зы Я надеюсь есть понимание, что на этапе "биос помещает в ОЗУ MBR" понятий дисков C:, D: и т.п. нет?
     
  3. Babyshamble

    Babyshamble New Member

    Публикаций:
    0
    Регистрация:
    2 май 2010
    Сообщения:
    67
    В регистре dl сидит номер диска (обычно 0x80)
     
  4. ruextra

    ruextra New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2009
    Сообщения:
    14
    ок!
    Думаю что понятие дисков здесь физическое,а не логическое.
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    ruextra
    Верно. Хотя, MBR bootstrap-code парсит таблицу разделов, само собой.
    за что? за загрузку отвечает прерывание 0x19, которое генерится после окончания POST и его обработчик грузит бутсектор.
    Приоритеты загрузочных носителей лежат в цмосе, насколько я помню, а диск читается стандартными биосовскими прерываниями чтения диска. (разумеется, когда я говорю "диск", речь идет про физические носители)
     
  6. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    www.wasm.ru/forum/viewtopic.php?id=30436

    Основным средством для определения загрузочного диска по его номеру является сервис EDD. Если для жесткого диска отсутствует поддержка EDD, то нужно использовать специальные методы проверки на соответствие.