walos
1.0.0
基於WebAssembly語言的操作系統是使用基於語言的系統方法的玩具操作系統。
過程和驅動程序(服務)是通過在沙盒環境中設計執行的WASM二進製文件。因此,驅動程序可以用任何針對WebAssembly的語言實現。
與通才操作系統不同,Walos忽略了硬件保護(RING0,單個地址空間)。這個想法通過避免上下文切換來簡化系統體系結構並提高性能。 SYSCALLS是使用WASI等接口觸發的簡單函數調用。不利的一面是,OS不受CPU側通道攻擊的保護。
clang , lld , wasm-ldos (EFI | BIOS)efi (EFI運行時)elf (UNIX可執行)| 作業系統 | 需要 | 選修的 |
|---|---|---|
| Debian / Ubuntu | make clang lld | qemu-system ovmf xorriso |
| Arch / Manjaro | 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 |
*.c的makefileHello worldwasm.tga並等待embed.c根據GPLV3許可證分發。有關更多信息,請參見許可證。