模块
--------------------------------------------------------------------------------
Linux有一个很好的特性:内核提供的特性可在运行的时候动态地扩展。这意味着当系统启动并
运行时,我们可以向内核添加功能(当然也可以移除功能)。
可以在运行时添加到内核中的代码被称为“模块”。Linux内核支持好几种模块类型(或者类),
包括但不限于设备驱动程序。每个模块由目标代码组成(没有连接程一个完整的可执行程序),
我们可以使用insmod程序将模块连接到正在运行的内核,也可以使用rmmod程序移除模块。
忽如一夜春风来,内核处处是模块(参见《Linux那些事儿之我是USB》),让我们一起看看fudan_abc
在这本书中是如何描述模块机制的:
有一种感动,叫泪流满面,有一种机制,叫模块机制,十月革命一声炮响,给linux送来了模块
机制。显然,这种模块机制给那些Linux的发烧友带来了方便,因为模块机制意味着人们可以把
庞大的Linux内核划分为许许多多个小的模块,对于编写设备驱动程序的那帮家伙来说,从此以
后他们可以编写设备驱动程序却不需要把她编译进内核,不用reboot机器,她只是一个模块,当
你需要她的时候,你可以把她抱入怀中(insmod),当你不再需要她的时候,你可以把她一脚踢
开,甚至,你可以对她咆哮:“滚吧,贱人!”(rmmod)。她不能成为你的手足,只能算你的
衣服。
也许在现实的世界里不会这样,但是在Linux的虚拟世界里,却是可以是如此,time and time
again,我问自己,模块是否就像现实生活中的妓女一样的?Linux内核是嫖客,当他需要这个模
块的时候,他就把人家揽入怀中,当他不需要人家的时候,就把别人踢开,而且,模块总是能够
逆来顺受,尽管Linux内核会一次次抛弃她,但是当Linnux内核再次需要她的时候,当内核再次
执行insmod的时候,模块依然会尽自己的能力去取悦内核,这是否太可悲了些!记得孔子曾经说
过,读懂Linux内核代码不难,难的是读懂Linux内核代码背后的哲学!难道这就是传说中的藏在
Linux代码背后的哲学!天哪!抛开这见鬼的哲学吧。
阅读(2404) | 评论(0) | 转发(0) |