庖丁解牛Linux内核分析
出版时间:
2018-09
版次:
1
ISBN:
9787115491862
定价:
49.00
装帧:
其他
开本:
16开
纸张:
胶版纸
37人买过
-
本书从理解计算机硬件的核心工作机制(存储程序计算机和函数调用堆栈)和用户态程序如何通过系统调用陷入内核(中断异常)入手,通过上下两个方向双向夹击的策略,并利用实际可运行程序的反汇编代码从实践的角度理解操作系统内核,分析Linux内核源代码,从系统调用陷入内核、进程调度与进程切换开始,*后返回到用户态进程。
本书配有丰富的实验指导材料和练习,适合作为高等院校计算机相关专业的指导用书,也适合Linux操作系统开发人员自学。 孟宁,高校教师、资 深码农,主讲课程获国家精品在线开放课程认定。在读行学、网易云课堂、学堂在线、实验楼等在线教育平台的累计注册学员达10万余人次,专注于Linux内核、互联网架构、软件工程、区块链、人工智能等技术领域,与华为、IBM等多家国内外知名企业和创业公司有技术合作。
娄嘉鹏,高校教师,曾荣获北京市优 秀教师,蓝墨云平台北京市十大魅力教师等称号,讲授Java程序设计、Linux内核原理与分析、网络攻防实战、移动平台开发等课程,研究方向包括Linux内核及安全、密码系统、软件工程等。
刘宇栋,高校教师,主要研究方向包括网络攻防技术、系统安全、社交网络分析等。并讲授操作系统、Linux内核原理与分析、网络对抗技术等课程。
第 1章 计算机工作原理 1
1.1 存储程序计算机工作模型
1
1.2 x86-32汇编基础 3
1.2.1 x86-32 CPU的寄存器 4
1.2.2 数据格式 6
1.2.3 寻址方式和常用汇编指令 7
1.2.4 汇编代码范例解析 11
1.3 汇编一个简单的C语言程序并分析其汇编指令执行过程 13
1.4 单元测试题 26
1.5 实验 27
第 2章 操作系统是如何工作的 29
2.1 函数调用堆栈 29
2.2 借助Linux内核部分源代码模拟存储程序计算机工作模型及时钟中断 32
2.2.1 内嵌汇编 32
2.2.2 虚拟一个x86的CPU硬件平台 34
2.3 在mykernel基础上构造一个简单的操作系统内核 36
2.3.1 代码范例 36
2.3.2 代码分析 42
2.4 单元测试题 48
2.5 实验 48
第3章 MenuOS的构造 50
3.1 Linux内核源代码简介
50
3.2 构造一个简单的Linux内核 56
3.3 跟踪调试Linux内核的启动过程 60
3.4 单元测试题 65
3.5 实验 66
第4章 系统调用的三层机制(上) 67
4.1 用户态、内核态和中断
67
4.2 系统调用概述 70
4.2.1 操作系统提供的API和系统调用的关系 70
4.2.2 触发系统调用及参数传递方式 71
4.3 使用库函数API和C代码中嵌入汇编代码触发同一个系统调用 72
4.3.1 使用库函数API触发一个系统调用 72
4.3.2 内嵌汇编语法简介 73
4.3.3 C代码中嵌入汇编代码触发一个系统调用 75
4.3.4 含两个参数的系统调用范例 76
4.3.5 通用的触发系统调用的库函数syscall 78
4.4 单元测试题 79
4.5 实验 80
第5章 系统调用的三层机制(下) 81
5.1 给MenuOS增加命令 81
5.2 使用gdb跟踪系统调用内核函数sys_time 83
5.3 系统调用在内核代码中的处理过程 85
5.3.1 中断向量0x80和system_call中断服务程序入口的关系 86
5.3.2 在system_call汇编代码中的系统调用内核处理函数 87
5.3.3 整体上理解系统调用的内核处理过程 88
5.4 单元测试题 91
5.5 实验 92
第6章 进程的描述和进程的创建 93
6.1 进程的描述 93
6.2 进程的创建 97
6.2.1 0号进程的初始化
98
6.2.2 内存管理相关代码
99
6.2.3 进程之间的父子、兄弟关系 100
6.2.4 保存进程上下文中CPU相关的一些状态信息的数据结构 101
6.2.5 进程的创建过程分析
103
6.3 单元测试题 120
第7章 可执行程序工作原理 122
7.1 ELF目标文件格式
122
7.1.1 ELF概述 122
7.1.2 ELF格式简介
123
7.1.3 相关操作指令 128
7.2 程序编译 129
7.2.1 预处理 129
7.2.2 编译 130
7.2.3 汇编 131
7.2.4 链接 133
7.3 链接与库 134
7.3.1 符号与符号解析
134
7.3.2 重定位 137
7.3.3 静态链接与动态链接
139
7.4 程序装载 143
7.4.1 程序装载概要 143
7.4.2 fork与execve内核处理过程 148
7.4.3 庄周梦蝶 153
7.4.4 小结 154
7.5 单元测试题 155
7.6 实验 156
第8章 进程的切换和系统的一般执行过程 158
8.1 进程调度的时机 158
8.1.1 硬中断与软中断
158
8.1.2 进程调度时机 159
8.2 调度策略与算法 161
8.2.1 进程的分类 161
8.2.2 调度策略 162
8.2.3 CFS调度算法
164
8.3 进程上下文切换 165
8.3.1 进程执行环境的切换
165
8.3.2 核心代码分析 167
8.4 Linux系统的运行过程
172
8.5 Linux系统构架与执行过程概览 174
8.5.1 Linux操作系统的构架 174
8.5.2 ls命令执行过程即涉及操作系统相关概念 175
8.6 进程调度相关源代码跟踪和分析 176
8.6.1 配置运行MenuOS系统 176
8.6.2 配置gdb远程调试和设置断点 177
8.6.3 使用gdb跟踪分析schedule()函数 177
8.7 单元测试题 179
-
内容简介:
本书从理解计算机硬件的核心工作机制(存储程序计算机和函数调用堆栈)和用户态程序如何通过系统调用陷入内核(中断异常)入手,通过上下两个方向双向夹击的策略,并利用实际可运行程序的反汇编代码从实践的角度理解操作系统内核,分析Linux内核源代码,从系统调用陷入内核、进程调度与进程切换开始,*后返回到用户态进程。
本书配有丰富的实验指导材料和练习,适合作为高等院校计算机相关专业的指导用书,也适合Linux操作系统开发人员自学。
-
作者简介:
孟宁,高校教师、资 深码农,主讲课程获国家精品在线开放课程认定。在读行学、网易云课堂、学堂在线、实验楼等在线教育平台的累计注册学员达10万余人次,专注于Linux内核、互联网架构、软件工程、区块链、人工智能等技术领域,与华为、IBM等多家国内外知名企业和创业公司有技术合作。
娄嘉鹏,高校教师,曾荣获北京市优 秀教师,蓝墨云平台北京市十大魅力教师等称号,讲授Java程序设计、Linux内核原理与分析、网络攻防实战、移动平台开发等课程,研究方向包括Linux内核及安全、密码系统、软件工程等。
刘宇栋,高校教师,主要研究方向包括网络攻防技术、系统安全、社交网络分析等。并讲授操作系统、Linux内核原理与分析、网络对抗技术等课程。
-
目录:
第 1章 计算机工作原理 1
1.1 存储程序计算机工作模型
1
1.2 x86-32汇编基础 3
1.2.1 x86-32 CPU的寄存器 4
1.2.2 数据格式 6
1.2.3 寻址方式和常用汇编指令 7
1.2.4 汇编代码范例解析 11
1.3 汇编一个简单的C语言程序并分析其汇编指令执行过程 13
1.4 单元测试题 26
1.5 实验 27
第 2章 操作系统是如何工作的 29
2.1 函数调用堆栈 29
2.2 借助Linux内核部分源代码模拟存储程序计算机工作模型及时钟中断 32
2.2.1 内嵌汇编 32
2.2.2 虚拟一个x86的CPU硬件平台 34
2.3 在mykernel基础上构造一个简单的操作系统内核 36
2.3.1 代码范例 36
2.3.2 代码分析 42
2.4 单元测试题 48
2.5 实验 48
第3章 MenuOS的构造 50
3.1 Linux内核源代码简介
50
3.2 构造一个简单的Linux内核 56
3.3 跟踪调试Linux内核的启动过程 60
3.4 单元测试题 65
3.5 实验 66
第4章 系统调用的三层机制(上) 67
4.1 用户态、内核态和中断
67
4.2 系统调用概述 70
4.2.1 操作系统提供的API和系统调用的关系 70
4.2.2 触发系统调用及参数传递方式 71
4.3 使用库函数API和C代码中嵌入汇编代码触发同一个系统调用 72
4.3.1 使用库函数API触发一个系统调用 72
4.3.2 内嵌汇编语法简介 73
4.3.3 C代码中嵌入汇编代码触发一个系统调用 75
4.3.4 含两个参数的系统调用范例 76
4.3.5 通用的触发系统调用的库函数syscall 78
4.4 单元测试题 79
4.5 实验 80
第5章 系统调用的三层机制(下) 81
5.1 给MenuOS增加命令 81
5.2 使用gdb跟踪系统调用内核函数sys_time 83
5.3 系统调用在内核代码中的处理过程 85
5.3.1 中断向量0x80和system_call中断服务程序入口的关系 86
5.3.2 在system_call汇编代码中的系统调用内核处理函数 87
5.3.3 整体上理解系统调用的内核处理过程 88
5.4 单元测试题 91
5.5 实验 92
第6章 进程的描述和进程的创建 93
6.1 进程的描述 93
6.2 进程的创建 97
6.2.1 0号进程的初始化
98
6.2.2 内存管理相关代码
99
6.2.3 进程之间的父子、兄弟关系 100
6.2.4 保存进程上下文中CPU相关的一些状态信息的数据结构 101
6.2.5 进程的创建过程分析
103
6.3 单元测试题 120
第7章 可执行程序工作原理 122
7.1 ELF目标文件格式
122
7.1.1 ELF概述 122
7.1.2 ELF格式简介
123
7.1.3 相关操作指令 128
7.2 程序编译 129
7.2.1 预处理 129
7.2.2 编译 130
7.2.3 汇编 131
7.2.4 链接 133
7.3 链接与库 134
7.3.1 符号与符号解析
134
7.3.2 重定位 137
7.3.3 静态链接与动态链接
139
7.4 程序装载 143
7.4.1 程序装载概要 143
7.4.2 fork与execve内核处理过程 148
7.4.3 庄周梦蝶 153
7.4.4 小结 154
7.5 单元测试题 155
7.6 实验 156
第8章 进程的切换和系统的一般执行过程 158
8.1 进程调度的时机 158
8.1.1 硬中断与软中断
158
8.1.2 进程调度时机 159
8.2 调度策略与算法 161
8.2.1 进程的分类 161
8.2.2 调度策略 162
8.2.3 CFS调度算法
164
8.3 进程上下文切换 165
8.3.1 进程执行环境的切换
165
8.3.2 核心代码分析 167
8.4 Linux系统的运行过程
172
8.5 Linux系统构架与执行过程概览 174
8.5.1 Linux操作系统的构架 174
8.5.2 ls命令执行过程即涉及操作系统相关概念 175
8.6 进程调度相关源代码跟踪和分析 176
8.6.1 配置运行MenuOS系统 176
8.6.2 配置gdb远程调试和设置断点 177
8.6.3 使用gdb跟踪分析schedule()函数 177
8.7 单元测试题 179
查看详情
-
全新
四川省成都市
平均发货61小时
成功完成率83.3%
-
全新
北京市房山区
平均发货23小时
成功完成率72.28%
-
全新
北京市房山区
平均发货13小时
成功完成率57.65%
-
全新
河北省保定市
平均发货15小时
成功完成率76.61%
-
全新
河北省保定市
平均发货15小时
成功完成率83.96%
-
全新
北京市通州区
平均发货8小时
成功完成率95.25%
-
全新
河北省保定市
平均发货31小时
成功完成率78.21%
-
全新
河北省保定市
平均发货27小时
成功完成率83.97%
-
全新
河北省保定市
平均发货24小时
成功完成率84.72%
-
全新
北京市丰台区
平均发货23小时
成功完成率88.57%
-
全新
河北省保定市
平均发货24小时
成功完成率86.1%
-
全新
河北省保定市
平均发货24小时
成功完成率84.65%
-
全新
上海市浦东新区
平均发货24小时
成功完成率77.3%
-
全新
河北省保定市
平均发货26小时
成功完成率91.98%
-
全新
河北省保定市
平均发货20小时
成功完成率86.81%
-
庖丁解牛Linux内核分析
本店所有图书均为正版一手库存书,无笔记,未翻阅。欢迎选购!,图片标题不一致时,请以标题即商品名称为准!配货发货只核对书号和商品名称,谢谢
全新
河北省保定市
平均发货23小时
成功完成率74.19%
-
全新
北京市朝阳区
平均发货18小时
成功完成率87.28%
-
全新
河北省保定市
平均发货25小时
成功完成率89.15%
-
全新
-
全新
河北省保定市
平均发货21小时
成功完成率82.81%
-
全新
北京市通州区
平均发货23小时
成功完成率86.93%
-
全新
北京市朝阳区
平均发货11小时
成功完成率85.3%
-
全新
河北省保定市
平均发货31小时
成功完成率74.15%
-
全新
河北省保定市
平均发货19小时
成功完成率86.89%
-
全新
-
全新
广东省广州市
平均发货21小时
成功完成率80.14%
-
全新
河北省保定市
平均发货8小时
成功完成率33.33%
-
全新
北京市通州区
平均发货9小时
成功完成率88.6%
-
全新
北京市丰台区
平均发货8小时
成功完成率90.33%
-
全新
北京市房山区
平均发货28小时
成功完成率83.74%
-
全新
山东省泰安市
平均发货24小时
成功完成率92.51%
-
全新
山东省泰安市
平均发货8小时
成功完成率92.79%
-
全新
上海市黄浦区
平均发货11小时
成功完成率94.51%
-
全新
江苏省无锡市
平均发货10小时
成功完成率92.13%
-
全新
山东省泰安市
平均发货13小时
成功完成率92.23%
-
全新
北京市朝阳区
平均发货14小时
成功完成率85.35%
-
全新
广东省广州市
平均发货18小时
成功完成率89.05%
-
全新
北京市西城区
平均发货29小时
成功完成率90.38%
-
全新
广东省广州市
平均发货9小时
成功完成率87.76%
-
全新
江苏省无锡市
平均发货10小时
成功完成率92.91%
-
全新
天津市河东区
平均发货29小时
成功完成率90.01%
-
全新
江苏省宿迁市
平均发货25小时
成功完成率87.66%
-
全新
北京市海淀区
平均发货24小时
成功完成率82.37%
-
全新
江苏省无锡市
平均发货25小时
成功完成率87.66%
-
全新
天津市西青区
平均发货14小时
成功完成率90.42%
-
庖丁解牛Linux内核分析
操作系统 透彻分析Linux系统工作方式 轻松入门Linux内核设计与实现 本书的视频课被教育部评为"国家精品在线开放课程" 新华书店全新正版书籍
全新
江苏省无锡市
平均发货8小时
成功完成率95.83%
-
全新
北京市顺义区
平均发货15小时
成功完成率94.32%
-
全新
广东省广州市
平均发货15小时
成功完成率90.11%
-
全新
北京市朝阳区
平均发货9小时
成功完成率96.79%
-
全新
江西省九江市
平均发货12小时
成功完成率79.22%