购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

要想深入研究并使用Linux内核,首先要知道Linux内核提供了什么,又能做到什么。很多初学者一进入公司就开始使用Linux内核开发内核模块,无论是使用通信方式、内存接口还是设备接口,都是早已被淘汰的内容。因为他们通常直接在网络上搜索一些很早之前发布的内容来指导自己如何完成开发工作,但他们手中却是最先进的内核代码。还有很多直接编写内核模块的人在嵌入式公司使用老版本的内核进行工作,虽然他们可能对内核之后的发展一无所知,但是他们能够一下子抓住主干,主干永远是在老版本的内核中就存在的东西。

很多刚入行的程序员认为自己能够征服一切,稍微在网上检索一下Linux的内容,就可以上手使用了。虽然写出可以用的程序不需要太多的知识积累,但是这么做相当于在信息不充分的情况下做决策。虽然一切操作系统理论的学习都不如实际去编写几行代码,但是理论又是十分重要的,因为它能够让经验升华成积累。

本书解释了Linux内核提供了什么,以及Linux系统底层是如何使用内核的。如果你对本书某一部分感兴趣,那么在深入阅读该部分的代码之前应先对该内容进行系统的学习,当你对内核系统有一个整体的把握时,方可挥洒自如。

本书的读者对象是有一定Linux基础的程序员,或者是有一定经验的嵌入式开发人员和运维人员。阅读本书像喝水一样,可轻松获得知识内容。若阅读本书遇到相对冷门的技术细节时,有兴趣的读者可以自行查阅其他相关资料。例如当列举文件系统的种类时提到exofs,书中不会过多解释这个名词,因为大部分用户只关注它是文件系统的一种。

在学习Linux内核,阅读相关图书时候限定版本是不必要的,因为即使版本变化,原理仍旧可用。本书也会注明某个技术点之前是什么样的,现在是什么样的,未来可能是什么样的。人们更希望了解整个内核框架的内容,以及一些重要细节的深层原理。本书就将重点放在这两方面内容上,而并不局限于内核的版本,尽可能以最终被选择的解决方案作为实验重点。也就是说,本书所涉及的内核版本都比较新,但是也会观察从老版本到新版本过渡时内核在功能上的变化,比如ip rule命令在新版本中去掉了reject等action。但是老版本的设计对于整体理解架构很有帮助,我们的根本目的是用实现抽象出概念,本书讲解的所有案例几乎都使用了占据较大市场份额的Ubuntu。

感谢韩方,他对本书的出版起到了提纲挈领的作用,若没有他的帮助,我一定会被淹没在一堆技术细节中而不知道如何选择。他编写并且修改了部分章节,概览性质的图书最需要高屋建瓴的能力和丰富的经验,韩方在这方面非常强。

由于时间仓促,加之水平有限,书中的缺点和不足之处在所难免,敬请读者批评指正。

刘京详
2017年10月 IRJAIKDB3zQRIJAWflZbwnNgBkCCtPl3+COw+Z2rZ3gzVauTdiCtIdzTN8hJRNox

点击中间区域
呼出菜单
上一章
目录
下一章
×