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 Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. Demo: “Hello World” on mavis

    View 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 Slide

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

    View Slide