曾经有不少网友问我们什么时候能出纸质的,也曾经有若干出版社联系过出版,但都由于里面的一些内容过于的娱乐了而不了了之。本来在写的时候就没想着去出版,只是娱乐自己的同时娱乐娱乐大家而已,不过最终博文视点还是决定出了,在这里感谢孙编辑、王编辑。当然里面去掉了若干敏感的内容,但大家喜欢的精粹还在,风格也没变,呵呵。这本内容上是u盘、hub、uhci、core、sysfs五个部分的合订本,增加了内容导读,内核版本统一更新到22内核,同时也添加了若干新货色。

网上购买链接为:china-pub

*****************************************

 

  1992年,那是一个春天。不过其实1991年又何尝不是一个春天呢,因为正是在那一年,Linux诞生了。又因为开放源代码的缘故,十几年来Linux是越来越火,熊熊火焰也烧到了华夏大地。诸多高校开始开设Linux相关的课程,诸多企业开始招聘Linux相关的人才。市面上关于Linux的书籍也层出不穷,而这其中大致分为两类,一类是应用方面的,比如介绍如何组建各种服务器啊,另一类是内核方面的,主要都是对内核源代码的进行分析,这方面的书籍则以《Linux设备驱动程序》和《深入理解Linux内核》为经典代表。而从眼下国内的人才市场来看,懂Linux内核的找工作肯定不用发愁。事实上,可以不夸张的说,当代大学生,如果能够看完以上这两本书,并且能够看懂,那么在北京在上海在深圳这些一线城市,很容易就能找到一份体面的技术类工作。

那么为什么我们还要另起炉灶再写一本Linux内核方面的书籍呢?因为Linux内核包含大量的代码,以上面两本书为代表的很多Linux内核的书籍涵盖的内容太广,大多数书籍都是把Linux内核中的各个部分逐一的进行介绍和分析,然而实际情况是没有任何一个人能够对Linux内核的各个部分都很精通,包括Linus Torvalds本人,一个对Linux开发感兴趣的人也不一定需要并且也没有足够的时间对Linux的每个部分都去深入理解,而另一方面来说,很多对Linux内核感兴趣的朋友常常被一个问题所困扰,那就是Linux内核那么庞大的代码量,对于初学者来说,应该从哪里学起呢?关于这一点,其实《Linux设备驱动程序》给出了很好的答案,学习驱动程序代码是最有效的入门方法。第一是因为在庞大的Linux内核源代码中,大约超过87.53%是各种驱动程序代码,其重要性可想而知,第二是因为相比较来说,驱动程序的代码其难度是比较低的,很少涉及复杂高深的算法,所以适合初学者研读。

然而网友永不堕落曾经问过我们,既然已经有了《Linux设备驱动程序》,为什么你们还要写一本Linux设备驱动程序相关的书呢?你们这样做是不是行为艺术呢?这里我们想说的是,虽然《Linux设备驱动程序》这本书很好很强大,把各种类型的设备驱动程序都给介绍了一番,可是当一些读者读完这本书之后,他们敢说自己会写Linux设备驱动程序了吗?他们敢说自己完全了解一个真实的Linux设备驱动程序是怎么写的吗?至少本书作者当年在看完这本书之后,虽然觉得获益匪浅,可是仍然不太清楚真实的Linux设备驱动程序是怎么写的,仍然不敢很傻很天真的以为自己就会写Linux设备驱动程序了。这才有了后来决定亲自选择一个子系统进行研究,并在研究好了之后把研究心得写出来,与大家进行分享。最终我们选择的是USB子系统,原因很简单,USB总线以及连接在USB总线上的各种USB设备已经广泛的出现在了当代计算机上,广大计算机用户,尤其是高校学生,接触得最多的设备也正是USB设备,所以研究和分析USB总线以及它上面的各种USB设备应该能让大家感到很亲切很真实并且具有相当的实用价值和怀旧意义。毕竟,子曾经曰过:USB总线就像一条河,左岸是我无法忘却的回忆,右岸是我值得紧握的璀璨年华,中间流淌的,是我年年岁岁淡淡的感伤!

本书的编写得到了许多人的帮助,我们向他们致以诚挚的谢意。首先感谢孙学瑛编辑,没有她的努力,这本书的内容将会一直偏居网络一隅,将不可能被出版从而去帮助更多需要的人。然后要感谢很多在技术上给予我们指导与帮助的老师和朋友,特别是USB这边的maintaner之一,Alan Stem大侠对我们的问题的耐心解答与回复。