- 论坛徽章:
- 0
|
我也看了点冬冬,并且这些冬冬在网上的资料也比较少,所以我想我不妨也把自己那一夜的
收获写出来,或许以后也能给别人提供一些帮助,想想也是,整个Linux 社区不正是这样吗,像
陈奕迅唱的那样,”把一个人的温暖转移到另一个人的胸膛”.
我要写的是Linux 设备驱动程序相关的,主要分析的是Linux 中与U 盘相关的那部分代码.
过去也没有看过,但是今年4 月底的某一天,一个偶然的原因,我一时冲动就看了一遍.我们几
个同学在人大附近打麻将,打到夜深了,因为我们几人人住的位置都离得挺远的,各自回去都
得打车,于是决定不如去权金城开个房间,晚上就睡那得了.在权金城洗浴中心,和几个同学洗
浴过后,有人去按摩了,而我和另一个人则留在了房间里,无聊中,那位哥们见我带了电脑,说
他有部A 片,很不错,不是很大,所以他存在U 盘里的,他还挺逗的说这是2008 年北京奥运会
指定A 片,问我有没有兴趣,这还用问,当然有兴趣了,于是立马打开电脑,插入u 盘,然后不一
会我就傻了,因为我的电脑根本就不能识别U 盘,首先我的电脑比较旧,装的是双系统,一个是
Win 98,这个没办法,没有U 盘驱动,另一个是Linux,2.6 的内核,按理应该是支持U 盘的,
问题是实际情况却是我没有看到U 盘,/dev/目录下面根本没有这么一个盘符,于是我没办法
了,一脸沮丧,而同学在旁边自然表示出了对Linux 很鄙视的神情.
过了一会,他去看电视了,正好有英超,我却没有心情看电视,想想就觉得奇怪,怎么会不能使
用U 盘呢,这不可能啊,一定是我自己对Linux 下面的一些冬冬没有弄清楚,于是我决定好好
看看问题到底出在哪,记得当时看了一下/var/log/messages 这个日志文件里边好像记录
了一些信息,感觉像是一些错误信息,但是看不明白它到底在说什么.同学开始劝我,算了算了,
改天再看吧,这话我可不愿意听,不是说Linux 内核源代码是公开的吗,大不了看看源代码,搞
清楚工作原理了还怕问题不能解决?无非就是一些C 代码而已,好歹哥们也是认真学过谭浩
强大哥那本C 程序设计的.而且当初那本书课后习题老师基本上都让我们做了,虽说是参考
了那本习题解答的书,可就算写代码不行,读代码还是没问题吧,语法什么的基本上还是很清
楚的,什么判断结构循环结构,包括goto 语句,还是记得的.
所以我就开始看了,正所谓梦想有多远,就能走多远.以前我只是玩CS 玩仙剑的时候能够整
晚整晚不睡,但那个晚上,为了告诉我同学,Linux 下也能看A 片,Linux 下遇到问题更适合自
己解决,我愣是从一点看到快天亮,终于把drivers/usb/storage/ 目录下面一万余行的代码
给看了一遍.当然没有看得太仔细,但是很显然把整个原理搞清楚了,问题也很快得以解决.
所以此刻,我整理了一下思路,决定把那晚看的冬冬用文字记录下来.也算为了纪念那个不寻
常的夜晚吧.不过我估计这个篇幅不会短,因为光那一万余行的代码贴出来就得占许许多多
页了,所以这件事情也许会占用我不少时间,然而,还好,每晚有北京不眠夜的陪伴,而且,也许
当我把心思投入到写这个故事的时候,能够把那些压力那些烦恼那种孤独那种郁闷以及那种
对生活的绝望给暂时忘记些许.
小城故事
这个故事中使用的是2.6.10 的内核代码.Linux 内核代码目录中, 所有去设备驱动程序有关的代
码都在drivers/目录下面,在这个目录中我们用ls 命令可以看到很多子目录. |
|