Xv6
Encyclopedia
xv6 is a modern reimplementation of Sixth Edition Unix in ANSI C
ANSI C
ANSI C refers to the family of successive standards published by the American National Standards Institute for the C programming language. Software developers writing in C are encouraged to conform to the standards, as doing so aids portability between compilers.-History and outlook:The first...

 for multiprocessor
Multiprocessor
Computer system having two or more processing units each sharing main memory and peripherals, in order to simultaneously process programs.Sometimes the term Multiprocessor is confused with the term Multiprocessing....

 x86 systems. It is used for pedagogical purposes in MIT's Operating Systems Engineering (6.828) course. Unlike Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 or BSD, xv6 is simple enough to cover in a semester, yet still contains the important concepts and organization of Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

. Rather than study the original V6 code, the course uses xv6 since PDP-11
PDP-11
The PDP-11 was a series of 16-bit minicomputers sold by Digital Equipment Corporation from 1970 into the 1990s, one of a succession of products in the PDP series. The PDP-11 replaced the PDP-8 in many real-time applications, although both product lines lived in parallel for more than 10 years...

 machines are not widely available and the original operating system was written in archaic pre-ANSI C.

One intriguing feature of the Makefile for xv6 is the option to produce a PDF of the entire source code listing in a readable format. The entire printout is only 91 pages, including cross references. This is reminiscent of the original V6 source code, which was published in a similar form in Lions' Commentary on UNIX 6th Edition, with Source Code
Lions' Commentary on UNIX 6th Edition, with Source Code
Lions' Commentary on UNIX 6th Edition, with Source Code by John Lions contains the complete source code of the 6th Edition Unix kernel plus a commentary. It is commonly referred to as the Lions book...

.

xv6 has also been used in operating systems courses at Rutgers University
Rutgers University
Rutgers, The State University of New Jersey , is the largest institution for higher education in New Jersey, United States. It was originally chartered as Queen's College in 1766. It is the eighth-oldest college in the United States and one of the nine Colonial colleges founded before the American...

, Yale University
Yale University
Yale University is a private, Ivy League university located in New Haven, Connecticut, United States. Founded in 1701 in the Colony of Connecticut, the university is the third-oldest institution of higher education in the United States...

, Johns Hopkins University
Johns Hopkins University
The Johns Hopkins University, commonly referred to as Johns Hopkins, JHU, or simply Hopkins, is a private research university based in Baltimore, Maryland, United States...

, Tsinghua University
Tsinghua University
Tsinghua University , colloquially known in Chinese as Qinghua, is a university in Beijing, China. The school is one of the nine universities of the C9 League. It was established in 1911 under the name "Tsinghua Xuetang" or "Tsinghua College" and was renamed the "Tsinghua School" one year later...

 and the University of Wisconsin-Madison.

Unofficial Extensions

Efforts are under-way to port xv6 to the ARM architecture
ARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...

 and to extend it with virtual memory
Virtual memory
In computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage , allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which...

 support. Other projects include new process schedulers. Many of the projects from the MIT course involved writing new functionality for the kernel as well.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK