Giter Site home page Giter Site logo

hackur / mini-os Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mirage/mini-os

0.0 2.0 0.0 1.08 MB

Mirror of the Xen MiniOS Git from git://xenbits.xen.org/mini-os.git

License: Other

Makefile 1.32% Assembly 2.68% C 93.58% Python 0.06% C++ 2.36% Shell 0.01%

mini-os's Introduction

 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.

mini-os's People

Contributors

alexz avatar andyhhp avatar baozich avatar bcressey avatar dgdegraaf avatar dushyantbehl avatar emilcondrea avatar ijackson-citrix avatar jbeulich avatar jgross1 avatar jsgf avatar karimallah avatar linux-eikelenboom-it avatar mato avatar mneilsen avatar mswilson avatar olafhering avatar sthibaul avatar talex5 avatar virt2x avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.