Mirage architecture
From Xen
Jump to navigationJump to search
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