一文剖析Linux可加载内核模块

本文详细剖析了Linux可加载内核模块(LKM),解释了LKM如何允许Linux在运行时动态改变其功能,以及它们与静态内核的区别。文章探讨了LKM的生命周期,包括加载和卸载的细节,还介绍了如何通过insmod、rmmod等工具管理模块。同时,文章提到了内核模块的ELF对象结构,以及如何在内核中管理和优化模块的使用。
摘要由CSDN通过智能技术生成

Linux 就是通常所说的单内核(monolithic kernel),即操作系统的大部分功能都被称为内核,并在特权模式下运行。

它与微型内核不同,后者只把基本的功能(进程间通信 [IPC]、调度、基本的输入/输出 [I/O] 和内存管理)当作内核运行,而把其他功能(驱动程序、网络堆栈和文件系统)排除在特权空间之外。

因此,您可能认为 Linux 是一个完全静态的内核,但事实恰恰相反。

通过 Linux 内核模块(LKM)可以在运行时动态地更改 Linux。

可动态更改是指可以将新的功能加载到内核、从内核去除某个功能,甚至添加使用其他 LKM 的新 LKM。

LKM的优点是可以最小化内核的内存占用,只加载需要的元素(这是嵌入式系统的重要特性)。

Linux不是可以进行动态更改的惟一(也不是第一个)单内核。Berkeley Software Distribution(BSD)的变体、Sun Solaris、更老的内核(比如 OpenVMS),以及其他流行的操作系统(比如 Microsoft® Windows® 和 Apple Mac OS X)都支持可加载模块。

【文章福利】小编在群文件上传了一些个人觉得比较好得学习书籍、视频资料,有需要的可以进群【977878001】领取!!!额外赠送一份价值699的内核资料包(含视频教程、电子书、实战项目及代码)

内核资料直通车:Linux内核源码技术学习路线+视频教程代码资料

学习直通车:Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈

剖析内核模块

LKM与直接编译到内核或典型程序的元素有根本区别。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值