Skip to content

Kernel-level assignments for xv6: system call extensions, process inspection, and PID namespace handling

Notifications You must be signed in to change notification settings

Natifishman/kernel-labs-xv6

Repository files navigation

xv6-assignments

Final Grade Semester Course

πŸ“˜ Solutions for assignments based on the xv6 operating system β€” part of the Operating Systems course at the Open University of Israel.

Overview

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.

πŸ” Topics Covered

  • 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 make and debugging with QEMU

Structure

xv6-assignments/
β”œβ”€β”€ maman11/
β”‚   β”œβ”€β”€ ps.c
β”‚   β”œβ”€β”€ syscall.c
β”‚   β”œβ”€β”€ sysproc.c
β”‚   └── ...
β”œβ”€β”€ maman12/
β”‚   β”œβ”€β”€ updated-syscall-files/
β”‚   β”‚   β”œβ”€β”€ ...
β”‚   └── namespace-related-code/
β”‚       β”œβ”€β”€ ...
└── README.md

How to Build & Run

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 success

πŸ“„ Notes:

These 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.

About

Kernel-level assignments for xv6: system call extensions, process inspection, and PID namespace handling

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published