bootloader аля vmware или ...???

Тема в разделе "WASM.ELECTRONICS", создана пользователем __sergey__, 31 мар 2008.

  1. __sergey__

    __sergey__ New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2008
    Сообщения:
    2
    Задача: загрузка с некого устройства (hdd, usb, cdrom) при помощи mbr и эмуляция cdrom'а из образа iso с последующей передачей управления на этот образ. т.е. например загрузка winpe или systemrescuecd которые находятся в iso'шке.
    Собственно вопрос к гуру асма, что для этого необходимо???
    Логично перехватить прерывания bios, которые отвечают за опрос что есть в системе и это все (обработчики) должно оставаться в памяти ни смотря ни на какие действия guest систем. Далее надо "убедить" систему, что есть cdrom который будет читать данные из iso и работает он только в режиме PIO. Но guest системы могут использовать какие нибудь другие методы доступа к данным (есть режим DMA) и возникает вопрос как его свести к PIO режиму через свой обработчик?
    PS Читал статью что 9x системы при выборе как работать через прерывания или свой драйвер читает сведения через int и через драйвер сравнивает результат и если не совпадает то использует прерывания. Верно ли это для других ОС???
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    а как ты это эмулировать то буишь.. если система не будет юзать биос для доступа к сдрому, то ты вряд ли ченить сделаешь. например если это винда..
    тут уже помоему хардварная эмуляция нужна)

    винда, как я помню, использует всегда свои драйвера, по крайней мере начиная с нт точно.
    линукс вроде как тоже биос не использует..
     
  3. __sergey__

    __sergey__ New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2008
    Сообщения:
    2
    Свои драйвера тоже через что то работают...
    я не могу придумать методику отслеживания через что оно работает
    как я понимаю это надо захватить int 13, 25, 26, на всякий случай 21, работу через pci dma(как???), in/out инструкции???
    хардварная эмуляция это не выход...

    bios используется всегда на первых этапах загрузки(опрос системы) иначе ОС будет разная для каждой железяки
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    через порты.
    и как ты захватишь in/out инструкции, когда ОС сама перейдет в защищенный режим и не оставит тебе шанса "на выживание"
    Контроллер DMA управляется тоже через порты.
    предложишь другие варианты как контролировать ввод-вывод в порты?
    на первых - да, дальше обычно нет.
     
  5. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    __sergey__
    Если действительно интересует - возьми исходники bochs. VmWare в Виндах работает с "собственными драйверами", т.ч. явно эмуляция упрощенная. Но и в Virtual PC и в VmWare эмуляция заточена
    под ограниченный набор функций и любая "кривая" программа расколет это запросто.
    Просто драйвера же адаптивные : достаточно сказать что устройство чего-то не поддерживает и они не будут лезть в "дебри".
    И по поводу PIO сказал не глядя, наверное. И в VmWare и в Virtual для харда - режим UDMA.