xref: /xv6-public/README (revision fa1b3410)
182537b71Srtmxv6 is a re-implementation of Dennis Ritchie's and Ken Thompson's Unix
282537b71SrtmVersion 6 (v6).  xv6 loosely follows the structure and style of v6,
382537b71Srtmbut is implemented for a modern x86-based multiprocessor using ANSI C.
4b52151e0Skaashoek
52e898063SkaashoekACKNOWLEDGEMENTS
62e898063Skaashoek
782537b71Srtmxv6 is inspired by John Lions' Commentary on UNIX 6th Edition (Peer
882537b71Srtmto Peer Communications; ISBN: 1-57398-013-7; 1st edition (June 14,
91cb183a9Srsc2000)). See also http://pdos.csail.mit.edu/6.828/2007/v6.html, which
1082537b71Srtmprovides pointers to on-line resources for v6.
11b52151e0Skaashoek
1282537b71Srtmxv6 borrows code from the following sources:
1382537b71Srtm    JOS (asm.h, elf.h, mmu.h, bootasm.S, ide.c, console.c, and others)
14801affcdSkaashoek    Plan 9 (bootother.S, mp.h, mp.c, ioapic.h, lapic.c)
15801affcdSkaashoek    FreeBSD (ioapic.c)
1682537b71Srtm    NetBSD (console.c)
17801affcdSkaashoek
18801affcdSkaashoekThe following people made contributions:
19801affcdSkaashoek    Russ Cox (context switching, locking)
20801affcdSkaashoek    Cliff Frey (MP)
21801affcdSkaashoek    Xiao Yu (MP)
22801affcdSkaashoek
23*fa1b3410SrscThe code in the files that constitute xv6 is
241cb183a9SrscCopyright 2006-2007 Frans Kaashoek, Robert Morris, and Russ Cox.
252e898063Skaashoek
262e898063SkaashoekERROR REPORTS
272e898063Skaashoek
28801affcdSkaashoekIf you spot errors or have suggestions for improvement, please send
29801affcdSkaashoekemail to Frans Kaashoek and Robert Morris
30*fa1b3410Srsc({kaashoek,rtm}@csail.mit.edu).
31641e29c5Skaashoek
322e898063SkaashoekBUIDLING AND RUNNING XV6
334d33ef86Srsc
344d33ef86SrscTo build xv6 on an x86 ELF machine (like Linux or FreeBSD), run "make".
354d33ef86SrscOn non-x86 or non-ELF machines (like OS X, even on x86), you will
364d33ef86Srscneed to install a cross-compiler gcc suite capable of producing x86 ELF
371cb183a9Srscbinaries.  See http://pdos.csail.mit.edu/6.828/2007/tools.html.
384d33ef86SrscThen run "make TOOLPREFIX=i386-jos-elf-".
394d33ef86Srsc
404d33ef86SrscTo run xv6, you can use Bochs or QEMU, both PC simulators.  Bochs makes
414d33ef86Srscdebugging easier, but QEMU is much faster.
424d33ef86SrscTo run in Bochs, run "make bochs" and then type "c" at the bochs prompt.
434d33ef86SrscTo run in QEMU, run "make qemu".  Both log the xv6 screen output to
444d33ef86Srscstandard output.
454d33ef86Srsc
464d33ef86SrscTo create a typeset version of the code, run "make xv6.pdf".
474d33ef86SrscThis requires the "mpage" text formatting utility.
484d33ef86SrscSee http://www.mesa.nl/pub/mpage/.
49