Skip to content

Connor-GH/xv6-public

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xv6 work continued from the MIT PDOS team

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.

Enchancements from the original XV6:

  • fixed broken SMP due to a QEMU regression
  • added users, groups, and permissions
  • organized files into /etc, /bin, and /dev
  • ACPI support; falls back to MPS if it fails.
  • reboot(1), which can either halt (-h) or poweroff (-p)
  • organized file structure support; kernel and userland has a clear separation.
  • syscall fuzzing (in the works)
  • D language support (look in d/)
  • fixed general system ABIs and behaviors to make them align with POSIX.
  • doubly indirect block pointer inodes (max filesize 1MiB -> 512MiB)
  • ls(1) now has -h, -l, -i, and -p
  • 64-bit port, code pulled from swetland/xv6
  • multiboot2 support

dependencies

  • gcc/clang
  • ld/lld
  • objdump, objcopy, ar, ranlib
  • dmd/ldc2/gdc
  • qemu
  • gmake
  • grub-mkrescue
  • xorriso

BUILDING AND RUNNING XV6

run "make qemu" with a compiler capable of producing ELF files.

On linux-based systems and FreeBSD systems, this means the native compiler.

TODO

  • XHCI USB keyboard support
  • SATA drive support

Packages

No packages published

Languages

  • C 86.9%
  • Assembly 8.8%
  • Makefile 3.3%
  • Other 1.0%