Upgrade to Pro — share decks privately, control downloads, hide ads and more …

クラウド向けOS(?)Unikernelとは何か

garasubo
August 03, 2015
1.7k

 クラウド向けOS(?)Unikernelとは何か

PAAKのLT会で使ったやつ

garasubo

August 03, 2015
Tweet

Transcript

  1. Library OS • 1990年代に登場した概念 • OSをライブラリとして実装し、最低限のハー ドウェア排他制御しかしない • パフォーマンスが圧倒的に向上 •

    e.g. Exokernel • デバイスドライバのサポートが大変 • パフォーマンスよりアプリケーションの独立性 のほうが大事 あまり普及せず・・・
  2. Unikernel • Library OSを仮想環境上で動かす • デバイスドライバはハイパーバイザが提供するもの を使う • アプリケーション(プロセス)は1つしか使えない •

    複数アプリケーションを動かしたければその数だけ Unikernelを立ち上げればよい • Xen ProjectがUnikernelという名称で呼んでいる 仮想化環境上ならばLibrary OSの概念は有効では!?
  3. Mirage OS • OCamlで主に書かれ ているOS • OCamlのアプリケー ションが動作 • バイナリサイズが圧倒

    的に小さくなる • DNSやWeb Serverが 150KBほど • OCamlで書かれてい るので型安全 Anil et al. “Unikernels: Library Operating Systems for the Cloud”, ASPLOS ’13
  4. OSv • POSIX-APIを提供し、従来アプリケーションと の互換性を確保 • 専用APIもあり、そちらのほうがパフォーマンスは向 上する • Mirage OSの場合、全部書き直し

    • JavaやRubyのプログラムも動く • バイナリサイズはMirage OSほどではないが軽量 • memcachedが11MB http://osv.io/
  5. Unikernelの応用 • 起動が早い、軽量であるという性質は組込みで も有用 • Jitsu[Anil ’15] • ARMボード上でXenを動かし、動的にUnikernelを起動す ることで高速にサービスを提供

    • デバイスドライバさえ何とかなればハイパーバ イザを介さず直接動作可能 • Rump Kernel+Mirage OS • Rump KernelがNetBSDのデバイスドライバを提供する クラウド向けOSと表現するのは安直
  6. 参考文献 • T.E. Anderson, “The case for application- specific operating

    systems”, Third Workshop on Workstation Operating Systems, 1992 • Anil Madhavapeddy et al. “Unikernels: library operating systems for the cloud”, ASPLOS '13 • Avi Kivity et al. “OSv—Optimizing the Operating System for Virtual Machines”, ATC ’14 • Anil Madhavapeddy et al. “Jitsu: Just-In-Time Summoning of Unikernels”, NSDI ’15