realemu – software emulation of /dev/realmode


aux/realemu [ –Dpt ] [ –s srvname ] [ –m mntpt ]


Originally, the kernel provided /dev/realmode and /dev/realmodemem files via arch(3). These devices provided access to real mode memory and BIOS calls.
Interrupts were disabled and the processor switched to 16–bit "real mode" to fit the BIOS api. If BIOS reprograms hardware in use or reenables interrupts or crashes, the system may freeze or reboot with little ability for diagnosis or recovery. To avoid this, realemu emulates BIOS by interpreting the code intercepting dangerous actions that could compromise the system.
With no arguments, realemu mounts itself before /dev and serves /dev/realmode. Flag D will enable 9P debugging; flag p traces i/o port access; t traces instructions. The –s flag causes realemu to post its channel on /srv/mntpt and the default mntpt is ignored. If mntpt is given before srvname argument then it is ignored, otherwise it will be used.


Realemu is only needed when accessing /dev/realmode. To invoke a subshell so that realemu exits normally after aux/vga completes:
; @{rfork n; aux/realemu; aux/vga –m vesa –l $vgasize}




vga(8), arch(3)