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

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

  1. Majestio

    Majestio New Member

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

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

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

    Majestio New Member

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

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

    Indy_ Well-Known Member

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

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

    RET Well-Known Member

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

    Minzdrav Well-Known Member

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

    Majestio New Member

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

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    631
    Адрес:
    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

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

    Pavia Well-Known Member

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

    Talomir Member

    Публикаций:
    0
    Регистрация:
    13 янв 2023
    Сообщения:
    51
    Адрес:
    Slovackia
    Написать драйвер-эмулятор отсутствующей железки, все будут видеть после этого железку как вставленную.