[关闭]
@lijiansheng 2016-06-02T11:30:41.000000Z 字数 3245 阅读 2124

《Linux Inside》内容预览及中文项目维护者专访

InfoQ采访 访谈

摘要:

《Linux Inside》被 OpenSource.com 遴选为2016 年最有前景的项目之一。在 GitHub 的项目获得的 Star 超过1万1千之多。小编发现此项目的中文化已经在第一时间创建了,并联系到了项目的维护者:仇鑫同学,就围绕此项目我们采访了他。


《Linux Inside》OpenSource.com 遴选为2016 年最有前景的项目之一。《Linux Inside》在 GitHub 的项目获得的 Star 超过1万1千之多,由此来看,人们还是对于 Linux 内核的运行机理非常的感兴趣的。其中文化项目也已经创建,InfoQ 借此采访了《Linux Inside》中文项目的维护者——仇鑫。了解一下本书的内容、目标读者等,以及其与读者见面的时间等。

内容介绍

《Linux Inside》全书共分为十五章,最后两章即十四和十五是列出的一些参考资料以及如何参与本书的贡献的,第十四章给出了写作本书,以及操作系统原理等一些有用的网络地址。最后一章,即第十五章,作者则是希望有更多的对 Linux 内核精通的人们参与到本书的写作当中来,并提供了参与的方法与途径。重点在于前面的十三章,按照内容可分为三个部分:

一、Linux 内核工作机制描述

作者从一台电脑按下电源键之后,到内核开始运行,中间所发生的事情进行了详尽的描述。第一章非常非常详尽的描述了计算机启动的全过程,从我们按下一台基于 X86 架构的电脑(笔记本、台式机、服务器)的电源键开始,到 CPU进入实模式,到启动 BIOS,再到如何找到硬盘可启动设备,加载压缩的内核到内存,解压等等一系列的执行过程,本章会大量的涉及一些汇编语言的代码。

第二章:初始化,顾名思义,即内核解压之后,开始正式的接管掌控机器的职责,即初始化的一系列步骤,如进入内核的执行、特定架构的代码执行、调度初始化、RCU初始化等等,这时已经进入 C 语言执行阶段。

二、操作系统重要概念实现
从第三章开始到第八章,都在讲述操作系统原理中的一些重要概念的实现:

第三章讲述了中断,Linux 内核是如何掌控中断的,如IRQ、工作队列等。

第四章讲述了系统调用,Linux 内核是如何掌控一个系统调用的、Linux 内核是如何运行一个程序的,这些就是第四章所讲述的内容。

时间对于内核是非常重要的概念,也是调度的基础,执行任务的关键,读者可从第五章获得 Linux 内核对于时间的工作原理实现。

同步原语、内存管理、乃至对称多处理结构(SMP)均是操作系统中非常关键的部分,这在《Linux Insdie》的第六、七、八章分别作了详尽的描述。

三、内核中的数据结构以及如何为内核贡献代码

第九章,描述了几个 Linux 特有的概念,如 Pre-CPU 变量、CPU掩码、initcall 机制等。

第十章,数据是如何表示的,无论是何种类型的程序,都绕不过,那么 Linux 内核中的数据结构有什么特别的吗?让我们随同作者的思路进行一下探索,这也是阅读内核源码或者是提交补丁的重要基础之一。

第十一章,基础理论的阐述,如内存分页、elf64、CPUID等等一些硬件架构的知识诠释。

第十二章,内存磁盘(ram disk)的初始化,如 initrd。

第十三章,一些常见的内核操作的基础,编译内核的基本步骤、链接、为 Linux 提交代码等。

采访

InfoQ: 仇鑫你好,非常感谢你能接受 InfoQ中国 的采访,先给 InfoQ 的读者介绍一下你自己吧!

仇鑫: 大家好,我是仇鑫,一个自学着计算机科学与技术的大二网络工程专业学生。热爱开源和折腾各种技术。平时做做开源翻译和个人小项目,大部分时间还在看基础的知识。

我的 GitHub 账户是:@xinqiu,也常常撰写 Blog 来记录一些学习的心得之类的。

InfoQ: 《Linux Inside》现在的中文名译作《Linux 内核揭秘》,我们就以中文名来称它吧,请你介绍下《Linux 内核揭秘》这个项目。

仇鑫: 简单一句话概括就是:一本讲解 Linux 内核是如何工作的书籍。内容以 CC-NC-BY-SA-4.0 许可发布。

《Linux 内核揭秘》 的中文翻译项目是由我和@慕冬亮 一起维护的。我们希望好书能够以本土语言呈现给大家,这也是我们认为目前可以做到的。我们借助于 GitHub 这个平台,组织一些对内核有研究和兴趣的人们进行翻译。然后在 GtiBook 上发布。希望借此机会能够帮助到看英语文章有思维障碍的,但是对 Linux 内部对运行机制又有着非常浓厚兴趣的人们。

InfoQ:《Linux 内核揭秘》的目标读者是谁?是否适合初学者学习?

仇鑫: 目标读者是任何对 Linux 内核运行机制感兴趣的人们!

当然,阅读本书的读者最好是有一定的计算机基础,比如计算机组成原理和操作系统等相关知识。其实最适合看完《深入理解计算机系统》的读者或者在自学MIT6.828的学生。

InfoQ: 你是如何发现这个项目,并如此之快的发起并维护中文化项目?

仇鑫: 大一暑假在翻译完GitBook上的《Learn Javascript》后,考虑到之后会学习操作系统这门课程,正好这本书又没有中文翻译,就开始一个人翻译试试。于是就这么一步步的走过来了。

InfoQ: 《Linux 内核揭秘》的 GitHub 组织是 MintCN,这是 Mint 发行版中文用户的项目?能介绍下 MintCN 吗?

仇鑫: 其实这个项目是我和@慕冬亮 一起维护的一个开源翻译项目,恰好他是 MintCN 的成员,就把这个项目作为 MintCN 的项目上线了。MintCN 是一个与薄荷网合作的组织,致力于为 Linux 资料做翻译,为 Linux 中文化做出自己的努力。

InfoQ: 如何成为《Linux 内核揭秘》的贡献者?需要什么样的基础技能?

首先需要一个 GitHub 账号,因为我们的项目是托管在 GitHub 之上的,也依赖于 GitHub 的流程;然后,按照下面规格认领章节内容即可:

  • 在 README.md 中查看你想翻译的章节的状态;
  • 在确认想翻译的章节没有被翻译之后,开一个 issue ,告诉大家你想翻译哪一章节,同时提交申请翻译的 PR ,将 README.md 中的翻译状态修改为“正在进行”;
  • 开始翻译你认领的章节;
  • 完成翻译之后,提交翻译内容的 PR ,待 PR 被 merge 之后,关闭 issue ;
  • 最后,将 README.md 中的翻译状态修改为“已完成”,同时不要忘记把自己添加到 contributors.md 中。

至于要求,首先得对操作系统原理非常的熟悉;第二,对 Linux 系统有很好的理解,或者说有丰富的使用经验;第三,对C语言、汇编语言必须运用娴熟。第四,对于书籍有责任感,对翻译充满激情。一本书对于人的影响要超乎你我的想象,所以最终的质量是对读者负责。

InfoQ: 现在项目的活跃度如何?你是如何激励贡献者并管理进度的?

仇鑫: 首先,大家是非常看好这个项目的,GitHub 为其点“Star”的超过200,Fork 数目也有50多。若是非要定义活跃度的话,只能说中规中矩,这也符合目前 Linux 内核在整个技术圈中的位置--重要但不时髦。

至于项目进展并没有想象中的那么快,毕竟来参加翻译的都是工作学习之余抽出时间来翻译的。但已经是非常的不错了。

暂时对于激励没有采取任何的措施,全靠大家自觉。管理进度方面或者说项目管理方面,我们就采用 GitHub 的流程,大家提交 PR,我们审核,然后合并,如此反复。

InfoQ:最后一个问题,作为现在仍然是大学生的你,谈下你的开源历程?开源对你的影响有多大?是谁影响你了走上开源这条路的?

仇鑫: 因为实力有限,仅仅在开源翻译上出点力,或者就是将自己写的一些小程序放在Github上。因为自己经常用开源的一些工具,在敬佩之余也充满了向往,我也希望以后能致力于开源事业。

至于是谁影响了我,记忆中应该是看了一些大牛的文章,他们都指出多为开源出出力会对以后找工作有很好的帮助,于是就加入了开源的阵营。

InfoQ:非常感谢能够百忙之中接受 InfoQ中国的采访。祝你在开源这条康庄大道走的更远!

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注