What features does the first project have?

Heap allocation and deallocation, multithreading, semaphores, thread sleep and join, console output and input, preemptive scheduling, and time sharing. It is a full operating system that can run a freestanding program linked with it.

What features does the second project have?

It is an extension of MIT's xv6 operating system. It has page swapping and thrashing detection and prevention.

What's next?

I am currently working on a full operating system for the ARM8 architecture, made specifically for the Raspberry PI 4B. Currently it is in its infancy, and you can find the source code for it here.

Source code

The source codes can be found below:

Projects for the Operating Systems 1 and 2 courses



img During my 4th and 5th semester, I have enrolled in the Operating Systems 1 and 2 courses. Both courses had a project that was to be done for the RISC-V architecture. The OS1 project was to create a 'simple' single processor microkernel that would support multithreading, memory management, console I/O and time sharing. The OS2 project was to add page swapping and thrashing detection/prevention functionality for MIT's educational xv6 operating system.