给大家带来的一篇关于Linux相关的电子书资源,介绍了关于Linux、Linux内核方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小8.4 MB,孟宁 娄嘉鹏 刘宇栋编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.7分
Tags:Linux Linux内核
内容介绍
《庖丁解牛Linux内核分析》从理解计算机硬件的核心工作机制(存储程序计算机和函数调用堆栈)和用户态程序如何通过系统调用陷入内核(中断异常)入手,通过上下两个方向双向夹击的策略,并利用实际可运行程序的反汇编代码从实践的角度理解操作系统内核,分析Linux内核源代码,从系统调用陷入内核、进程调度与进程切换开始,最后返回到用户态进程。本书配有丰富的实验指导材料和练习,适合作为高等院校计算机相关专业的指导用书,也适合Linux操作系统开发人员自学。
目录
-
第 1章计算机工作原理 1
-
1.1 存储程序计算机工作模型 1
-
1.2 x86-32汇编基础 3
-
1.2.1x86-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.3C代码中嵌入汇编代码触发一个系统调用 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电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。
上一篇:区块链网络构建和应用:基于超级账本Fabric的商业实践
下一篇:Android应用案例开发大全
pycharm远程linux开发和调试代码的方法
pycharm是一个非常强大的python开发工具,现在很多代码最终在线上跑的环境都是linux,而开发环境可能还是windows下开发,这就需要经常在linux上进行调试,或者在linux对代码进行编写,而pycharm提供了非常便捷的方式。具体实现在windows上远程linux开发和调试的代码步骤如下: 配置远程linux主机信息 选择Tools--Deployment--Configuration 这里选择SFTP就可以 这里添加SFTP主机信息然后可以天机测试连接,输入用户名和密码 这里默认根路径就可以 Local path配置为你windows本地的代码路径就可以 Deployment path on server 这个配置为你linux上代码的路径 配置完成之后点击ok保存 这个时候通过Tools--Deployment--Browse Remote Host就可以看到你……