具体描述
本书内容涉及Linux内部结构、虚拟化基础设施环境的构建、内核源代码的阅读以及RHEL6新功能综述。通过搭建虚拟化基础设施,给读者提供了方便实用的Linux系统的学习和实践环境;同时,设计了10个可操作的脚本实验,尽可能覆盖Linux操作系统的关键应用技术,包括进程监控、远程登录、文本处理等。其中的技巧根植于作者的多年经验,具有极强的现场感和可操作性。
作者简介
作者简介:
中井悦司
就职于著名的Linux发行商Red Hat,主要致力于推动Linux/OSS在企业系统中的应用。从使用Linux/OSS的企业应用开发,到10000余台Linux服务器的运维、私有云的设计和构建,通过各种各样的项目掌握了丰富的Linux编程经验,并积极地将自己的经验传授给年轻的程序员们。著有《Linux系统网络管理技术》等。
译者简介:
李睿
北京航空航天大学软件开发环境国家重点实验室在读博士研究生。参与过863计划、国家科技支撑计划等多项重大课题,在国内国际会议及期刊上发表论文数篇,申报多项专利及软件著作权。2013年受资助前往英国伯明翰大学计算机学院访学。曾任第12届中国计算机学会青年科技论坛(CCF YOCSEF)研究生分论坛主席。
马世龙
北京航空航天大学计算机学院教授、博士生导师。获2012年度国防科学技术进步奖二等奖、2012年度北京市科学技术奖三等奖。在国内外学术刊物和国际学术会议上发表研究论文一百余篇。现任中国人工智能学会常务理事,中国人工智能学会基础理论专业委员会主任。国家新闻出版总署重大科技工程项目专家咨询委员会委员。
目录信息
1.1 Linux的三大基础:磁盘、进程、内存 2
1.2 磁盘和文件 3
1.2.1 磁盘的3D参数 3
1.2.2 新旧分区表 7
UEFI和GPT 8
4KB扇区的磁盘 11
1.2.3 文件系统和I/O子系统 12
文件系统的块大小 12
I/O子系统的概貌 15
理解I/O调度器 17
1.3 控制进程就等于控制Linux 22
1.3.1 fork和exec分别是进程的分身和变身 22
1.3.2 作业控制中的各项任务处理 28
1.3.3 快速的数据处理管道 33
1.4 至关重要的内存管理 41
1.4.1 物理内存的分配 42
用户内存的分类 43
内核内存的分类 47
1.4.2 内存的分配和释放 51
了解内存分配机制 52
了解内存释放机制 54
1.4.3 上下文切换和页表 56
COLUMN 何为IT程序员的学习方法 58
第2章 别说缺少机器!虚拟化基础设施环境的构建 59
2.1 基础设施工程师的成长来自于日常积累 60
2.2 LinuxKVM虚拟网络 62
2.2.1 虚拟网络的构建和虚拟机的配置 63
YUM资源库的准备 64
虚拟网络的配置 65
虚拟机的配置 65
2.2.2 DNS服务器的搭建 73
DNS和邮件传输系统的基础知识 73
BIND的安装和配置 80
2.2.3 邮件服务器的建立 87
2.3 HA集群环境在虚拟机上的实现 94
2.3.1 对HAAdd-on的理解 95
HA集群的基础 95
HAAdd-On的工作原理 97
2.3.2 Linux主机的准备以及虚拟机的构建 99
虚拟网络的配置 100
iSCSI目标的构建 101
虚拟机的构建 103
2.3.3 HAAdd-On的导入和配置 105
包集合的导入和配置 105
集群配置文件的准备 106
HA集群的启动和服务的开始 111
模拟故障测试的实现 114
2.3.4 HA集群设计及运用的准备 117
COLUMN IT架构师与补习班讲师的沟通技巧 119
第3章 10轮决胜!在自编的脚本中灵活使用命令 121
3.1 简单有效的Shell脚本 122
3.2 Shell脚本的基本规则 123
3.2.1 Shell脚本的操作确认 123
3.2.2 引号的使用方法 125
3.2.3 条件判断的写法 126
3.2.4 数组和位置参数的使用方法 130
3.2.5 命令置换和数值演算 131
3.3 用Shell脚本一决胜负 133
3.3.1 [第1轮对决] 在跳板服务器上学到的秘籍~基本模式+异常处理 133
3.3.2 [第2轮对决] 在分布式Shell上学到的秘籍~基本模式+管道 138
3.3.3 [第3轮对决] 在进程监视中学到的秘籍~状态迁移处理 144
3.3.4 [第4轮对决] 秘籍外传~由make命令进行简单的批处理 148
3.3.5 [第5轮对决] 从模拟快照(snapshot)学到的秘籍~用管道操作日志 151
3.3.6 [第6轮对决] 在云备份中学到的秘籍~在思考实验中组合处理流程 155
3.4 Perl脚本的对决 164
3.4.1 [第7轮对决] 自己编写Perl的乐趣 164
3.4.2 [第8轮对决] 通过Tweet体验Perl带来的便利 175
3.4.3 [第9轮对决] 用进程监控掌握fork 178
3.4.4 [第10轮对决] 终极秘籍Perl与管道的结合 183
COLUMN 造福于开源IT工程师的力量 188
第4章 最后的堡垒!内核源代码的阅读 189
4.1 阅读源代码 190
4.2 内核源代码的走读方法 191
4.2.1 Linux内核的构建步骤 191
4.2.2 内核源代码探索入门 195
4.2.3 读懂结构体和指针 200
COLUMN 跳槽、英语、结婚——IT工程师的话题关键词 207
4.3 探索核心子系统 208
4.3.1 进程管理子系统 208
不断演化的进程状态管理 208
系统调用ptrace() 213
list_head与神奇的宏 216
4.3.2 内存管理子系统 221
64位环境中的页映射 222
/proc/meminfo的“内脏” 228
4.4 内核源代码的分析实例 235
4.4.1 Linux内核的系统时间 235
4.4.2 闰秒发生的瞬间 238
4.4.3 进一步探索的指南 249
第5章 先行一步!RHEL6新功能综述 251
5.1 支持商品化硬件的“操作系统进化” 252
5.1.1 ext4文件系统的采用 253
5.1.2 NetworkManager服务的引入 254
5.1.3 用dracut创建初始RAM磁盘 256
5.1.4 通过anacron实现定期任务执行 260
5.2 对服务器启动处理进行变革的Upstart 264
5.2.1 Upstart的概要 264
5.2.2 Upstart任务的创建示例 268
5.3 用Control Groups控制资源分配 271
5.3.1 Control Group的概要 271
5.3.2 各子系统的主要参数 273
cpuset子系统 273
cpu子系统 275
memory子系统 276
blkio子系统 276
5.3.3 cg命令群的管理 279
5.3.4 虚拟机的cgroups操作 281
5.4 通过LXC体验容器型虚拟化技术 282
5.4.1 容器型虚拟化技术的概要 283
进程表的分割 283
文件系统的分割 284
网络的分割 284
CPU和内存的分割 285
5.4.2 容器中Web服务器的启动 285
5.4.3 其他的容器设置 289
COLUMN “人生20年论”和技能提高的秘诀 291
结语 292
参考文献 293
· · · · · · (收起)
读后感
Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 网盘地址:https://pan.baidu.com/s/1yp4lLDKxaXY6gqUQHrapZw...
Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 网盘地址:https://pan.baidu.com/s/1yp4lLDKxaXY6gqUQHrapZw...
Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 网盘地址:https://pan.baidu.com/s/1yp4lLDKxaXY6gqUQHrapZw...
Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 网盘地址:https://pan.baidu.com/s/1yp4lLDKxaXY6gqUQHrapZw...
Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 Linux核心技能与应用 网盘地址:https://pan.baidu.com/s/1yp4lLDKxaXY6gqUQHrapZw...
用户评价
我是一个对系统日志和监控体系有强迫症的架构师,而这本书在系统可观测性(Observability)方面的讲解,完全满足了我的需求。它没有仅仅停留在`rsyslog`和`logrotate`的常规配置上,而是详细介绍了如何构建一个统一的日志收集和分析流水线,如何利用`systemd-journald`的高级特性,以及如何将这些信息有效地集成到Prometheus等监控系统中去。书中的章节安排体现了作者对现代IT运维流程的深刻理解——从故障发生到快速定位,再到根因分析,每一步都需要强大的系统知识作为支撑。特别是关于文件系统快照(LVM/Btrfs)在灾难恢复中的应用策略,描述得非常细致和可操作。这本书的价值在于,它提供了一种“构建健壮系统”的思维模型,而不仅仅是一堆孤立的命令集合。对于希望将自己的运维能力从“救火队员”升级为“系统架构师”的读者来说,这本书是必读之选。
我购买这本书的初衷是想系统地梳理一下我对Linux内核机制的理解,坦白说,很多教材往往把内核那块讲得过于偏学术化,让人抓不住重点。然而,这本书在架构部分的处理上,展现出一种罕见的务实态度。它没有试图把我变成一个内核开发者,而是巧妙地选择了那些对系统管理员和架构师至关重要的模块进行深入剖析,比如文件系统(特别是Ext4和XFS的差异化优势)和内存管理中的OOM Killer机制。书中的图示清晰明了,很多复杂的内存映射关系图,比我在官方文档中看到的还要直观易懂得多。而且,作者在讲解完原理后,总会立刻给出相应的命令行工具来验证和观察这些机制的实际效果,这种“知其所以然,并能付诸实践”的教学方式,极大地增强了学习的成就感。读完后,我对操作系统层面的“黑箱”操作少了很多困惑,多了几分掌控感,感觉对整个服务运行的底层逻辑有了更深的敬畏。
这本关于Linux的书籍着实让我眼前一亮,它不像市面上那些堆砌了大量晦涩难懂的底层概念的书籍,而是更侧重于将理论与实践紧密结合。书中的案例设计得非常贴合实际工作场景,尤其是关于系统性能调优和高可用性架构的讲解,简直就是一本实用的“救急手册”。我记得有一次,我们线上服务突然出现CPU飙升的情况,翻阅这本书后,书中关于`perf`和`strace`的结合使用方法,让我迅速锁定了问题的根源。作者的文笔流畅自然,即便是像SELinux这种复杂的话题,也能用深入浅出的方式娓娓道来,让人读起来毫无压力,却又能在不知不觉中学到扎实的知识。更让我欣赏的是,它并没有止步于传统的命令行操作,而是花了相当大的篇幅去探讨容器化技术,特别是Kubernetes在Linux生态系统中的作用,这无疑为读者提供了面向未来的视角。整体来看,这是一本从入门到精通的绝佳指南,非常适合需要快速提升Linux实战能力的工程师。
这本书的排版和编目风格非常独特,它不像传统教科书那样死板,更像是一位资深专家在手把手地带你“修机器”。我特别喜欢它探讨安全加固的部分,不仅仅是停留在防火墙和`iptables`的基础配置上,而是深入到了AppArmor/SELinux的策略定制,以及如何利用`auditd`进行主动安全审计。这些内容在很多同类书籍中常常被一笔带过,但在这本书里却被系统地展开论述,并配有详细的配置文件示例。每次我感觉技术遇到瓶颈时,翻开这本书的某一章,总能找到一个全新的角度去审视现有系统。它的语言风格非常接地气,没有过多的学术腔调,读起来像是和一位经验丰富的前辈在交流经验,充满了智慧和实战的烟火气。这本书的知识深度和广度,足以支撑一个团队在复杂的生产环境中进行持续的优化和维护。
说实话,我一开始对这类技术书籍抱有一定的疑虑,因为市面上的“技巧”类书籍往往内容零散,不成体系。但这本《系统架构与应用技巧》却给我带来了惊喜。它的结构设计非常有层次感,从基础的Shell脚本编程的进阶技巧,到复杂的网络栈优化,过渡得非常平滑。特别是关于网络部分,作者对TCP/IP协议栈在Linux内核中的实现做了非常细致的梳理,并提供了调整`sysctl.conf`参数以应对高并发场景的具体策略和背后的逻辑解释。我立刻将书里提到的几个网络调优参数应用到了我们团队的负载均衡服务器上,效果立竿见影,延迟降低了接近15%。这本书的价值不在于教你“怎么做”(这很多博客都能找到),而在于解释“为什么这么做是最好的选择”。对于追求极致稳定性和性能的中高级运维人员来说,这本书简直就是一本不可多得的“武功秘籍”。
日本人写的书就一个字:好。国人写的书,云里雾里根本不知道在讲什么;美国人写的书,罗哩罗嗦同一个东西讲个没玩。 这本书适合有Linux使用经验的用户,希望能稍微深入进程和内存相关的知识。 虽然内容不多,但里面提供了很好的学习方法。
日本人写的书就一个字:好。国人写的书,云里雾里根本不知道在讲什么;美国人写的书,罗哩罗嗦同一个东西讲个没玩。 这本书适合有Linux使用经验的用户,希望能稍微深入进程和内存相关的知识。 虽然内容不多,但里面提供了很好的学习方法。
每读一本尼轰写的技术书,就有学日语的冲动。第一章和第三章写的很好,实践出真知。
内容有趣,有深度,推荐运维工程师深入阅读并实践
每读一本尼轰写的技术书,就有学日语的冲动。第一章和第三章写的很好,实践出真知。