也许是在复旦养成了昼伏夜出的坏习惯,工作之后也总是很晚也不愿意睡.来到北京之后,开始听广播听都市之声的北京不眠夜.这个节目是从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/目录下面一万余行的代码给看了一遍.当然没有看得太仔细,但是很显然把整个原理搞清楚了,问题也很快得以解决.

所以此刻,我整理了一下思路,决定把那晚看的冬冬用文字记录下来.也算为了纪念那个不寻常的夜晚吧.不过我估计这个篇幅不会短,因为光那一万余行的代码贴出来就得占许许多多页了,所以这件事情也许会占用我不少时间,然而,还好,每晚有北京不眠夜的陪伴,而且,也许当我把心思投入到写这个故事的时候,能够把那些压力那些烦恼那种孤独那种郁闷以及那种对生活的绝望给暂时忘记些许.

Linux那些事儿之我是U盘--引子相关推荐

  1. linux 那些事儿之我是 u 盘,《Linux那些事儿之我是USB》.PDF

    <Linux 那些事儿之我是 USB> 作者:华清远见 第 1 章 Linux 那些事儿之我是 USB Core 专业始于专注 卓识源于远见 1 .引子 老夫子们痛心疾首地总结说,现代青年 ...

  2. Linux那些事儿之我是U盘(5)外面的世界很精彩

    看代码之前,我曾经认真的思考过这么一个问题,我需要关注的仅仅是drivers/usb/storage/目录下面那相关的3000多行代码吗?就是这样几个文件就能让一个个不同的U盘在Linux下面工作起来 ...

  3. Linux那些事儿之我是U盘(4)想到达明天,现在就要启程

    既然知道了怎么编写一个模块,那么编写设备驱动程序自然也就不难了.我相信,每一个会写模块的人都不会觉得写设备驱动有困难.对自己行不行不确定的话,可以去问一下葛优,他准说:"(神州行),我看行. ...

  4. 转载本论坛 (fudan_abc ) :linux那些事儿之我是u盘(16)冰冻三尺非一日之寒

    不是一天建成的 . 在让 U 盘工作之前 , 其实我们的驱动作了很多准备工作 . 我们继续跟着感觉走,storage_probe(),943行至948行,一系列的以init_*命名的函数在此刻被调用, ...

  5. Linux那些事儿之我是U盘(1)小城故事

    这个故事中使用的是2.6.10的内核代码.Linux内核代码目录中, 所有去设备驱动程序有关的代码都在drivers/目录下面,在这个目录中我们用ls命令可以看到很多子目录. localhost:/u ...

  6. 【转】Linux那些事儿之我是U盘(4)想到达明天,现在就要启程

    既然知道了怎么编写一个模块,那么编写设备驱动程序自然也就不难了.我相信,每一个会写模块的人都不会觉得写设备驱动有困难.对自己行不行不确定的话,可以去问一下葛优,他准说:"(神州行),我看行. ...

  7. Linux那些事儿之我是U盘(50)跟着感觉走(二)

    回到usb_stor_invoke_transport()中来,540行,还是老套路,又问是不是命令被放弃了,放弃了当然下面的就别执行了.goto Handle_Abort去. 546行,如果有错误, ...

  8. Linux那些事儿之我是U盘(51)光荣属于苹果,属于诺基亚,属于摩托罗拉,属于索尼爱立信

    这一节我们来分析一个在很多企业的产品中都存在的bug.写设备驱动是一件很实在的事情,你得根据实实在在的硬件来编写你的代码,如果你的硬件存在某种bug,那么你就要去fix它.如果你希望成为通用的驱动程序 ...

  9. Linux那些事儿之我是U盘(29)将控制传输进行到底

    其实usb_stor_clear_halt这个函数的作用很简单,就是spec里边规定了,usb设备中,有两类端点,必须具有一个叫做Halt的特征,啥是Halt?查金山词霸去,中断,停止,暂停,怎么解释 ...

最新文章

  1. GET和POST两种基本请求方法的区别
  2. Qt中TCP服务端编程
  3. JVM 垃圾回收机制和常见算法
  4. 深入理解Async/Await
  5. java 磁盘空间_如何使用Java查找剩余的磁盘空间?
  6. [luoguP1013] 进制位(搜索)
  7. Win8 Metro(C#)数字图像处理--2.40二值图像轮廓提取算法
  8. linux巡检脚本生成word,Linux 编写安全巡检脚本
  9. 百面机器学习——python实现二分类逻辑回归
  10. Flutter高级第1篇:ListView嵌套GridView、不同终端屏幕适配方案
  11. ffmpeg把YUV转换为H264
  12. 开心豆少儿英语好吗,收费怎么样,一年多少钱的学费
  13. 计算机与打印机脱机后怎么共享,电脑重启后共享打印机脱机的解决方法
  14. 使用python爬取号码归属地列表,制作握手包破解字典
  15. 安装双系统/误删导致原来的引导分区中的boot丢失的解决方案
  16. Android 使用三种方式缓存加载 倒影图片
  17. Python-Snap7与 1212 PLC通信并保存到sqlite3中
  18. linux限制message日志大小,message显示rsyslog日志服务警告信息due to rate-limiting
  19. 001、【C语言编程题目】猴子吃桃问题
  20. 现在的SQLSERVER数据库监控软件有哪些?

热门文章

  1. 学校计算机有麦克风吗,电脑使用麦克风需要声卡吗?为什么有人说需要,有人说不需要呢?...
  2. oracle关闭的四种模式
  3. python实现对文章标题重写的小技巧!
  4. 结构标签、行内与块元素、列表、超链接、图片标签格式及音视频(vscode)
  5. 战歌竞技场服务器维护中,《战歌竞技场》4月13日开启终极测试
  6. LeetCode之路:520. Detect Capital
  7. z9mini android5,努比亚Z9 mini/Max获nubia UI 3.5更新(搭载Android5.1)
  8. ORCAD CAPTURE元件库介绍
  9. 交易策略的后期测试与优化
  10. 用Go快速搭建IM即时通讯系统