书馨卡帮你省薪
欢迎光临中图网 请 | 注册
> >>
LINUX 内核完全剖析——基于0.12内核(15周年版)

LINUX 内核完全剖析——基于0.12内核(15周年版)

作者:赵炯
出版社:机械工业出版社出版时间:2024-02-01
开本: 16开 页数: 948
中 图 价:¥209.3(7.0折) 定价  ¥299.0 登录后可看到会员价
加入购物车 收藏
运费6元,满39元免运费
?新疆、西藏除外
本类五星书更多>

LINUX 内核完全剖析——基于0.12内核(15周年版) 版权信息

LINUX 内核完全剖析——基于0.12内核(15周年版) 本书特色

赵炯博士的Linux内核源码书系列自从问世以来,在全国乃至世界范围内产生了很大影响。**批读者受惠良多,早已成为IT大厂的中坚力量。多年过去了,Linux内核的体量发生了巨大变化,这更加凸显了“从小内核学起”的理念的正确。阅读本书,会帮助读者少走弯路,快速理解Linux的精髓,早日成长为合格的开发人员和系统架构师。

LINUX 内核完全剖析——基于0.12内核(15周年版) 内容简介

本书对 Linux 操作系统早期内核(V0.12)全部源代码文件进行了详 细、全面的注释和说明,旨在帮助读者用较短的时间对 Linux 的工作机理 获得全面而深刻的理解,为进一步学习和研究现代 Linux 系统打下坚实的 基础。虽然分析的版本较低,但该内核已能够正常编译运行,并且其中已 包括了 Linux 工作原理的精髓。书中首先概要地介绍了 Linux 内核发展历 史,说明了各内核版本之间的主要区别和改进,给出了选择 0.12 版内核源 代码作为研究对象的原因。然后给出了阅读内核源代码所需的相关基础知 识,概要介绍了运行 Linux 系统的 PC 硬件组成结构、编写内核使用的汇编 语言和 C 语言扩展部分,并且重点说明了 80x86 处理器在保护模式下运行 的编程方法。接着介绍了内核代码概况,给出了内核源代码目录树结构, 并依据该组织结构对所有内核程序和文件进行了详细描述和说明。为了加 深读者对内核工作原理的理解,书中*后一章给出了多个相关运行调试实 验。书中所有相关资料和信息均可从网站 www.oldlinux.org 下载。 本书适合作为高校计算机专业学生学习操作系统课程的辅助和实践教 材,也适合 Linux 爱好者作为学习内核工作原理的自学参考书籍,还可作 为一般技术人员开发嵌入式系统时的参考书。

LINUX 内核完全剖析——基于0.12内核(15周年版) 目录

第 1 章 概述·············································1
1.1 Linux 的诞生和发展··························1
1.1.1 UNIX 操作系统的诞生 ······················1
1.1.2 MINIX 操作系统 ·······························1
1.1.3 GNU 计划 ········································2
1.1.4 POSIX 标准 ······································2
1.1.5 Linux 操作系统的诞生 ·······················3
1.1.6 Linux 操作系统版本的变迁 ················4
1.1.7 Linux 名称的由来 ·····························6
1.1.8 早期Linux 系统开发的主要贡献者 ········7
1.2 内容综述············································8
1.3 本章小结··········································12
第 2 章 微型计算机组成结构····················13
2.1 微型计算机组成原理·······················13
2.2 I/O 端口寻址和访问控制方式·········15
2.2.1 I/O 端口和寻址 ·······························15
2.2.2 接口访问控制 ·································17
2.3 主存储器、BIOS 和 CMOS存储器·································17
2.3.1 主存储器 ·······································17
2.3.2 基本输入/输出程序 BIOS ·················18
2.3.3 CMOS 存储器 ································19
2.4 控制器和控制卡·······························19
2.4.1 中断控制器 ····································19
2.4.2 DMA 控制器 ··································20
2.4.3 定时/计数器 ···································21
2.4.4 键盘控制器 ····································21
2.4.5 串行控制卡 ····································22
2.4.6 显示控制 ·······································24
2.4.7 软盘和硬盘控制器 ··························25
2.5 本章小结··········································28
第 3 章 内核编程语言和环境····················29
3.1 as86 汇编器······································29
3.1.1 as86 汇编语言语法 ··························30
3.1.2 as86 汇编语言程序 ··························31
3.1.3 as86 汇编语言程序的编译和链接 ·········33
3.1.4 as86 和 ld86 使用方法和选项 ············34
3.2 GNU as 汇编·····································35
3.2.1 编译 as 汇编语言程序 ······················36
3.2.2 as 汇编语法 ····································37
3.2.3 指令语句、操作数和寻址 ················38
3.2.4 区与重定位 ····································41
3.2.5 符号 ··············································43
3.2.6 as 汇编命令 ····································44
3.2.7 编写 16 位代码 ·······························46
3.2.8 AS 汇编器命令行选项 ·····················46
3.3 C 语言程序·······································46
3.3.1 C 程序编译和链接 ···························46
3.3.2 嵌入汇编 ········································47
3.3.3 圆括号中的组合语句 ·······················51
3.3.4 寄存器变量 ····································52
3.3.5 内联函数 ········································52
3.4 C 与汇编程序的相互调用················54
3.4.1 C 函数调用机制 ······························54
3.4.2 在汇编程序中调用 C 函数 ················59
3.4.3 在 C 程序中调用汇编函数 ················61
3.5 Linux 0.12 目标文件格式·················63
3.5.1 目标文件格式 ·································63
3.5.2 Linux 0.12 中的目标文件格式 ···········66
3.5.3 链接程序输出 ·································68
3.5.4 链接程序预定义变量 ·······················69
3.5.5 System.map 文件 ·····························70
3.6 Make 程序和 Makefile 文件·············72
3.6.1 Makefile 文件内容 ···························72
3.6.2 Makefile 文件中的规则 ····················73
3.6.3 Makefile 文件示例 ···························73
3.6.4 make 处理 Makefile 文件的方式 ········75
3.6.5 Makefile 中的变量 ···························76
3.6.6 让 make 自动推断命令 ····················76
3.6.7 隐含规则中的自动变量 ···················77
3.7 本章小结··········································78
第 4 章 80x86 保护模式及其编程············79
4.1 80x86 系统寄存器和系统指令····································79
4.1.1 标志寄存器 ····································79
4.1.2 内存管理寄存器 ·····························80
4.1.3 控制寄存器 ····································81
4.1.4 系统指令 ·······································84
4.2 保护模式内存管理···························85
4.2.1 内存寻址 ·······································85
4.2.2 地址变换 ·······································86
4.2.3 保护 ··············································88
4.3 分段机制··········································89
4.3.1 段的定义 ·······································89
4.3.2 段描述符表 ····································91
4.3.3 段选择符 ·······································93
4.3.4 段描述符 ·······································95
4.3.5 代码和数据段描述符类型 ················98
4.3.6 系统描述符类型 ·····························99
4.4 分页机制········································100
4.4.1 页表结构 ·····································102
4.4.2 页表项格式 ··································103
4.4.3 虚拟存储 ·····································104
4.5 保护··············································104
4.5.1 段级保护 ·····································105
4.5.2 访问数据段时的特权级检查 ···········107
4.5.3 代码段之间转移控制时的特权级检查······························108
4.5.4 页级保护 ····································· 113
4.5.5 组合页级和段级保护 ····················· 115
4.6
展开全部

LINUX 内核完全剖析——基于0.12内核(15周年版) 作者简介

赵炯,工学博士,计算机专家,Intel公司访问学者,国际计算机仿真协会、上海市通信学会会员。研究方向为计算机通信。曾经为本科、硕士和博士研究生开设《计算机网络》、《计算机通信技术》、《计算机通信与工控网络》、《微型计算机》和《计算机原理》等课程。参与国家自然科学基金项目“系统芯片在线测试与容错技术研究”和上海市自然科学基金“基于节点主动控制的大规模复杂输送系统控制模型研究”等工作。

商品评论(0条)
暂无评论……
书友推荐
本类畅销
编辑推荐
返回顶部
中图网
在线客服