This shows some of the stuff that any guest OS will have to set up.
* installing a virtual exception table
* handling virtual exceptions
* handling asynchronous events
* enabling/disabling async events
* parsing start_info struct at start-of-day
* registering virtual interrupt handlers (for timer interrupts)
* a simple page and memory allocator
* minimal libc support
* minimal Copy-on-Write support
* network, block, framebuffer support
* transparent access to FileSystem exports (see tools/fs-back)
- to build it just type make.
- Mini-OS can be configured in various ways by specifying a config file:
config-file can contain various CONFIG_* items set to either "y" or "n".
Their defaults can be found in Config.mk.
It is possible to specify the interface version of Xen via setting
in the config file. This defaults to 0x00030205, which is the minimal
version supported. The latest available version is specified by setting
- By typing
it is possible to test builds of various configurations. This should be
done always after modifying Mini-OS.
The configurations which are build tested can be found in the directory
arch/*/testbuild with one file per configuration. Those configurations are
being built for each sub-architecture (e.g. x86_32 and x86_64 for the
Please update the current configuration files when adding a new CONFIG_
item and maybe even add a new configuration file if the new item interacts
with other CONFIG_ items.
- to build it with TCP/IP support, download LWIP 1.3.2 source code and type
- to build it with much better libc support, see the stubdom/ directory
- to start it do the following in domain0
# xl create -c domain_config
This starts the kernel and prints out a bunch of stuff and then once every
second the system time.
If you have setup a disk in the config file (e.g.
disk = [ 'file:/tmp/foo,hda,r' ] ), it will loop reading it. If that disk is
writable (e.g. disk = [ 'file:/tmp/foo,hda,w' ] ), it will write data patterns
and re-read them.
If you have setup a network in the config file (e.g. vif = [''] ), it will
print incoming packets.
If you have setup a VFB in the config file (e.g. vfb = ['type=sdl'] ), it will
show a mouse with which you can draw color squares.
If you have compiled it with TCP/IP support, it will run a daytime server on
TCP port 13.
- The IRQ numbers are currently hard-coded in gic.c and may need to be updated if
future versions of Xen change them.