实例介绍
【实例简介】内核是操作系统的核心,操作系统的基本功能都是由内核提供的。
文件生成和数据包传输等也是通过内核的功能实现的。但这些都不是简单的任务。平时可能意识不到,但这其中确实包含了很多先进技术。例如,在文件系统方面,配置文件时尽量减少磁盘扫描,在网络方面,由于路由表的入口数量庞大,因此设计时尽量保证对系统整体影响较小的设计。在内存管理、进程管理方面也作出了很多努力。解读这种先进技术也是内核构建的魅力之一。
然而,最近的Linux所提供的并不只有基本功能。随着功能的不断发展,现在已经出现了很多特定领域的便捷功能和独特功能。即使是内核黑客也很少有人能够完全掌握。
本书从Linux内核的众多先进功能中选取了一些必备并且有趣的内容进行介绍,同时也对内部的运行机制和结构进行了阐述。此外,本书还介绍了熟练使用这些功能所需的工具、设置方法以及调整方法等。省电就是其中一项内容。除了使用方法以外,本书还介绍了省电的理念、与硬件的关系等。此外,还提到了当前广受关注的虚拟化、资源管理、标准文件系统中所采用的ext4等已有功能和新功能。对于已有功能,本书结合最新的源码,介绍它的更改内容和新增功能。其中也包括文档中没有记载,且必须对内核内部有一定理解才能得知的信息,因此,即使是比较了解这个功能的人也可能会有新的发现。另外,本书还介绍了内核的相关工具,其中gcore在重要的系统中就是非常可靠的工具。
最新的Linux内核中安装了强大的追踪、概要分析功能,具备很多方便实用的功能。这些功能不仅能够很方便地达到预期的目的,而且对于分析内核功能也非常有用。甚至对于内核构建的高手也有一定帮助。
全书列举了非常多的实例,让读者更快地学会如何使用。对于想要熟练使用内核的读者来说,本书也是非常好的参考书。
【实例截图】
文件生成和数据包传输等也是通过内核的功能实现的。但这些都不是简单的任务。平时可能意识不到,但这其中确实包含了很多先进技术。例如,在文件系统方面,配置文件时尽量减少磁盘扫描,在网络方面,由于路由表的入口数量庞大,因此设计时尽量保证对系统整体影响较小的设计。在内存管理、进程管理方面也作出了很多努力。解读这种先进技术也是内核构建的魅力之一。
然而,最近的Linux所提供的并不只有基本功能。随着功能的不断发展,现在已经出现了很多特定领域的便捷功能和独特功能。即使是内核黑客也很少有人能够完全掌握。
本书从Linux内核的众多先进功能中选取了一些必备并且有趣的内容进行介绍,同时也对内部的运行机制和结构进行了阐述。此外,本书还介绍了熟练使用这些功能所需的工具、设置方法以及调整方法等。省电就是其中一项内容。除了使用方法以外,本书还介绍了省电的理念、与硬件的关系等。此外,还提到了当前广受关注的虚拟化、资源管理、标准文件系统中所采用的ext4等已有功能和新功能。对于已有功能,本书结合最新的源码,介绍它的更改内容和新增功能。其中也包括文档中没有记载,且必须对内核内部有一定理解才能得知的信息,因此,即使是比较了解这个功能的人也可能会有新的发现。另外,本书还介绍了内核的相关工具,其中gcore在重要的系统中就是非常可靠的工具。
最新的Linux内核中安装了强大的追踪、概要分析功能,具备很多方便实用的功能。这些功能不仅能够很方便地达到预期的目的,而且对于分析内核功能也非常有用。甚至对于内核构建的高手也有一定帮助。
全书列举了非常多的实例,让读者更快地学会如何使用。对于想要熟练使用内核的读者来说,本书也是非常好的参考书。
【实例截图】

【核心代码】
目 录 O’Reilly Media, Inc.介绍 编者与作者介绍 主编简介 作者简介 撰稿人简介 技术审校者简介 致谢 主编致辞 前言 本书主要内容 本书使用方法 本书约定 意见与提问 第1章 内核入门 HACK#1如何获取Linux内核 内核的种类 Linus树 如何获取上游内核 如何获取发布版内核 Ubuntu 小结 参考文献 HACK#2 如何编译Linux内核 内核编译的过程 需要的源码包 编译、安装上游内核 生成内核包 在源码树外编译模块 交叉编译内核 小结 参考文献 HACK#3 如何编写内核模块 内核模块 通过内核配置编写模块 编写特有的内核模块 添加内核模块 小结 参考文献 HACK#4 如何使用Git 分布式仓库型SCM 在本地仓库进行操作 与远程仓库进行共同作业 将开发分支rebase到最新状态 其他有用的命令 小结 HACK#5 使用checkpatch.pl检查补丁的格式 检查格式的示例 使用checkpatch.pl输出的主要错误或警告 小结 参考文献 HACK#6 使用localmodconfig缩短编译时间 localmodconfig的使用方法 localmodconfig的效果 localmodconfig的结构 小结 第2章 资源管理 HACK#7 Cgroup、Namespace、Linux容器 Cgroup Namespace Linux容器 小结 参考文献 HACK#8 调度策略 调度策略 关于调度策略的系统调用 chrt命令 小结 参考文献 HACK#9 RT Group Scheduling与RT Throttling 实时 RT Throttling 小结 参考文献 HACK#10 Fair Group Scheduling Fair Group Scheduling Fair Group Scheduling的使用方法 小结 HACK#11 cpuset 用法 小结 HACK#12 使用Memory Cgroup限制内存使用量 Memory Cgroup 用法 限制内存使用量 层次结构 显示统计信息 小结 参考文献 HACK#13 使用Block I/O控制器设置I/O优先级 使用Block I/O控制器的前提条件 尝试使用Block I/O控制器 Block I/O控制器提供的特殊文件 关于Block I/O控制器的CFQ设置用虚拟文件 限制事项 小结 参考文献 HACK#14 虚拟存储子系统的调整 虚拟空间存储方式 虚拟空间超额使用量的调整 小结 HACK#15 ramzswap 使用论坛版ramzswap ramzswap disk的使用方法 backing swap的使用方法 使用上游内核的ramzswap 小结 参考文献 HACK#16 OOM Killer的运行与结构 确认运行、日志 进程的选定方法 计算分数的方法 关于OOM Killer的proc文件系统 RHEL5的特征 RHEL4的运行 小结 参考文献 第3章 文件系统 HACK#17 如何使用ext4 ext4的生成与挂载 关于mount选项 开发版ext4的获取方法 小结 参考文献 HACK#18 向ext4转换 转换 关于功能标志 小结 参考文献 HACK#19 ext4的调整 小结 参考文献 HACK#20 使用fio进行I/O的基准测试 安装fio 基本执行方法 模拟实验的例子和输出的意义 小结 HACK#21 FUSE FUSE概要 安装FUSE文件系统 卸载 使用FUSE的文件系统 小结 参考文献 第4章 网络 HACK#22 如何控制网络的带宽 设置带宽控制 启动脚本 确认带宽控制 小结 参考文献 HACK#23 TUN/TAP设备 TUN/TAP设备 TUN设备 TAP设备 应用程序示例 使用TUN/TAP设备的程序设计示例 小结 HACK#24 网桥设备 brctl命令 使用网桥功能的示例 网桥的设置 RedHat系列的情况 虚拟机的网桥连接 小结 HACK#25 VLAN 使用命令进行设置 使用设置文件进行设置 MAC-VLAN 参考文献 HACK#26 bonding驱动程序 使用方法 关于激活备份模式 参考文献 HACK#27 Network Drop Monitor dropwatch的使用方法 小结 参考文献 第5章 虚拟化 HACK#28 如何使用Xen Xen的概要 Xen的半虚拟化客户端的使用方法 Xen的全虚拟化客户端的使用方法 小结 HACK#29 如何使用KVM KVM的概要 KVM的使用方法 KVM的网络选项 小结 参考文献 HACK#30 如何不使用DVD安装操作系统 需要的准备 小结 HACK#31 更改虚拟CPU分配方法,提高性能 使用virt-manager的物理CPU分配方法 概要分析 小结 参考文献 HACK#32 如何使用EPT提高客户端操作系统的性能 MMU 影子页表 EPT 如何使用EPT 小结 参考文献 HACK#33 使用IOMMU提高客户端操作系统运行速度 虚拟环境下客户端操作系统的I/O方式 关于DMA IOMMU KVM的IOMMU的使用方法 Xen的IOMMU的使用方法 小结 参考文献 HACK#34 使用IOMMU SR-IOV提高客户端操作系统速度 SR-IOV SR-IOV的功能 在KVM中使用SR-IOV的方法 小结 HACK#35 SR-IOV带宽控制 Intel 82576的带宽控制 Intel 82576的带宽控制的使用方法 尝试测量带宽 小结 参考文献 HACK#36 使用KSM节约内存 使用方法 sysfs 小结 参考文献 HACK#37 如何挂载客户端操作系统的磁盘 guestfish lomount kpartx 小结 参考文献 HACK#38 从客户端操作系统识别虚拟机环境 CPUID命令 固有文件 ACPI DSDT/FADT的OEM ID System Management BIOS(SMBIOS) virt-what 小结 参考文献 HACK#39 如何调试客户端操作系统 Xen的情况 KVM的情况 小结 参考文献 第6章 省电 HACK#40 ACPI ACPI的用语 G状态与S状态 D状态 C状态 P状态 ACPI的结构 两个编程模型 ACPI寄存器 ACPI系统描述表 ACPI命名空间和AML(ASL) 查看ACPI的表 小结 参考文献 HACK#41 使用ACPI的S状态 S3状态的使用方法 S3状态的结构 S4状态的使用方法 小结 HACK#42 使用CPU省电(C、P状态) C状态的使用方法 P状态的使用方法 小结 参考文献 HACK#43 PCI设备的热插拔 Hot-add的流程 Hot-remove的流程 确认热插拔功能 Linux的热插拔子系统 小结 HACK#44 虚拟环境下的省电 虚拟环境下的省电思想 Xen的P状态 Xen的C状态 KVM的C/P状态 小结 参考文献 HACK#45 远程管理机器的电源 Wake On LAN IPMI 小结 参考文献 HACK#46 USB的电力管理 概要 设置方法 小结 参考文献 HACK#47 显示器的省电 显示器的电源控制 显示器的亮度控制 小结 参考文献 HACK#48 通过网络设备节省电能 禁用WOL 降低速度 进行改造 小结 参考文献 HACK#49 关闭键盘的LED来省电 PS/2键盘 各式各样的键盘 参考文献 HACK#50 PowerTOP 概要 PowerTOP的详细情况和结构 小结 参考文献 HACK#51 硬盘的省电 LPM 显示正在使用的硬盘信息 关于省电的设置 关于I/O性能的设置 参考文献 第7章 调试 HACK#52 SysRq键 使用方法 SysRq键的输入方法 SysRq命令键 上游内核的SysRq键显示的例子 各种情况下的使用方法 小结 参考文献 HACK#53 使用diskdump提取内核崩溃转储 内核崩溃转储 diskdump的限制事项 启用diskdump 使用压缩和部分转储功能缩小转储文件的大小 发生故障时通过邮件通知 将转储输出到的设备冗长化 小结 参考文献 HACK#54 使用Kdump提取内核崩溃转储 启用崩溃转储 使用makedumpfile缩小转储的文件大小 向远程服务器传输崩溃转储 小结 参考文献 HACK#55 崩溃测试 小结 HACK#56 IPMI看门狗计时器 IPMI看门狗计时器 IPMI看门狗计时器的使用方法 设置示例 确认运行 其他看门狗计时器 参考文献 HACK#57 NMI看门狗计时器 NMI看门狗计时器 NMI看门狗计时器的使用方法 关于NMI的其他参数 HACK#58 soft lockup soft lockup的结构 soft lockup的设置 soft lockup的确认 锁定检测的限制 避免soft lockup的错误检测 小结 HACK#59 crash命令 支持范围 安装与启动的方法 实用工具命令(utility command) 参照内核信息的命令 扩展命令 crash选项 参考文献 HACK#60 核心转储过滤器 使用方法 sysctl 小结 参考文献 HACK#61 生成用户模式进程的进程核心转储 使用案例 安装 使用crash参照用户进程的符号信息的方法 支持范围 注意事项 参考文献 HACK#62 使用lockdep查找系统的死锁 lockdep的结构 创建启用了lockdep的内核 尝试使用lockdep功能 小结 参考文献 HACK#63 检测内核的内存泄漏 编译内核 使用方法 小结 参考文献 第8章 概要分析与追踪 HACK#64 使用perf tools的概要分析(1) perf tools 确认perf tools的运行 小结 参考文献 HACK#65 使用perf tools的概要分析(2) 使用perf进行概要分析的步骤 进行缓存未命中的概要分析 小结 HACK#66 进行内核或进程的各种概要分析 使用perf stat获取综合统计信息 使用perf script进行追踪 使用自己的脚本处理数据 小结 参考文献 HACK#67 追踪内核的函数调用 ftrace 创建启用ftrace的内核 操作ftrace的debugfs接口 使用ftrace追踪函数调用 小结 参考文献 HACK#68 ftrace的插件追踪器 获取函数的调用关系 进行函数的概要分析 调查占用内核栈最大的位置 测量中断的延迟 小结 参考文献 HACK#69 记录内核的运行事件 调查可使用的追踪事件 调查事件的格式 控制事件 使用ftrace的事件加强其他的追踪器输出 小结 参考文献 HACK#70 使用trace-cmd的内核追踪 trace-cmd的获取与创建 使用trace-cmd进行追踪 使用trace-cmd进行后台追踪 使用trace-cmd结束追踪 使用trace-cmd获取远程机器的追踪 小结 HACK#71 将动态追踪事件添加到内核中 动态追踪事件 经由ftrace将动态追踪事件添加到内核中 使用perf probe将动态追踪事件添加到内核中 启用调试信息和动态追踪事件构建内核 perf probe的使用方法 小结 参考文献 HACK#72 使用SystemTap进行内核追踪 概述 准备 样本脚本 测量时间 定义探测点 尝试执行 小结 参考 HACK#73 使用SystemTap编写对话型程序 使用SystemTap进行输出界面控制 使用SystemTap接受来自键盘、鼠标的输入 小结 参考文献 HACK#74 SystemTap脚本的重复利用 使用别名分离逻辑 编写Tapset SystemTap脚本的Shebang 小结 HACK#75 运用SystemTap 在后台执行SystemTap 将SystemTap作为服务启动 小结 参考资料
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论