Difference between revisions of "Mirage architecture"

From Xen
(Created page with "The following diagram shows the main Mirage components: File:mirage-architecture.svg")
 
Line 2: Line 2:
   
 
[[File:mirage-architecture.svg]]
 
[[File:mirage-architecture.svg]]
  +
  +
* [https://github.com/mirage/mirage 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.
  +
* [https://github.com/mirage/mirari mirari]: a build and deployment helper tool. To see examples using mirari, look at the [https://github.com/mirage/mirage-skeleton mirage-skeleton] repository.
  +
* [https://github.com/mirage/mirage-net 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
  +
* [https://github.com/mirage/ocaml-xen-block-driver blkfront]: the mirage xen block driver ("blkfront"). This uses the standard xen shared memory protocol to read and write blocks from a disk "backend".
  +
* [https://github.com/mirage/ocaml-cohttp cohttp]: an HTTP/1.1 client and server library
  +
* [https://github.com/mirage/ocaml-dns dns]: an implementation of the DNS protocol
  +
* [https://github.com/samoht/irminsule irminsule]: a distributed filesystem and block store that follows the same design principles as Git

Revision as of 10:04, 20 August 2013

The following diagram shows the main Mirage components:

Mirage-architecture.svg

  • 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