Unix内核源码剖析 摘记

2016,开始阅读Unix&Linux相关。从源码开始吧!

选了《Unix内核源码剖析》: 青柳隆宏 这本书。

第一章 什么是UnixV6

UNIX V6派生出来的产品还有很多,但是本书以其原始版本, 即在DEC公司的PDP-11/40设备上运行的系统内核作为说明对象。

大多数最新的操作系统都和UNIX(V6)有着千丝万缕的联系

对 PDP-11/40而言, 1个字的宽度为16比特
PDP-11/40以及周边设备的寄存器被映射到内存最高位的8KB空间,因此可以采用与操作内存相同的方法操作寄存器。这种方式被称为内存映射 I/O。
PSW
PDP-11/40拥有一个被称为处理器状态字(Processor Status Word PSW)的 16位的寄存器(表1-1)。PSW表示处理器的状态。
通用寄存器
PDP-11具有r0r78个通用寄存器。其中只有r6为两个,分别对应用户模式和内核模式。在切换PSW的当前模式时,r6在硬件上也会自动切换。
MMU
内存管理单元(MMUMemory Management Unit)用于地址变换以及访问权限管理。PDP-11/40以长度为8KB的段(segment)或页(page)为单位,对进程所需的内存进行管理。MMU具有两个状态寄存器(Status Register SR0SR2SR0用于保存出错信息和内存管理的有效标志SR2用于保存目标指令的16位虚拟地址,可用来确定引起错误的指令。
内存
内存以8比特(1字节)为单位赋予地址。地址长度为18比特,因此内存容量为218=256KBPDP-11/40将周边设备的寄存器映射到内存高位8KB的地址空间
块设备
磁盘设备或磁带设备等块设备可以容纳大量数据。文件系统构筑于块设备之上。

第二章 进程
2.1 进程拥有独立的虚拟地址空间,可以使用虚拟地址空间内的地址(虚拟地址),由MMU转换为实际的内存地址(物理地址)。


即使只有1个物理CPU, 也可以并行处理多个程序。采用这种方式的系统被称为分时系统。
2.2 用户模式和内核模式

将用户模式时的虚拟地址空间称为用户空间, 内核模式时的虚拟地址空间称为内核空间。
内核定期将处于休眠状态、重要度较低的进程(所需的数据)会从内存转移到交换空间(swap out,换出),或者将交换空间中已处于可执行状态的进程重新恢复到内存(swap in,换入)。这个处理被称为交换处理。


















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录 献辞 致谢 序(一) 序(二) 历史注记 上篇 UNIX操作系统版本6源代码 UNIX操作系统过程分类索引 3 UNIX操作系统文件及过程 5 UNIX操作系统定义的符号列表 7 UNIX操作系统源代码交叉引用列表 9 第一部分 初始化、进程初始化 25 第二部分 陷入、中断、系统调用和 进程管理 75 第三部分 程序交换、基本输入/输出、 块设备 109 第四部分 文件和目录、文件系统、管道 133 第五部分 面向字符的特殊文件 181 下篇 莱昂氏UNIX源代码分析 前言 207 第1章 绪论 209 1.1 UNIX操作系统 209 1.2 公用程序 209 1.3 其他文档 210 1.4 UNIX程序员手册 210 1.5 UNIX文档 211 1.6 UNIX操作系统源代码 211 1.7 源代码中各部分 212 1.8 源代码文件 212 1.9 分析的使用 212 1.10 对程序设计水平的一条注释 212 第2章 基础知识 214 2.1 处理机 214 2.2 处理机状态字 214 2.3 通用寄存器 214 2.4 指令集 215 2.5 寻址方式 216 2.5.1 寄存器方式 217 2.5.2 寄存器延迟方式 217 2.5.3 自动增1方式 217 2.5.4 自动减1方式 217 2.5.5 变址方式 217 2.5.6 立即方式 218 2.5.7 相对方式 218 2.6 UNIX汇编程序 219 2.7 存储管理 219 2.8 段寄存器 220 2.9 页说明寄存器 220 2.10 存储分配 220 2.11 状态寄存器 221 2.12 “i”和“d”空间 221 2.13 启动条件 221 2.14 专用设备寄存器 221 第3章 阅读“C”程序 222 3.1 某些选出的例子 222 3.2 例1 222 3.3 例2 223 3.4 例3 223 3.5 例4 225 3.6 例5 225 3.7 例6 227 3.8 例7 227 3.9 例8 228 3.10 例9 228 3.11 例10 229 3.12 例11 229 3.13 例12 230 3.14 例13 230 3.15 例14 231 3.16 例15 231 3.17 例16 232 3.18 例17 233 第4章 概述 235 4.1 变量分配 235 4.2 全局变量 235 4.3 “C”预处理程序 235 4.4 第一部分 236 4.4.1 第1组“.h”文件 236 4.4.2 汇编语言文件 237 4.4.3 在第一部分中的其他文件 237 4.5 第二部分 237 4.6 第三部分 238 4.7 第四部分 238 4.8 第五部分 239 第一部分 初始化、进程初始化 第5章 两个文件 241 5.1 文件malloc.c 241 5.1.1 列表维护规则 241 5.1.2 malloc(2528) 242 5.1.3 mfree(2556) 243 5.1.4 结论 244 5.2 文件prf.c 244 5.2.1 printf(2340) 244 5.2.2 printn(2369) 245 5.2.3 putchar(2386) 246 5.2.4 panic(2419) 247 5.2.5 prdev(2433)、deverror(2447) 247 5.3 包含的文件 247 第6章 系统初启 249 6.1 操作员的动作 249 6.2 start(0612) 249 6.3 main(1550) 251 6.4 进程 252 6.5 proc〔0〕的初始化 252 6.6 sched(1940) 253 6.7 sleep(2066) 253 6.8 swtch(2178) 253 6.9 再回到main 254 第7章 进程 256 7.1 进程映像 256 7.2 proc结构(0358) 257 7.3 user结构(0413) 257 7.4 每个进程数据区 258 7.5 段 258 7.6 映像的执行 258 7.7 核心态执行 259 7.8 用户态执行

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值