El sistema operativo basado en el lenguaje de WebAssembly es un sistema operativo de juguetes que utiliza el enfoque del sistema basado en el lenguaje.
Los procesos y los conductores (servicios) son binarios WASM ejecutados por diseño en un entorno de sandboxed. Por lo tanto, los controladores se pueden implementar en cualquier lenguaje dirigido a WebAssembly.
A diferencia del sistema operativo generalista, Walos ignora la protección de hardware (Ring0, espacio de direcciones individuales). Esta idea simplifica la arquitectura del sistema y mejora el rendimiento evitando el cambio de contexto. Los syscalls son llamadas de función simple activadas utilizando interfaces como WASI. En el lado negativo, el sistema operativo no está protegido contra los ataques de canales laterales de la CPU.
clang , lld , wasm-ld - HACERos (EFI | BIOS)efi (tiempo de ejecución de EFI)elf (Ejecutable UNIX)| Sistema operativo | Necesario | Opcional |
|---|---|---|
| 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 como binario elfo make run ENTRY=sample/shell LOADER=elfsample/exec con QEMU y OVMF make run ENTRY=sample/execsample/hello.c make package ENTRY=sample/hello.csample/vga con QEMU, limine y gráficos make run ENTRY=sample/vga RUN_ISO=1 RUN_VGA=1| Mensaje | Solución posible |
|---|---|
No rule to make target '.wasm' | Falta del argumento 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 worldwasm.tga en la pantalla y esperaembed.c Uso del motor WASM System WasmDistribuido bajo la licencia GPLV3. Vea la licencia para más información.