产业气象站|第一本龙芯平台的Linux内核书来了,十年磨一剑

《用“芯”探核:基于龙芯的Linux内核探索解析》是一本基于龙芯平台 , 结合源代码来探索和解析Linux-5.x内核的书 。
产业气象站|第一本龙芯平台的Linux内核书来了,十年磨一剑
文章图片
市面上解析Linux内核的经典书籍已有不少 , 尤其是被称为Linux内核领域的“四库全书”:《Linux内核设计与实现》《Linux设备驱动程序》《深入理解Linux内核》和《Linux内核源代码情景分析》 。
但是 , 一方面 , 大多数已有书籍是基于X86或者ARM体系结构的;另一方面 , 大多数已有书籍基于2.4版本或者2.6版本的Linux内核 , 虽然近年来有了许多不错的原创新书 。
同时 , 一直以来 , 从事龙芯内核开发工作的“标准教程”是《龙芯处理器用户手册》、《MIPS体系结构透视》和《深入理解Linux内核》 。 然而 , 《龙芯处理器用户手册》不涉及Linux内核;《MIPS体系结构透视》讲述的是传统的MIPS处理器 , 离真正的龙芯差距太大;而《深入理解Linux内核》所使用的内核版本又过于陈旧 。
因此 , 正如中科院计算所研究员张福新在推荐语中说的:“这本基于龙芯平台的内核开发书籍的出版 , 恰逢其时 。 ”
本书作者:陈华才博士 , 高级工程师 。 现任江苏航天龙梦信息技术有限公司副总工程师 , 负责龙芯3号处理器的内核开发 。 作为Linux内核中MIPS/龙芯3号的Maintainer , 向Linux内核官方提交了大量的代码 。
为什么写这本书?我是谁?我就是一个既爱Linux也爱龙芯的开发者 。 十六年前开始接触Linux内核 , 十二年前开始接触龙芯电脑 , 十年前加入龙芯产业化基地 , 十年来伴随着龙芯一起成长 , 如今已成为Linux内核中龙芯3号的Maintainer 。
产业气象站|第一本龙芯平台的Linux内核书来了,十年磨一剑
文章图片
有人说 , “干一行 , 爱一行” , 但我觉得“爱一行 , 干一行”更加符合可持续发展 。 龙芯和Linux都是我所爱 , 研究起来动力十足 。 一直以来 , 我在阅读内核源代码时都有做笔记的习惯 , 因为人脑毕竟容量有限 , 在知识体系不断扩张的过程中 , 笔记是必不可少的 。 我做笔记的方法以“代码摘抄+适度精简+注释解析”为主 , 但是随着时间的发展和内核版本的升级 , 笔记总量越来越大 , 不同版本中的同名函数也已经变得面目全非 。 于是 , 我经常不得不在笔记中记录源代码的多个版本 , 并且在代码片段的开始处加上版本标识 。 虽然说笔记主要是给自己看的 , 但正如热力学第二定律所昭示的一样 , 笔记的可读性已经不可避免地越来越差了(熵值太大) 。
于是乎 , 便萌生了整理笔记并编写成书的想法 。 最初的想法成型于2013~2014年 , 但真正开始动笔的时候是2015年 。 在写书的过程中 , 解析方法尽量保留了笔记中精简代码的特点 , 但在内核版本的选择上全部采用了最新的LTS版本(长期维护稳定版本) , 即5.4.x版本 。
产业气象站|第一本龙芯平台的Linux内核书来了,十年磨一剑
文章图片
用“芯”探核基于龙芯的Linux内核探索解析
全书以龙芯平台为重点 , 主要解析Linux内核源代码 。 首先对龙芯处理器和Linux内核进行概括性的介绍 , 并引入一种快速而有效的代码阅读方法 , 即“先观其大略 , 再咬文嚼字” 。
操作系统是整个计算机的管理者 , 其本质上是一个大型软件平台 , 顺着程序的执行流程一起前进是自然而然的事情 。 因此 , 从Linux内核在龙芯计算机上的启动过程开始研究Linux内核是一个比较好的切入点 , 以此获得一个对龙芯处理器和Linux内核的宏观印象 。
内核是操作系统中最基础、最重要的部分 , 其三大基本功能分别是中断/异常处理、内存管理、进程管理 。 这3章内容尽量遵循“从基础到上层”和“广度优先深度其次”的写作原则 , 更方便读者根据自己的需求安排阅读顺序 。 Linux内核支持X86、ARM、MIPS、PowerPC等多种体系结构 , 但对上层应用提供了基本一致的操作接口 。 因此 , 内核的三大基本功能中一部分是体系结构相关的特定内容 , 一部分是体系结构无关的通用框架 。