Mirage architecture

From Xen

The following diagram shows the main Mirage components:


  • mirage: the low-level mirage "platform". This contains the code needed to boot on Unix, xen, kFreeBSD and in a browser. This package defines the common interfaces supported on all environments, for example the concept of "time". The xen netfront driver lives here, but blkfront does not. There is a proposal to move xen netfront to another repository.
  • mirari: a build and deployment helper tool. To see examples using mirari, look at the mirage-skeleton repository.
  • mirage-net: the mirage network stack. This contains both "socket" and "direct" implementations of ethernet, DHCP, TCP/IP. The "socket" interfaces will use an existing Unix OS socket interface, while "direct" implements everything on top of a system (such as xen netfront or Unix tuntap) supporting "frame send" "frame receive" primitives
  • blkfront: the mirage xen block driver ("blkfront"). This uses the standard xen shared memory protocol to read and write blocks from a disk "backend".
  • cohttp: an HTTP/1.1 client and server library
  • dns: an implementation of the DNS protocol
  • irminsule: a distributed filesystem and block store that follows the same design principles as Git

MirageOS Developer Docs
MirageOS Project

Important Note: Most documentation is on mirage.io