@anton13ms

Как в DOS создать псевдоустройство PCI?

Есть DOS на виртуальной машине, в ней специализированное ПО, которое не хочет запускаться из-за того что не видит на PCI порту устройство (пока мне не понятно, должно это быть какое либо специальное устройство или любое).

1. То есть в теории, что бы программа перешла к следующим шагу, нужно сэмулировать средствами VirtualBox или самой DOS подключенное PCI устройство. Как это сделать?

2. На сколько я знаю, подключить физическое PCI устройство хост-маишны к виртуальной машины VirtualBox не получиться... А может ли какая либо другая система визуализации это делать? К примеру Proxmax?
  • Вопрос задан
  • 303 просмотра
Решения вопроса 2
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Никак.
Програмулина не видит физческого устройства на шине PCI. Проверяется как правило просто - запрос на определенный порт, который должен быть, если отклика нет - аля улю.
Можно только написать драйвер устройства для хоста и пробрасывать его в DOS. Задача сравнима по сложности с написанием своего драйвера.
То есть - если есть девайс и он втыкается в PCI (правда PCI еще найти надо) - воткнуть и пробросить. Если нет - то только писать свой имитатор девайса.
Ответ написан
gbg
@gbg
Любые ответы на любые вопросы
Под DOS - никак. Для этого нужно, чтобы процессор работал в защищенном режиме.
Остается виртуализация.
Свое устройство можно написать под bochs
Физическое устройство можно прокинуть на KVM и XEN (ну его нафиг), но они оба работают под Linux

ВАЖНО - Proxmox - не гипервизор, это просто управляйка. Внутри у нее все тот же KVM
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Oxyd
@Oxyd
Linux enthusiast
Virtual DOS Machine(VDM) в OS/2(ArcaOS) умеет работать напрямую с железом, но это сильное джедайство. Не проще поставить какой-нибудь FreeDOS и драйвер для вашей железки.
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Сугубо в качестве интереса, а что за железка такая. И почему вы думаете что программа будет работать без нее?
И какой смысл от нее?
Если же нужно что то перегнать. Напишите свой драйвер. Вот как например тут.
Основная идея повесить обработчик на прерывание и обрабатывать его в своем коде. Так
https://www.drdobbs.com/writing-ms-dos-device-driv...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы