首页 > 编程知识 正文

linux内核函数(单片机内核是什么意思)

时间:2023-05-03 11:55:46 阅读:65471 作者:2921

lsmod命令提供了加载到当前系统中的内核模块,以及有关使用它们的有趣细节。

什么是Linux内核模块?

内核模块是一个代码块,可以根据需要加载或卸载到内核中,因此无需重新启动即可扩展内核功能。 事实上,除非用户使用类似lsmod的命令查询模块信息,否则无法知道内核中发生的更改。

要知道的重要的是,Linux系统中总是有很多可用的模块,如果能进入其中了解很多细节就好了。

lsmod的主要用途之一是在系统无法正常工作时检查模块。 但是,在大多数情况下,模块是按需加载的,用户不需要知道它们是如何工作的。

显示内核模块

显示内核模块的最简单方法是使用lsmod命令。 此命令包含许多详细信息,但输出非常容易使用。

$ lsmodmodulesizeusedbysnd _ hda _ codec _ realtek 1146881 snd _ hda _ codec _ generic 778241 snd _ hda _ codec _ realtek da _ Intel 40960 snd _ hda _ codec 131072 snd _ hda _ snd _ hda _ codec _ realtek snd _ hda _ core 860165 snd _ hda _ snd _ HDD mi snd _ hda _ codec _ realtek snd _ HW dep 204801 snd _ hda _ codecs nd _ PCM 102400 snd _ hda _ codec _ HDMI, snd _ hda _ hda _ snd _ hda _ coresnd _ seq _ midi 20480 snd _ seq _ midi _ event 163841 snd _ seq _ mididcdbas 20488 80snd_seq_device163843snd_seq、snd_seq_midi, snd _ raw midi snd _ time ed snd _ PCM KVM _ Intel 2416640 KVM 626681 KVM _ Intel radeon 145408010 IRQ bypass 163841 KVM joydev 245760 DRM47513613DRM_kms_helper,radeon,TTM snd 8192015 snd _ hda _ codec _ generic,snd_seq,snd _ seq snd _ hda _ snd snd_pcm, snd _ rawmidii 2c _ algo _ bit 163841 radeon FB _ sys _ fops 163841 DRM _ kms _ helpersyscopyarea 163841 DRM _ kms _ helper SERS 3841 snd MAC _ hid 163840 sch _ FQ _ codel 204802 parport _ PC 4096000 PP dev 245555 parport _ PC,lp, PDE VIP _ tables 286720 x _ tables 409601 IP _ tables autofs 4450562 raid 1057344 raid 4561556480 async _ raid6_ recov 24576 raid 4576 async _ raid6_ recovasync _ pq 245762 raid456,async _ raid6_ recovasync _ xor 204803 async _ pq,raid 456,async async async _ raid6_ recovxor 245761 async _ xor raid6_ pq 114688 async _ pq, raid 456 async _ raid6_ recovlibcrc 32 c 163841 raid 456 raid 1450560 raid 024576 multipath 20480 linear 20480 hid _ generic 16384 psmouse 1524 6USBhid532480hid1269762USBhid,hid _ generice 1000 e 245760 floppy 81920

在上面的输出中:

Module显示每个模块的名称

Size显示每个模块的大小。 不是内存大小。

Used by显示每个模块使用的次数和使用的模块

很明显这里有很多模块。 要加载的模块数量取决于系统和版本以及正在运行的内容。 可以这样计数

$ lsmod | wc -l67

要确定系统中可用的模块以及正在运行的模块的数量,请尝试以下命令:

$ modprobe -c | wc -l41272

与内核模块相关的其他命令

Linux提供了几个用于模块排序、加载/卸载、测试和状态检查的命令。

depmod——生成modules.dep和映射文件

用于将模块插入insmod——Linux内核的程序

lsmod——显示Linux内核中模块的状态

modinfo——显示Linux内核模块信息

添加或删除modprobe——Linux内核模块

用于从rmmod——Linux内核中删除模块的程序

显示内置内核模块

如上所述,lsmod命令是显示内核模块的最有用的命令。 但是,也可以用其他方法显示。 modules.builtin文件列出了在内核中构建的所有模块,并在尝试将模块添加到文件中时使用modprobe命令。 请注意,以下命令的$(uname -r )包含内核版本的名称:

$ more /lib/modules/$(uname -r )/modules.builtin|head-10 kernel/arch/x86/crypto/crc32 c-Intel.ko kerner

虽然没有模块提供的服务的简要说明,但可以使用modinfo获取模块详细信息。 以下输出内容中省略了冗馀签名。

$ modinfo floppy|head-16 filename :/lib/modules/5.0.0-13 -通用/关键/驱动程序/块/floppy.koallopy license : GPL author : alainl.knaffsrcversion : ebe aa 26742 df 61790588 FD9alias : acpi * 3: PP 0033333 alias 3360 PP depends : ret poline : yin tree : yname : floppyvermagic :5.0.0-13-genericsmpmod _ u unloadsig _ ing

可以使用modprobe命令加载或卸载模块。 可以使用以下命令查找与特定模块相关联的内核对象:

$ find /lib/modules/$(uname -r )-name floppy */lib/modules/5.0.0-13 -通用/关键/驱动程序/块

如果您想加载模块,可以使用此命令。

$ sudo modprobe floppy

总结

加载和卸载内核模块显然很重要。 这使Linux系统比使用通用内核运行时更灵活、更高效。 这意味着还可以进行重大更改,而无需重新启动,例如添加硬件。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。