This project was developed for the matter CI-1215: Operational Systems of the Teacher: Carlos Maziero.
This project aims to build, incrementally, a small didactic operating system. The system is built initially as a library of cooperative threads within a real operating system process (Linux, MacOS or other Unix).
The development is incremental, gradually adding features such as preemption, accounting, semaphores, message queues, and access to a virtual disk. This approach simplifies the development and debugging of the core, in addition to eliminating the use of machine language.
The general structure of the code to be developed is presented in the figure below. The files in blue are fixed (provided by the teacher), while the files in green were developed by me: