xv6 is a modern re-implementation of Sixth Edition Unix in ANSI C for multiprocessor x86/x86_64 systems.
.cvsignore | ||
8253pit.c | ||
asm.h | ||
bio.c | ||
bootasm.S | ||
bootmain.c | ||
bootother.S | ||
buf.h | ||
cat.c | ||
console.c | ||
defs.h | ||
dev.h | ||
dot-bochsrc | ||
echo.c | ||
elf.h | ||
fcntl.h | ||
file.c | ||
file.h | ||
fs.c | ||
fs.h | ||
fsvar.h | ||
ide.c | ||
init.c | ||
ioapic.c | ||
ioapic.h | ||
kalloc.c | ||
lapic.c | ||
ls.c | ||
main.c | ||
Makefile | ||
mkdir.c | ||
mkfs.c | ||
mmu.h | ||
mp.c | ||
mp.h | ||
Notes | ||
param.h | ||
picirq.c | ||
pipe.c | ||
printf.c | ||
proc.c | ||
proc.h | ||
README | ||
rm.c | ||
runoff | ||
runoff.list | ||
setjmp.S | ||
sh.c | ||
sign.pl | ||
spinlock.c | ||
spinlock.h | ||
stat.h | ||
string.c | ||
syscall.c | ||
syscall.h | ||
sysfile.c | ||
sysproc.c | ||
trap.c | ||
trapasm.S | ||
traps.h | ||
types.h | ||
ulib.c | ||
umalloc.c | ||
user.h | ||
usertests.c | ||
usys.S | ||
vectors.pl | ||
x86.h |
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. xv6 is inspired by John Lions' Commentary on UNIX 6th Edition (Peer to Peer Communications; ISBN: 1-57398-013-7; 1st edition (June 14, 2000)). See also http://pdos.csail.mit.edu/6.828/2006/v6.html, which provides pointers to on-line resources for v6. xv6 borrows code from the following sources: JOS (asm.h, elf.h, mmu.h, bootasm.S, ide.c, console.c, and others) Plan 9 (bootother.S, mp.h, mp.c, ioapic.h, lapic.c) FreeBSD (ioapic.c) NetBSD (console.c) The following people made contributions: Russ Cox (context switching, locking) Cliff Frey (MP) Xiao Yu (MP) If you spot errors or have suggestions for improvement, please send email to Frans Kaashoek and Robert Morris ({kaashoek,rtm}@csail.mit.edu). This version is the very first one, so don't be surprised if there are errors or the code is unclear.