也许是在复旦养成了昼伏夜出的坏习惯,工作之后也总是很晚也不愿意睡.来到北京之后,开始听广播听都市之声的北京不眠夜.这个节目是从23点直到第二天凌晨一点,我常常是听完了才会睡觉.无论是北京还是上海,对我来说,生存总是那么困难,生活的压力总是那么大,每天只有在这个节目中才能够寻找到一丝温暖.我不喜欢躺在床上听,而是喜欢一边听一边做点别的事情,于是心血来潮的决定,写点文字吧,听着电波里别人分享心情,不妨也用文字来记录自己的心情吧.
我首先想到的是写一些和Linux相关的文字.事实上我并不喜欢Linux,学习Linux完全是一种无奈,工作中要用,迫于生计,不得不去学习,而学习Linux的过程中唯一让我觉得还有些乐趣的是当遇到问题的时候可以去网上问去网上查,很多人写了很多文档可以让我们这些菜鸟们参考学习,这样才让我们在工作中走了很多弯路.挺感谢那些分享自己知识的人.碰巧最近我也看了点冬冬,并且这些冬冬在网上的资料也比较少,所以我想我不妨也把自己那一夜的收获写出来,或许以后也能给别人提供一些帮助,想想也是,整个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/目录下面一万余行的代码给看了一遍.当然没有看得太仔细,但是很显然把整个原理搞清楚了,问题也很快得以解决.
所以此刻,我整理了一下思路,决定把那晚看的冬冬用文字记录下来.也算为了纪念那个不寻常的夜晚吧.不过我估计这个篇幅不会短,因为光那一万余行的代码贴出来就得占许许多多页了,所以这件事情也许会占用我不少时间,然而,还好,每晚有北京不眠夜的陪伴,而且,也许当我把心思投入到写这个故事的时候,能够把那些压力那些烦恼那种孤独那种郁闷以及那种对生活的绝望给暂时忘记些许.