FOS is an educational operating system developed for the Operating Systems course at Ain Shams University. It is a refactored version of MIT's JOS (6.828) lab, tailored to enhance students' understanding of OS concepts through hands-on experience.
-
Memory Management: Implements dynamic memory allocation using strategies like First Fit, Best Fit, and Next Fit.
-
Paging and Virtual Memory: Supports kernel heap allocation, page fault handling, and page replacement algorithms such as the Clock algorithm.
-
Concurrency: Provides semaphores with operations like
CreateSemaphore,SIGNAL, andWAIT, enabling synchronization in multi-threaded environments. -
User-Level Memory Management: Includes user heap functions such as
malloc,free, and shared memory operations. -
System Calls and Debugging: Offers a set of system calls for process management and debugging, facilitating the development and testing of OS components.
-
FOSv1: Utilizes Bochs as the emulator and Eclipse for development, providing a traditional setup for OS development.
-
FOSv2: Enhances the development environment by integrating QEMU for faster emulation and Visual Studio Code for a more efficient coding experience.
The course provides comprehensive materials, including lab assignments and project guidelines, to support students in their learning journey. These resources are accessible through the university's official channels.
If you need assistance with setting up the development environment or have specific questions about the OS components, feel free to ask.