お知らせ
お知らせ
CLOSE

Unikernelと和解せよ(全1記事)

「Unikernelと和解せよ」 “少し面倒な”Unikernelを気軽に使うためのTips

Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。佐伯学哉氏は、UKLでRustプログラムをビルドする方法を紹介しました。

「和解せよシリーズ」を発表、佐伯学哉氏

佐伯学哉氏(以下、佐伯):「nullpo_head」、Takaya Saekiが、「Unikernelと和解せよ」というタイトルで発表します。

(会場の笑い声を聞いて)なんか今笑った人がいるんですけど、Unikernelはとても大事なものなので、大丈夫です。

とはいえ、今回やるのは確かに一発ネタです。僕はnullpo_headといいます。仮想化周りやOSをよくやっています。前回「デバッガと和解せよ」という発表をしたので、実は和解せよシリーズなんです。

Unikernelを使うのって腰が重くない?

いきなりですが、みなさん日々、Unikernelを使おうと試行錯誤していると思いますが、僕はしていません。していない理由はなにかというと、「Unikernel使うのって腰が重くない?」という話なんですよね。

本当はみなさんUnikernelを使いたいんですが、少しだけ面倒なので気軽に使えないんです。

どうしてかを僕が脳内でいろいろ調査してきたんですけど。まず1個目が、APIを忘れるから使いにくい。「POSIX互換だっけ?」とか。あと移植。普通のUnikernelはけっこう独自APIが必要なので、そもそもアプリケーションに移植する必要がある。

これは大変なので、もっとUnikernelを気軽に使いたいなというのが今回の話です。

UKLでRustプログラムをUnikernel OSにしてみる

UKL(Unikernel Linux)というのがあるそうです。ざっくり言うと、普通のLinuxアプリをLinuxカーネルに静的リンクしてUnikernelにする研究です。

理論上、普通のLinuxアプリが普通にUnikernelになって、あなたのアプリがOSとして動いてすごい、という研究ですね。

なので、これでUKLでRustプログラムを一瞬でUnikernel OSにできるとうれしいからやりたいというのが今回の話です。

何が起きるかというと、普通にcargoでukl buildとかをすると、あなたのRustプログラムがUnikernelになって、OSになって動き、cargo ukl bootすると、qemuでプログラムが動く。

がんばって作りました。ざっくり言ってcustom libcを差し替えるだけです。本当は--targetで動いてほしいんですが、なんやかんやあって難しかったので、cargo uklコマンドとして実現しました。

デモ

作ったので、デモします。

ところがどっこい、映らねぇ。これ、時間がすごくもったいないですね。

まず、cargo ukl newコマンドというのがあって、これで普通にcargoのプロジェクトができます。これを動かすと、「Hello, world!」が動きます。これをcargo ukl buildすると……あっ、cargoじゃなかった、悲しい(「carog」と打ち間違えていた)……ビルドが動いて……これ、遅いですねぇ!

(会場笑)

佐伯:Rustってね、コンパイルが遅いのがちょっとね、玉に瑕なんですよね。今度はいつものLinuxカーネルで出します。

(会場笑)

佐伯:普通のRustプログラムがさらに遅いビルドになるんですけど、これはすぐ終わるので。ちなみに(発表時間は)あと何秒ですか? わからない、わからない!

司会者:が、がんばれ〜!

佐伯:「がんばれ」しか言ってくれないんですね。

(会場笑)

司会者:5、4、3、2、1。

佐伯:bootします!! Linuxカーネルで動いて……。

(会場笑)

司会者:はい、ありがとうございました。

(会場拍手)

佐伯:あと3秒だけ。たぶんこれでいいので。

これ、UKLは、起動して5秒後にプログラムが動くんですね……はい!

司会者:動いた、動いた。

(会場拍手)

佐伯:Unikernelと和解できました、という話です。

続きを読むには会員登録
(無料)が必要です。

会員登録していただくと、すべての記事が制限なく閲覧でき、
スピーカーフォローや記事のブックマークなど、便利な機能がご利用いただけます。

無料会員登録

すでに会員の方はこちらからログイン

または

名刺アプリ「Eightをご利用中の方は
こちらを読み込むだけで、すぐに記事が読めます!

スマホで読み込んで
ログインまたは登録作業をスキップ

名刺アプリ「Eight」をご利用中の方は

デジタル名刺で
ログインまたは会員登録

ボタンをタップするだけで

すぐに記事が読めます!

この記事のスピーカー

同じログの記事

この記事をブックマークすると、同じログの新着記事をマイページでお知らせします

コミュニティ情報

Brand Topics

Brand Topics

人気の記事

    新着イベント

      ログミーBusinessに
      記事掲載しませんか?

      イベント・インタビュー・対談 etc.

      “編集しない編集”で、
      スピーカーの「意図をそのまま」お届け!