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

Тема в разделе "WASM.ZEN", создана пользователем Majestio, 6 фев 2018.

  1. Majestio

    Majestio New Member

    Публикаций:
    0
    Регистрация:
    31 окт 2017
    Сообщения:
    7
    Буэнос диас, амигос!

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

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

    superakira Active Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    178
    Писать дров, который будет эмулить часть. Можно логику выкидывать в юм, чтобы проще.
    Но это с высоты птичьего полета. Про детали даже страшно думать.
     
  3. Majestio

    Majestio New Member

    Публикаций:
    0
    Регистрация:
    31 окт 2017
    Сообщения:
    7
    Для Виндовс материала не мало. Но мне, дилетанту в данном вопросе, и этого выше крыши. А вот про другие оси - совсем туман. Дайте хоть наводки какие. Плс.

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

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    1.516
    Majestio,

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

    RET Well-Known Member

    Публикаций:
    13
    Регистрация:
    5 янв 2008
    Сообщения:
    761
    Адрес:
    Jabber: darksys@sj.ms
    Majestio, копнуть можно и тут, набрав в гугле VirtualBox source code, к примеру
     
  6. Minzdrav

    Minzdrav Active Member

    Публикаций:
    0
    Регистрация:
    21 мар 2017
    Сообщения:
    424
    В Юниксах есть много высокоуровневых решений разных,
    типо Loop-устройств. Может в /dev можно прописать и
    что-то несуществующее, без сложных убеждений ядра.
     
  7. Majestio

    Majestio New Member

    Публикаций:
    0
    Регистрация:
    31 окт 2017
    Сообщения:
    7
    Камарады, спасибо. Задача пока чисто академическая, время не торопит. Спасибо за наводки!
     
  8. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    465
    Адрес:
    Russia
    Majestio, в дополнение, https://wiki.osdev.org/PCI

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

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

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

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

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.184
    Адрес:
    Fryazino
  10. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.184
    Адрес:
    Fryazino