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