walos
1.0.0
WebAssembly言語ベースのオペレーティングシステムは、言語ベースのシステムアプローチを使用したおもちゃOSです。
プロセスとドライバー(サービス)は、サンドボックス化された環境で設計によって実行されるWASMバイナリです。そのため、ドライバーは、WebAssemblyをターゲットとするあらゆる言語で実装できます。
Generalist OSとは異なり、Walosはハードウェア保護(RING0、単一アドレススペース)を無視します。このアイデアは、コンテキストの切り替えを回避することにより、システムアーキテクチャを簡素化し、パフォーマンスを向上させます。 Syscallsは、WASIのようなインターフェイスを使用してトリガーされる単純な関数呼び出しです。マイナス面として、OSはCPUサイドチャネル攻撃から保護されていません。
clang 、 lld 、 wasm-ld -makeos (EFI | BIOS)efi (EFIランタイム)elf (UNIX実行可能)| OS | 必要です | オプション |
|---|---|---|
| Debian / Ubuntu | make clang lld | qemu-system ovmf xorriso |
| アーチ /マンジャロ | make clang lld | qemu edk2-ovmf libisoburn |
git clone https://github.com/CalmSystem/walos.git
cd walossample/shellを開始しますmake run ENTRY=sample/shell LOADER=elfsample/execを開始しますmake run ENTRY=sample/execsample/hello.cの起動可能なISOを作成しますmake package ENTRY=sample/hello.csample/vgaを開始しますmake run ENTRY=sample/vga RUN_ISO=1 RUN_VGA=1| メッセージ | 可能な解決策 |
|---|---|
No rule to make target '.wasm' | ENTRY引数がありません |
llvm-ar: Command not found | export PATH=$PATH:/usr/lib/llvm-10/bin |
Executable "wasm-ld" doesn't exist! | ? ? |
lld: error: unable to find library -lc | export LDPATH=/usr/lib64 |
/bin/sh: 1: ./run: not found | export DLINK=/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 |
qemu: could not load PC BIOS | export OVMF=/usr/share/ovmf/x64/OVMF.fd |
*.cHello worldを印刷しますwasm.tga画面上で待機しますembed.c実行しますGPLV3ライセンスの下で配布されます。詳細については、ライセンスを参照してください。