打通Linux操作系统和芯片开发
大家好,我是飞哥!
在今年元旦的时候,我的朋友Peter和我说他写了一本Linux内核和芯片方面的新书。他把书稿发给我看了一下。
看完之后我觉得是非常不错。他用一本书把操作系统和芯片开发这两大块内核给打通了。书里除了Linux内核基本原理外,他还讲了不少了Soc芯片开发的关键环节,包括启动流程、电源管理、时钟控制和终端处理。
在过去的二三十年的时间里。我们国内主要应用是偏互联网应用等软件技术。
但是随着这几年国际形势的变化。国内的企业也需要在芯片等相关的技术上走出一条自主研发的道路才能应对未来的挑战。比如自动驾驶、机器人等赛道纯软件是不行的,必须得要有芯片的技术支撑才可以。
所以虽然年底的时候我的工作非常的忙,但我也毫不犹豫抽空帮他写了一段推荐语(推荐语收录在这本新书的前言部分)。
目前这本书终于印刷出来了。我今天就正式给大家推荐一下这本新书《打通Linux操作系统和芯片开发》!下面的时间交给Peter和他的新书介绍。
Peter毕业后一直从事于底层技术开发,从最初的驱动开发、内核开发、安卓 Framework 开发、再到芯片级的系统开发,一直对底层的本质原理有着浓厚的兴趣,十多年的工作沉淀对操作系统和芯片级的软件开发有着一定的理解。
他说计算机是个变化极快的行业,特别是从事互联网行业的朋友,经常面对技术的更新,开发语言的迭代,每天过的都很焦虑,随着新人的入职,技术的变化,老人的技术经验似乎无法得到发挥,这也是为什么都说程序员有35岁失业的根本原因。
但技术更新没那么快的嵌入式行业,操作系统行业,芯片等行业都会比互联网行业好很多,特别是同时懂软件和硬件的工程师,甚至随着时间的推移,越老越吃香,而且国家越来越重视底层技术的开发。即便是在互联网行业,如果你对底层技术有着深厚的积累,依然可以很有竞争力,就相当是拥有了武侠片中的内功,一旦有了雄厚的内功,其它武功你一看就明白,一学就会,任何招式你和别人打出去的威力就不是一个级别。这种帮助无论对嵌入式开发者,还是对互联网程序员都是非常明显的。
另外市场上虽然有很多操作系统、Linux 内核、芯片开发的书籍,但彼此内容都是隔离的,芯片、硬件开发者想了解软件开发的人很多,但还是无法找到合适的书籍。软件开发者想了解底层硬件技术原理,也是无法找到合适的内容,这一度让有志于挖掘底层技术原理的工作者无从下手。这也是他选择写此书的原因之一,希望《打通操作系统和芯片开发》能帮助一些人找到提升内功的把手,借此机会在技术的道路上更上一层。respect!
本书主要内容
全书共 13 章内容,操作系统部分涉及内存管理,进程管理,文件系统,同步管理,以及系统调用。芯片 SoC 部分涉及 SoC bringup 的过程,设备模型,设备树原理,电源模块,时钟模块,引脚模块,时间模块以及中断模块,这些模块都是芯片运行操作系统的基本要求。站在一线开发者的角度先剖析 Kernel 6.6 的实现原理,然后结合恩智浦 i.MX9 芯片的 SoC 硬件原理,由浅入深的讲解操作系统和 SoC 的不解之谜。本书涵盖以下主要内容。
第1章介绍内存管理,包括内存管理的机制,CPU访问内存的过程,内存架构和内存模型,memblock物理内存初始化和映射,物理内存的软件划分,页帧分配器的实现,快速分配之水位控制,快速分配之伙伴系统,慢速分配之内存碎片整理。
第2章介绍进程管理,包括内核对进程的描述,用户态进程、线程的创建,do_fork 函数的实现,进程的调度,SMP的负载均衡等内容。
第3章介绍文件系统,包括磁盘的物理结构,查看文件系统,查找 ext4 文件系统的过程,虚拟文件系统的原理。
第4章介绍同步管理,包括原子操作、 自旋锁,信号量 、互斥锁,RCU等内容。
第5章介绍系统调用,包括系统调用的定义,从内核态和用户态讲解系统调用的处理流程。
第6章介绍 SoC bringup,从 Uboot 启动前,到 Uboot 的初始化,再到 Kernel 的初始化。内容包括 SPL 的工作流程,ATF 的工作流程,Uboot 的过程,以及 Kernel 各个子系统的初始化流程。
第7章介绍设备模型,这是进入研究设备驱动的基础,内容包括设备模型的基石,设备模型的探究,最后手把手和大家一起定制一块开发板。
第8章介绍设备树原理,涉及设备树的基本用法,设备树的深度解析。
第9章介绍电源模块,这是操作系统在SoC上运行的动力来源,内容涉及电源 Power Domain 的软硬件实现,电源 Runtime PM 的软硬件实现。
第10章介绍时钟模块,这是操作系统在 SoC 上运行的心跳,内容涉及时钟控制器的硬件实现,时钟子系统的实现,时钟控制器的驱动实现。
第11章介绍引脚模块,这是操作系统在 SoC 上运行的四肢,用来连接其它外设,内容涉及 IOMUX 控制器的硬件实现,IOMUX 控制器的驱动实现,以及引脚设备的驱动实现。
第12章介绍时间模块,这是操作系统在 SoC 上运行时的计时,内容涉及时间子系统的架构,定时器和时钟源的初始化,高分辨率定时器 hrtimer,底分辨率定时器,sched_timer。
第13章介绍中断模块,这是操作系统在 SoC 上运行时对外界的反馈,内容涉及中断控制器的硬件实现,中断控制器的驱动实现,中断下半部的实现过程。
今天,新书开启了 5 折优惠,满满的干货,高颜值,双色印刷,手感厚实,新书原价 139 元,限时半价,只要 69.5 元!
权威认证
这本《打通Linux操作系统和芯片开发》得到很多业界权威认证,受到了“鸿蒙之父”陈海波、RT-Thread创始人熊谱翔、飞漫科技创始人魏永明、嵌入式大咖韦东山、内核大佬宋宝华等良师益友的重磅推荐!
学习本书的好处
从技术深度看,操作系统和芯片开发的学习能帮助读者深入理解底层原理,提升性能优化、安全性和可靠性设计能力。例如,如何通过优化操作系统的调度算法和芯片的缓存机制来加速 AI 推理?如何设计安全的系统以保护隐私?这些问题的解决需要扎实的底层技术功底,为未来的技术创新奠定基础。此外还可以助我们:
顺利通过大厂面试。大厂面试通常非常注重技术深度。对于底层技术的考查,能够有效筛选出真正有实力的候选人。在面试中,很多应聘者可能对应用层技术有一定了解,但深入到操作系统原理、芯片架构等底层知识时,掌握这些知识的人相对较少。例如,在操作系统方面,能够深入讲解进程调度算法(如 CFS - 完全公平调度算法)、内存管理机制(如分页和分段机制)的应聘者会给面试官留下深刻印象。 在芯片开发领域,了解芯片常用驱动等底层知识,能够在面试相关岗位时展现出自己的专业度。这是因为大厂往往有自己的底层技术研发需求,大厂在实际项目中会遇到很多与底层技术相关的问题。例如,软件在运行时出现性能瓶颈,可能与操作系统的内存分配不合理或者 CPU 调度策略不优化有关。掌握底层技术的人能够从根源上分析和解决这些问题,这在面试中通过案例分析等环节可以很好地体现出来。
拓宽技术职业方向。操作系统和芯片开发等底层技术的变化相对缓慢。与应用层技术频繁更新换代不同,底层技术的核心原理和架构在较长时间内保持稳定。例如,Linux 操作系统的内核架构虽然在不断发展,但基本的进程管理、内存管理等核心机制变化不大。学习这些底层技术可以让从业者在较长的职业生涯中保持技术的有效性和竞争力。而且掌握底层技术能够使从业者更容易实现技术迁移。无论是从不同行业领域之间的择业,还是从一种操作系统平台转向另一种,底层技术知识都能提供坚实的基础。例如,一个熟悉操作系统底层的开发者,在从传统 PC 操作系统开发转向移动操作系统开发时,能够更快地理解和适应新的开发环境,因为移动操作系统的很多底层原理(如进程管理、资源调度)与传统操作系统是相通的。在人工智能时代亦是如此。
缓解“35 岁失业“焦虑。在技术行业,35 岁左右往往面临年轻从业者的竞争压力。学习操作系统和芯片开发等底层技术可以建立起较高的技术壁垒。这些底层技术需要长时间的学习和实践才能掌握,相比年轻从业者普遍掌握的应用层技术,底层技术更能体现资深从业者的价值。例如,在企业裁员时,能够对操作系统内核进行优化或者对芯片设计进行改进的技术人员,因其不可替代的技术能力,被裁掉的风险相对较低。
最后,新书定价 139 元,现在5折只要 69.5 元,想入手的朋友建议趁早。