TypeSafe OSの試み

2,249 views

Published on

TypeSafe OSの試み

  1. 1. Type Safe OSの試み @mzp / ocaml-nagoya 13年8月26日月曜日
  2. 2. 自己紹介 •Twitter: @mzp •気付いたら主催者になっていた系男子 13年8月26日月曜日
  3. 3. 自己紹介 その2 •関数型系キャラクター、ことりちゃん •ご自由にお使いください •ステッカーくばってます tkotori.github.io 13年8月26日月曜日
  4. 4. OCamlMeetingの発表要約 •OCamlでWebアプリを作りたいなら、 Heroku + buildpack-ocamlを使いま しょう •フレームワークはEliomがおすすめです 13年8月26日月曜日
  5. 5. Heroku以外の選択肢 •Amazon EC2で動かしたいこともある •適当なLinuxをいれればOCamlは動く •ただし、別の選択肢もある 13年8月26日月曜日
  6. 6. 13年8月26日月曜日
  7. 7. 要約 13年8月26日月曜日
  8. 8. 1. Linux/MacOS Xで開発する 要約 13年8月26日月曜日
  9. 9. 1. Linux/MacOS Xで開発する 2. コンパイルする 要約 13年8月26日月曜日
  10. 10. 1. Linux/MacOS Xで開発する 2. コンパイルする 3. Xen上で動くカーネルが生成される(!) 要約 13年8月26日月曜日
  11. 11. 1. Linux/MacOS Xで開発する 2. コンパイルする 3. Xen上で動くカーネルが生成される(!) 4. EC2等のクラウドサービス上で動く(!!) 要約 13年8月26日月曜日
  12. 12. メリット •オーバーヘッドがないため、パフォー マンスがいい •サンドボックス化されているため、セ キュア •リロース制御等が容易 13年8月26日月曜日
  13. 13. Haskeller様向け情報 •Haskell(GHC)をXen上で動かすプロジ ェクトもあります •HaLVM(Haskell Lightweight Virtual Machine) • github.com/GaloisInc/HaLVM 13年8月26日月曜日
  14. 14. Erlang使い向け情報 •ErlangをXen上で(ry •Erlang on Xen • erlangonxen.org •オープンソースではないため、詳細不明 13年8月26日月曜日
  15. 15. Mirage/HaLVMの仕組み 直接、Xenの上に載ってはいない Xen Mini-OS Mini-OS Other OS OCaml ランタイム GHC ランタイム OCaml プログラム Haskell プログラム 13年8月26日月曜日
  16. 16. Mini-OSとは •Xenのソースツリーに同梱されている •仮想メモリ •協調型(ノンプリエンティブ)スレッド •libcやTCP/IPスタックも動作する 13年8月26日月曜日
  17. 17. Mini-OSとは •Xenのソースツリーに同梱されている •仮想メモリ •協調型(ノンプリエンティブ)スレッド •libcやTCP/IPスタックも動作する → でもCで書いてある.... 13年8月26日月曜日
  18. 18. 型安全なOSが欲しい •半分以上、Haskell/OCamlで書かれた OSが欲しい •関数型のイディオムを導入したい •最適化がやりやすそう(例: プログラム 変換) •部分的にCoqで証明も可能では? 13年8月26日月曜日
  19. 19. Metasepi プロジェクト •NetBSDを関数型言語で 再設計するプロジェクト • by @master_qさん •あとで発表があると思い ます Photo by www.flickr.com/photos/silkebaron/931381358/ 13年8月26日月曜日
  20. 20. ajhc(A fork of jhc) •HaskellをコンパイルしてCを生成する • 生成されるコードがコンパクト • 依存するPOSIX APIが少ない •Cと相互呼び出しが可能 13年8月26日月曜日
  21. 21. Mini-OSのHaskell化 ajhcを使って、Mini-OS/XenをHaskell 化したい 完了 •タイマの初期化 •ページテーブルの初期化 •コンソールの初期化 •スレッドスケジューラの初期化 未完了 •デバイスの初期化 •各種API •終了処理 13年8月26日月曜日
  22. 22. 参考情報 •MiniOS with ajhc github.com/mzp/mini-os-with-ajhc •ajh本体 github.com/ajhc/ajhc •Metasepi metasepi.org •簡約!? λカ娘 Go! www.paraiso-lang.org/ikmsm/books/c84.html 13年8月26日月曜日
  23. 23. まとめ •型安全なOS、とても夢が広がる •Metasepiの作りだしたajhcを使えば、 わりと現実的 •さあ、やりましょう!! 13年8月26日月曜日

×