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许可证分发。有关更多信息,请参见许可证。