REALEMU(8)                                             REALEMU(8)

     NAME
          realemu - software emulation of /dev/realmode

     SYNOPSIS
          aux/realemu [ -Dpt ] [ -s srvname ] [ -m mountpoint ]

     DESCRIPTION
          Originally, kernel provided /dev/realmode files with the
          arch(3) device to access and call the BIOS.

          Interrupts had to be disabled and the processor was switched
          in the legacy 16-bit realmode with memory protection dis-
          abled to execute BIOS code.

          This is problematic in case the BIOS reprograms hardware
          currently used by the operating system or when it reenables
          interrupts or just crashes. This will freeze or reboot the
          machine with no way to recover or diagnose the problem.

          To avoid this, realemu is used to emulate the execution of
          the BIOS routines by interpreting the machine instructions
          and intercepting dangerous actions that would compromise the
          systems stability.

          Running realemu with no arguments, it mounts itself before
          /dev and replaces the original /dev/realmode file in the
          current namespace.

          Then programs like vga(8) can use it to make their BIOS
          calls.

          The D flag will enable debug messages for 9P.  The p and t
          flags control tracing of i/o port access and cpu instruc-
          tions to stderr (fd 2).

          When a srvname is given with the s argument, the default
          mountpoint is ignored and a 9P channel is created in /srv
          that can be used to mount the filesystem from another names-
          pace. If a mountpoint is given before the srvname argument
          then it is ignored, otherwise it will be used.

     EXAMPLES
          The realemu process 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}

     SOURCE
          /sys/src/cmd/aux/realemu

     REALEMU(8)                                             REALEMU(8)

     SEE ALSO
          vga(8), arch(3)

     HISTORY
          Realemu first appeared in 9front (April, 2011).