写一本Linux内核方面的书籍
前 言
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大侠对我们的问题的耐心解答与回复。
书名:Linux那些事儿之我是USB
作者:肖林甫 肖季东 任巧伟 著
ISBN 978-7-121-11178-5
出版日期:2010年7月
定价:79.00元
开本:16开
页码:576 页
宣传语
每天万余人争相阅读
CSDN Blog专家fudan_abc最新力作
内 容 简 介
本书基于2.6.22内核,对USB子系统的大部分源代码逐行进行分析,系统地阐释了Linux内核中USB子系统是如何运转的,子系统内部的各个模块之间是如何互相协作互相配合的。
本书使用幽默诙谐的笔调对Linux内核中的USB子系统源代码进行了分析,形象且详尽地介绍了USB在Linux中的实现。本书从U盘、Hub、USB Core直到主机控制器覆盖了USB实现的方方面面,被一些网友誉为USB开发的“圣经”。
对于Linux初学者,可以通过本书掌握学习内核、浏览内核代码的方法;对于Linux驱动开发者,可以通过本书对设备模型有形象深刻的理解;对于USB开发者,可以通过本书全面的理解USB在一个操作系统中的实现;对于Linux内核开发者,也可以通过本书学习到很多Linux高手开发维护一个完整子系统时的编程思想。