This project was created by Professor Carlos A. Maziero aims to construct, incrementally, a small didactic operating system. The system is initially built in the form of a cooperative thread library within a real operating system process (Linux, macOS, or another Unix).
The development is incremental, gradually adding functionalities such as preemption, accounting, semaphores, message queues, and access to a virtual disk. This approach simplifies the development and debugging of the kernel, as well as eliminates the need for machine language.
The overall structure of the code to be developed is presented in the figure below. The files in blue are fixed (provided by the professor), while the files in green should be developed by the students.
Each project P00 to P13 is a new feature added to the operating system. The projects are:
- P00: Queue Library
- P01: Context Switch
- P02: Tasks Management
- P03: Dispatcher
- P04: Scheduler
- P05: Preemption
- P06: Timer
- P07: Main Task
- P08: Suspended Tasks
- P09: Sleeping Tasks
- P10: Semaphores
- P11: Barrier
- P12: Message Queue
- P13: Virtual Disk