返璞归真

返璞归真 pdf epub mobi txt 电子书 下载 2026

出版者:电子工业出版社
作者:郝庆丰
出品人:
页数:751
译者:
出版时间:2010 年6月
价格:89.00元
装帧:平装
isbn号码:9787121108716
丛书系列:
图书标签:
  • UNIX
  • 操作系统
  • Linux/Unix
  • kernel
  • 2010
  • 国内作品
  • programming
  • 科学
  • 生活哲学
  • 自然
  • 简约
  • 慢生活
  • 心灵成长
  • 自我探索
  • 田园生活
  • 返璞归真
  • 东方智慧
  • 人生感悟
想要找书就要到 小哈图书下载中心
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

操作系统是一种对计算机中各个设备和资源进行管理并给应用软件提供各种服务的系统软件,它的实现可分用户态和内核态两大部分。一般而言,操作系统的算法和设计的复杂性大多在内核态部分。因此,了解操作系统的内核实现对于了解整个操作系统是非常重要的。

本书详细阐述操作系统的内核(也包括少量用户态部分),选择UNIX第6版的全部内核代码及少量用户部分代码、总计10 000行作为讲解对象,由框架到细节、由基础到高级地进行讲述;在此过程中贯穿了操作系统中的各种知识和概念,比如内存管理、进程调度、中断和设备管理以及文件系统等,使得内容非常易于读者理解。

选择UNIX作为讲解对象是因为它强大的生命力和应用的广泛性。在精妙的设计思想下,它具有小巧高效而健壮的内核、丰富的功能、易扩展的架构和良好的开放性。UNIX所定义的很多接口(比如文件访问接口)已经成为行业标准。本书在讲解时,作者把这10 000行代码按照不同的功能模块分成不同的章节。每章一般最小以函数为单位,但在讲解某个功能或接口时,又会牵涉到很多相关的函数,并其中揭示了很多优秀的设计思想、数据结构和算法。

本书适用于具有丰富开发经验的高级软件工程师,尤其是有志于进行操作系统研究或对操作系统实现感兴趣的软件工程师,也可作为本专科院校计算机及相关专业学生学习操作系统和C语言的参考书。初级软件开发人员在阅读本书时可能会碰到一些困难,但如能坚持研究,它也会是你提高编程水平的一个很好的选择。

作者简介

目录信息

第1章 概论 1
1.1 历史背景 1
1.2 UNIX诞生的经过 1
1.3 UNIX版本6 2
1.4 各流派一览 2
1.5 为什么取得成功 3
1.5.1 简洁高效 3
1.5.2 健壮性 3
1.5.3 功能丰富 3
1.5.4 移植性 3
1.5.5 开放性 4
1.6 缩写及术语说明 4
第2章 UNIX综述 6
2.1 硬件平台 6
2.1.1 中断和自陷(Trap) 7
2.1.2 两种处理器模式 9
2.1.3 通用寄存器 10
2.1.4 I/O设备管理 10
2.1.5 栈(Stack) 11
2.1.6 常用指令 11
.2.1.7 备注 19
2.2 UNIX内核综述 20
2.2.1 模块分类 20
2.2.2 各模块间的通信 20
2.2.3 源文件 21
2.2.4 语法规则和编码风格说明 23
2.3 思考题 27
第3章 虚拟内存 28
3.1 简介 28
3.2 虚拟内存的优点 29
3.2.1 安全性 29
3.2.2 提高空间利用率 30
3.2.3 多进程的支持 30
3.3 PDP11/40的虚拟内存机制 30
3.3.1 页地址寄存器(PAR) 32
3.3.2 页描述寄存器(PDR) 32
3.3.3 活动页寄存器地址 33
3.3.4 虚拟地址向物理地址的映射过程 33
3.3.5 异常处理 35
3.3.6 和现代页式虚存的比较 36
3.4 UNIX的虚存实现 36
3.4.1 进程空间分布 36
3.4.2 用户活动页寄存器设置函数estabur 37
3.4.3 用户空间映射函数sureg 41
3.5 内存管理 42
3.5.1 内核内存管理 42
3.5.2 用户内存管理 47
3.6 思考题 56
第4章 启动模块 57
4.1 操作流程 57
4.2 中断向量 58
4.3 启动函数start 60
4.4 备注 65
4.4.1 为什么需要引导程序和装入程序 65
4.4.2 0地址处指令分析 65
4.4.3 为什么要使用汇编语言 66
4.4.4 Windows启动过程浅析 66
4.5 思考题 67
第5章 进程管理和调度 68
5.1 程序员眼中的虚拟机 68
5.2 系统资源 68
5.3 进程上下文 70
5.4 进程调度 72
5.5 UNIX实现 73
5.5.1 进程上下文 73
5.5.2 进程的两种状态 80
5.5.3 调度过程 82
5.5.4 备注 128
5.6 思考题 134
第6章 中断处理过程 136
6.1 PSW寄存器 136
6.2 中断处理流程 136
6.3 中断向量 138
6.4 PDP 11/40的中断类型 139
6.4.1 电传终端接口输入中断 139
6.4.2 电传终端接口输出中断 140
6.4.3 纸带打孔机输入中断 140
6.4.4 纸带打孔机输出中断 140
6.4.5 时钟中断 140
6.4.6 行打印机中断 140
6.4.7 磁盘读写中断 140
6.5 一些常用函数 140
6.5.1 特殊指令 140
6.5.2 fubyte(fuibyte) 141
6.5.3 fuword(fuiword) 143
6.5.4 subyte(suibyte) 143
6.5.5 suword(suiword) 144
6.5.6 clearseg 144
6.5.7 copyseg 145
6.5.8 copyin/copyout 146
6.5.9 dpadd 148
6.5.10 ldiv/lrem/lshift 148
6.6 call函数 149
6.7 时钟中断 151
6.7.1 基本概念 151
6.7.2 处理过程 152
6.8 call函数调用分派切换器的理由 163
6.9 内核定时器 164
6.9.1 数据结构 164
6.9.2 定时器的创建 165
6.9.3 定时器的触发 167
6.10 一些例子 168
6.10.1 进程优先级的调整 168
6.10.2 进程分派切换实例 174
6.11 备注 178
6.11.1 中断服务函数中为什么不使用互斥锁 178
6.11.2 中断服务函数中为什么不访问u变量 178
6.11.3 关于内存管理违例自陷的处理过程 179
6.11.4 调度标志runrun和runin 179
6.12 思考题 179
第7章 自陷 180
7.1 自陷原理 180
7.2 自陷向量 180
7.3 PDP11/40的自陷类型 180
7.3.1 系统出错自陷 180
7.3.2 系统调用自陷 182
7.3.3 调试自陷 182
7.3.4 自陷优先级 183
7.4 自陷处理过程 184
7.4.1 汇编函数_trap 184
7.4.2 C函数trap 186
7.4.3 backup函数 191
第8章 文件系统 211
8.1 概述 211
8.2 框架 212
8.2.1 文件存储的实现 212
8.2.2 UNIX文件系统 219
8.2.3 UNIX文件系统的详细实现 224
8.3 文件访问接口 229
8.3.1 文件创建接口creat 230
8.3.2 文件打开接口open 235
8.3.3 文件关闭接口close 236
8.3.4 文件读接口read 237
8.3.5 文件写接口write 238
8.3.6 文件定位接口seek 239
8.3.7 特殊文件创建接口mknod 242
8.3.8 文件链接接口link 244
8.3.9 取消文件链接接口unlink 246
8.3.10 设备加载接口smount 248
8.3.11 设备卸载接口sumount 251
8.4 节点和块管理 253
8.4.1 节点缓存 253
8.4.2 块缓存 255
8.4.3 块访问接口 263
8.4.4 节点访问接口 294
8.5 块设备驱动 322
8.5.1 概述 322
8.5.2 根设备——rk11磁盘 326
8.6 备注 335
8.6.1 FAT16文件系统 335
8.6.2 多进程访问文件的问题 338
8.6.3 进程间同步 339
8.6.4 文件的删除 340
8.6.5 设备驱动的扩展 340
8.7 总结 341
8.8 思考题 341
第9章 字符设备驱动 342
9.1 交互终端——电传打字机(teletypewriter) 342
9.1.1 设备特性 343
9.1.2 操作寄存器 343
9.1.3 驱动框架 345
9.1.4 驱动函数 351
9.1.5 shell应用举例 378
9.1.6 内核打印接口 379
9.2 PC-11纸带打孔机 383
9.2.1 设备特性 383
9.2.2 操作寄存器 384
9.2.3 驱动框架 385
9.2.4 驱动函数 387
9.2.5 读取器状态转换图 392
9.3 LP-11行打印机 393
9.3.1 设备特性 393
9.3.2 操作寄存器 393
9.3.3 驱动框架 394
9.3.4 驱动函数 396
9.4 现代打印机 401
9.4.1 并口 401
9.4.2 和内核挂接 403
9.4.3 简单的打印程序 406
9.4.4 CUPS 408
9.5 其他字符设备 408
9.5.1 内存 409
9.5.2 磁盘 411
9.6 网络驱动程序 415
9.7 综合示例 416
9.8 总结 417
9.9 思考题 418
第10章 进程交换过程 419
10.1 概述 419
10.2 具体实现 421
10.2.1 进程换出函数xswap 422
10.2.2 程序段内存释放函数xccdec 423
10.2.3 交换函数swap 424
10.2.4 调用实例 425
10.3 综合示例 426
10.4 思考题 430
第11章 UNIX可执行文件 431
11.1 .out文件 431
11.1.1 可执行头 431
11.1.2 程序段 432
11.1.3 数据段 432
11.1.4 程序和数据重定向表 432
11.1.5 符号表 434
11.1.6 示例 437
11.2 动态链接过程* 442
11.2.1 静态共享 443
11.2.2 动态共享 446
11.2.3 GOT/PLT表和位置无关代码(PIC) 446
11.2.4 动态加载过程分析 450
第12章 系统调用 457
12.1 概述 457
12.2 系统调用的实现 457
12.2.1 用户实现 459
12.2.2 系统调用表和trap自陷 459
12.2.3 内核实现 469
12.3 各系统调用的实现 469
12.3.1 文件相关调用 471
12.3.2 进程相关调用 491
12.3.3 信号相关调用 538
12.3.4 调试功能调用 558
12.3.5 用户/组ID调用 586
12.3.6 时间相关调用 589
12.3.7 终端相关调用 591
第13章 进程间通信 596
13.1 概述 596
13.2 管道 596
13.2.1 相关系统调用 596
13.2.2 管道实现过程分析 602
13.2.3 应用示例 603
13.2.4 采用内存文件实现管道 608
13.2.5 思考题 610
13.3 文件 610
13.4 有名管道 611
13.5 进程间同步 611
13.5.1 信号量 612
13.5.2 互斥体 621
13.5.3 事件 622
13.6 死锁 634
13.7 其他进程间数据传输方式 636
13.7.1 消息(message) 636
13.7.2 信箱(mailbox) 648
13.7.3 共享内存 671
第14章 多线程的实现 686
14.1 概述 686
14.2 线程和经典进程的比较 686
14.3 线程的示例实现 686
14.3.1 相关数据结构 686
14.3.2 实现方案 689
14.3.3 线程创建调用CreateThread 691
14.3.4 内核改动 695
14.3.5 线程退出调用ExitThread 711
14.3.6 线程id获得调用gettid 712
14.3.7 线程挂起调用SuspendThread 712
14.3.8 线程恢复调用ResumeThread 714
14.3.9 线程终止调用TerminateThread 715
14.3.10 线程ID查询调用GetThreadID 719
14.3.11 线程名查询调用GetThreadName 720
14.3.12 使用示例 721
14.3.13 思考题 723
第15章 网络多用户 724
15.1 系统初始化过程 724
15.1.1 init进程 724
15.1.2 getty程序 725
15.1.3 login程序 725
15.2 telnet程序 730
15.2.1 工作原理 730
15.2.2 常用配置 731
15.3 NFS(网络文件系统) 732
15.3.1 基本原理 733
15.3.2 RPC(远程过程调用) 734
15.3.3 各过程的实现 737
15.3.4 简单示例 741
附录A 参考书目及资源 742
附录B 思考题答案 743
· · · · · · (收起)

读后感

评分

评分

评分

评分

评分

用户评价

评分

这本书的独特之处在于,它用一种极其朴实无华的笔触,描绘了一种近乎“失落的直觉”。我感受到的不是说教,而是一种深切的怀旧——不是对某个具体年代的怀旧,而是对人类本应有的、与自然和谐共处的本能状态的怀念。作者在谈论现代生活中被我们遗弃的那些技能和感知力时,语气中没有怨艾,只有一种深深的理解和接纳。例如,他对“等待”这一行为的探讨,描绘了在没有即时反馈的时代里,人们如何与时间建立起一种更具耐心和尊重的关系。这种描述是如此的细腻入微,以至于当我放下书本,望着窗外行人匆匆而过的身影时,我产生了一种抽离感,仿佛我短暂地“越狱”了当代社会的快进键。这本书没有提供任何现成的解决方案,但它成功地在读者心中播下了一颗种子:即我们所追求的“进步”是否以牺牲更深层次的满足感为代价。

评分

我必须承认,这本书的阅读体验是一场挑战,它不像那些情节跌宕起伏的小说那样能提供即时的快感,它要求读者投入一种近乎冥想的专注力。我用了比平时更长的时间来阅读,不是因为文字晦涩,而是因为我发现自己无法“跳读”。作者构建的叙事节奏,是一种非常古老的、如同季节更迭般的缓慢韵律。书中对某一特定材料——比如未经打磨的木材,或者未经净化的溪水——的描写,篇幅之长,细节之丰富,可能会让习惯了快节奏阅读的读者感到不耐烦。但正是这种看似“浪费”笔墨的地方,才真正体现了作者的意图。他是在强迫我们将注意力从“结果”转移到“过程”上。我仿佛能闻到他描述中那种尘土和露水的味道,感受到空气中颗粒物的存在。这本书不是用来“读完”的,而是用来“沉浸”的。它更像是一块巨石,你必须驻足,才能真正体会到它的重量和它所承载的地质历史。

评分

这本书简直是文字的清泉,我抱着一种近乎朝圣的心态翻开它,却被其中散发的、那种毫不矫饰的生命力深深吸引。它没有宏大的叙事架构,也没有复杂的哲学思辨,它更像是一位经验老到的匠人,用最朴素的工具,雕刻出时间的肌理。我尤其欣赏作者捕捉那些转瞬即逝的微小瞬间的能力——清晨透过窗帘缝隙投下的光斑,旧木桌上留下的水渍纹路,甚至是雨后泥土散发出的那种湿润而原始的气息。这些细节的堆砌,非但没有显得琐碎,反而构建了一个极其坚实而可信的“场域”。阅读过程中,我时常停下来,合上书页,去观察我周围的世界,仿佛被施了一种魔法,让我重新审视那些我习以为常的物件和场景。作者似乎有一种天赋,能将“存在”本身的美感挖掘出来,不加任何修饰地呈现在我们面前,让人不由自主地想慢下来,去感受每一次呼吸,每一次心跳。这本书没有提供明确的答案,它提供的只是一种观察世界的方式,一种回归事物本源的视角,这比任何标准化的心灵鸡汤都要来得有力量和持久。

评分

初读此书,我的内心是带着一丝审慎的怀疑的,毕竟在这个信息爆炸的时代,“回归本质”这样的主题很容易沦为陈词滥调的陷阱。然而,这本书以一种近乎冷峻的克制,彻底打破了我的预期。它的语言风格极其精炼,句子结构如同经过千锤百炼的石碑铭文,每一个词语都像是被精确地放置在了它唯一可能存在的位置上,多一分则冗余,少一分则失衡。它更像是一部“去装饰化”的哲学散文集,但其哲学性又不体现在晦涩的理论推导上,而在于对人类行为模式和自然规律的洞察。比如,它对“效率”二字的解构,是如此犀利而精准,直指现代社会中我们对速度的盲目崇拜如何异化了我们与环境的关系。它没有激烈的批判,而是用一种近乎超然的、旁观者的口吻进行叙述,这种冷静反而产生了巨大的穿透力,让人在不自觉中开始反思自己生活中的冗余负荷。这本书的价值在于,它提供了一个高质量的“静音区”,让被噪音包围的心灵得以喘息和重组。

评分

这本书的文本结构给我留下了深刻的印象,它摒弃了传统书籍的线性思维,更像是一系列相互关联的、但又各自独立的“观察笔记”的集合体。每一个章节,甚至每一个自然段落,都可以被视为一个独立的微观宇宙。这种碎片化的叙述方式,恰恰呼应了“返璞归真”的主题——生活本身就是由无数个不期而遇的瞬间构成的,而不是一条笔直的规划好的轨道。我发现自己会不自觉地在脑海中将这些笔记重新编排组合,试图找出作者隐藏的内在逻辑,但很快又意识到这种寻找“外部结构”的行为本身就是现代思维的产物。这本书的真正结构,存在于读者阅读时的内心对话中。它像一面镜子,映照出读者自身经验的底色,使得不同的人从中读出的“真”和“朴”会有巨大的差异。它不强迫你接受某一种真理,而是鼓励你去构建属于你自己的、与大地相连的真实感。

评分

非常非常详细的注解, 而且很多地方还解释了为什么要这么设计

评分

不错的书,膜拜一下那些通读UNIX源码并乐在其中的人!

评分

不错的书,膜拜一下那些通读UNIX源码并乐在其中的人!

评分

非常非常详细的注解, 而且很多地方还解释了为什么要这么设计

评分

如果想学习内核,这本书是最好的起点..描述逻辑清晰异常.. 我是看完这本书之后跟作者交流结识的,他浸淫UNIX内核有近10年.

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

© 2026 qciss.net All Rights Reserved. 小哈图书下载中心 版权所有