- SUSEのHackweek 22での著者のプロジェクトに関する記事で、WebAssemblyを実行するunikernelを構築した。
- 著者は、unikernelとWebAssemblyを組み合わせる潜在的な利点など、いくつかの理由からこのプロジェクトを選んだ。
- アプリケーション開発者の観点では、アプリケーションとその依存関係が対象のunikernelをサポートする必要があるため、アプリケーションをunikernelへ移植したり、その上で作成したりするのは難しい場合がある。
- Unikernelの管理者も、ユーザーアプリケーションで利用されうる未知のシステムプリミティブのため、自分たちのプラットフォーム上でどのアプリケーションでも円滑に実行できることを保証するのに苦労する。
- しかし、WebAssemblyプラットフォームを対象にする場合、アプリケーションにはWebAssemblyランタイムが提供すべき明確な機能セットがある。
- 著者は、Rustで書かれたunikernelであるRustyHermitプロジェクトを、unikernelアプリケーションの基盤として使用した。
- 著者は、好みのランタイムであるWasmtimeがRustyHermit上に構築されていなかったため、WebAssemblyランタイムに関する困難に直面した。最終的に、純Rust製のWebAssemblyランタイムであるwasmiを見つけて使用した。
- 著者はまた、SpiderlightningにおけるWebAssembly Component Model提案の利用についても議論しており、これによりWebAssemblyゲストに機能を提供し、ホストがWebAssemblyゲストによって提供される機能を利用できるようになる。
- 著者は、.witファイルからホスト/ゲストコードを生成するCLIツールであるwit-bindgenを拡張し、wasmi WebAssemblyランタイムをサポートさせる必要があった。
- 著者は、Spiderlightningのhttp-serverデモを実行するunikernelアプリケーションの録画とともに投稿を締めくくり、次回以降でRust async、Redis、そしていくつかのエラーについて扱うと予告している。
1件のコメント
Hacker News のコメント