Last update: 02.02.2026
This is a modified version of the xv6 kernel.
- Original xv6: Copyright (c) 2006-2024 Frans Kaashoek, Robert Morris, Russ Cox, Massachusetts Institute of Technology.
- Custom Additions (
etracesyscall tracing,COWimplementation): Copyright (c) 2026 Trukhin Maksim Aleksandrovich.
This is my custom implementation of "etrace" syscall and tracing technique, that enables syscall tracing in other executed programs on the xv6 kernel. Originaly it was one of my lab assignment for the OS class in university.
To get started with Xv6, follow these steps:
-
Clone the repository:
$ git clone https://github.com/maksimphono/Syscalls-tracing $ cd xv6-riscv -
Run Xv6 in QEMU:
$ make qemu
This project requires RISC-V versions of
- QEMU 7.2+
- GDB 8.3+
- GCC 13
- Binutils
Personaly I used docker to create the environemnt and run Qemu there. The Dockerfile is provided, feel free to build your own image and run the kenel there.
This repository contains the Xv6 operating system, which is used for the Operating Systems lab course. Xv6 is a simple Unix-like teaching operating system developed by MIT for educational purposes. For more information, see 6.1810: Operating System Engineering.