APIC и эмуляторы

Тема в разделе "WASM.OS.DEVEL", создана пользователем Medstrax, 11 дек 2007.

  1. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Коллеги, столкнулся с тем, что все опробованные мной эмуляторы (VMWare Wks 6.02, VirtualPC 2007, Bochs не помню какой версии) некорректно работают с APIC.
    В частности, выполняю простой код - перехожу из реала в PM и посылаю своему процу ч/з APIC NMI# - на реальной машине все отрабатывает, в обработчике int 2 выводится диагностическое сообщение. VirtualPC на этом коде просто затыкается. VMWare и Bochs орут
    какую-то лабуду про APIC, лень дословно приводить.
    Что-то не так делаю? Или поддержки APIC на самом деле нет? Если бы не было, тогда непонятно как они эмулируют работу многопроцессорных систем
    Естесно речь идет о Local APIC
     
  2. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    Medstrax
    вполне возмвожно, что нет поддержки конкретно NMI (уверен и SMI тоже) через APIC
    в Bochs точно нет
     
  3. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Ага, я тоже так подумал. Кстати получается неплохой метод детекта ВМ. Вернее даже не метод детекта, а способ уронить виртуалку ;)
     
  4. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    ну уронить можно разными способами ;)
     
  5. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Тут не поленился, качнул VWWare ESX Server (гиг трафа, жалко блин все еще :)). Проверил
    на нем - такая же фигня. Правда не орет ни на что, просто ВМ завершается ;) Вроде продукт
    оч серьезный, а полноценной эмуляции все равно не удосужились сделать.
     
  6. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Ага, но уронить таким кодом, который на реальной машине нормально бы работал?
     
  7. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    ну в принципе да
    единственное, имхо, применение - это способ обеспечения невыполнения определенного кода на виртуальной машине (не стопроцентный естественно)
     
  8. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    И то не гарантированно 100% -- всё ж авторы эмуляторов могут не полениться и сделать полноценную эмуляцию чего угодно. Другое дело, что для ПК это очень и очень непросто.
     
  9. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    странно вообще говоря
    APIC таймер эмулируется нормально, а APIC NMI нет
    хотя эмуляция первого - задача более трудная
     
  10. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    я и написал
    "один из не стопроцентных" ;)
     
  11. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Кстати, разработчики всякой хренотени типа старфорса могли бы этой фишкой пользоваться,
    чтоб на виртуалке продукты,защищенные их дерьмом, не запускали. Хотя мож это им и нафиг не надо ;)
    З.Ы. Ау, старфорсовцы, с вас пиво за идею :)))
     
  12. TheDeath

    TheDeath New Member

    Публикаций:
    0
    Регистрация:
    20 июл 2003
    Сообщения:
    66
    Адрес:
    Russia,Новосибирск
    Помню,видел такое сообщение когда играл с APIC используя NMI как IPI.На этом же NMI сидел еще и SoftIce/CptHook.

    Кажись в этом случае vmware просит отправить дамп.не пробовал? :lol:
     
  13. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    У меня сайс был в принципе исключен, пробовал просто в протмоде без всякой винды.
    А насчет дампа - да, просят, но лень однако ;)