This is the last part of the UVA-OS class (CS4414/CS6456).
OVERVIEW | LAB1 | LAB2 | LAB3 | LAB4 | LAB5
Students: see quests-lab5.md
2.dooms.on.TV.small.mp4
short.4mairo-doom-nplayer-scr.mp4
The OS now includes a full libc (newlib) and miniature libSDL (for abstracting input/output events),
atop which we port additional applications, including a music player, a blockchain miner, and DOOM (1993, itrunsdoom).
To enable easy file exchanges between our OS and PC/Mac machines, we also
bring up the SD card driver and port FAT32 filesystem support.
We implement a desktop environment, comprising a simple window manager and an input dispatcher;
as such multiple apps can be rendered on the screen concurrently.
Eventually, we bring up all four CPU cores to unleash full power of the Raspberry Pi 3.
This OS introduces virtual memory and user/kernel separation. It provides syscalls and can run one or multiple "Mario" applications concurrently in userspace.
✅ More syscalls: thread related (clone/semaphore)
✅ libc (newlib)
✅ SDL
✅ SD card
✅ FAT32
✅ DOOM
✅ Desktop
✅ Multicore
✅ Waveshare Raspberry Pi GAMEHAT
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.