diff options
author | Frans Kaashoek <[email protected]> | 2011-09-05 20:54:25 -0400 |
---|---|---|
committer | Frans Kaashoek <[email protected]> | 2011-09-05 20:54:25 -0400 |
commit | 5f46b272fe315cf477e45ec8523aba21d10b52e6 (patch) | |
tree | 086c88d017388de0a7d7182dd39e2fb9fa484343 | |
parent | 79bc8be8de903ff69deb01a3945e52effda5436d (diff) | |
download | xv6-labs-5f46b272fe315cf477e45ec8523aba21d10b52e6.tar.gz xv6-labs-5f46b272fe315cf477e45ec8523aba21d10b52e6.tar.bz2 xv6-labs-5f46b272fe315cf477e45ec8523aba21d10b52e6.zip |
Shorten history of xv6
Cut section about commentary
Add (failing) link to xv6 source section pointing to the text.
Delete the incorrect/incomplete list of universities using jos/xv6
-rw-r--r-- | web/index.html | 135 |
1 files changed, 20 insertions, 115 deletions
diff --git a/web/index.html b/web/index.html index d7bba91..c14e2d0 100644 --- a/web/index.html +++ b/web/index.html @@ -43,22 +43,15 @@ systems Engineering</a>. We hope that xv6 will be useful in other courses too. This page collects resources to aid the use of xv6 in other courses, including a commentary on the source code itself. -<p><font color="red">Status: The xv6 code is in pretty good shape, but -the commentary is rough.</font> - <h2>History and Background</h2> -<p>For many years, MIT had no operating systems course. In the fall -of 2002, Frans Kaashoek, Josh Cates, and Emil Sit created a new, -experimental course (6.097) to teach operating systems engineering. -In the course lectures, the class worked through <a href="#v6">Sixth -Edition Unix (aka V6)</a> using John Lions's famous commentary. In -the lab assignments, students wrote most of an exokernel operating -system, eventually named Jos, for the Intel x86. Exposing students to -multiple systems–V6 and Jos–helped develop a sense of the -spectrum of operating system designs. In the fall of 2003, the -experimental 6.097 became the official course 6.828; the course has -been offered each fall since then. +<p>For many years, MIT had no operating systems course. In the fall of 2002, +one was created to teach operating systems engineering. In the course lectures, +the class worked through <a href="#v6">Sixth Edition Unix (aka V6)</a> using +John Lions's famous commentary. In the lab assignments, students wrote most of +an exokernel operating system, eventually named Jos, for the Intel x86. +Exposing students to multiple systems–V6 and Jos–helped develop a +sense of the spectrum of operating system designs. <p> V6 presented pedagogic challenges from the start. @@ -80,27 +73,18 @@ uniprocessors such as enabling/disabling interrupts) and helps relevance. Finally, writing a new system allowed us to write cleaner versions of the rougher parts of V6, like the scheduler and file system. -<p> 6.828 substituted xv6 for V6 in the fall of 2006. Based on -that experience, we cleaned up rough patches of xv6. Since then, xv6 -has stabilized, so we are making it available in the hopes that others -will find it useful too. - -<p> -6.828 uses both xv6 and Jos. -Courses taught at UCLA, NYU, Peking University, Stanford, Tsinghua, -and University Texas (Austin) have used -Jos without xv6; we believe other courses could use -xv6 without Jos, though we are not aware of any that have. +6.828 substituted xv6 for V6 in the fall of 2006. <h2>Xv6 sources</h2> -The latest xv6 is <a href="xv6-rev5.tar.gz">xv6-rev5.tar.gz</a>. -We distribute the sources in electronic form but also as -a printed booklet with line numbers that keep everyone -together during lectures. The booklet is available as -<a href="xv6-rev5.pdf">xv6-rev5.pdf</a>. -The xv6 source code is licensed under the traditional <a href="http://www.opensource.org/licenses/mit-license.php">MIT license</a>; -see the LICENSE file in the source distribution. +The latest xv6 is <a href="xv6-rev5.tar.gz">xv6-rev5.tar.gz</a>. We distribute +the sources in electronic form but also as a printed booklet with line numbers +that keep everyone together during lectures. The booklet is available as <a + href="xv6-rev5.pdf">xv6-rev5.pdf</a>. The xv6 source code is licensed under +the traditional <a href="http://www.opensource.org/licenses/mit-license.php">MIT +license</a>; see the LICENSE file in the source distribution. To help students +read through xv6 and learn about the main ideas in operating systems we also +distribute a <a href="book-rev6.pdf">textbook/commentary</a> for the latest xv6. <p> xv6 compiles using the GNU C compiler, @@ -115,89 +99,10 @@ can be found on the <a href="../2010/tools.html">6.828 tools page</a>. <h2>Xv6 lecture material</h2> -In 6.828, the lectures in the first half of the course introduce the -PC hardware, the Intel x86, and then xv6. The lectures in the second -half consider advanced topics using research papers; for some, xv6 -serves as a useful base for making discussions concrete. The lecture -notes are available from the 6.828 schedule page, and the chapters of -the commentary are below. - -<h2>Xv6 commentary (rough)</h2> - -<p>The chapters are rough drafts. - -<p>Introduction yet to be written.<br> -<ul> -<li>read with the code side by side -<li>code references look like (xxxx) or (xxxx-yyyy) in small text. -<li><a href="xv6-rev5.pdf">this pdf</a> is the one with matching line numbers. -<li>each chapter starts with an introduction to the topic, -spends most of the text on code, -and then wraps up talking about how xv6 -compares to real-world operating systems. -</ul> - -<a href="unix.pdf">Chapter 0: Operating system interfaces</a> -<blockquote> -The Unix system call interface. (rev 4) -</blockquote> - -<a href="boot.pdf">Chapter 1: Bootstrap</a> -<blockquote> -From power on to kernel start. (rev 4) -</blockquote> - -<a href="mem.pdf">Chapter 2: Processes</a> -<blockquote> -Memory and process allocation, segments, the first user process. (rev 4) -</blockquote> - -<a href="trap.pdf">Chapter 3: Traps</a> -<blockquote> -Low-level trap mechanism, trap handler, system call arguments, sbrk, fork. -</blockquote> - -<a href="lock.pdf">Chapter 4: Locks</a> -<blockquote> -Locks and interrupts. -</blockquote> - -<a href="sched.pdf">Chapter 5: Scheduling and coordination</a> -<blockquote> -Scheduling, sleep and wakeup, pipes, wait and exit. -</blockquote> - -<a href="disk.pdf">Chapter 6: Buffer cache</a> -<blockquote> -Buffer cache and IDE disk driver. -</blockquote> - -<a href="fsdata.pdf">Chapter 7: File system data</a> -<blockquote> -Block in use bitmap, block allocation, inode structure, inode contents, -directories, path names. -</blockquote> - -<a href="fscall.pdf">Chapter 8: File system calls</a> -<blockquote> -FIle descriptors, open, close, dup, read, write. -</blockquote> - -<a href="exec.pdf">Chapter 9: Exec</a> -<blockquote> -Exec -</blockquote> - -Appendix A: Low-level C and inline assembly -<blockquote> -Intro to C and inline assembly for people who only know Java (say). -Examples drawn entirely from xv6 source. -</blockquote> - -Appendix B: Additional drivers. -<blockquote> -Keyboard, screen, probably MP hardware. -</blockquote> +In 6.828, the lectures in the first half of the course cover the xv6 sources and +text. The lectures in the second half consider advanced topics using research +papers; for some, xv6 serves as a useful base for making discussions concrete. +The lecture notes are available from the 6.828 schedule page. <a name="v6"></a> <h2>Unix Version 6</h2> |