Repository navigation
MerlionOS v100.4 — Full Userspace: exec, sockets, syscall returns
MerlionOS v100.4 — Full Userspace U1-U4
Stats
- 140,204 lines of Rust
- ~380 modules, 7 built-in user programs
- 45 syscalls with proper return values
- 0 errors, 0 warnings
Userspace Complete (U1-U4)
U1: Ring 3 Execution ✅
- ELF loader maps user code at 0x400000
- iretq switches Ring 0 → Ring 3
- int 0x80 syscall returns Ring 3 → Ring 0
[user] Hello from MerlionOS userspace!
U2: Syscall Return Values ✅
- All 45 syscalls set rax via trampoline
- open returns fd, read returns bytes, getpid returns pid
- -1 on failure, proper error semantics
U3: exec ✅
- SYS_EXEC loads and runs a new program
- exec-test → exec("hello") → Hello World chain
- Old process cleaned up on exec
U4: Socket Syscalls ✅
- SYS_SOCKET, SYS_CONNECT, SYS_SENDTO, SYS_RECVFROM
- connect() uses real TCP stack (tcp_real::connect)
- Foundation for userspace networking
7 Built-in User Programs
- hello, cat-test, qfc-test, counter, getpid, syscall-test, open-test, exec-test
Build
make build && make run
merlion> run-user hello
[user] Hello from MerlionOS userspace!
merlion> run-user exec-test
merlion> run-user syscall-testBorn for AI. Built by AI. Runs user programs. 🦁