自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 armplayer/android6410/android 6410/wince/linux/ubuntu/s3c6410/arm11 开发板

<br />店主:嵌入式系统工程师<br />联系方式:<br />QQ:1141256841/774295611  <br />技术qq群:<br />40605090    大连嵌入式商城群<br />121393599   android6410(一)群<br />16667174     android6410(二)群<br />103775766    android6410(三)群<br />121399050   android6410(四)群<br />手机:1532615352

2010-08-10 20:59:00 3142

原创 arm11 s3c6410 开发板比较 哪个公司的arm11开发板好? arm11开发板推荐

<br />代理arm11开发板已经几个月了,说下我自己的看法。<br />我首先用语言描述一下国内主流的arm开发板情况,个人对各个公司开发板的看法,仅代表个人意见,没有针对某个公司的意思,由于6410的开发难度以及工艺成本问题,目前市场上常见的有如下几种6410 开发板:<br />一:ArmPlayer公司Android6410开发板,主打android系统,支持android,linux,wince,ubuntu,性价比最高,最便宜<br />功能和性能超过同类产品<br />公司网站:ht

2010-08-10 20:55:00 3620

转载 Linux那些事儿之我是Hub(引子)

<br />来北京也有半年了,这半年里,想疯的时候就去工体西路的Babyface,不想疯的时候就去权金城.喜欢权金城其实是没有理由的,但仔细想想又还是有理由的.<br />  洗浴费39元,像我同学办了张银卡,于是每次只要29元.洗完了要按摩就按摩,不按摩就开个房间,睡一晚上,有那种89块钱的三人间,费用比那些宾馆要便宜许多,很适合我们这种夜生活丰富,不想回家睡的家伙.不过权金城很奇怪的,不提供特殊服务,我们问过两次,都说没有,于是我就纳闷他们家靠什么赚钱,总之很惊讶这种洗浴中心也能在北京生

2010-08-10 07:16:00 770

转载 Linux那些事儿之我是EHCI(5) 2008年的这一场雪

2008年的这一场雪,比以往时候来的要大一些。以前是买不到票,这次有票也走不了了。此时此刻,多少兄弟姐妹被困在路上,饥寒交迫,多少城市停电停水,物价飞涨。我真是忍不住破口大骂,好一个和谐盛世!虽说是天灾,但岂无人祸?直接原因是那该死的冻雨。但我认为罪魁乃是三峡工程,以及所谓南水北调。祝愿那些困在铁路,公路上的人们早日回家团圆,大家过个好年。还是先看看股市,有消息称,"导致大盘暴跌的原因是因为大面积的降雪, 导致大量的股民滞留车站,机场.无法进入股市抄底, 待在家中人员又因大面积的停电而无法上网操作, 导

2010-08-10 07:14:00 425

转载 Linux那些事儿之我是EHCI(3) pci match 和 probe

pci_bus_type 定义如下, struct bus_type pci_bus_type = ...{ .name = "pci", .match = pci_bus_match, .uevent = pci_uevent, .probe = pci_device_probe, .remove = pci_device_remove, .suspend = pci

2010-08-10 07:13:00 619

转载 Linux那些事儿之我是EHCI(4) data structure of ehci driver and device

阿扁"辞职"了,kde4发布了,更让我激动的是,英雄志过两天又有更新了,这部连载长达8年的小说,终于要进入精彩的大结局。卢云的命运究竟如何?观海云远,四个性格理念完全不同的人,谁是好,谁是坏,谁是对,谁是错?何谓正道?接着上回说,usb_hcd_pci_probe这个函数在"我是UHCI"中也有讨论,不过我想按照我的思路写下去。 46 /**//** 47 * usb_hcd_pci_probe - initialize PCI-based HCDs 48

2010-08-10 07:13:00 474

转载 Linux那些事儿之我是EHCI(2) 套路

<br />子曰:按套路出牌。的确,什么东西都有套路,泡妞有泡妞的套路,花前月下不如花钱日下。打麻将有打麻将的套路,少吃少碰少放炮,多摸多杠多发财。星际有星际的套路,linux也有linux的套路。刘涛姐姐的故事再一次告诉我们,年龄不是问题,身高不是距离,有cai就行。<br />我们不妨看看 modprobe ehci-hcd 之后发生了什么事情。ehci-hcd是一个驱动程序,不知您记不记得我在sysfs中谈论过设备模型。有两个重要的链表挂在bus上,一个是设备device链表,一个是驱动drive

2010-08-10 07:09:00 424

转载 Linux那些事儿之我是EHCI(1) 接口体系

<br />EHCI首先是一个PCI设备,我们可以lspci一下看看。<br />00:1a:7 USB Controller: Intel Corporation USB2 EHCI Controller #1 (rev 03) <br />我们与外围硬件打交道,可以把数据用in(out)指令传递给外围硬件,还可以把数据传输到cpu和外围硬件共享的内存里面去。这些都是计算机与硬件的接口。(参见ldd3 第9章)<br />那么我们的程序如何与EHCI联系,交流呢?EHCI定义了三个接口空间。如图<br /

2010-08-10 07:07:00 513

转载 Linux那些事儿之我是EHCI 引子

<br />转眼之间,到了2008年,先祝大家新年快乐,希望新的一年里好运连连,工资猛涨。好久没有写了,一个原因在于,作为一个PHD学生,难免要做一些读paper写paper的琐事,另一个原因就是自己太懒了。大哥甲一如既往,坚持的写作,着实让人钦佩。此时此刻,我情不自禁,作诗一首,北飘奇男子,江南大丈夫。海上常常生明月,江湖就此一枝花。不服不行。<br />这里主要就linux ehci host controller这部分的代码,谈谈我自己理解。不当之处,请多指正。参考资料,ehci spec和l

2010-08-10 07:06:00 517

转载 Linux那些事儿之我是Block层(12)传说中的内存映射(下)

<br />下面我们来看另一个”映射”函数,blk_rq_map_kern().当我们在设备驱动内部或者scsi mid-level要发送scsi命令给设备的时候,我们会调用这个函数.回首往事,当年在讲scsi命令的时候,在scsi_execute_req()调用了scsi_execute()之后,scsi_execute()中就会调用blk_rq_map_kern()函数.正常情况下它应该返回0,在当年的scsi_execute()中,189行,判断如果bufflen不为0且blk_rq_map_kern

2010-08-10 07:02:00 778

转载 Linux那些事儿之我是Block层(10)scsi命令的前世今生(四)

<br />当然,while循环结束也可能是因为1453行的这两个判断.首先req如果没有了,另一个得看scsi_dev_queue_ready()的返回值,如果返回值为0,那么break也会被执行,从而结束循环.<br />   1270 /*<br />   1271  * scsi_dev_queue_ready: if we can send requests to sdev, return 1 else<br />   1272  * return 0.<br />   1

2010-08-10 06:56:00 1001

转载 Linux那些事儿之我是Block层(9)scsi命令的前世今生(三)

<br />下一个更为重要的函数是scsi_dispatch_cmd,来自drivers/scsi/scsi.c:<br />    459 /*<br />    460  * Function:    scsi_dispatch_command<br />    461  *<br />    462  * Purpose:     Dispatch a command to the low-level driver.<br />    463  *<br /

2010-08-10 06:55:00 1046

转载 Linux那些事儿之我是Block层(8)scsi命令的前世今生(二)

<br />一旦这种狼狈为奸的关系建立好了,就可以开始执行请求了.来看blk_execute_rq(),来自block/ll_rw_blk.c:<br />   2605 /**<br />   2606  * blk_execute_rq - insert a request into queue for execution<br />   2607  * @q:          queue to insert the request in<br />   2608  * @bd_disk:    ma

2010-08-09 14:45:00 945

转载 Linux那些事儿之我是Block层(8)scsi命令的前世今生(二)

<br />一旦这种狼狈为奸的关系建立好了,就可以开始执行请求了.来看blk_execute_rq(),来自block/ll_rw_blk.c:<br />   2605 /**<br />   2606  * blk_execute_rq - insert a request into queue for execution<br />   2607  * @q:          queue to insert the request in<br />   2608  * @bd_disk:    ma

2010-08-09 14:43:00 1048

原创 Linux那些事儿之我是Block层(7)scsi命令的前世今生(一)

<br />现在我们块设备也有了,队列也有了,要提交请求也就可以开始提交了.那就让我们来研究一下如何提交请求如何处理请求吧.不过哥们儿有言在先,出错处理的那些乱七八糟的代码咱们就不理睬了.<br />仍然以scsi磁盘举例,最初scsi这边发送的是scsi命令,可是从block走就得变成request,然而走到usb-storage那边又得变回scsi命令.换言之,这整个过程scsi命令要变两次身.<br />首先让我们从sd那边很常用的一个函数开始,我们来看scsi命令是如何在光天化日之下被偷梁换柱的变成

2010-08-09 14:29:00 919

转载 Linux那些事儿之我是Block层(6)浓缩就是精华?(三)

第三个,blk_register_queue().   4079 int blk_register_queue(struct gendisk *disk)   4080 {   4081         int ret;   4082   4083         request_queue_t *q = disk->queue;   4084   4085         if (!q || !q->request_fn)   4086             

2010-08-08 22:34:00 538

转载 Linux那些事儿之我是Block层(5)浓缩就是精华?(二)

第二个,register_disk,来头不小,它来自遥远的fs/partitions/check.c:    473 /* Not exported, helper to add_disk(). */    474 void register_disk(struct gendisk *disk)    475 {    476         struct block_device *bdev;    477         char *s;    478        

2010-08-08 22:28:00 822

转载 Linux那些事儿之我是Block层(4)浓缩就是精华?(一)

人,生在床上,死在床上;欲生欲死,还是在床上.这句话非常有道理.有人说它有点俗,但,我并不这么认为.我因为经常坐在床上一边看A片一边看代码,所以对这句话体会颇深,事实上它形象的描述了我坐在床上看代码时复杂的心情,说欲生欲死,一点也不夸张,尤其是当我看到add_disk()这个无比变态的函数的时候.我不禁感慨,上帝欲使人灭亡,必先使其疯狂;上帝欲使人疯狂,必先使其看Linux内核代码.    175 /**    176 * add_disk - add partitioning informat

2010-08-08 22:25:00 593

转载 Linux那些事儿之我是Block层(3)驱动不过一出戏,内存申请为哪般?

下一个函数,alloc_disk().在sd.c中咱们传递进来的参数是16.    720 struct gendisk *alloc_disk(int minors)    721 {    722         return alloc_disk_node(minors, -1);    723 }    724    725 struct gendisk *alloc_disk_node(int minors, int node_id)    726 {    7

2010-08-08 22:05:00 394

转载 Linux那些事儿之我是Block层(2)注册一个块设备驱动

看完了block子系统的初始化之后,我曾一度迷茫过,也曾辗转反侧,也曾苦恼万分,我完全不知道下一步该怎么走,几经思索,思索着我和中国的未来,徘徊过后,彷徨过后,终于决定,和scsi disk驱动同步进行往下走,因为scsi disk那边会调用许多block层这边提供的函数,于是我们就在这边来看看这些函数究竟是干什么的.第一个函数当然就是register_blkdev().     55 int register_blkdev(unsigned int major, const char *name)  

2010-08-08 22:04:00 407

原创 Linux那些事儿之我是Block层(1)Block子系统的初始化

于是我们从genhd_device_init()开始看起.    350 static int __init genhd_device_init(void)    351 {    352         int err;    353    354         bdev_map = kobj_map_init(base_probe, &block_subsys_lock);    355         blk_dev_init();    356       

2010-08-08 22:03:00 545

转载 Linux那些事儿之我是Block层(引子)

很久以前,天还是蓝的,水也是绿的,庄稼是长在地里的,猪肉是可以放心吃的,耗子还是怕猫的,法庭是讲理的,上床是先结婚的,理发店是只管理发的,药是可以治病的,医生是救死扶伤的,拍电影是不需要陪导演睡觉的,照相是要穿衣服的,欠钱是要还的,孩子的爸爸是明确的,学校是不图挣钱的,白痴是不能当教授的,卖狗肉是不能挂羊头的,男就是男的女的就是女的.那时候Block层还是一部分附属于drivers/目录下一部分附属于fs/目录下的.但后来一切都变了.2005年秋天,Block层搬出了drivers/和fs/目录,从2.6.

2010-08-08 22:02:00 495

转载 《Linux那些事儿之我是USB》我是U盘(2)Makefile

<br />“出来混,迟早要还的。”<br />基本上,Linux内核中每一个目录下边都有一个Makefile。Makefile和Kconfig就像一个城市的地图,地图带领我们去认识一个城市,而Makefile和Kconfig则可以让我们了解这个目录下面的结构。drivers/usb/storage/目录下边的Makefile内容如下:<br />lfg1:/usr/src/linux-2.6.22/drivers/usb/storage #cat Makefile<br

2010-08-08 21:59:00 382

转载 《Linux那些事儿之我是USB》我是U盘(1)小城故事

<br />这个故事中使用的是2.6.22的内核代码。在Linux内核代码目录中,所有与设备驱动程序有关的代码都在drivers/目录下面,在这个目录中用ls命令可以看到很多子目录:<br />lfg1:/usr/src/linux-2.6.22/drivers # ls<br />Kconfig  acpi   atm   block    char  cpufreq   dma   fc4       hid    ide<br />input   leds    md    mfd   m

2010-08-08 21:58:00 425

转载 《Linux那些事儿之我是USB》前言

<br />1992年,那是一个春天。不过其实1991年又何尝不是一个春天呢,因为正是在那一年,Linux诞生了。又因为开放源代码的缘故,十几年来Linux是越来越火,熊熊火焰也烧到了华夏大地。诸多高校开始开设Linux相关的课程,诸多企业开始招聘Linux相关的人才。市面上关于Linux的书籍也层出不穷,而这其中大致分为两类,一类是应用方面的,比如介绍如何组建各种服务器啊,另一类是内核方面的,主要都是对内核源代码的进行分析,这方面的书籍则以《Linux设备驱动程序》和《深入理解Linux内核》为经典代表。

2010-08-08 21:57:00 395

原创 arm11 s3c6410 开发板 学习板 工业开发板 比较 国内主流的arm开发板比较

代理arm11开发板已经几个月了,说下我自己的看法。我首先用语言描述一下国内主流的arm开发板情况,个人对各个公司开发板的看法,仅代表个人意见,没有针对某个公司的意思,由于6410的开发难度以及工艺成本问题,目前市场上常见的有如下几种6410 开发板:一:ArmPlayer公司Android6410开发板,主打android系统,支持android,linux,wince,ubuntu,性价比最高,最便宜功能和性能超过同类产品公司网站:http://www.armplayer.com/此产品为arm

2010-08-08 21:48:00 4724 6

转载 《Linux内核修炼之道》 之 高效学习Linux内核

<br />世界悲结束了,章鱼哥也退役了,连非诚勿扰中的拜金女也突然的少了很多。这本《Linux内核修炼之道》在卓越、当当、china-pub上也已经开卖了,虽然是严肃文学,但为了保证流畅性,大部分文字我还都是斟词灼句,反复的念几遍才写上去的,尽量考虑到写上去的每段话能够让读者产生什么疑惑,然后也都会紧接着尽量的去进行解释清楚,中间的很多概念也有反复纠结过怎么解释能够更容易的理解,力求即使对于初学者也可以有很少阻碍的一气读完。同时我也把书中一部分自己的感悟抽出来整理了精华版,share出来。当然

2010-08-08 16:07:00 604

转载 《Linux内核修炼之道》 之 高效学习Linux驱动开发

<br />这本《Linux内核修炼之道》已经开卖(网上的链接为: 卓越、当当、china-pub ),虽然是严肃文学,但为了保证流畅性,大部分文字我还都是斟词灼句,反复的念几遍才写上去的,尽量考虑到写上去的每段话能够让读者产生什么疑惑,然后也都会紧接着尽量的去进行解释清楚,中间的很多概念也有反复纠结过怎么解释能够更容易的理解,力求即使对于初学者也可以有很少阻碍的一气读完。同时我也把书中一部分自己的感悟抽出来整理了精华版,share出来。当然水平有限,错漏之处有发现而修订时遗漏的,也有尚没有

2010-08-08 16:07:00 387

转载 Linux内核修炼之道》精华分享与讨论(21)——二分法与printk()

<br />人生就是一个茶几,上面摆满了杯具。内核也是一个大茶几,不过它上面的杯具是一个个的bug。确定bug什么时候被引入是一个很关键的步骤,在这个定位bug的过程中,不论有意或无意,都会很自然地用到二分查找的方法。二分查找法的基本原理<br />对于二分查找法,我们不会也不应该会感到陌生。作为一种高效的查找算法,它曾出现在我们的数据结构课堂里,出现在一次又一次的面试里,更是会频繁地应用在我们的代码里。在我们所接触到的各种算法里,它可以说是最为大众化、最充满生活智慧的一个,很多人并

2010-08-08 16:06:00 350

转载 《Linux内核修炼之道》精华分享与讨论(22)——方法论

这应该是这个系列的最后一篇了,书么很快就能买到了,呵呵,接下来应该会写些android方面的东东吧。<br />******************************************************************************************什么是方法论<br />方法论给人的第一感觉就是它是一个玄之又玄的很朦胧的东西,显然,学习本身就是一件很玄乎的事情,有些人整天潇潇洒洒没见怎么用心就能够获得很好的成绩,而有些人则相反,投悬梁锥刺骨也还是成绩平平收获平平。

2010-08-08 16:06:00 332

转载 Linux内核修炼之道》精华分享与讨论(20)——学会使用Git

<br />作为一名人民的好干部,如果希望被惦记,可以学我们的郑书记,将自己和蔼可亲的光辉形象搬上台历;作为一名有梦想有追求而又不知道如何出名的人,你可以参考对岸的“超想被包养”社团。而作为一个内核爱好者,要想成为一名内核开发者,为内核贡献自己的代码,我们必须要能够与其他众多的内核开发者协同工作,这就意味着应该能够使用内核的版本控制工具Git管理内核代码。<br />1. 什么是Git<br />Git是Linus专门为内核而开发的一个开放源码的版本控制软件,如下图所示,Git的主页http://git

2010-08-08 16:05:00 352

转载 《Linux内核修炼之道》精华分享与讨论(18)——选择发行版

<br />学习内核首先要会使用它,依照一个由上至下循序渐进的过程,在能够熟练的使用Linux操作系统之后再去研究内核中的实现。因此,了解并选择一个发行版进行安装使用便是一个不能回避的过程。 <br />     目前已经有超过600个Linux发行版,可以在http://en.wikipedia.org/wiki/List_of_Linux_distributions上看到它们的列表,其中,有多于300个正处于活跃的开发中,不断的改进。 <br />     对新人来说,在众多的发

2010-08-08 16:04:00 317

转载 《Linux内核修炼之道》精华分享与讨论(19)——不稳定的内核API

<br />刚才欣闻在SB会试运行期间,参观的上海市民情绪非常稳定的,很好很舒服的展示了自己的风采。于是我们要在这里要反思一下,为什么内核的API就不能同样的稳定?<br />开源社区正以极快的速度向内核中添加新功能,同时又在努力让修补bug的步伐跟上去,放慢开发速度看上去是不太可能的:首先Linux不能在技术上落后,否则就会失去要求越来越苛刻的商业用户;其次是因为Linux需要推动开发者社区的发展,不断增加新功能可以使开发者不感到厌倦,否则他们就可能转移到其它项目,另外也能在现有开发者年老或退出的时候吸引

2010-08-08 16:04:00 328

转载 《Linux内核修炼之道》精华分享与讨论(17)——子系统的初始化:以PCI子系统为例

<br />由Kconfig这张地图的分布来看,PCI这块儿的代码应该分布在两个地方,drivers/pci和arch/i386/pci,两岸三地都属于一个中国,不管是drivers/pci那儿的,还是arch/i386/pci那儿的,也都只属于一个PCI子系统,本着一个中国的原则,咱们要统筹的全面的考察分析位于两个地方的代码,于是,这些远远突破了五位数的代码左看右看横看竖看都显得那么的阴森恐怖,不过人家咋说也是整个一PCI子系统,就像走在T台上的芙蓉姐姐和杨二车那姆一样,看起来恐怖但也是很有内

2010-08-08 16:03:00 379

转载 《Linux内核修炼之道》精华分享与讨论(15)——子系统的初始化:内核选项解析

<br />首先感谢国家。其次感谢上大的钟莉颖,让我知道了大学不仅有校花,还有校鸡,而且很多时候这两者其实没什么差别。最后感谢清华女刘静,让我深刻体会到了素质教育的重要性,让我感到有责任写写子系统的初始化。<br />各个子系统的初始化是内核整个初始化过程必然要完成的基本任务,这些任务按照固定的模式来处理,可以归纳为两个部分:内核选项的解析以及那些子系统入口(初始化)函数的调用。<br />内核选项<br />Linux允许用户传递内核配置选项给内核,内核在初始化过程中调用parse_args函数对这些选项

2010-08-08 16:02:00 333

转载 《Linux内核修炼之道》精华版 之 方法论(提供pdf下载)

<br />到目前为之,博客上分享的精华篇都可以归为方法论的范畴,在很多时候,都是方法论要比细节紧要得多。而这些精华篇又可细分为三个专题:Linux大史记;内核学习的方法论;驱动开发的方法论。Linux大史记<br />除去那些精彩的“门”,我们生活中乏味的事情太多了,所以不希望再去按惯例花个一二页的篇幅乏味的写个“Linux简介”,就将几天中出去溜弯的时间贡献了出来,逐年逐月的搜集整理了一些Linux成长过程中所发生的重要的事情,抑或一些非常有趣儿的事情。<br />开始时本以为这是一件很

2010-08-08 16:01:00 1352

转载 《Linux内核修炼之道》精华分享与讨论(14)——内核中的链表

<br />早上上班坐地铁要排队,到了公司楼下等电梯要排队,中午吃饭要排队,下班了追求一个女孩子也要排队,甚至在网上下载个什么门的短片也要排队,每次看见人群排成一条长龙时,才真正意识到自己是龙的传人。那么下面咱们就说说队列(链表)。<br />使用链表的目的很明确,因为有很多事情要做,于是就把它放进链表里,一件事一件事的处理。比如在USB子系统里,U盘不停的提交urb请求,USB键盘也提交,USB鼠标也提交,那USB主机控制器咋应付得过来呢?很简单,建一个链表,然后你每次提交就是往里边插入,然后USB主

2010-08-08 16:01:00 421

转载 《Linux内核修炼之道》精华分享与讨论(11)——设备模型(上)

<br />对于驱动开发来说,设备模型的理解是根本,毫不夸张得说,理解了设备模型,再去看那些五花八门的驱动程序,你会发现自己站在了另一个高度,从而有了一种俯视的感觉,就像凤姐俯视知音和故事会,韩峰同志俯视女下属。<br />顾名而思义就知道设备模型是关于设备的模型,既不是任小强们的房模,也不是张导的炮模。对咱们写驱动的和不写驱动的人来说,设备的概念就是总线和与其相连的各种设备了。电脑城的IT工作者都会知道设备是通过总线连到计算机上的,而且还需要对应的驱动才能用,可是总线是如何发现设备的,设备又是如何和

2010-08-08 16:00:00 252

转载 《Linux内核修炼之道》精华分享与讨论(12)——设备模型(下)

<br />设备模型拍得再玄幻,它也只是个模型,必须得落实在具体的子系统,否则就只能抱着个最佳技术奖空遗恨。既然前面已经以USB子系统的实现分析示例了分析内核源码应该如何入手,那么这里就仍然以USB子系统为例,看看设备模型是如何软着陆的。<br />内核中USB子系统的结构<br />我们已经知道了USB子系统的代码都位于drivers/usb目录下面,也认识了一个很重要的目录——core子目录。现在,我们再来看一个很重要的模块——usbcore。你可以使用“lsmod”命令看一下,在显示的结果里能够找到有

2010-08-08 16:00:00 269

转载 《Linux内核修炼之道》精华分享与讨论(10)——模块机制与“Hello World!”

<br />有一种感动,叫内牛满面,有一种机制,叫模块机制。显然,这种模块机制给那些Linux的发烧友们带来了方便,因为模块机制意味着人们可以把庞大的Linux内核划分为许许多多个小的模块。对于编写设备驱动程序的开发者来说,从此以后他们可以编写设备驱动程序却不需要把她编译进内核,不用reboot机器,她只是一个模块,当你需要她的时候,你可以把她抱入怀中(insmod),当你不再需要她的时候,你可以把她一脚踢开(rmmod)。 <br />于是,忽如一夜春风来,内核处处是模块。让我们从一个伟大的例

2010-08-08 15:59:00 312

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除