This repository contains my solutions to the laboratory assignments of MIT’s 6.1810 – Operating System Engineering course (Fall 2025).
The course focuses on the design and implementation of operating systems, and their role as a foundation for systems programming. Key topics include:
- Kernel design
- Hardware/software interaction
- Interrupts and system calls
- Virtual memory
- Threads and context switching
- File systems
- Interprocess communication and synchronization
Throughout the course, xv6, a simple multi-processor operating system for RISC-V, is used to illustrate these concepts. The labs involve extending xv6 with features such as advanced virtual memory mechanisms and networking support.
At the end of each chapter there are some labs. Labs per chapter are availble on the same branches;.
-
Lab 1 (Introduction to xv6): Unix Utilities
Built some Unix-like utilities
Branch: util
-
Lab 2 (OS Design): System Calls
Implemention of system call
Branch: syscall
-
In progress
xv6 is a re-implementation of Dennis Ritchie's and Ken Thompson's Unix Version 6 (v6). xv6 loosely follows the structure and style of v6, but is implemented for a modern RISC-V multiprocessor using ANSI C.