易截截图软件、单文件、免安装、纯绿色、仅160KB

linux module Makefile

不知道在什幺时候,转载Linux 出现了 module 这种东西,的确,它是 Linux 的一大革新。有了 module 之后,写
device driver 不再是一项恶梦,修改 kernel 也不再是一件痛苦的事了。因为你不需要每次要测试 driver 就重新
compile kernel 一次。那简直是会累死人。Module 可以允许我们动态的改变 kernel,加载 device
driver,而且它也能缩短我们 driver development 的时间。在这篇文章里,我将要跟各位介绍一下 module
的原理,以及如何写一个 module。
module 翻译成中文就是模块,不过,事实上去翻译这个字一点都没意义。在讲模块之前,我先举一个例子。相信很多人都用过 RedHat。在
RedHat 里,我们可以执行 sndconfig,它可以帮我们 config 声卡。config
完之后如果捉得到你的声卡,那你的声卡马上就可以动了,而且还不用重新激活计算机。这是怎幺做的呢 ? 就是靠module。module
其实是一般的程序。但是它可以被动态载到 kernel 里成为 kernel的一部分。载到 kernel 里的 module 它具有跟
kernel 一样的权力。可以 access 任何 kernel 的 data structure。你听过 kdebug 吗 ? 它是用来
debug kernel 的。它就是先将它本身的一个 module 载到 kernel 里,而在 user space 的 gdb
就可以经由跟这个 module 沟通,得知 kernel 里的 data structure 的值,除此之外,还可以经由载到 kernel 的
module 去更改 kernel 里 data structure。
我们知道,在写 C 程序的时候,一个程序只能有一个 main。Kernel 本身其实也是一个程序,它本身也有个 main,叫
start_kernel()。当我们把一个 module 载到 kernel 里的时候,它会跟 kernel 整合在一起,成为 kernel
的一部分。请各位想想,那 module 可以有 main 吗 ? 答案很明显的,是 No。理由很简单。一个程序只能有一个 main。在使用
module 时,有一点要记住的是 module 是处于被动的角色。它是提供某些功能让别人去使用的。
Kernel 里有一个变量叫 module_list,每当 user 将一个 module 载到 kernel 里的时候,这个 module
就会被记录在 module_list 里面。当 kernel 要使用到这个 module 提供的 function 时,它就会去 search
这个 list,找到 module,然后再使用其提供的 function 或 variable。每一个 module 都可以 export
一些 function 或变量来让别人使用。除此之外,module 也可以使用已经载到 kernel 里的 module 提供的
function。这种情形叫做 module stack。比方说,mod


相关文档:

Vmware里Linux在x windows与虚拟终端之间切换方法

    当我们在Vmware或者其他虚拟机中安装Linux后,想在X
Windows与虚拟终端之间切换时,却发现Ctrl+Alt+Fx不起作用,那么我们如何解决这个问题呢?其实方法很简单,我们只需要将Vmware或
者其他虚拟机软件的热键改成Ctrl+Alt+Shift即可,如Vmware具体方法如下:中文版——选择编辑—&mdash ......

编写嵌入式Linux应用层驱动程序

在研究某一样东西的时候,其实最重要的一点就是了解清楚它的作用,它对自己有没有用,以前刚刚进入大学的时候总是听某某师兄师姐在讲某个课程没啥用,不用认真学,结果自己有时候也把某些人的某些话当真了,再结果我在学习某些课程的时候就没把它当回事,总认为以后没什么用,等到自己大四时才知道那些个所谓的师兄师姐们的 ......

Linux的Shell编程 运行Shell程序的方法

用户可以用任何编辑程序来编写Shell程序。因为Shell程序是解释执行的,所以不需要编译成目的程序。按照Shell编程的惯例,以 bash为例,程序的第一行一般为“#!/bin/bash”,其中 # 表示该行是注释,叹号 ! 告诉Shell运行叹号之后的命令并用文档的其余部分作为输入,也就是运行/bin/bash并让/bin/bash去执行Shel ......

提高Linux管理效率的三个技巧


管理员想要提高Linux管理效率是要遵循一些管理技巧的,这里简单介绍有关Linux管理效率的三个技巧:卸载无响应的 DVD 驱动器、恢复出现问题的屏幕、屏幕协作。相信他们会对管理员效率有提高。
技巧 1:卸载无响应的 DVD 驱动器
网络新手的经历:按下服务器(运行基于 Redmond 的操作系统)DVD 驱动器上的 Eject 按钮时, ......

将Linux代码移植到Windows的简单方法(1)

一.前言
  Linux拥有丰富各种源代码资源,但是大部分代码在Windows平台情况是无法正常编译的。Windows平台根本无法直接利用这些源代码资源。如果想要使用完整的代码,就要做移植工作。因为C/C++ Library的不同和其他的一些原因,移植C/C++代码是一项困难的工作。本文将以一个实际的例子(Tar)来说明如何把Linux代码移植 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号