xv6

xv6
xv6 startup, and using the "ls" command
DeveloperMIT
Written inC and assembly
OS familyUnix-like
Source modelOpen source
Latest release
RISC-V:rev5 / September 2, 2025 (2025-09-02)
x86-32 (EOL):rev11 / September 2, 2018 (2018-09-02)
x86-64:rev1 / September 1, 2025 (2025-09-01)
Available inEnglish
Supported platformsmultiprocessor Intel x86 and RISC-V
Kernel typeMonolithic
Default
user interface
Command-line interface
LicenseMIT license
Official websitepdos.csail.mit.edu/6.1810/xv6

xv6 is a modern reimplementation of Sixth Edition Unix in ANSI C for multiprocessor x86 and RISC-V systems. It was created for educational purposes in MIT's Operating System Engineering course in 2006.[1]

Purpose

MIT's Operating System Engineering course formerly used the original V6 source code. xv6 was created as a modern replacement, because PDP-11 machines are not widely available and the original operating system was written in archaic pre-ANSI C. Unlike Linux or BSD, xv6 is simple enough to cover in a semester, yet still contains the important concepts and organization of Unix.[1]

Self-documentation

One feature of the Makefile for xv6 is the option to produce a PDF of the entire source code listing in a readable format. The entire printout is only 99 pages, including cross references.[2] This is reminiscent of the original V6 source code, which was published in a similar form in Lions' Commentary on UNIX 6th Edition, with Source Code.

Educational use

xv6 has been used in operating systems courses at many universities, including:

  • Adolfo Ibanez University
  • University of the Andes (Colombia)
  • Ben-Gurion University[3]
  • Binghamton University
  • Boston College
  • CentraleSupélec
  • Columbia University[4]
  • Ghulam Ishaq Khan Institute[5]
  • Federico Santa María Technical University
  • George Washington University[6]
  • Nile University[7]
  • Georgia Tech[8]
  • IIIT Allahabad
  • IIT Bhubaneswar and PEC Chandigarh
  • IIT Bombay[9]
  • IIT Delhi
  • IIT Madras
  • IIT Gandhinagar
  • IIIT Delhi
  • IIIT Bangalore
  • IIIT Hyderabad
  • Iran University of Science and Technology[10]
  • Johns Hopkins University[11]
  • Karlsruhe Institute of Technology[12]
  • Linnaeus University[13]
  • Milwaukee School of Engineering
  • Motilal Nehru National Institute of Technology Allahabad
  • National Taiwan University[14]
  • National University of Córdoba[15]
  • National University of Río Cuarto[16]
  • New York University
  • Northeastern University[17]
  • Northwestern University[18]
  • Portland State University[19]
  • Rutgers University[20]
  • Slovak University of Technology in Bratislava[21]
  • Southern Adventist University[22]
  • Stony Brook University[23]
  • Technion – Israel Institute of Technology[24]
  • Télécom SudParis[25]
  • Tsinghua University[26]
  • Federal University of Minas Gerais[27]
  • University College Dublin[28]
  • University of Belgrade School of Electrical Engineering[29]
  • University of California, Irvine
  • University of California, Riverside[30]
  • University of Delaware[31]
  • University of Hyderabad
  • University of Illinois at Chicago[32]
  • University of Leeds[33]
  • University of Modena and Reggio Emilia[34]
  • University of Otago[35]
  • University of Palermo[36]
  • University of Pittsburgh[37]
  • University of Strasbourg[38]
  • University of South Florida[39]
  • University of Tehran[40]
  • University of Texas at Austin[41]
  • University of Utah[42][43]
  • University of Virginia[44]
  • University of Wisconsin–Madison[45]
  • University of Kassel
  • Yale University[46]

See also

References

  1. ^ a b "Xv6, a simple Unix-like teaching operating system". Retrieved 2025-05-06. Xv6 is a teaching operating system developed in the summer of 2006
  2. ^ "xv6 source listing (x86 only, not available for RISC-V)" (pdf). Retrieved 2018-01-10.
  3. ^ "Operating Systems – 2012/Spring – Main". Retrieved 2012-03-26.
  4. ^ "COMS W4118: Operating Systems I, Fall 2013". Retrieved 2013-09-09.
  5. ^ "Operating Systems, Fall 2022". Retrieved 2022-12-09.
  6. ^ "CSCI 3411 – Operating Systems, Fall 2018". Retrieved 2018-09-27.
  7. ^ "ECEN427 - Operating Systems, Fall 2023". Retrieved 2023-09-27.
  8. ^ "General Information — CS-3210, Fall 2017 1 documentation". cs3210.cc.gatech.edu. Retrieved 2019-06-21.
  9. ^ "Lecture Notes on Operating Systems". www.cse.iitb.ac.in. Retrieved 2020-09-28.
  10. ^ "iust os". os-course.github.io. Retrieved 2020-11-14.
  11. ^ "600.318/418: Operating Systems". Archived from the original on 2015-11-04. Retrieved 2015-11-07.
  12. ^ "Basispraktikum Betriebssystementwicklung, ST 2024". Archived from the original on 2024-10-04. Retrieved 2024-11-13.
  13. ^ "1DV201: Operating system". Retrieved 2013-03-14.
  14. ^ "課程大綱".
  15. ^ "SistOp14: Operating Systems". Retrieved 2015-08-06.
  16. ^ "Operating Systems". Retrieved 2015-08-06.
  17. ^ "CS 3650: Computer Systems, Fall 2014". Retrieved 2014-12-09.
  18. ^ "EECS 343: Operating System, Fall 2016–17". Archived from the original on 2018-10-24. Retrieved 2018-11-11.
  19. ^ "CS 333 Introduction to Operating Systems". Archived from the original on 2018-10-25. Retrieved 2018-04-10.
  20. ^ "01:198:416: Operating Systems Design". Archived from the original on 2012-09-11. Retrieved 2010-02-05.
  21. ^ "Operačné systémy". UIM (in Slovak). Retrieved 2019-10-28.
  22. ^ "School of Computing at Southern Adventist University". Archived from the original on 2018-10-20. Retrieved 2017-12-10.
  23. ^ "CSE 306 -- Course Information". Retrieved 2021-04-14.
  24. ^ "094210 Computer Organization and Operating System, Spring 2020". Retrieved 2020-05-14.
  25. ^ "CSC 4508 - Operating Systems". Retrieved 2024-06-26.
  26. ^ "FrontPage – OS Teaching Wiki". Retrieved 2010-03-18.
  27. ^ "DCC605: Sistemas Operacionais". Retrieved 2015-11-16.
  28. ^ "COMP20180 Intro to Operating Systems". Retrieved 2023-04-04.
  29. ^ "Operativni sistemi 2 - Projektni zadatak" (in Serbian). Archived from the original on September 22, 2020. Retrieved 2021-11-20. Zadatak studenta je da izmeni deo operativnog sistem xv6 tako da podrži raspoređivače čije je opis dat u ovom projektu.
  30. ^ "CS 202: Advanced Operating System". Retrieved 2017-12-02.
  31. ^ "CISC361: Operating Systems". Retrieved 2025-03-31.
  32. ^ "CS385 – Operating Systems Concepts and Design". Archived from the original on 2021-09-21. Retrieved 2015-03-18.
  33. ^ "Module and Programme Catalogue". webprod3.leeds.ac.uk. Retrieved 2020-10-14.
  34. ^ "Progettazione di Sistemi Operativi". Archived from the original on 2021-09-21. Retrieved 2017-10-09.
  35. ^ "COSC440: Advanced Operating system". Archived from the original on 2022-02-09. Retrieved 2015-07-14.
  36. ^ "Sistemi Operativi". Retrieved 2015-10-18.
  37. ^ "CS 1550 Introduction to Operating Systems (COE 1550) -Fall 2020". people.cs.pitt.edu. Retrieved 2020-09-28.
  38. ^ "Conception des Systèmes d'Exploitation".
  39. ^ "COP6611 Operating Systems - Fall 2023".
  40. ^ "Operating Systems instructed by Dr. Mehdi Kargahi".
  41. ^ "Master's in Computer Science | Computer & Data Science Online". cdso.utexas.edu. Retrieved 2025-05-10.
  42. ^ "CS 6460: Operating Systems". Retrieved 2014-01-20.
  43. ^ "Embedded in Academia : Xv6". Retrieved 2014-04-08.
  44. ^ "CS4414: XV6 introduction". Retrieved 2022-02-27.
  45. ^ "CS-537: Introduction to Operating Systems". Retrieved 2011-11-04.
  46. ^ "CS422/522: Operating Systems, Spring 2010 — Overview". Archived from the original on 2012-07-23. Retrieved 2010-02-05.

RISC-V:

x86-32 (unmaintained):

x86-64 (maintained by University of Strasbourg):