Программная эмуляция "железа"

Discussion in 'WASM.ZEN' started by Majestio, Feb 6, 2018.

  1. Majestio

    Majestio New Member

    Blog Posts:
    0
    Joined:
    Oct 31, 2017
    Messages:
    15
    Буэнос диас, амигос!

    Интересует сабж. Целевые ОС - M$ Windows, FreeBSD, различные дистры Linux.

    Простой пример:
    Допустим на материнке есть пустой разъем PCI-Ex2. Задача "убедить" операционную систему в том, что там вставлено устройство, допустим видюха или SSD. Куда копать?
     
  2. Majestio

    Majestio New Member

    Blog Posts:
    0
    Joined:
    Oct 31, 2017
    Messages:
    15
    Для Виндовс материала не мало. Но мне, дилетанту в данном вопросе, и этого выше крыши. А вот про другие оси - совсем туман. Дайте хоть наводки какие. Плс.

    Дополнение: даже если нет разъема - убедить, что он есть, и там вставлено устройство.
     
  3. Indy_

    Indy_ Well-Known Member

    Blog Posts:
    4
    Joined:
    Apr 29, 2011
    Messages:
    4,788
    Majestio,

    Системный высокоуровневый интерфейс к железу выполнен в виде сервисных вызовов ядра или как обмен с виртуальными устройствами(IOCTL). Соответственно в юм данные интерфейсы примитивны и нет проблемы их изменить. Задача походу в другом. Видеокарта девайс довольно сложный и высоко производительный. Врядле вам нужна просто эмуляция интерфейса данного устройства. Полноценная его эмуляция врядле даже возможна, так как ос в целом работает куда медленнее чем эти железки. Да и архитектурные протоколы разные у каждой карты, идея их кодить или симулировать глупая, это может сделать только крупная организация, где к задаче привлечены тысячи спецов.
     
  4. RET

    RET Well-Known Member

    Blog Posts:
    17
    Joined:
    Jan 5, 2008
    Messages:
    789
    Location:
    Jabber: darksys@sj.ms
    Majestio, копнуть можно и тут, набрав в гугле VirtualBox source code, к примеру
     
  5. Minzdrav

    Minzdrav Well-Known Member

    Blog Posts:
    0
    Joined:
    Mar 21, 2017
    Messages:
    1,082
    В Юниксах есть много высокоуровневых решений разных,
    типо Loop-устройств. Может в /dev можно прописать и
    что-то несуществующее, без сложных убеждений ядра.
     
  6. Majestio

    Majestio New Member

    Blog Posts:
    0
    Joined:
    Oct 31, 2017
    Messages:
    15
    Камарады, спасибо. Задача пока чисто академическая, время не торопит. Спасибо за наводки!
     
  7. _edge

    _edge Well-Known Member

    Blog Posts:
    1
    Joined:
    Oct 29, 2004
    Messages:
    631
    Location:
    Russia
    Majestio, в дополнение, https://wiki.osdev.org/PCI

    опрос всего этого хозяйства может делаться как через Pci, так и вроде через SMbus.

    как уже верно посоветовали, нужно поизучать исходники виртуальных машин.

    еще ссылка, https://pcem-emulator.co.uk/index.html ( там оно с исходниками, в Downloads )

    а чтобы мозг совсем задымился, загуглите "agp system architecture" и нажмите кнопку "похожие запросы" :)
     
  8. Pavia

    Pavia Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 17, 2003
    Messages:
    2,409
    Location:
    Fryazino
  9. Pavia

    Pavia Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 17, 2003
    Messages:
    2,409
    Location:
    Fryazino
  10. Talomir

    Talomir Member

    Blog Posts:
    0
    Joined:
    Jan 13, 2023
    Messages:
    51
    Location:
    Slovackia
    Написать драйвер-эмулятор отсутствующей железки, все будут видеть после этого железку как вставленную.