Web開発
Show HN: Kandelo – ブラウザ向けのPOSIX互換マルチプロセスWASMカーネル
Show HN: Kandelo – a POSIX-compatible multi-process WASM kernel for the browser (kandelo.dev)
要約
Kandeloは、ブラウザやNode.jsでPOSIXプログラムを実行できる、オープンソースのWasmベースのマルチプロセスカーネルです。WordPress Playgroundの基盤として、またブラウザやコマンドラインでのエージェントのサンドボックスとして有望視されており、ゲームやデスクトップ環境のポート、さらにはKandelo内でのプログラムコンパイルも試みられています。
全文翻訳
Kandeloは、ブラウザやNode.jsでPOSIXプログラムを実行できる、オープンソースのWasmベースのマルチプロセスカーネルです。
Kandeloはまだ実験段階ですが、すでにかなりの範囲の既存ソフトウェアを実行できます。
このためのユースケースはありますか?
私たちはKandeloを、サーバーサイドのWordPressを完全にブラウザ内で実行するWordPress Playgroundの新しい基盤として試しています。Kandeloは、ブラウザやコマンドラインでエージェントを実行するためのサンドボックスとしても有望に見えます。また、ゲームやデスクトップ環境をポートしたり、Kandelo内で実行可能なプログラムをコンパイルしたりして遊んでいます。
しかし、まだ考慮されていない多くの可能性があるように感じます。
このようなものをどのように使用したいですか?
デモ:
いくつかの注意点:デモはデスクトップブラウザでテストされています。残念ながら、現時点ではモバイルでは動作が異なる場合があります。ディスクイメージの一部は(約50MB)大きく、初期起動に時間がかかることがあります。
シェル(bash、vim、nethackなど)、Nginx、PHP、WordPress、Doomを含むメインセット:
https://kandelo.dev/20260819-demo/
LÖVEゲームエンジン:
https://kandelo.dev/20260819-demo-love/
LÖVEで実行されているSNKRX:
https://kandelo.dev/20260819-demo-love/?vfs=love-snkrx-abi44.vfs.zst
DOSBoxで実行されているCommander Keen:
https://kandelo.dev/20260819-demo-dos/?demo=keen
LXDEデスクトップPoC:
https://kandelo.dev/20260819-demo-lxde/?demo=desktop-lxde
背景
ブラウザでシステムソフトウェアを実行するための本物のOSレベルの基盤が欲しかったので、これをバイブコードによる探求として始めました。それは遅すぎると感じ、何か使えるものを得るためにはデフォルトのPOSIX動作を妥協する多くの異なる方法を提供する必要があるだろうと思っていました。しかし、エージェントと格闘し、デフォルトとして本物のPOSIX互換性を主張することに数週間費やした後、妥協なしにシステムがどれほどうまく機能したかに驚きました。
Nginx、PHP、Python、Ruby、Redis、さらにはMariaDBも、最小限のハックでSDKを使用してビルドすることができました。
その後、ゲームをポートし、楽しみ、どこまでプッシュできるかを見るために遊び始めました。
アーキテクチャに関する注記:
すべてのサポート可能なPOSIX syscallを提供する単一ワーカーカーネルがあります。各プロセスは独立したメモリを持つ専用ワーカーです。各プロセススレッドは、同じプロセスからのスレッドとメモリを共有する専用ワーカーです。Syscallは、プロセスのSharedArrayBufferとAtomics APIを使用して行われます。fork()がサポートされています。システムは仮想ファイルシステム(VFS)イメージを中心に構築されており、VFSには使用されるかされないかのプログラムへの遅延参照が含まれる場合があります。Vimはシェルデモにおけるそのような参照です。
GitHubにて:
https://github.com/Automattic/kandelo