xv6
| Company / developer | MIT |
|---|---|
| Programmed in | C |
| OS family | Unix-like |
| Source model | Free Software / Open source |
| Latest stable release | rev6 / 7 Sep 2011 |
| Available language(s) | English |
| Supported platforms | multiprocessor Intel x86 |
| Kernel type | Monolithic |
| Default user interface | Command-line interface |
| License | MIT license |
| Official website | http://pdos.csail.mit.edu/6.828/xv6/ |
xv6 is a modern reimplementation of Sixth Edition Unix in ANSI C for multiprocessor x86 systems. It is used for pedagogical purposes in MIT's Operating Systems Engineering (6.828) course. Unlike Linux or BSD, xv6 is simple enough to cover in a semester, yet still contains the important concepts and organization of Unix[1]. Rather than study the original V6 code, the course uses xv6 since PDP-11 machines are not widely available and the original operating system was written in archaic pre-ANSI C[1].
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[2]. 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.
xv6 has also been used in operating systems courses at Rutgers University[3], Yale University[4], Johns Hopkins University[5], Tsinghua University[6] and the University of Wisconsin-Madison[7].
[edit] Unofficial Extensions
Efforts are under-way to port xv6 to the ARM architecture[8] and to extend it with virtual memory[9] support. Other projects include new process schedulers[10]. Many of the projects from the MIT course involved writing new functionality for the kernel as well.
[edit] References
- ^ a b "Xv6, a simple Unix-like teaching operating system". http://pdos.csail.mit.edu/6.828/xv6. Retrieved 2010-02-05.
- ^ "xv6 source listing" (pdf). http://pdos.csail.mit.edu/6.828/2011/xv6/xv6-rev6.pdf. Retrieved 2011-10-15.
- ^ "01:198:416: Operating Systems Design". http://www.cs.rutgers.edu/~iftode/cs416_2008.html. Retrieved 2010-02-05.
- ^ "CS422/522: Operating Systems, Spring 2010 — Overview". http://zoo.cs.yale.edu/classes/cs422/2010/info. Retrieved 2010-02-05.
- ^ "600.318/418: Operating Systems". http://gaming.jhu.edu/~phf/2010/spring/cs318/. Retrieved 2010-02-28.
- ^ "FrontPage - OS Teaching Wiki". http://os.cs.tsinghua.edu.cn/oscourse. Retrieved 2010-03-18.
- ^ "CS-537: Introduction to Operating Systems". http://pages.cs.wisc.edu/~remzi/Classes/537/Fall2011/. Retrieved 2011-11-04.
- ^ "xv6-on-arm". http://code.google.com/p/xv6-on-arm/. Retrieved 2009-01-22.
- ^ "xv6-vm". http://code.google.com/p/xv6-vm/. Retrieved 2009-01-22.
- ^ "xv6sched". http://code.google.com/p/xv6shed/. Retrieved 2009-01-22.
[edit] External links
- xv6 Home page
- git://pdos.csail.mit.edu/xv6/xv6.git Source code for xv6
- Printable version of the xv6 source code
- xv6: a simple, Unix-like teaching operating system., xv6 book.
- Operating Systems Engineering (6.828)
|
|
|||||