LPI CH06 内核

在LINUX中,内核(kernel)是唯一能访问硬件资源、管理整体系统的核心软件。它不仅要控制硬件、分配内存,还必须安排进程的执行时机,为应用软件提供一套程序接口,让它们能间接访问硬件资源。

 

课题 1.105.1:内核状态与模块管理

 

在LINUX系统中,硬件设备的驱动程序可以直接编译进内核。对于内置了对大多数设备的支持的内核,我们称之为单内核(monolithic kernel)。单内核的优点是方便,缺点是太没灵活性,因为每次安装新的外围设备后都必须重新编译一次内核。此外,对于比较基本的机型,单内核又可能显得过于“虚胖”,因为这些内核里可能有一些根本用不到的驱动程序。

大多数LINUX发行包随附的是模块化内核(modular kernel)。这类内核只内置足以启动的基本驱动程序,其余硬件的驱动程序是以“模块”(module)的形式躺在硬盘上,可在内核运行时才视情况载入。模块化设计的优点是灵活,除了可因硬件设备的改变之外,还可以在内核运行时升级驱动软件的版本,完全弥补了单内核的缺点;相对地,模块化内核管理需要管理都多付出一些心力来管理模块。

 

模块文件

LINUX的“可加载内核模块”(Loadable Kernel Module,LKM,后文简称“模块”)是由C编译器产生出来的目标文件(object file),它们尚未被链接成完整的可执行文件,因为它们的链接对象是正在运行中的内核。大多数模块是随着内核一起发布的,而且被编译成只适用于该内核。由于模块与内核的关系是如此密切,所以当你的系统改用新版内核时,必须重新编译出适合该版内核的新模块。若系统上同时安装了多个版本的内核,则必须分别安装适用各版本的模块。

模块是存放在/lib/modules/kernel-version /kernel/category/的各子目录下,基本的kernel-version 是模块所属的内核版本,也就是该版内核在运行时,由uname -r命令所汇报的字符串。category是模块的分类。

 

操作模块

 

lsmod

语法

           lsmod

说明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值