livaの雑記帳

livaの雑記帳

OSとか作ってみたい

Rump Kernelを触った備忘録

いろいろ思う所があって、Rump Kernelを触っている。

Rump KernelはNetBSDベースのlibrary OS(詳しくはおるみんさんの記事を参照)で、2つの使い方がある。

 

・basic Rump Kernel (何か公式の呼び名があるのだろうか?)

NetBSDカーネルをserverとして立ち上げて、clientを繋ぎ、NetBSDのアプリを実行する方式

 

・Unikernel

NetBSDアプリケーションをNetBSDとハードリンクして、1つのバイナリにした上で実行する方式

 

前者はLinuxの上とか*BSD上で動かしている例が多く、後者はベアメタルや、qemu上で実行される例が多い。逆はできるのかな?(よく分かっていない)

 

前者のチュートリアルがこれ

Tutorial: Getting Started · rumpkernel/wiki Wiki · GitHub

buildrump.shでrump_server(カーネル)作って、rumpctrlから繋ぎますよ、っていうお話。これ通りやればとりあえず何か動いた。

 

後者のチュートリアルはこっち。rumprun使ってごにょごにょする。

 Tutorial: Building Rumprun Unikernels · rumpkernel/wiki Wiki · GitHub

これはUnikernelアプリを自分で作って動かしてみましょうというもの。やってはないけど、たぶん動くのだろう。(追記:↓やりました)

raphine.hatenablog.com

 

Tutorial: Serve a static website as a Unikernel · rumpkernel/wiki Wiki · GitHub

これはUnikernelでnginx動かして、HTTPサーバー立てるよ、というもの。

 

最初はrumprunとかrumpctrlとかbuildrump.shとかいろいろあって良くわからなかったけど、チュートリアル見つけてようやく理解した。

 

 

で、ここで疑問なのだけど、以下で提供されている以外のアプリケーションを動かしたかったらどうすれば良いのだろう?

GitHub - rumpkernel/rumprun-packages: Ready-made packages of software for running on the Rumprun unikernel

 

うーん、もう少し触り続けるか否か悩むなぁ。