用户态程序 Linux内核模块
运行 用户空间 内核空间
入口 main() module_init()指定;
出口 无 module_exit()指定;
编译 gcc –c Makefile
连接 ld insmod
运行 直接运行 insmod
调试 gdb kdbug, kdb, kgdb等
Linux内核模块的优点与缺点
优点
使得内核更加紧凑和灵活
修改内核时,不必全部重新编译整个内核。系统如果需要使用新模块,只要编译相应的模块,然后使用insmod将模块装载即可
模块的目标代码一旦被链接到内核,它的作用域和静态链接的内核目标代码完全等价。
缺点
由于内核所占用的内存是不会被换出的,所以链接进内核的模块会给整个系统带来一定的性能和内存利用方面的损失;
装入内核的模块就成为内核的一部分,可以修改内核中的其他部分,因此,模块的使用不当会导致系统崩溃;
为了让内核模块能访问所有内核资源,内核必须维护符号表,并在装入和卸载模块时修改符号表;
模块会要求利用其它模块的功能,所以,内核要维护模块之间的依赖性。
分享到:
相关推荐
Linux内核是一个整体是结构。因此向内核添加任何东西。或者删除某些功能 ,都十分困难。为了解决这个问题。引入了内核机制。本文介绍了模块的实现机制以及模块编程的方法。
LINUX内核经典面试题 ,20) 如何加载、卸载一个模块? 21) 模块和应用程序分别运行在什么空间? 22) Linux中的浮点运算由应用程序实现还是内核实现? 23) 模块程序能否使用可链接的库函数? 24) TLB中缓存的是什么...
作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的。Linux进程1.采用层次结构,每个进程都依赖于一个父...
实验目标:在Linux内核中增加一个系统调用,并编写对应的linux应用程序。利用该系统调用能够遍历系统当前所有进程的任务描述符,并按进程父子关系将这些描述符所对应的进程id(PID)组织成树形结构显示。 实验环境:...
此程序为全志H3的GPIO内核驱动程序应用部分
这是一个 LoRa 设备驱动程序,作为具有 IEEE 802.15.4 MAC 接口的 Linux 内核模块。 兼容SX1276/77/78/79芯片 文件夹介绍 LoRa:LoRa 源代码和构建文件。 dts-overlay:设备树覆盖板和操作系统。 test-application:...
文章简单介绍了linux中应用程序和内核模块的区别
本代码是目前能够找到的最早的Linux的内核版本,Linux 0.11内核是Linux内核的早期版本,于1991年由Linus Torvalds编写并发布。作为一个基于UNIX的操作系统内核,它的源代码包含了核心代码和一些驱动程序。采用开源...
介绍了Linux内核防火墙的发展,对2.4.x内核中的Netfilter框架的流程和IPv4协议栈中Netfilter的实现进行了分析,通过一个内核防火墙模块实例介绍了基于Netfilter框架下的内核防火墙设计方法,对Netfilter框架下的防火墙...
自由软件Linux 操作系统源代码的开放,为我们掌握操作系统核心技术提供了良好的条 件。本书共分13 章,对Linux 内核2.4 版...分析与应用等。其中重点剖析了Linux 内核中最基础的部分:进程管理、内存管理及文件管 理。
在进行设备驱动程序,内核功能模块等系统级开发时,通常需要在内核和用户程序之间交换信息。...通过对比明确这些方法,可以加深我们对Linux内核的认识,更重要的是,可以让我们更熟练驾御linux内核级的应用开发技术。
Linux驱动开发:Linux内核模块、字符设备驱动、IO模型、设备树、GPIO子系统、中断子系统、platform总线驱动、I2C总线驱动、SPI总线驱动 Linux项目是一个开放源代码的操作系统项目,由林纳斯·托瓦兹(Linus Torvalds...
Linux 操作系统的源代码开放、内核模块化设计及内核的高度可裁减性使其在嵌入内核 式实时操作系统研究领域备受重视。但其面向通用多任务分时系统的设计思想限制了 Linux 在实时运算中的应用,必须进行有效的实时扩展...
用户程序源码 eknetlink.c -内核程序源码 netlink提供了一种很好很强大的的用户与内核之间的通讯机制,本文通过静态的新增一个netlink协议类型,并使用这个新的netlink类型实现用户态和内核态的双向通讯,对linux的...
在 Linux 内核中增加一个系统调用,并编写对应的 Linux 应用程序。利用该系统调用能够遍历系统当前 所有进程的任务描述符,并按进程父子关系将这些描述符所对应的进程 id(PID)组织成树形结构显示。 整个程序的构思...
深入分析Linux内核源码 前言 第一章 走进linux 1.1 GNU与Linux的成长 1.2 Linux的开发模式和运作机制 1.3走进Linux内核 1.3.1 Linux内核的特征 1.3.2 Linux内核版本的变化 1.4 分析Linux内核的意义 ...
| `-- 秒设备驱动与应用程序 | |-- second.c | `-- second_test.c |-- 11 | |-- DMA范例 | | |-- 3c505.c | | |-- 3c505.h | | `-- dma.h | `-- 静态映射范例 | `-- mach-smdk2440.c |-- 12 | |-- NVRAM驱动 | | `--...
第1章 了解Linux内核 1. 1 Linux内核 1. 2 查看Linux内核状况 1. 3 编程序检查系统状况 1. 4 Linux编程环境 第2章 shell 2. 1 she11 2. 2 实现一个简单的shell程序 2. 3 shell编程 第3章 内核时钟 3. 1 关于时钟和...