This is one part of the UVA-OS class (CS4414/CS6456).
OVERVIEW | LAB1 | LAB2 | LAB3 | LAB4 | LAB5
Students: see quests-lab3.md
mario.lab3.scr.mp4
This OS introduces virtual memory and user/kernel separation. It provides syscalls and can run one or multiple "Mario" applications concurrently in userspace.
✅ Virtual memory
✅ User/kernel separation (EL0/EL1)
✅ Syscalls: task related (fork/exec/sbrk/exit...); write (simplified)
✅ Userspace (two simple apps + a minimal library)
⛔ No files or filesystems ⛔ No procfs or devfs ⛔ No input device (can't control Mario)
export PLAT=rpi3qemu
| Action | Command |
|---|---|
| To clean up | ./cleanall.sh |
| To build everything | ./makeall.sh |
| To run on qemu | ./run-rpi3qemu.sh |
| Launch qemu for debugging | ./dbg-rpi3qemu.sh |
export PLAT=rpi3
| Action | Command |
|---|---|
| To clean up | ./cleanall.sh |
| To build everything | ./makeall.sh |
(One time): Prepare the SD card
https://github.com/fxlin/uva-os-main/tree/main/make-sd
Copy the kernel image kernel8.img to the partition named bootfs and boot.


