top | item 8069132

Mirage v2.0: a recap of the new features

53 points| mrry | 11 years ago |openmirage.org | reply

12 comments

order
[+] ilaksh|11 years ago|reply
Is it possible that there might be other syntaxes with the same semantics or semantics described in OCaml that could be translated into OCaml and then compiled to unikernels?
[+] ilaksh|11 years ago|reply
Stupid questions: does Mirage OS allow me to run C or Python programs? Can I run bash or Xwindows or do OpenGL?
[+] tommd|11 years ago|reply
While correct, I always find the declaration of Mirage (and HaLVM for that matter) as an OS to be unhelpful. It is a cross compiler for OCaml (resp. Haskell) to the Xen ABI along with libraries for interacting with Xen primitives (inter-domain communication, etc).
[+] ksec|11 years ago|reply
So what if you dont know / use OCaml?
[+] avsm|11 years ago|reply
Well, it's always fun to learn a new language, especially one with the 20 year provenance of OCaml! The modularity features that OCaml provides are really key to the core of Mirage. I'd suggest starting with:

* OCaml from the very beginning: http://ocaml-book.com/

* Real World OCaml (shameless plug: author). Freely available online: https://realworldocaml.org

* The OCaml.org website itself: http://ocaml.org/learn/ (99 problems is really fun).

Mirage does of course offer an FFI to interface with C libraries, although the majority of the hacking efforts are geared towards filling in gaps in the pure OCaml library ecosystem. See the FFI blog post for more on this (you can even bind to C libraries interactively using the `utop` REPL with ctypes): http://openmirage.org/blog/modular-foreign-function-bindings

Mirage is as much about the security and efficiency of using static typing through the OS stack, as it is about exploring the concept of unikernels. There are other efforts more into compatibility with existing applications (like OSv) that you might want to look into for running an existing stack. But I encourage you to experiment with thinking and trying the Mirage style of unikernel assembly, and report back with where it works and the areas where it could improve!

Others have written more eloquently than me about why you should bother learning OCaml:

* Esper: http://tech.esper.com/2014/07/15/why-we-use-ocaml/

* Thomas Leonard's Python to OCaml retrospective: http://roscidus.com/blog/blog/2014/06/06/python-to-ocaml-ret... (Thomas also leads the Mirage ARM port work)

* Yaron Minsky's OCaml for the Masses: http://queue.acm.org/detail.cfm?id=2038036