π Solutions for assignments based on the xv6 operating system β part of the Operating Systems course at the Open University of Israel.
This repository contains my solutions to Maman 11 and Maman 12 β two programming assignments focusing on kernel development, system calls, process management, and container-like isolation in the xv6 educational operating system.
The assignments were completed as part of course 20502 β Operating Systems.
- Adding custom system calls to xv6
- Printing process trees and process information from the kernel
- Working with PID namespaces and basic container isolation
- Modifying the xv6 kernel and user-level system interfaces
- Compilation with
makeand debugging with QEMU
xv6-assignments/
βββ maman11/
β βββ ps.c
β βββ syscall.c
β βββ sysproc.c
β βββ ...
βββ maman12/
β βββ updated-syscall-files/
β β βββ ...
β βββ namespace-related-code/
β βββ ...
βββ README.md
To build and run the xv6 operating system with the included modifications:
make clean
make qemu
For testing:
./runtests.exp my.log
echo $?
# Should return 0 on successThese solutions follow the guidelines and limitations defined in the course, including restrictions on modifying certain files (e.g., syscall.h), and follow conventions for system call naming and kernel structure.
Disclaimer: This code is provided for learning purposes only. Please do not copy solutions directly β understanding and implementing the logic yourself is key to mastering systems programming.