找回密码
 注册
关于网站域名变更的通知
查看: 175|回复: 1
打印 上一主题 下一主题

Linux 知识 -「模块」

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-8-25 17:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
说起module(模块),有的像「可热插拔的零部件」的意思。
在讨论Linux时提到的模块一般是指可以组装到内核中的模块。
模块这个概念是在硬件和程序设计领域中广泛使用的概念。我们这次说的模块特指Linux内核中的模块。
2 {5 ]/ h/ H% \( d
内核模块简单来说就是「作为内核程序主体的一个小配件来使用的程序」,也就是说,只有模块是什么也做不了的。安装到内核中才能起作用。

" G/ Y" E; B0 a- R
比如有一个新的设备或者一个新的功能想要追加到内核中时,就可以用模块的方式来实现。(设备驱动最好考虑用内核模块的方式来提供)
此时,如果把相应的模块直接放到内核本体中,这里不是以模块方式,而是直接把模块代码放到内核代码中。那么,因为不知道何时需要何种设备,所以要把很多的驱动程序代码加到内核代码中,
内核的代码量会变的非常庞大。不仅如此,内核的内存使用量会很大。而且但有新的设备发布的时候,需要把新设备的代码加入到内核中,然后再重新编译内核,这会花费很多的时间。
* B1 Z" f( v$ a& I5 @
如果以「模块」方式来使用的话,那么只要将必要的设备以及功能的代码加入到内核中,内核会很紧凑。而且有新的设备或功能发布时,也不用重新编译内核。

, w8 L5 X8 g" ~: n9 J" j4 {
这样看来,模块方式有很多优点,但也不是没有缺点的。
  • 存在很多天生就无法用模块方式来实现的功能
  • 用模块方式在某些场合会导致性能下降
    9 a- S% q; q/ c* g2 \: O

# I$ x$ Y7 Z0 Z( K% g( |  B
管理内核模块的命令是 「modprobe」。这个命令可以用来加载模块。
模块之间有时会存在依赖关系,「modprobe」命令会在加载模块时检查模块的依赖关系,所以建议用「modprobe」命令来加载模块。

) ^+ W. x% t# N2 S$ ?

该用户从未签到

2#
发表于 2020-8-25 18:12 | 只看该作者
Linux 知识 -「模块」
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-27 13:04 , Processed in 0.062500 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表