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. Multipath 多路径配置说明

    查看主机或者存储交换机上的www号,在存储上将LUN映射给需要的主机 cat  /sys/class/fc_host/host*/port_name 0x2002d0431efb7f5d 6d 该ww ...

  2. Android Jetpack组件

    带你领略Android Jetpack组件的魅力 Android新框架jetpack的内容讲解:Room.WorkManager.LifeCycles.LiveData.ViewModel.DataB ...

  3. 那些年伴我一起成长的SAP装备

    今天这篇文章无关技术,我们来聊聊SAP装备,即打上了SAP logo的那些物品. 但凡在SAP圈子工作过一段时间的从业者们,手上或多或少都拥有一些此类装备.Jerry当然也不例外,这些装备无论物品本身 ...

  4. Python学习日记(三) 学习使用dict

    数据按类型可划分为: 不可变数据类型(可哈希):元祖.string.int.bool 可变数据类型(不可哈希):dict.list 集合本身是可变数据类型,元素是不可变数据类型 字典中的key必须是不 ...

  5. SQL SERVER-解析Extendevent文件数据

    --解析xel数据 select SWITCHOFFSET(n.value('@timestamp','Datetime'),'+08:00') as EventTime, n.value('(dat ...

  6. Android笔记(五十六) Android四大组件之一——ContentProvider,实现自己的ContentProvider

    有时候我们自己的程序也需要向外接提供数据,那么就需要我们自己实现ContentProvider. 自己实现ContentProvider的话需要新建一个类去继承ContentProvider,然后重写 ...

  7. 基于335X的Linux网口驱动分析

    基于335X的linux网口驱动分析 一. 系统构成 1.  硬件平台 AM335X 2.  LINUX内核版本 4.4.12 二. 网口驱动构架(mdio部分) mdio网口驱动部分 使用 总线.设 ...

  8. cpio命令

    RPM包中文件提取 cpio命令主要有三种基本模式:"-o"模式指的是copy-out模式,就是把数据备份到文件库中:"-i"模式指的是copy-in模式,就是 ...

  9. 防火墙firewall

    开放端口       firewall-cmd --zone=public --add-port=80/tcp     firewall-cmd --zone=public --add-port=80 ...

  10. Java精通并发-多线程同步关系实例剖析与详解

    在上一次https://www.cnblogs.com/webor2006/p/11422587.html中通过实践来解了一个案例,先来回顾一下习题: 编写一个多线程程序,实现这样的一个目标: 1.存 ...