专栏中心

EEPW首页 > 专栏 > Linux中应用程序和内核模块的区别

Linux中应用程序和内核模块的区别

发布人:patton 时间:2008-06-29 来源:工程师 发布文章

1.应用程序是从头到尾执行单个任务;模块却只是预先注册自己以便服务于将来的某个请求,其中,函数init_module(模块的入口)的任务是为以后调用模块函数预先做准备,函数cleanup_module(模块的第二入口)是在模块卸载时调用。

2.应用程序可以调用它未定义的函数,因为在连接过程能够解析外部引用从而使用适当的函数库;模块仅仅被连接到内核,因此它仅能调用有内核导出的函数(如printk),而没有任何可连接的库。

3.应用程序开发过程中的段错误是无害的,并且总是可以使用调试器跟踪到源代码中的问题所在;内核模块的一个错误即使不对整个系统是致命的,也至少会对当前进程造成致命错误。

4.应用程序运行于用户空间,处理器禁止其对硬件的直接访问以及对内存的未授权访问;内核模块运行于内核空间,可以进行所有操作。

5.应用程序一般不必担心发生其他情况而改变它的运行环境;内核模块编程则必须考虑并发问题的处理。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

“RISC-V商用落地加速营伙伴计划”在北京亦庄发布 聚力推动RISC-V产品方案从原型走向商用落地

锂离子电池热失控的过程解析

在FireBeetle2ESP32P4开发板上使用ESP-IDF组件方式读取SHT30温湿度传感器

CES 2010:海信周厚健在CES高峰论坛发表主题演讲

视频 2010-01-18

CES 2010 宣传片

视频 2010-01-18

Protel 99 SE 视频教程 —— 第一节 创建设计文档

视频 2010-01-19

如何移植EtherCAT Igh 基于米尔RK3576开发板

CES 2010:Powertech“不用插”的USB充电器

视频 2010-01-18

这就是为什么安森美半导体公司 (ON) 跌幅超过大盘的原因

​利用集电极-基极结电容的调频发生器电路

AI赋能的客户体验,助力加速全球化布局

2025-09-26

英国提供1000万英镑基金以推动下一代半导体开发

EDA/PCB 2025-09-26

CES 2010:Powermat 无线充电组

视频 2010-01-18

精于微 智于芯:盛思锐微型化传感器亮相SENSOR CHINA 2025

数字电压表设计教程之模数转换原理分析

更多 培训课堂
更多 焦点
更多 视频

技术专区