ふふーん

一緒にやりたくなったのよ!あなたと、調合を!

MirageOSの環境構築

環境構築とサンプルを動かすまで。環境はUbuntu 16.04。

いろいろインストール。

$ sudo apt install -fy automake build-essential pkg-config

ocamlの準備。opamを入れてから、opamを使ってocamlのコンパイラーとかをインストールする。

$ sudo apt install -fy opam
$ ocamlc -version
4.02.3
$ opam init --no-setup
$ eval `opam config env`
$ opam switch
--     -- 3.07    Official 3.07 release
--     -- 3.08.0  Official 3.08.0 release
--     -- 3.08.1  Official 3.08.1 release
--     -- 3.08.2  Official 3.08.2 release
--     -- 3.08.3  Official 3.08.3 release
--     -- 3.08.4  Official 3.08.4 release
--     -- 3.09.0  Official 3.09.0 release
--     -- 3.09.1  Official 3.09.1 release
--     -- 3.09.2  Official 3.09.2 release
--     -- 3.09.3  Official 3.09.3 release
--     -- 3.10.0  Official 3.10.0 release
--     -- 3.10.1  Official 3.10.1 release
--     -- 3.10.2  Official 3.10.2 release
--     -- 3.11.0  Official 3.11.0 release
--     -- 3.11.1  Official 3.11.1 release
--     -- 3.11.2  Official 3.11.2 release
--     -- 3.12.0  Official 3.12.0 release
--     -- 3.12.1  Official 3.12.1 release
--     -- 4.00.0  Official 4.00.0 release
--     -- 4.00.1  Official 4.00.1 release
--     -- 4.01.0  Official 4.01.0 release
--     -- 4.02.0  Official 4.02.0 release
--     -- 4.02.1  Official 4.02.1 release
--     -- 4.02.2  Official 4.02.2 release
--     -- 4.02.3  Official 4.02.3 release
--     -- 4.03.0  Official 4.03.0 release
--     -- 4.04.0  Official 4.04.0 release
--     -- 4.04.1  Official 4.04.1 release
system  C system  System compiler (4.02.3)
# 247 more patched or experimental compilers, use '--all' to show
$ opam switch 4.04.1
$ ocamlc -version
4.04.1

mirageをインストールする。

$ opam install mirage

サンプルを動かしてみる。

$ git clone https://github.com/mirage/mirage-skeleton
$ cd mirage-skeleton/tutorial/hello
$ ls
config.ml  unikernel.ml
$ mirage configure -t unix
$ ls
Makefile  config.ml   main.ml                           myocamlbuild.ml
_build    key_gen.ml  mirage-unikernel-hello-unix.opam  unikernel.ml
$ make depend
$ make
$ ./hello 
2017-04-25 09:16:02 +09:00: INF [application] hello
2017-04-25 09:16:03 +09:00: INF [application] hello
2017-04-25 09:16:04 +09:00: INF [application] hello
2017-04-25 09:16:05 +09:00: INF [application] hello

とりあえずここまで。