Technology: MirageOS
This commit is contained in:
parent
746165ce29
commit
022be8cf94
1 changed files with 11 additions and 11 deletions
22
Technology
22
Technology
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue