Linux内核分析及应用
电子书推荐
-
LINUX内核设计与实现 第二版.part1 评分:
本书基于linux 2.6内核系列详细介绍linux内核系统,覆盖了从核心内核系统的应用到内核设计与实现等各方面内容。主要内容包括:进程管理、系统调用?中断和中断处理程序、内核同步、时间管理、内存管理、地址空间、调试技术等。本书理论联系实践,既介绍理论也讨论具体应用,能够带领读者快速走进linux内核世界,真正开发内核代码。. 本书适合作为高等院校操作系统课程的教材或参考书,也可供相关技术人员参考。.. 本书填补了linux内核理论和实践细节之间的鸿沟。本书针对linux 2.6内核,包括0(1)调度程序、抢占式内核。块i/o层以及i/o调度程序等。本书还包含了linux内核开发者在开发时需要用到的很多信息,包括调试技术、编程风格、注意事项等等。 如果你是一名linux内核爱好者,本书的内容可以帮助你大显身手。如果你是一名普通程序员,本书的内容将会拓宽你的编程思路。如果你初次接触linux内核,本书则可以帮助你对内核各个核心子系统有一个整体把握。 译者序 序言 前言 第1章 linux内核简介. 1.1 追寻linus的足迹:linux简介 1.2 操作系统和内核简介 1.3 linux内核和传统unix内核的比较 1.4 linux内核版本 1.5 linux内核开发者社区 1.6 小结 第2章 从内核出发 2.1 获取内核源码 2.1.1 安装内核源代码 2.1.2 使用补丁 2.2 内核源码树 2.3 编译内核 2.3.1 减少编译的垃圾信息 2.3.2 衍生多个编译作业 2.3.3 安装内核 2.4 内核开发的特点 .2.4.1 没有libc库 2.4.2 gnu c 2,4.3 没有内存保护机制 2.4.4 不要轻易在内核中使用浮点数 2.4.5 容积小而固定的栈 2.4.6 同步和并发 2.4.7 可移植性的重要性 2.5 小结 第3章 进程管理 3.1 进程描述符及任务结构 3.1.1 分配进程描述符 3.1.2 进程描述符的存放 3.1.3 进程状态 3.1.4 设置当前进程状态 3.1.5 进程上下文 3.1.6 进程家族树 3.2 进程创建 3.2.1 写时拷贝 3.2.2 fork() 3.2.3 vfork() 3.3 线程在linux中的实现 3.4 进程终结 3.4.1 删除进程描述符 3.4.2 孤儿进程造成的进退维谷 3.5 进程小结 第4章 进程调度 4.1 策略 4.1.1 i/o消耗型和处理器消耗型的进程 4.1.2 进程优先级 4.1.3 时间片 4.1.4 进程抢占 4.1.5 调度策略的活动 4.2 linux调度算法 4.2.1 可执行队列 4.2.2 优先级数组 4.2.3 重新计算时间片 4.2.4 schedule() 4.2.5 计算优先级和时间片 4.2.6 睡眠和唤醒 4.2.7 负载平衡程序 4.3 抢占和上下文切换 4.3.1 用户抢占 4.3.2 内核抢占 4.4 实时 4.5 与调度相关的系统调用 4.5.1 与调度策略和优先级相关的系统调用 4.5.2 与处理器绑定有关的系统调用 4.5.3 放弃处理器时间 4.6 调度程序小结 第5章 系统调用 5.1 api、posix和c库 5.2 系统调用 5.2.1 系统调用号 5.1.2 系统调用的性能 5.3 系统调用处理程序 5.3.1 指定恰当的系统调用 5.3.2 参数传递 5.4 系统调用的实现 5.5 系统调用上下文 5.5.1 绑定一个系统调用的最后步骤 5.5.2 从用户空间访问系统调用 5.5.3 为什么不通过系统调用的方式实现 5.6 系统调用小结 第6章 中断和中断处理程序 6.1 中断 6.2 中断处理程序 6.3 注册中断处理程序 6.4 编写中断处理程序 6.4.1 共享的中断处理程序 6.4.2 中断处理程序实例 6.5 中断上下文 6.6 中断处理机制的实现 6.7 中断控制 6.7.1 禁止和激活中断 6.7.2 禁止指定中断线 6.7.3 中断系统的状态 6.8 别打断我,马上结束 第7章 下半部和推后执行的工作 7.1 下半部 7.1.1 为什么要用下半部 7.1.1 下半部的环境 7.2 软中断 7.2.1 软中断的实现 7.2.2 使用软中断 7.3 tasklet 7.3.1 tasklet的实现 7.3.2 使用tasklet 7.3.3 ksofiirqd 7.3.4 老的bh机制 7.4 工作队列 7.4.1 工作队列的实现 7.4.2 使用工作队列 7.4.3 老的任务队列机制 7.5 下半部机制的选择 7.6 在下半部之间加锁 7.7 下半部处理小结 第8章 内核同步介绍 8.1 临界区和竞争条件 8.2 加锁 8.2.1 到底是什么造成了并发执行 8.2.2 要保护些什么 8.3 死锁 8.4 争用和扩展性 8.5 小结 第9章 内核同步方法 9.1 原子操作 9.1.1 原子整数操作 9.1.2 原子位操作 9.2 自旋销 9.2.1 其他针对自旋锁的操作 9.2.2 自旋销和下半部 9.3 读一写自旋销 9.4 信号量 9.4.1 创建和初始化信号量 9.4.2 使用信号量 9.5 读—写信号量 9.6 自旋锁与信号量 9.7 完成变量 9.8 bkl.. 9.9 禁止抢占 9.10 顺序和屏障 9.11 小结 第10章 定时器和时间管理 10.1 内核中的时间概念 10.2 节拍率:hz 10.3 jiffies 10.3.1 jiffies的内部表示 10.3.2 jiffies的回绕 10.3.3 用户空间和hz 10.4 硬时钟和定时器 10.4.1 实时时钟 10.4.2 系统定时器 10.5 时钟中断处理程序 10.6 实际时间 10.7 定时器 10.7.1 使用定时器 10,7.2 定时器竞争条件 10.7.3 实现定时器 10.8 延迟执行 10.8.1 忙等待 10.8.2 短延迟 10.8.3 schedule_timeout() 10.8.4 设置超时时间,在等待队列上睡眠 10.9 小结 第11章 内存管理 11.1 页 11.2 区 11.3 获得页 11.3.1 获得填充为0的页 11.3.2 释放页 11.4 kmalloc() 11.4.1 gfp_mask标志 11.4.2 kfree() 11.5 vmalloc() 11.6 slab层 11.7 slab分配器的接口 11.8 在栈上的静态分配 11.9 高端内存的映射 11.9.1 永久映射 11.9.2 临时映射 11.10 每个cpu的分配 11.11 新的每个cpu接口 11.11.1 编译时的每个cpu数据 11.11.2 运行时的每个cpu数据 11.12 使用每个cpu数据的原因 11.13 分配函数的选择 第12章 虚拟文件系统 12.1 通用文件系统接口 12.1 文件系统抽象层 12.3 unix文件系统 12.4 vfs对象及其数据结构 12.5 超级块对象 12.6 索引节点对象 12.7 目录项对象 12.7.1 目录项状态 12.7.2 目录项缓存 12.7.3 目录项操作 12.8 文件对象 12.9 和文件系统相关的数据结构 12.10 和进程相关的数据结构 12.11 linux中的文件系统 第13章 块i/o层 13.1 解剖一个块设备 13.2 缓冲区和缓冲区头 13.3 bio结构体 13.4 请求队列 19.5 i/o调度程序 13.5.1 i/0调度程序的工作 13.5.2 linus电梯 13.5.3 最终期限i/o调度程序 13.5.4 预测i/0调度程序 13.5.5 完全公正的排队i/0调度程序 13.5.6 空操作的i/o调度程序 13.5.7 i/o调度程序的选择 13.6 小结 第14章 进程地址空间 14.1 内存描述符 14.1.1 分配内存描述符 14.1.2 销毁内存描述符 14.1.3 mm_struct与内核线程 14.2 内存区域 14.2.1 vma标志 14.2.2 vma操作 14.2.3 内存区域的树型结构和内存区域的链表结构 14.2.4 实际使用中的内存区域 14.3 操作内存区域 14.3.1 find_vma() 14.3.2 find_vma_prev() 14.3.3 find vma_intersection() 14.4 mmap()和do_mmap():创建地址区间 14.5 munmap()和do_munmap():删除地址区间 14.6 页表 14.7 小结 第15章 页高速缓存和页回写 15.1 页高速缓存 15.2 基树 15.3 缓冲区高速缓存 15.4 pdfiush后台例程 15.4.1 膝上型电脑模式 15.4.2 bdflush和kupdated 15.4.3 避免拥塞的方法:使用多线程 15.5 小结 第16章 模块 16.1 构建模块 16.1.1 放在内核源代码树中 16.1.2 放在内核代码外 16.2 安装模块 16.3 产生模块依赖性 16.4 载入模块 16.5 管理配置选项 16.6 模块参数 16.7 导出符号表 16.8 小结 第17章 kobject与sysfs 17.1 kobject 17.2 ktype 17.3 kset 17.4 subsystem 17.5 别混淆了这些结构体 17.6 管理和操作kobject 17.7 引用计数 17.8 sysfs 17.8.1 sysfs中添加和删除kobject 17.8.2 向sysfs中添加文件 17.9 内核事件层 17.10 小结 第18章 调试 18.1 调试前需要准备什么 18.2 内核中的bug 18.3 printk() 18.3.1 printk()函数的健壮性 18.3.2 记录等级 18.3.3 记录缓冲区 18.3.4 syslogd和klogd 18.3.5 printk()和内核开发时需要留意的一点 18.4 oops 18.4.1 ksymoops 18.4.2 kallsyms 18.5 内核调试配置选项 18.6 引发bug并打印信息 18.7 神奇的sysrq 18.8 内核调试器的传奇 18.8.1 gdb 18.8.2 kgdb 18.8.3 kdb 18.9 刺探系统 18.9.1 用uid作为选择条件 18.9.2 使用条件变量 18.9.3 使用统计量 18.9.4 重复频率限制 18.10 用二分查找法找出引发灾难的变更 18.11 当所有的努力都失败时 第19章 可移植性 19.1 linux的可移植性 19.2 字长和数据类型 19.2.1 不透明类型 19.2.2 指定数据类型 19.2.3 长度明确的类型 19.2.4 char型的符号问题 19.3 数据对齐 19.3.1 避免对齐引发的问题 19.3.2 非标准类型的对齐 19.3.3 结构体填补 19.4 字节顺序 19.4.1 高位优先和低位优先的历史 19.4.2 内核中的字节顺序 19.5 时间 19.6 页长度 19.7 处理器排序 19.8 smp、内核抢占、高端内存 19.9 小结 第20章 补丁、开发和社区 20.1 社区 20.2 linux编码风格 20.2.1 缩进 20.2.2 括号 20.2.3 每行代码的长度 20.2.4 命名规范 20.2.5 函数 20.2.6 注释 20.2.7 typedef 20.2.8 多用现成的东西 20.2.9 在源码中不要使用ifdef 20.2.10 结构初始化 20.2.11 代码的事后修正 20.3 管理系统 20.4 提交错误报告 20.5 创建补丁 20.6 提交补丁 20.7 小结 附录a 链表... 附录b 内核随机数产生器 附录c 复杂度算法
上传时间:2012-03 大小:8.58MB
- 5.20MB
LINUX内核设计与实现.part1(第二版).pdf(中文)
2010-04-18LINUX内核设计与实现.pdf Robert love著 中文版
- 5.20MB
LINUX内核设计与实现.part2(第二版).pdf(中文)
2010-04-18LINUX内核设计与实现。pdf 中文版pdf
- 12.56MB
LINUX内核设计与实现中文第二版(part3--part9)
2010-07-11LINUX内核设计与实现中文第二版 LINUX内核设计与实现中文第二版 LINUX内核设计与实现中文第二版
- 6.70MB
☆☆LINUX内核设计与实现.(第二版)中文版 part2共2
2010-05-19☆☆LINUX内核设计与实现.part2.rar
- 1.95MB
LINUX内核设计与实现[1].part07.rar
2009-03-25基于linux内核2.6,详细介绍内核的设计与实现。 中文第二版
- 17.16MB
深入理解Linux内核(第二版).part2.rar
2010-04-19深入理解Linux内核(第二版).part2.rar 深入理解Linux内核(第二版).part2.rar
- 1.95MB
LINUX内核设计与实现[1].part08.rar
2009-03-25基于linux内核2.6,详细介绍内核的设计与实现。 中文第二版。
- 1.95MB
LINUX内核设计与实现[1].part04.rar
2009-03-25基于linux2.6内核,详细介绍内核的设计与实现。 中文第二版
- 1.95MB
LINUX内核设计与实现[1].part06.rar
2009-03-25基于linux2.6内核,详细介绍内核的设计与实现。 中文第二版
- 17.16MB
深入理解Linux内核(第二版).part1.rar
2010-04-19深入理解Linux内核(第二版).part1.rar 深入理解Linux内核(第二版).part1.rar
- 9.97MB
深入理解linux内核(第二版)中文版.part1
2008-09-01深入理解linux内核(第二版)中文版.part1 共4个
- 3.20MB
深入理解Linux内核(第二版).part3.rar
2010-04-19深入理解Linux内核(第二版).part3.rar 深入理解Linux内核(第二版).part3.rar
- 10.0MB
Linux内核设计与实现 part1(第二版 中文PDF) Linux Kernel Development (2nd Edition)
2009-01-05本书填补了Linux内核理论和实践细节之间的鸿沟。Robed Love著,陈莉君翻译。 本书针对Linux 2.6内核,包括O(1)调度程序、抢占式内核、块I/O层以及I/O调度程序等。本书还包含了Linux内核开发者在开发时需要用到的很多...
- 5.20MB
LINUX内核设计与实现.part3(第二版).pdf(中文)
2010-04-18LINUX内核设计与实现。pdf 中文版pdf。
- 878KB
LINUX内核设计与实现.part4(第二版).pdf(中文)
2010-04-18LINUX内核设计与实现。pdf 中文版pdf。
- 9.76MB
☆☆LINUX内核设计与实现(第二版)中文版.pdf part1共2个
2010-05-19☆☆LINUX内核设计与实现.pdf (第二版)中文版,挺清楚的,内核的入门书,四库全书之一
- 6.93MB
LINUX内核设计与实现(第二版)part2
2010-07-24LINUX内核设计与实现(第二版)中文版,part2 因为只能上传15M一下的文件,所以分成两个卷,希望大家谅解!
- 9.53MB
LINUX内核设计与实现(第二版)part1
2010-07-24LINUX内核设计与实现,第二版,中文版。 因为文件只能上传15M一下的,所以分成了两个卷!请大家谅解!
- 57.21MB
深入理解linux内核第三版中文版.part3.rar
2012-10-28深入理解linux内核第三版中文版,详细讲解linux内部运作机制,学习linux的经典教材。 目录: 前言 第一章绪论 第二章内存寻址 第三章进程 第四章中断和异常 第五章内核同步 第六章定时测量 第七章进程调度 第八章...
- 7.62MB
深入理解linux内核(第二版)中文版.part4
2008-09-01深入理解linux内核(第二版)中文版.part4 共4个
- 0B
max30102实战资料,全部免费开源,包含硬件设计,下位机程序,上位机程序,结构设计
2022-11-20max30102实战资料,全部免费开源,包含硬件设计,下位机程序,上位机程序,结构设计 100%开源,非常简单,这里温馨提示和说明,本设计只试用于手指测量,不可作为商业试用,如有不良后果本博主不负任何责任,本文件全套调试通过,手指正常测量试用,可以在此基础上二次更改
- 567.65MB
VMware Workstation 16虚拟机安装包
2022-01-14VMware Workstation 16虚拟机安装包
- 69.25MB
FinalShell安装包,让用户通过SSH、Telnet或者RDP等协议连接到远程服务器或设备,实现远程控制和管理
2023-08-28FinalShell是一款功能强大的远程终端软件,它可以让用户通过SSH、Telnet或者RDP等协议连接到远程服务器或设备,实现远程控制和管理。FinalShell支持多标签页、会话管理、命令自动补全、命令批量执行等功能,用户可以方便地在多个终端之间切换,同时也可以对会话进行分组管理。此外,FinalShell还提供了强大的文件传输功能,用户可以直接在本地和远程设备之间进行文件的上传和下载。FinalShell还支持脚本录制和回放,方便用户自动化执行一系列命令。总之,FinalShell是一款易用、功能丰富的远程终端软件,适用于系统管理员、开发人员和网络工程师等多种角色。
- 119.92MB
Ubuntu微信Linux版(非Wine版)
2024-03-21Ubuntu微信Linux版(非Wine版)
- 14.37MB
iStoreOS-PassWall
2023-11-11安装方法:http://t.csdnimg.cn/6GUug
- 42.78MB
vdhcoapp 2.0.19 linux版本,配合video downloadhelper使用
2024-03-04vdhcoapp 2.0.19 linux版本,配合video downloadhelper使用
- 169.15MB
黑白群晖 DSM7.X 监控套件 SurveillanceStation-x86-64-9.1.1-10728 学习版
2023-06-03黑白群晖 DSM7.X 监控套件 SurveillanceStation 授权 教程 教程:https://blog.csdn.net/maxage/article/details/131023919 仅供学习研究使用,请勿用于商业用途。 SurveillanceStation 的功能和特点: 视频监控管理:SurveillanceStation 提供直观的用户界面,方便用户管理和监控多个网络摄像头。您可以轻松查看实时视频、回放录像、设置警报和时间表等。 智能分析:该软件支持人脸识别、移动侦测和声音侦测等智能分析功能。这些功能可以帮助您更好地理解和处理监控场景中发生的事件。 远程访问和移动应用:通过 Synology 提供的移动应用程序,您可以随时随地通过手机或平板电脑远程访问 SurveillanceStation,并实时查看监控画面。 存储管理:SurveillanceStation 可以与 Synology 的网络存储设备(如 DiskStation)结合使用,以提供高效的存储解决方案。您可以根据需要扩展存储容量,并使用存储管理功能进行数据备份和恢复
- 500.0MB
Kylin-Server-V10-SP3-General-Release-2212-X86-64.7z.001
2023-12-07Kylin-Server-V10-SP3-General-Release-2212-X86-64.7z.001
- 0B
openssh-server离线安装包
2022-11-04openssh-server离线安装包 三个.deb文件
- 9.52MB
SecureCRT工具
2022-06-05SecureCRT介绍:这款工具可以帮助我们在Windows下面操作Linux系统。