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