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

自作WASMランタイムをKernelに改造する試み.pdf

RI5255
September 15, 2023

 自作WASMランタイムをKernelに改造する試み.pdf

2023/9/15 WebAssembly night #11の@RI5255 (https://twitter.com/RI5255) の発表資料です。

SeckHack365で取り組んでいるWASM Runtime x Microkernelという試み(https://github.com/RI5255/mavis) について紹介します。

RI5255

September 15, 2023
Tweet

More Decks by RI5255

Other Decks in Technology

Transcript

  1. 自作WASMランタイムをKernelに改造する試み
    -WASM x Microkernelの可能性-
    WebAssembly night #11 9/15
    @RI5255

    View full-size slide

  2. 仕組みを理解したい!!
    OTFって何? NTFSって何?
    Cコンパイラの仕組みは?
    USBドライバの仕組みは?
    自己紹介
    ・低レイヤが好き
    ・重度のフルスク病
    ・CTFはpwnが好き
    @RI5255

    View full-size slide

  3. WASM Runtime x Microkernel !!
    https://github.com/RI5255/mavis

    View full-size slide

  4. Microkernelとは?
    user
    タスクスケジューラ
    デバイスドライバ
    ファイルシステム
    シンプルで必要最低限のinterface
    kernel
    kernel
    server

    View full-size slide

  5. WASM Runtime x Microkernelとは?
    user
    タスクスケジューラ
    デバイスドライバ
    ファイルシステム
    シンプルで必要最低限のinterface
    WASM Runtime
    kernel
    WASM
    全てのserverがWASMバイナリなMicrokernel !!

    View full-size slide

  6. 概要
    fs
    ・ファイルのopen
    ・ファイルのread
    ・ファイルのclose
    vm
    ・タスクの生成
    ・タスクの削除
    shell
    ・コマンド実行
    WASM Runtime(Kernel)
    low level functions
    WASM
    Program
    Microkernel

    View full-size slide

  7. 特徴
    ・仮想メモリを持たない
    ・すべてのプログラムがWASMバイナリ
    ・すべてのプログラムがring0で動く
    ・kernelそのものがWASM Runtime
    ・メッセージパッシングの機構を提供
    ・”OS”の機能は全てWASMバイナリとして実現する

    View full-size slide

  8. Why?
    ・仮想メモリが必要ない
    Microkernelのボトルネックを解消しつつ、拡張性に優れたOSを作ることができる
    ・プログラムが汎用的になる
    ・全てをKernel空間で動かせる!!

    View full-size slide

  9. Demo: “Hello World” on mavis

    View full-size slide

  10. Demo: “Hello World!” on mavis
    shell fs
    “hello”
    OPEN_FILE_MSG
    OPEN_FILE_REPLY_MSG
    1
    shell fs
    READ_FILE_DATA_MSG
    READ_FILE_DATA_REPLY_MSG
    2
    shell vm
    SPAWN_TASK_MSG
    SPAWN_TASK_REPLY_MSG
    4 hello
    create_vm_task
    shell fs
    CLOSE_FILE_MSG
    CLOSE_FILE_REPLY_MSG
    3
    hello vm
    EXIT_TASK_MSG
    5
    task_destroy
    shell
    DESTROY_TASK_MSG
    ”Hello World!”

    View full-size slide

  11. 展望
    ・ライブラリを使うぐらいの気軽さで、”OS”の機能を切り替えられる日が来るかも!?
    ・分散システムへの応用!?
    ・WASM Device Driver
    ・Network Support

    View full-size slide