xref: /xv6-public/README (revision b2ca8e3e)
1xv6 is a re-implementation of Dennis Ritchie's and Ken Thompson's Unix
2Version 6 (v6).  xv6 loosely follows the structure and style of v6,
3but is implemented for a modern x86-based multiprocessor using ANSI C.
4
5ACKNOWLEDGMENTS
6
7xv6 is inspired by John Lions's Commentary on UNIX 6th Edition (Peer
8to Peer Communications; ISBN: 1-57398-013-7; 1st edition (June 14,
92000)). See also http://pdos.csail.mit.edu/6.828/2016/xv6.html, which
10provides pointers to on-line resources for v6.
11
12xv6 borrows code from the following sources:
13    JOS (asm.h, elf.h, mmu.h, bootasm.S, ide.c, console.c, and others)
14    Plan 9 (entryother.S, mp.h, mp.c, lapic.c)
15    FreeBSD (ioapic.c)
16    NetBSD (console.c)
17
18The following people have made contributions: Russ Cox (context switching,
19locking), Cliff Frey (MP), Xiao Yu (MP), Nickolai Zeldovich, and Austin
20Clements.
21
22We are also grateful for the bug reports and patches contributed by Silas
23Boyd-Wickizer, Anton Burtsev, Cody Cutler, Mike CAT, Tej Chajed, Nelson Elhage,
24Saar Ettinger, Alice Ferrazzi, Nathaniel Filardo, Peter Froehlich, Yakir Goaron,
25Shivam Handa, Bryan Henry, Jim Huang, Alexander Kapshuk, Anders Kaseorg,
26kehao95, Wolfgang Keller, Eddie Kohler, Austin Liew, Imbar Marinescu, Yandong
27Mao, Hitoshi Mitake, Carmi Merimovich, Mark Morrissey, Joel Nider, Greg Price,
28Ayan Shafqat, Eldar Sehayek, Yongming Shen, Cam Tenny, Rafael Ubal, Warren
29Toomey, Stephen Tu, Pablo Ventura, Xi Wang, Keiichi Watanabe, Nicolas Wolovick,
30Grant Wu, Jindong Zhang, Icenowy Zheng, and Zou Chang Wei.
31
32The code in the files that constitute xv6 is
33Copyright 2006-2018 Frans Kaashoek, Robert Morris, and Russ Cox.
34
35ERROR REPORTS
36
37Please send errors and suggestions to Frans Kaashoek and Robert Morris
38(kaashoek,rtm@mit.edu). The main purpose of xv6 is as a teaching
39operating system for MIT's 6.828, so we are more interested in
40simplifications and clarifications than new features.
41
42BUILDING AND RUNNING XV6
43
44To build xv6 on an x86 ELF machine (like Linux or FreeBSD), run
45"make". On non-x86 or non-ELF machines (like OS X, even on x86), you
46will need to install a cross-compiler gcc suite capable of producing
47x86 ELF binaries. See http://pdos.csail.mit.edu/6.828/2016/tools.html.
48Then run "make TOOLPREFIX=i386-jos-elf-". Now install the QEMU PC
49simulator and run "make qemu".
50