walos
1.0.0
WebAssembly 언어 기반 운영 체제는 언어 기반 시스템 접근법을 사용하는 장난감 OS입니다.
프로세스 및 드라이버 (서비스) 는 샌드 박스 환경에서 설계에 의해 실행 된 바이너리입니다. 따라서 WebAssembly를 타겟팅하는 모든 언어로 운전자를 구현할 수 있습니다.
일반 OS와 달리 Walos는 하드웨어 보호 (Ring0, 단일 주소 공간)를 무시합니다. 이 아이디어는 컨텍스트 전환을 피함으로써 시스템 아키텍처를 단순화하고 성능을 향상시킵니다. SyScalls는 WASI와 같은 인터페이스를 사용하여 트리거 된 간단한 기능 호출입니다. 단점에서 OS는 CPU 측 채널 공격으로부터 보호되지 않습니다.
clang , lld , wasm-ld MAKEos (EFI | BIOS)efi (EFI 런타임)elf (UNIX 실행 파일)| OS | 필요합니다 | 선택 과목 |
|---|---|---|
| 데비안 / 우분투 | 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 |
*.c 에 대한 makefileHello worldwasm.tga 하여 대기합니다embed.c 시스템 WASM 엔진을 사용합니다GPLV3 라이센스에 따라 배포됩니다. 자세한 내용은 라이센스를 참조하십시오.