No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Bruno Alvisio 48d3b31ce4 Save/Restore Support: Add fini_shutdown call to app exit flow. 1 year ago
arch Save/Restore Support: Implement code for arch suspend/resume 1 year ago
console Save/Restore Support: Add suspend/restore support for console 1 year ago
include Save/Restore Support: Add fini_shutdown call to app exit flow. 1 year ago
lib Save/Restore Support: Add suspend/restore support for console 1 year ago
scripts Add travis.yml and travis-build script 2 years ago
xenbus Save/Restore Support: Add suspend/restore support for xenbus 1 year ago
.gitignore mini-os: support "make config" for out-of-tree users 2 years ago
.travis.yml Add travis.yml and travis-build script 2 years ago
CODING_STYLE mini-os: add a coding style file 1 year ago
COPYING minios: Update mini-os license to support GPL features 6 years ago
Config.mk mini-os: add config item for printing via hypervisor 1 year ago
Makefile Save/Restore Support: Add kernel shutdown logic to shutdown.c 1 year ago
README mini-os: update README to reflect recent changes 2 years ago
app.lds stubdom: sparse application's BSS by linking it separately first, put 11 years ago
balloon.c mini-os: support newer xen interface 2 years ago
blkfront.c mini-os: replace lib/printf.c with a version not under GPL 2 years ago
daytime.c mini-os: remove using start_info in architecture independent code 2 years ago
domain_config MiniOS: no-stack-protector added to the cflags if needed, 11 years ago
events.c Save/Restore Support: Add support for suspend/restore events. 1 year ago
fbfront.c mini-os: Fix stubdom build failures on gcc 4.8 5 years ago
gntmap.c mini-os: tidied up code 4 years ago
gnttab.c Save/Restore Support: Add suspend/restore support for Grant Tables. 1 year ago
hypervisor.c Save/Restore Support: Add unmap_shared_info 1 year ago
kernel.c Save/Restore Support: Add suspend/restore support for netfront 1 year ago
lock.c mini-os: don't include lib.h from mm.h 4 years ago
lwip-arch.c Include string.h before console.h 1 year ago
lwip-net.c mini-os: remove repeated statement in netfront_input 5 years ago
main.c Save/Restore Support: Add fini_shutdown call to app exit flow. 1 year ago
minios.mk mini-os: support "make config" for out-of-tree users 2 years ago
mm.c mini-os: get physical memory map 2 years ago
netfront.c Save/Restore Support: Add suspend/restore support for netfront 1 year ago
pcifront.c mini-os: Fix stubdom build failures on gcc 4.8 5 years ago
sched.c mini-os: remove unused functions from sched.c 2 years ago
shutdown.c Save/Restore Support: Add fini_shutdown call to app exit flow. 1 year ago
test.c mini-os: remove using start_info in architecture independent code 2 years ago
tpm_tis.c Correct printf formatting for tpm_tis message. 3 years ago
tpmback.c mini-os: replace lib/printf.c with a version not under GPL 2 years ago
tpmfront.c mini-os: don't include lib.h from mm.h 4 years ago

README

 Minimal OS
----------

This shows some of the stuff that any guest OS will have to set up.

This includes:

* 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:

MINIOS_CONFIG=config-file make

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

XEN_INTERFACE_VERSION=<version>

in the config file. This defaults to 0x00030205, which is the minimal
version supported. The latest available version is specified by setting

XEN_INTERFACE_VERSION=__XEN_LATEST_INTERFACE_VERSION__

- By typing

make testbuild

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
x86 architecture).

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

make LWIPDIR=/path/to/lwip/source

- 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.


ARM notes
=========

- The IRQ numbers are currently hard-coded in gic.c and may need to be updated if
future versions of Xen change them.