( apal | 2024. 05. 06., h – 16:00 )

Szerkesztve: 2024. 05. 06., h – 16:02

A nyito alapjan gondolom hogy Win alol probalkozol. No, az nincs keznel, de linuxos QEMU-val relative egyszeru a dolog. Legalabbis a kovetkezo kombinaciot kiprobaltam a regi DOS-os rendszeremmel, es mukodott - azaz ez igy mukodokepes lehet:

  • Tedd fel a tty0tty kernel drivert: ez letrehoz (itt konkretan) 4 nullmodem-part: /dev/tnt0 <-> /dev/tnt1, ... /dev/tnt6 <-> /dev/tnt7 osszekottetesekkel
  • Elinditod a QEMU-t ezzel a parameterrel: `qemu-system-x86_64 -machine accel=kvm -hda ./dos.image -serial /dev/tnt0`

Ekkor a DOS COM1 portjanak a masik vege a nullmodem masik vege lesz, azaz a /dev/tnt1. Kiprobaltam a klasszikus DOS-os parancsokat (copy con > COM1, type COM1), mindket iranyban szepen megy a kommunikacio. Gondolom a COM0COM az a Win megfeleloje a tty0tty-nek, szoval ha az fel van telepitve akkor hasonlo QEMU-parancs kombiancioval azert illene mennie ott is. Azt mindenkepp nezd meg hogy a COM0COM az minek nevezi el ezeket a virtualis soros portokat. Nagyon halvany es/vagy keves tapasztalatom van csak Win-es soros portokkal, de az feltunt hogy ezeket a virtualis es/vagy USB-s soros portokhoz altalaban eleg nagy szamot rendel hozza. Szoval azt mindenkepp nezd meg elobb mindentol fuggetlenul hogy a COM0COM az miket hoz letre _es_ hogy tudsz-e veluk kommunikalni. Peldaul ha a COM0COM az letrehozza a COM6  <-> COM7 part, akkor nyiss meg ket puttyot, az egyiken a COM6-ot, a masikon meg a COM7-et. Es amit az egyik putty-ba begepelsz azt latnod kell a masikon es vice verza. Csak akkor probalgatsd a virtualis gepet, ha ez a teszt sikeresen lement.

Lenyeg a lenyeg hogy valoban szukseges ehhez egy olyan soros port realizacio amit a host operacios rendszere fizikainak is hihet (linux alatt ugye ez a /dev/ttyUSB*, /dev/ttyS*, /dev/ttyACM*, /dev/tnt*, stb, Win alatt pedig a COM* portok). A virtualizator (QEMU, Virtualbox, barmi) pedig megcsinalja azt hogy ezt a fizikai soros port realizaciot hozzakoti a megfelelo I/O portokhoz, igy a guest oprendszer a megfelelo I/O muveleteken keresztul (lasd: COM1:  0x3F8, IRQ 4, stb) eleri az adott fizikai (vagy fizikainak latszo) hardvert.