xv6

a simple, Unix-like teaching operating system

一个简易、类Unix教学操作系统

Russ
Cox
Frans
Kaashoek
Robert
Morris
xv6-book@pdos.csail.mit.edu
Draft
as of September 3, 2014

Contents

目录

0 Operating system interfaces 7

0 操作系统接口

1 Operating system organization 17

1 操作系统组织

2 Page tables 29

2 页表

3 Traps, interrupts, and drivers 37

3 陷入、中断和驱动

4 Locking 49

4 锁

5 Scheduling 57

5 调度

6 File system 71

6 文件系统

7 Summary 87

7 总结

A PC hardware 89

A PC硬件

B The boot loader 93

B 引导加载程序

Index 99

索引

Foreword and acknowledgements

前言和致谢

This
is a draft text intended for a class on operating systems. It explains the main
concepts of operating systems by studying an example kernel, named xv6. 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 in ANSI C
for an x86-based multiprocessor.

这是一份用于操作系统课程的草案。通过研究名为xv6的实例内核来阐明操作系统的主要概念。xv6是在Dennis Ritchie和Ken Thompson的Unix Version6(v6)基础之上重新实现的。xv6大致遵循了v6的结构和风格,但它是基于x86多核架构的ANSI C实现。

The
text should be read along with the source code for xv6. This approach is
inspired
by
John Lions’s Commentary on UNIX 6th Edition (Peer to Peer Communications; ISBN:
1-57398-013-7; 1st edition (June 14, 2000)). See http://pdos.csail.mit.edu/6.828
for pointers to on-line resources for v6 and xv6.

这本教材需要与xv6源码配套阅读。这是John Lions’s在UNIX 6th Edition (Peer to Peer Communications; ISBN:
1-57398-013-7; 1st edition (June 14, 2000))的评注中推荐的方式。v6和xv6的在线资源可参见http://pdos.csail.mit.edu/6.828。

We
have used this text in 6.828, the operating system class at MIT. We thank the
faculty, TAs, and students of 6.828 who all directly or indirectly contributed
to xv6. In particular,
we would like to thank Austin Clements and Nickolai Zeldovich.

我们已经在MIT操作系统课程6.828中使用了本教材。感谢6.828课程中所有教职员工、助教和学生们,他们都直接或间接的为xv6做出了贡献。此处我们还要向Austin Clements和Nickolai Zeldovich致以特别的感谢。

book-rev8的更多相关文章

  1. CRC 自动判断大端 小端

    /* aos_crc64.c -- compute CRC-64 * Copyright (C) 2013 Mark Adler * Version 1.4 16 Dec 2013 Mark Adle ...

随机推荐

  1. UCOSIII内嵌信号量

    不仅能够简化代码,而且比使用独立的信号量更有效 API函数 //等待-1 OS_SEM_CTR OSTaskSemPend (OS_TICK timeout, OS_OPT opt, CPU_TS * ...

  2. adb命令获取app布局文件xml

    adb shell /system/bin/uiautomator dump --compressed /data/local/tmp/uidump.xml adb pull /data/local/ ...

  3. 聊Java中的任务调度的实现方法及比较

    前言 任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务.本文由浅入深介绍四种任务调度的 Java 实现: Timer ScheduledExecutor 开源工具包 Quartz ...

  4. Linux之nginx负载均衡

    Nginx负载均衡概述 Web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台WEB服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到我们的后端服务器集群中,实现 ...

  5. swagger是什么OpenAPI是什么

    wiki: https://en.wikipedia.org/wiki/OpenAPI_Specification 官网: https://swagger.io/specification/

  6. php工具、拓展下载地址

    php工具.拓展下载地址 php各版本下载地址: https://windows.php.net/downloads/releases/archives/ php_redis 下载地址 windwos ...

  7. wordpress实现主动推送+熊掌号推送同步进行

    今天给一个朋友http://www.myunigift.cn/ 这个站点是用wordpress,今天帮他改造熊掌号,于是做了数据同步推送. 只要把下面的代码写到funtions.php里面,发布文章的 ...

  8. spring+mybatis通用dao层、service层的实现

    个人理解: 1.mybatis-spring.jar 提供了SqlSessionTemplate类该类可以对数据库进行CRUD操作(底层其实还是SqlSession) 2.我们可以集成SqlSessi ...

  9. php 递归算法

    通过递归实现阶乘 function multi($n){ if($n == 0){ return 1 ;//终止递归 } $value = $n * multi($n-1); return $valu ...

  10. python递归的最大层数?

    Python的最大递归层数是可以设置的,默认的在window上的最大递归层数是 998. 可以通过sys.setrecursionlimit()进行设置,但是一般默认不会超过3925-3929这个范围 ...