A Unix-like operating system kernel, built as a semester-long project for the graduate level course Operating Systems (CSCI2670) at Brown University. Check out this Wiki page if you'd like to know more about Weenix (and other course assignments.)
Major components of the kernel that I implemented (~6K lines of code) include:
- Proc: Kernel threads, context switching, processes, and synchronization primitives;
- Drivers: Device drivers for virtual terminals (
tty
), disks, and memory devices (/dev/null
,/dev/zero
); - FS: Virtual file system (VFS) and System V file system (S5FS);
- VM: Virtual memory management that supports file-backed and anonymous memory mapping, copy-on-write fork with shadow memory objects, and page fault handling.
To respect Brown's Academic Code, this repo only serves as a placeholder and does not contain the actual implementation of the kernel. Please reach out to me if you'd like to take a look at the actual codebase. (Provided you're not a Brown student who's taking OS, of course.)