
linux内核之旅—
linuxchyu
这个作者很懒,什么都没留下…
展开
-
内核模块编程之入门(一)-话说模块
内核模块是Linux内核向外部提供的一个插口,其全称为动态可加载内核模块(Loadable Kernel Module,LKM),我们简称为模块。Linux内核之所以提供模块机制,是因为它本身是一个单内核(monolithic kernel)。单内核的最大优点是效率高,因为所有的内容都集成在一起,但其缺点是可扩展性和可维护性相对较差,模块机制就是为了弥补这一缺陷。一、 什么是模块模块是具有独立功能原创 2013-11-27 13:59:13 · 589 阅读 · 0 评论 -
内核模块编程之入门(二)—必备知识
模块编程属于内核编程,因此,除了对内核相关知识有所了解外,还需要了解与模块相关的知识。1.应用程序与内核模块的比较为了加深对内核模块的了解,表一给出应用程序与内核模块程序的比较。表一 应用程序与内核模块程序的比较C语言应用程序 ??? 内核模块程序使用函数 ??? Libc库 ????????????????? 内核函数运行空间 ??? 用户空间 ?? ? ? ? ? ?? 内核空间运行权限 ??原创 2013-11-27 13:59:16 · 569 阅读 · 0 评论 -
内核模块编程之入门(三)—模块儿实用程序简介
modutils是管理内核模块的一个软件包。可以在任何获得内核源代码的地方获取Modutils(modutils-x.y.z.tar.gz)源代码,然后选择最高级别的patch.x.y.z等于或小于当前的内核版本,安装后在/sbin目录下就会有insomod、rmmod、ksyms、lsmod、modprobe等实用程序。当然,通常我们在加载Linux内核时,modutils已经被载入。1.Ins原创 2013-11-27 13:59:18 · 604 阅读 · 0 评论 -
内核模块编程之进阶(四)-编写带参数的中断模块
在此,我们将编写一个模块,其中有一个中断函数,当内核接收到某个 IRQ 上的一个中断时会调用它。先给出全部代码,读者自己调试,把对该程序的理解跟到本贴后面。—————————————-#include #include #include static int irq;static char *interface;//MODULE_PARM_DESC(interface,”A network int原创 2013-11-27 13:59:25 · 718 阅读 · 0 评论