This repository contains my solutions and implementations for the xv6 operating system project, completed as part of the course Λειτουργικά Συστήματα Κ22 (Operating Systems K22). The project is based on xv6, a re-implementation of the Unix Version 6 (v6) operating system. It is intended to provide an understanding of basic operating system concepts and their implementation.
xv6 is a simplified version of Unix, re-implemented for the modern RISC-V architecture. It follows the structure and style of the original Version 6 Unix but has been updated to work with modern tools, such as the RISC-V architecture and the C programming language. The system is designed for educational purposes, helping students learn about operating system design and implementation.
The core of xv6 is built using the ANSI C programming language and targets the RISC-V multiprocessor architecture.
This repository contains the work I have completed for the Operating Systems (Λειτουργικά Συστήματα Κ22) course at my university. The project involves solving various tasks related to xv6, including concepts such as process management, file systems, synchronization, and system calls. I have used xv6's original code as a basis, then modified and extended it according to the course requirements.
- xv6 is inspired by John Lions's Commentary on UNIX 6th Edition.
- The project is based on the original work by Frans Kaashoek, Robert Morris, and Russ Cox.
- Special thanks to my professors and teaching assistants for their guidance during the course.
Before building and running xv6, make sure you have the following prerequisites installed:
- A RISC-V "newlib" toolchain: riscv-gnu-toolchain
- qemu compiled for
riscv64-softmmu
- Clone this repository to your local machine.
- Install the required RISC-V toolchain and qemu.
- Run
make qemu
to build and run xv6.
This project is part of the Operating Systems course (Λειτουργικά Συστήματα Κ22), which covers fundamental concepts of operating system design and implementation. The solutions and implementations in this repository are tailored to the course's curriculum.