From 022be8cf94e6c19a4e6f0de035bf2a675d6a6022 Mon Sep 17 00:00:00 2001 From: linse Date: Sat, 16 Sep 2017 14:47:44 -0400 Subject: [PATCH] Technology: MirageOS --- Technology | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Technology b/Technology index 9d08f41..e3cc206 100644 --- a/Technology +++ b/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 -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 -OCaml, developed since 1996 at INRIA in Paris, France. Most libraries are -developed under permissive licenses (MIT/ISC/BSD2/Apache2). The OCaml compiler -is dual-licensed: LGPLv2 or BSD for consortium members (3000 EUR/year). +OCaml (see [Why OCaml](#Why-OCaml)). +Most libraries are developed as open source (MIT/ISC/BSD2/Apache2). 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 -UNIX binary, or a standalone virtual machine image. To build exactly the right -unikernel for each purpose, we can pick from hundreds of libraries which -implement protocols, storage on block devices, or interfaces to network devices -provided by the hypervisor. +UNIX binary, or a standalone virtual machine image. To build the right +unikernel for your custom business logic, we can pick from hundreds of libraries which +implement network protocols, storage on block devices, or interfaces to network devices +via the hypervisor. -On top of the hypervisor, a small layer of C code (developed at IBM research) is -used to unify the interface between the different hypervisors, on which the -OCaml runtime system is executed. +On top of the hypervisor, a small layer of C code unifies +the interface on which OCaml runs. + +## OCaml OCaml is a functional programming language with automated memory management, preventing manual memory management errors. The strong and expressive type