热插拔和模块之间的关系是?
一、何为模块?
文件系统、设备驱动程序、网络协议都可以理解为模块。模块本质也是普通的软件系统。
二、热插拔
硬件层面:只在不断电、不关闭系统的情况下增加或者删除对应部件,比如电源、硬盘。一些高端设备硬盘是支持热插拔的,再比如我们的Windows笔记本电脑,电池也是可以在通过适配器供电的情况下更换。计算机硬件的热插拔底层需要操作系统的支持。
软件层面:这一概念在软件行业也有。个人觉得安卓的热修复也是异曲同工之妙。
这次说到的是Linux模块相对于内核的热插拔,可以将模块看做某一硬件设备,内核看做整台物理计算机。还有一个常见的直观例子,比如用VMware软件虚拟的物理机或者物理机本身是允许操作系统在运行时加载第三方设备:移动硬盘、U盘、手机等。
模块热插拔目前大多都是以二进制的方式插入Linux内核,而不是源代码,因为模块提供者比如商业厂商觉得以源代码形式插入内核不利于其商业发展。但是这样做会有很多限制,有污染内核的风险,出现故障,所以这类模块由其提供者维护。
相关阅读: