This repository assembles a series of assignments centered around the XV6 Operating System, each designed to implement, enhance, and improve its various system features. The XV6 is a simple, Unix-like teaching operating system, which provides a basic but functional illustration of OS design and principles. Through these assignments, my partner and I have gained hands-on experience and have actively contributed to enhancing XV6's functionality and performance, deepening our understanding of operating systems in a practical context.
- Assignment 1: Implementation of specific system calls and introduction of scheduling policies for improved system performance.
- Assignment 2: Implementation of atomic Compare And Swap (CAS) instruction and enhancements in synchronization mechanisms and process management for improved system performance.
- Assignment 3: Implementation of Copy-On-Write (COW) mechanism in the xv6 memory management system to optimize the fork system call efficiency, including handling protection faults and maintaining reference counts for physical pages.
- Assignment 4: Extension of the xv6 file system to support larger file sizes through modifications to the i-node structure, and introduction of symbolic links with the associated creation, handling, and system calls for improved file referencing and system navigation.