Technology: MirageOS

This commit is contained in:
linse 2017-09-16 14:47:44 -04:00
parent 746165ce29
commit 022be8cf94

View file

@ -18,22 +18,22 @@ Its size is usually around 1-10 MB, much smaller than a UNIX / Linux system, and
## MirageOS - bespoke operating systems ## MirageOS - bespoke operating systems
Our work is based on MirageOS, a suite to develop operating systems. It has been developed Our work is based on MirageOS, a suite to build operating systems. It has been developed
since 2009 at University of Cambridge, UK and is written in the programming language since 2009 at University of Cambridge, UK and is written in the programming language
OCaml, developed since 1996 at INRIA in Paris, France. Most libraries are OCaml (see [Why OCaml](#Why-OCaml)).
developed under permissive licenses (MIT/ISC/BSD2/Apache2). The OCaml compiler Most libraries are developed as open source (MIT/ISC/BSD2/Apache2).
is dual-licensed: LGPLv2 or BSD for consortium members (3000 EUR/year).
MirageOS is a library operating system. It composes OCaml libraries into a MirageOS is a library operating system. It composes OCaml libraries into a
bespoke operating system, called a unikernel. A unikernel can be a compiled as a bespoke operating system, called a unikernel. A unikernel can be a compiled as a
UNIX binary, or a standalone virtual machine image. To build exactly the right UNIX binary, or a standalone virtual machine image. To build the right
unikernel for each purpose, we can pick from hundreds of libraries which unikernel for your custom business logic, we can pick from hundreds of libraries which
implement protocols, storage on block devices, or interfaces to network devices implement network protocols, storage on block devices, or interfaces to network devices
provided by the hypervisor. via the hypervisor.
On top of the hypervisor, a small layer of C code (developed at IBM research) is On top of the hypervisor, a small layer of C code unifies
used to unify the interface between the different hypervisors, on which the the interface on which OCaml runs.
OCaml runtime system is executed.
## OCaml
OCaml is a functional programming language with automated memory management, OCaml is a functional programming language with automated memory management,
preventing manual memory management errors. The strong and expressive type preventing manual memory management errors. The strong and expressive type