Skip to content

maksimphono/Syscalls-tracing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,581 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Syscall tracing on xv6

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 (etrace syscall tracing, COW implementation): 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.

🥢 Basic Usage

To get started with Xv6, follow these steps:

  1. Clone the repository:

    $ git clone https://github.com/maksimphono/Syscalls-tracing
    $ cd xv6-riscv
  2. Run Xv6 in QEMU:

    $ make qemu

📚 Requirements

This project requires RISC-V versions of

  1. QEMU 7.2+
  2. GDB 8.3+
  3. GCC 13
  4. 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.

Xv6 for RISC-V

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.

About

This is my implementation of syscalls tracing system and copy on write (COW) mechanism, that I've implemented for xv6 educational kernel

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors