深入理解UNIX系统内核 [UNIX Internals: The New Frontiers]

深入理解UNIX系统内核 [UNIX Internals: The New Frontiers] pdf epub mobi txt 电子书 下载 2025

[美] Uresh Vahalia 著,李雨,薛磊,黄庆新 译
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 机械工业出版社
ISBN:9787111491453
版次:1
商品编码:11693886
品牌:机工出版
包装:平装
丛书名: 计算机科学丛书
外文名称:UNIX Internals: The New Frontiers
开本:16开
出版时间:2015-05-01
用纸:胶版纸
页数:484

具体描述

编辑推荐

  《深入理解UNIX系统内核》是UNIX领域的一部经典著作,已被翻译为4种语言,并被世界众多名校选定为操作系统课程的教材或参考书。书中从系统设计的角度深入剖析UNIX内核,介绍了一些主流的商业性和研究性的UNIX变种,对每一个核心部件,探究其结构和设计,然后讲述大部分系统是如何实现这些部件的,以及各种实现方案的优缺点。
  作者不仅介绍了UNIX内核的若干重要组件,而且对不同UNIX版本的功能设计进行比较,探讨了在设计上的权衡思考,还介绍已经得到广泛应用的功能实现。本书讲解巨细靡遗,实现细节展示清晰,包含了作者丰富的实践经验,非常实用。相信没有一个UNIX爱好者会错过本书。

内容简介

  《深入理解UNIX系统内核》由国际资深UNIX专家撰写,深入剖析UNIX操作系统的内核技术,包含丰富的图示与细节展示。作者从操作系统设计的角度来审视UNIX系统内核,针对内核中的每个模块,深入探讨其结构和设计,详细阐释主流UNIX系统如何选择具体模块的实现方法,以及每种方法的优缺点,为读者更好地理解操作系统内核知识、提升操作系统开发能力提供翔实指导。
  《深入理解UNIX系统内核》共17章:第1章追溯UNIX系统的演变并分析影响系统主要变化的因素;第2~7章介绍进程子系统,包括线程及其在内核和用户库中的实现,信号、作业控制及登录会话管理,UNIX调度器和对实时应用程序的支持,进程间通信的技术(IPC),Mach系统架构,以及在现代单处理器和多处理器系统中应用的同步框架;第8~11章介绍文件系统,内容涵盖用户可见的文件系统接口、定义内核和文件系统交互的vnode/vfs接口,原始的System V文件系统(s5fs)和伯克利快速文件系统(FFS)等一些具体文件系统的实现细节,还包括太阳微系统的网络文件系统(NFS)、AT&T;的远程文件共享(RFS)和Transarc公司的分布式文件系统(DFS)等分布式文件系统,以及一些使用日志提供更高可靠性和性能的高级文件系统,同时介绍一种基于堆栈式vnode层的新文件系统框架;第12~15章介绍内存管理,涉及内核内存分配、虚拟内存的概念、SVR4和Solaris的虚拟内存架构、Mach和4.4BSD内存模型,以及旁路转换缓冲和虚拟地址缓存;第16~17章主要介绍I/O子系统,内容包括设备驱动程序框架、内核与I/O子系统的交互、SVR4设备驱动程序接口、内核与驱动程序交互接口规范,以及STREAMS框架。

作者简介

  Uresh Vahalia,EMC公司副总裁,主管企业存储部门,领导美国和印度团队构建EMC下一代存储产品。Uresh专注于操作系统和存储技术的研发,在存储和操作系统领域拥有30余项专利和科研著作,并多次代表EMC参加SNIA、IEEE、CIFS和NFSv4工作组的行业论坛及专家座谈。

  李雨,阿里巴巴(中国)有限公司资深内核开发工程师,参与Linux内核的开发与维护,涉及内存管理、设备驱动等多个子系统,主要负责Linux内核的网络协议栈。他的研究兴趣是Linux内核和网络技术。

  薛磊,现就职甲骨文系统研发中心,负责Solaris内核中网络协议的开发。他是开源的拥趸,开发并维护了一些开源工具软件,还负责Solaris内核中iSCSI协议、iSER协议的开发和维护。

  黄庆新,毕业于厦门大学,曾是华为程序员,参与了标准协议栈(TCP/IP)和电信业务网关的开发。现就职于福建某网络公司,从事底层开发工作。

精彩书评

  ★“本书对UNIX各类版本进行了剖析与对比,这绝对是第一手的完整资料。”
    —— Peter Salus 《Computer Systems》杂志主编
  
  ★“要理解各种UNIX操作系统变种之间的差异,本书是必备读物。”
    —— Margo Seltzer,哈佛大学教授,BerkeleyDB 的作者

目录

出版者的话
译者序
序言
前言
第1章 从头说起
1.1简介
1.1.1 UNIX简史
1.1.2 起源
1.1.3 扩散
1.1.4 BSD
1.1.5 System V
1.1.6 商业化
1.1.7 Mach
1.1.8 标准
1.1.9 OSF和UI
1.1.10 SVR4及其之后
1.2 变革使命
1.2.1 功能
1.2.2 网络
1.2.3 性能
1.2.4 硬件变化
1.2.5 质量提升
1.2.6 变革
1.2.7 其他应用程序领域
1.2.8 小即是美
1.2.9 灵活性
1.3 回顾过去,展望未来
1.3.1 UNIX系统的优点是什么
1.3.2 UNIX系统的缺点是什么
1.4 本书内容说明
参考文献
第2章 进程与内核
2.1 简介
2.2 模式、空间和上下文
2.3 进程抽象
2.3.1进程状态
2.3.2 进程上下文
2.3.3 用户凭据
2.3.4 u区和proc结构
2.4 执行在内核态中
2.4.1 系统调用接口
2.4.2 中断处理
2.5 同步
2.5.1 阻塞操作
2.5.2 中断
2.5.3 多处理器
2.6 进程调度
2.7 信号
2.8 新的进程和程序
2.8.1 fork和exec
2.8.2 进程的创建
2.8.3 fork的优化
2.8.4 调用新的程序
2.8.5 进程终止
2.8.6 等待进程终止
2.8.7 僵死进程
2.9 小结
2.10 练习题
参考文献
第3章 线程和轻量级进程
3.1 简介
3.1.1 动机
3.1.2 多线程和多处理器
3.1.3 并发和并行
3.2 基本抽象
3.2.1 内核线程
3.2.2 轻量级进程
3.2.3 用户线程
3.3 轻量级线程设计时要考虑的问题
3.3.1 fork的语义
3.3.2 其他系统调用
3.3.3 信号传递和处理
3.3.4 可见性
3.3.5 栈增长
3.4 用户级别的线程库
3.4.1 编程接口
3.4.2 线程库的实现
3.5 调度器激活
3.6 Solaris和SVR4上的多线程
3.6.1 内核线程
3.6.2 轻量级进程的实现
3.6.3 用户线程
3.6.4 用户线程的实现
3.6.5 中断处理
3.6.6 系统调用处理
3.7 Mach的线程
3.7.1 Mach抽象:任务和线程
3.7.2 Mach的C-threads
3.8 Digital UNIX
3.8.1 UNIX接口
3.8.2 系统调用和信号
3.8.3 pthreads库
3.9 Mach 3.0的continuation
3.9.1 编程模型
3.9.2 使用continuation
3.9.3 优化
3.9.4 分析
3.10 小结
3.11 练习题
参考文献
第4章 信号和会话管理
4.1 简介
4.2 信号生成和处理
4.2.1 信号处理
4.2.2 信号的生成
4.2.3 典型场景
4.2.4 睡眠与信号
4.3 不可靠的信号
4.4 可靠的信号
4.4.1 主要特性
4.4.2 SVR3实现
4.4.3 BSD信号管理
4.5 SVR4上的信号
4.6 信号的实现
4.6.1 信号生成
4.6.2 交付和处理
4.7 异常
4.8 Mach的异常处理
4.8.1 异常端口
4.8.2 错误处理
4.8.3 调试器交互
4.8.4 分析
4.9 进程组和终端管理
4.9.1 基本概念
4.9.2 SVR3模型
4.9.3 限制
4.9.4 4.3BSD的进程组和终端
4.9.5 缺点
4.10 SVR4的会话体系结构
4.10.1 动机
4.10.2 会话和进程组
4.10.3 数据结构
4.10.4 控制终端
4.10.5 4.4BSD的会话实现机制
4.11 小结
4.12 练习题
参考文献
第5章 进程调度
5.1 简介
5.2 时钟中断处理
5.2.1 callout
5.2.2 告警
5.3 调度器目标
5.4 传统的UNIX调度
5.4.1 进程优先级
5.4.2 调度器的实现
5.4.3 运行队列的操作
5.4.4 分析
5.5 SVR4调度器
5.5.1 类无关层
5.5.2 调度类的接口
5.5.3 分时类
5.5.4 实时类
5.5.5 priocntl系统调用
5.5.6 分析
5.6 Solaris 2.x调度的改善
5.6.1 可抢占的内核
5.6.2 多处理器的支持
5.6.3 隐式调度
5.6.4 优先级反转
5.6.5 优先级继承的实现
5.6.6 优先级继承的局限性
5.6.7 turnstile
5.6.8 分析
5.7 Mach上的调度
多处理器支持
5.8 Digital UNIX的实时调度
多处理器支持
5.9 其他调度实现
5.9.1 公平调度方法
5.9.2 最终期限驱动调度方法
5.9.3 三级调度器
5.10 小结
5.11 练习题
参考文献
第6章 进程间通信
6.1 简介
6.2 通用的IPC方法
6.2.1 信号
6.2.2 管道
6.2.3 SVR4管道
6.2.4 进程跟踪
6.3 System V IPC
6.3.1 公共元素
6.3.2 信号量
6.3.3 消息队列
6.3.4 共享内存
6.3.5 讨论
6.4 Mach IPC
基本概念
6.5 消息
6.5.1 消息数据结构
6.5.2 消息传递接口
6.6 端口
6.6.1 端口命名空间
6.6.2 端口数据结构
6.6.3 端口转换
6.7 消息传递
6.7.1 转换端口权利
6.7.2 out-of-line内存
6.7.3 控制流
6.7.4 通知
6.8 端口操作
6.8.1 销毁端口
6.8.2 备份端口
6.8.3 端口集合
6.8.4 端口插补
6.9 扩展性
6.10 Mach 3.0的增强
6.10.1 一次性的发送权利
6.10.2 Mach 3.0的通知
6.10.3 发送权利的用户引用计数
6.11 讨论
6.12 小结
6.13 练习题
参考文献
第7章 同步和多处理器
7.1 简介
7.2 传统UNIX内核里的同步机制
7.2.1 中断屏蔽
7.2.2 睡眠和唤醒
7.2.3 传统方法的局限性
7.3 多处理器系统
7.3.1 内存模型
7.3.2 同步支持
7.3.3 软件体系架构
7.4 多处理器的同步问题
7.4.1 唤醒丢失问题
7.4.2 惊群问题
7.5 信号量
7.5.1 信号量提供互斥操作
7.5.2 使用信号量提供事件等待
7.5.3 使用信号量来控制可计数的资源
7.5.4 信号量的缺点
7.5.5 Convoy
7.6 自旋锁
7.7 条件变量
7.7.1 实现问题
7.7.2 事件
7.7.3 阻塞锁
7.8 读写锁
7.8.1 设计考虑
7.8.2 实现
7.9 引用计数
7.10 其他考虑
7.10.1 死锁避免
7.10.2 递归锁
7.10.3 阻塞还是自旋
7.10.4 锁什么
7.10.5 粒度和持续时间
7.11 案例研究
7.11.1 SVR4.2/MP
7.11.2 Digital UNIX
7.11.3 其他实现
7.12 小结
7.13 练习题
参考文献
第8章 文件系统接口和框架
8.1 简介
8.2 文件的用户接口
8.2.1 文件和目录
8.2.2 文件属性
8.2.3 文件描述符
8.2.4 文件I/O
8.2.5 分散-聚集I/O
8.2.6 文件锁机制
8.3 文件系统
8.4 特殊文件
8.4.1 符号链接
8.4.2 管道和FIFO
8.5文件系统框架
8.6Vnode/Vfs架构
8.6.1目标
8.6.2 从设备I/O得到的注解
8.6.3 vnode/vfs接口概览
8.7 实现概览
8.7.1 目标
8.7.2 Vnodes以及打开文件
8.7.3 Vnode
8.7.4 Vnode引用计数
8.7.5 Vfs对象
8.8 文件系统相关对象
8.8.1 每个文件的私有数据
8.8.2 vnodeops结构
8.8.3 vfs层中文件系统相关部分
8.9 挂载文件系统
8.9.1 虚拟文件系统转换表
8.9.2 mount函数实现
8.9.3 VFS_MOUNT过程
8.10 文件操作
8.10.1 路径遍历
8.10.2 目录名查找缓存
8.10.3 VOP_LOOKUP操作
8.10.4 打开文件
8.10.5 文件I/O
8.10.6 文件属性
8.10.7 用户凭据
8.11 分析
8.11.1 SVR4系统实现的缺点
8.11.2 4.4BSD模型
8.11.3 OSF/1方法
8.12 小结
8.13 练习题
参考文献
第9章 文件系统的实现
9.1 简介
9.2 System V文件系统(s5fs)
9.2.1 目录
9.2.2 inode
9.2.3 超级块
9.3 s5fs内核组织
9.3.1 内存inode
9.3.2 inode查找
9.3.3 文件I/O
9.3.4 inode的分配和回收
9.4 s5fs的分析
9.5 伯克利快速文件系统(FFS)
9.6 硬盘结构
9.7 磁盘组织
9.7.1 块和片段
9.7.2 分配策略
9.8 FFS的增强功能
9.9 分析
9.10 临时文件系统
9.10.1 内存文件系统
9.10.2 tmpfs文件系统
9.11 特殊用途文件系统
9.11.1 specfs文件系统
9.11.2 /proc文件系统
9.11.3 处理器文件系统
9.11.4 Trans lucent文件系统
9.12 旧的缓冲区缓存
9.12.1 基本操作
9.12.2 缓冲区头结构
9.12.3 优点
9.12.4 缺点
9.12.5 保证文件系统的一致性
9.13 小结
9.14 练习题
参考文献
第10章 分布式文件系统
10.1 简介
10.2 分布式文件系统的一般特征
10.3 网络文件系统
10.3.1 用户视角
10.3.2 设计目标
10.3.3 NFS的组件
10.3.4 无状态设计
10.4 NFS协议集
10.4.1 外部数据表示
10.4.2 远程过程调用
10.5 NFS实现
10.5.1 控制流
10.5.2 文件句柄
10.5.3 挂载操作
10.5.4 路径名的查找
10.6 UNIX语义
10.6.1 打开文件许可
10.6.2 已打开文件的删除
10.6.3 读写操作
10.7 NFS性能
10.7.1 性能瓶颈
10.7.2 客户端缓存
10.7.3 延迟写
10.7.4 重传缓存
10.8 专用NFS服务器
10.8.1 Auspex的Functional Multiprocessor 架构
10.8.2 IBM的HA-NFS服务器
10.9 NFS安全
10.9.1 NFS访问控制
10.9.2 UID重映射
10.9.3 根用户重映射
10.10 NFS版本
10.11 远程文件共享
10.12 RFS架构
10.12.1 远程消息协议
10.12.2 有状态操作
10.13 RFS实现
10.13.1 远程挂载
10.13.2 RFS客户端和服务器
10.13.3 崩溃恢复
10.13.4 其他问题
10.14 客户端缓存
10.15 Andrew文件系统
10.15.1 可伸缩架构
10.15.2 存储和命名空间的组织
10.15.3 会话级语义
10.16 AFS实现
10.16.1 缓存与一致性
10.16.2 路径名查找
10.16.3 安全性
10.17 AFS的不足
10.18 DCE的分布式文件系统
10.18.1 DFS架构
10.18.2 缓存一致性
10.18.3 令牌管理器
10.18.4 DFS的其他服务
10.18.5 分析
10.19 小结
10.20 练习题
参考文献
第11章 高级文件系统
11.1 简介
11.2 传统文件系统的局限
11.3 文件系统簇(SUN-FFS)
11.4 日志方法
11.5 日志结构文件系统
11.6 4.4BSD日志结构文件系统
11.7 元数据日志
11.8 Episode文件系统
11.9 "看门狗"监视器
11.10 4.4BSD的portal文件系统
11.11 可堆叠文件系统层次
11.12 4.4BSD文件系统接口
11.13 小结
11.14 练习题
参考文献
第12章 内核内存分配
12.1 简介
12.2 功能需求
12.3 资源映射分配器
12.4 简单的幂空闲链表分配器
12.5 McKusick-Karels分配器
12.6 伙伴系统
12.7 SVR4的惰性伙伴算法
12.8 Mach和OSF/1的区块分配器
12.9 一种针对多处理器系统的分层式分配器
12.10 Solaris 2.4的Slab分配器
12.11 小结
12.12 练习题
参考文献
第13章 虚拟内存
13.1 简介
13.2 按需分页
13.3 对硬件的需求
13.4 4.3BSD-案例研究
13.5 4.3 BSD 内存管理操作
13.6 分析
13.7 练习题
参考文献
第14章 SVR4 VM架构
14.1 简介
14.2 内存映射文件
14.3 VM的设计理念
14.4 基础抽象
14.5 段驱动程序
14.6 交换层
14.7 VM操作
14.8 与vnode子系统的交互
14.9 Solaris的虚拟交换空间
14.10 分析
14.11 性能改进
14.12 小结
14.13 练习题
参考文献
第15章 其他内存管理技术
15.1 简介
15.2 Mach的内存管理设计
15.3 内存共享机制
15.4 内存对象与Pager
15.5 外部pager和内部pager
15.6 页面替换
15.7 分析
15.8 4.4BSD的内存管理
15.9 旁路转换缓冲区的一致性
15.10 Mach中的TLB击落算法
15.11 SVR4和SVR4.2 UNIX中的TLB一致性
15.12 其他TLB一致性算法
15.13 虚拟地址缓存
15.14 练习题
参考文献
第16章 设备驱动和I/O
16.1 简介
16.2 概述
16.3 设备驱动程序框架
16.4 输入输出(I/O)子系统
16.5 poll系统调用
16.6 块设备I/O操作
16.7 DDI/DKI规范
16.8 更新的SVR4发行版
16.9 未来方向
16.10 小结
16.11 练习题
参考文献
第17章 STREAMS
17.1 动机
17.2 概述
17.3 消息和队列
17.4 流I/O
17.5 配置和设置
17.6 STREAMS的ioctl命令
17.7 内存分配
17.8 多路复用
17.9 FiFO和管道
17.10 网络接口
17.11 小结
17.12 练习题
参考文献













精彩书摘

  《深入理解UNIX系统内核》:
  像内存和终端一样,CPU也是一种共享的资源,由系统上的进程竞争使用。操作系统必须决定怎么在所有的进程中分摊CPU资源。调度器(scheduler)属于操作系统的一部分,它决定着在任意给定时刻应该运行哪一个进程,应该让这个进程运行多久。UNIX基本上是一个分时(time—sharing)系统,也就是说,它允许多个进程并发地运行。从某种程度上讲,这是一个假象(至少在单处理器上是这样的),因为一个单独的处理器在任意给定的时刻只能运行一个进程。UNIX系统通过分时方法交替运行进程来模拟并发。调度器给予每个进程一段时间的CPU,然后再切换到另外一个进程上去。这段时间称为时间配额(timequantum)或时间片(timeslice)。
  UNIX调度器必须关注两个方面:首先是策略(policy),即决定运行哪个进程和决定何时切换到另一个进程的规则。其次是实现(implementation),实现这些策略的数据结构和算法。调度策略必须满足几个目标:保证对交互式应用程序的快速响应时间,保证对后台作业的高吞吐量,避免进程饿死等等。这些目标常常彼此冲突,调度器必须尽可能地平衡这些目标。它也必须以最小代价来有效地实现它的策略。
  在最底层,调度器安排处理器从一个进程切换到另外一个进程。这称为一个上下文切换(contextswitch)。内核将当前进程的硬件执行上下文保存在它的进程控制块(processblockblock,PCB)里,传统的PCB是这个进程u区的一部分。上下文是指进程的通用寄存器、内存管理寄存器和其他特殊寄存器的值的一个快照。接着,内核会加载下一个将要运行的进程的上下文内容到硬件寄存器中。(上下文可以从这个进程的PCB中获取。)这会使CPU从之前保存的上下文中开始执行下一个进程。调度器的主要职责是决定何时执行上下文切换和运行哪个进程。
  ……

前言/序言

  UNIX Internals: The New Frontiers
  从20世纪70年代早期开始,UNIX系统经历了相当大的变化。它从一个小的、实验室性质的由贝尔实验室几乎免费分发的操作系统开始,逐渐成长,直到当前拥有着一群不断增长的忠实的拥护者。多年来,它从众多的学术界和行业成员中吸收了很多贡献,忍受着在其所有权以及标准化上的争执,并且进化为稳定的、成熟的操作系统。现在,有许多商业的和研究用的UNIX变种系统,每种变种系统虽然都不同,但是又足够相似,可以作为UNIX系统家族中的一种。UNIX程序员对一种UNIX变种的使用经验可以用在很多硬件平台以及其他UNIX变种上。
  很多图书已经介绍过UNIX系统的不同特性,但是大多数都只是介绍诸如命令行或编程接口这些用户可见的方面,很少能介绍UNIX系统的内部实现。UNIX系统的内部实现主要是指其核心组成的部分,也就是UNIX内核研究。迄今为止,每本UNIX系统内部实现书籍只针对某一种UNIX的发行版本。比如,Bach的《The Design of the UNIX Operating System》[Bach 86]是介绍System V Release 2(SVR2)版本内核的标志性书籍。Leffler等著的《The Design and Implementation of 4.3BSD UNIX Operating System》[Leff 88]由一些主要的操作系统设计者来详尽介绍4.3BSD版本内核。Goodheart和Cox的《The Magic Garden Explained》著作详细介绍了System V Release 4.0(SVR4)版本的内核。
  设计视角
  本书从系统设计角度来审视UNIX内核。介绍了一些主流的商业性和研究性的UNIX变种。针对内核中的每个模块,本书探索其结构和设计,解释主流UNIX系统如何选择具体模块的实现方法,以及每种方法的优缺点。通过这样的对比使本书有着独特的视角,并允许读者从批判性的角度来检查系统的设计。在研究一个操作系统时,关注其优缺点是很重要的一部分。本书将通过分析一些可选的方法来介绍每种系统的优缺点。
  UNIX变种
  虽然本书最关注SVR4.2的内核实现,但是也详细探索了4.4BSD、Solaris 2.x、Mach以及Digital Unix系统。而且本书介绍了一些其他变种的有趣特性,这主要包括一些没有进入商业发行版的研究性变种。本书分析了从20世纪80年代中期到90年代中期UNIX系统的主要发展。为了完整性,本书同时包含了对传统UNIX功能和实现的简要介绍。在必要时,本书还提供了一个发展记录,以传统方案为起始,分析其缺点和局限并介绍现代的解决方案。
  阅读对象
  本书适合作为大学教材或作为专业参考书。作为大学教材,本书适用于高年级本科生或研究生操作系统课程。本书并非一本介绍性书籍,而且不会说明诸如内核、线程以及虚拟内存这样的概念性知识。每章都包含一系列精心设计的练习题,用于进一步地思考和研究系统设计。许多练习题都是开放性的,并且需要学生进行一些额外的阅读研究。每章也有一个详尽的参考文献清单,通过该清单可以进一步阅读有关内容。
  本书也可用作操作系统开发人员、应用程序开发人员以及系统管理员的专业参考书籍。操作系统设计者和架构师可以研究相近系统的内核结构、评估不同设计的优缺点以及使用本书中的一些想法来开发下一代操作系统。应用程序开发人员可以使用操作系统内核的知识,更好地利用其特征来开发更加高效的程序。系统管理员可以在理解不同参数和使用模式对系统行为的影响之后,更加有效地配置和调整系统。
  组织结构
  第1章追溯了UNIX系统的演变并分析了影响系统主要变化的因素。第2章到第7章介绍了进程子系统。其中第2章介绍在传统UNIX系统中(SVR3、4.3BSD和早期变种)的进程和内核架构。第3章到第7章介绍现代系统(SVR4、4.4BSD、Solaris 2.x以及Digital Unix)的特性。第3章讨论线程及其在内核和用户库中如何实现。第4章介绍信号、作业控制以及登录会话管理。第5章介绍UNIX调度器和对实时应用程序的支持。第6章研究进程间通信的技术(IPC),包括System V IPS的特性集。其中还介绍了Mach系统架构,该系统使用IPC作为最基本的原语来构造内核。第7章讨论在现代单处理器和多处理器系统中应用的同步框架。
  接下来的四章介绍了文件系统。第8章介绍用户可见的文件系统接口,以及定义了内核和文件系统交互的vnode/vfs接口。第9章提供一些具体的文件系统实现细节,包含原始的System V文件系统(s5fs)、伯克利快速文件系统(FFS)以及一些小的、利用vnode/vfs接口提供服务的特殊用途的文件系统。第10章介绍一些分布式文件系统,比如太阳微系统公司的网络文件系统(NFS)、AT&T;的远程文件共享(RFS)、卡内基梅隆大学的Andrew文件系统(AFS)以及Transarc公司的分布式文件系统(DFS)。第11章介绍一些使用日志提供更高可靠性和性能的高级文件系统,同时介绍一种基于可堆叠vnode层的新文件系统框架。
  第12章~第15章介绍内存管理。第12章讨论内核内存分配并介绍一些有趣的分配算法。第13章介绍虚拟内存的概念并使用4.3BSD的实现来说明一些问题。第14章介绍SVR4和Solaris的虚拟内存架构。第15章介绍Mach和4.4BSD内存模型,同时分析诸如旁路转换缓冲区和虚拟地址缓存等硬件特性的影响。
  最后两章主要介绍I/O子系统。第16章介绍设备驱动程序框架、内核与I/O子系统的交互、SVR4设备驱动程序接口以及内核与驱动程序交互接口规范。第17章讨论STREAMS框架,用于开发网络协议、网络驱动程序和终端驱动程序。
  排版约定
  我在本书中遵循了一些印刷规范。首次出现的术语或概念用楷体。内部内核函数和变量名字以及代码示例都是等宽字体,比如ufs_lookup()。当指定调用语法时,系统调用名是斜体,而参数是等宽字体。在图中,实线箭头代表直接指针,虚线箭头表明箭头的源和目标对象是间接推论的。
  尽管我做了最大的努力,但错误和疏忽仍然在所难免。如果你发现有什么错误,或者有任何建议,请通过电子邮件(vahalia@acm.org)发送给我。
  致谢
  许多人为本书的出版做出了贡献。首先,我想感谢我的儿子Rohan以及我的妻子Archana,他们的耐心、爱以及无私的奉献使我得以完成本书。我利用了本属于他们的周末和夜晚时间来进行写作,而他们给予我的一向都是微笑并一直鼓励我。我也要感谢父母对我的爱和支持。
  接下来,我要感谢我的朋友Subodh Bapat,他鼓励我承担这本书的写作工作,并花费大量时间给出了专业性建议和持续性激励,非常感谢他允许我使用他的书(《Object-Oriented Networks》[Bapa 94])中提到的工具、模块和宏,还要感谢他对我的草稿一丝不苟的审核以及对我在写作风格上清晰的指导。
  许多审稿人贡献了非常多的时间和专业知识并多次审稿,提供了非常有价值的意见和建议,使得本书的质量有了提升。非常感谢Peter Salus的鼓励和支持以及Benson Marguiles、Terry Lambert、Mark Ellis和William Bully有深度的反馈意见。最后也要感谢Keith Bostic、Evi Nemeth、Pat Parseghian、Steven Rago、Margo Seltzer、Richard Stevens以及Lev Vaitzblit审核了本书的部分章节。
  我还要感谢我的经理Percy Tzelnic对我在写作本书过程中的支持和理解。最后,我要感谢出版人Alan Apt,是他促成了本书,并在每个阶段都提供了帮助。还要感谢Prentice-Hall和Spectrum Publisher Services出版社的团队成员,特别感谢Shirlery McGuire、Sondra Chavez和Kelly Ricci的支持和帮助。
  参考文献





用户评价

评分

留着有空的时候好好看看

评分

此用户未填写评价内容

评分

很详细的一本书,营养多,值得好好消化

评分

很好,学习操作系统必备

评分

阿斯顿发生发大水发大厦的士大夫撒打算发大厦法定

评分

值得推荐的技术书,常读常新

评分

商品一如既往的好!!值得拥有。

评分

值得推荐的技术书,常读常新

评分

好书好书好书好书好书好书好书好书好书好书好书好书好书好书好书好书好书好书

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou 等,本站所有链接都为正版商品购买链接。

© 2025 windowsfront.com All Rights Reserved. 静流书站 版权所有