v86d -- A x86 Emulation Daemon
------------------------------

1. Purpose
----------
v86d provides a backend for kernel drivers that need to execute
x86 BIOS code.  The code is executed in a controlled environment
and the results are passed back to the kernel via the netlink
interface.

2. Suported architectures
-------------------------
This version of v86d supports the following architectures:
x86, x86-64 (amd64).

3. Configuration
----------------

3.1. The C library
------------------
v86d can be compiled against two different C libraries: glibc
and klibc, glibc being the default.

Compiling against glibc will result in a dynamically linked
executable that is not suitable for inclusion in initrds.

Compiling against klibc will result in a relatively small,
statically linked binary, which can be included in an initrd.

To compile v86d against klibc, run ./configure --with-klibc
after making sure that a recent (1.4 or newer) version of
klibc is installed on your system.

3.2. The emulator backend
-------------------------
On x86, the code executed by v86d can be run either in a fully
software-emulated environment (x86emu) or a virtualized
environment (vm86) supported by the CPU.  On other arches
or 64-bit systems, the code is always run by x86emu.

4. Installation & Usage
-----------------------
To configure, build and install v86d with the default settings,
run:

 # ./configure --default
 # make
 # make install

If the kernel that you're currently running doesn't provide
uvesafb, you can use the KDIR variable to point make to a
different kernel tree (e.g. `make KDIR=/usr/src/linux`).

v86d isn't meant to be used in an interactive way. It should
be started and called by the kernel. If you want to see it in
action, build and load the uvesafb kernel module.

If you want to include v86d into an initramfs image,
misc/initramfs provides a minimal config file parsable by
gen_init_cpio.

5. Licensing
------------
v86d is licensed under GPL v2.

-- 
 Michal Januszewski <spock@gentoo.org>

