xv6 inside-out
An OS-internals hands-on workshop


xv6 inside-out is a hands-on workshop that uses and explores xv6 (a teaching OS developed at MIT) to understand and illustrate the concepts, design and implementation details of an operating system. The workshop will also discuss and implement extensions to the xv6 operating system.

Pre-requisites
  • A keen interest in getting to know under-the-hood details and OS internals
  • Familiarity with operating system concepts (this workshop is NOT an introductory OS course)
  • Exposure to Linux, shell scripting, programming in C and gdb is recommended

  • Dates: 12th, 13th, 14th December 2024 (event poster)

    Venue: Lab L06, Vidyalankar Institute of Technology, Mumbai and SL2, CSE, IIT Bombay

    Faculty Instructor: Prof. Puru

    Staff and TAs: nagesh, debojeet, khushboo, utkarsh, preeti, shivansh, kevin ...

    xv6 setup:
  • Option1: via Virtual box
    Please use the following VM image with VirtualBox to get a xv6-ready VM installed.
    The VM image is available here. (username: xv6user, password: xv6user@123)
  • Option2: via WSL on Windows: follow these steps.
  • Option3: on native Linux: follow these steps.

    Some helpful links for warmup: Linux introduction, Shell scripting, C and Makefiles

    (tentative) Schedule:
    Day 1

    (slides)
    Day 2

    Day 3

    9am to 10.45am xv6 setup and usage implementing the spawn system call context switching mechanism
    11am to 1pm system call usage, processes and a shell memory handling with xv6 process scheduling and extensions
    2pm to 3.45pm adding new system calls to xv6 virtual addresses, physical addresses and the page table xv6 file system basics
    4pm to 5.30pm probing the process implementation page fault handling and lazy page allocation additional exercises and project ideas

    Resources:
    1. xv6:   main page     xv6 book     source code booklet
    2. OS Labs @ IITB:   link1     link2     link3
    3. xv6 notes:   link Lecture 21 onwards.
    4. OS Course notes:   link1     link2
    5. Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
    6. Operating System Concepts, by Silberschatz, Galvin and Gagne
    7. Think OS, A Brief Introduction to Operating Systems by Allen B. Downey