模块编程-复高斯分布的数学基础理论

时间:2024-06-28 07:07:26
【文件属性】:

文件名称:模块编程-复高斯分布的数学基础理论

文件大小:6.48MB

文件格式:PDF

更新时间:2024-06-28 07:07:26

嵌入式 Linux C

12.2 模块编程 12.2.1 模块编程简介 Linux 内核中采用可加载的模块化设计(LKMs,Loadable Kernel Modules),一般情况下 编译的 Linux 内核是支持可插入式模块的,也就是将最基本的核心代码编译在内核中,其他 的代码可以选择在内核中或者编译为内核的模块文件。 Linux 设备驱动属于内核的一部分,Linux 内核的一个模块可以以两种方式被编译和加载。 � 直接编译进 Linux 内核,随同 Linux 启动时加载; � 编译成一个可加载和删除的模块,使用 insmod 加载(modprobe 和 insmod 命令类似, 但依赖于相关的配置文件)、rmmod 删除。这种方式控制了内核的大小,而模块一旦被插入 内核,它就和内核其他部分一样。 常见的驱动程序也是作为内核模块动态加载的,比如声卡驱动和网卡驱动等,而 Linux 最基础的驱动,如 CPU、PCI 总线、TCP/IP 协议、APM(高级电源管理)、VFS 等驱动程序 则直接编译在内核文件中。 有时也把内核模块叫做驱动程序,只不过驱动的内容不一定是硬件罢了,比如 ext3 文件 系统的驱动。因此,加载驱动时就是加载内核模块。 12.2.2 模块相关命令 � lsmod 列出当前系统中加载的模块,其中左边第一列是模块名,第二列是该模块大小, 第三列则是该模块使用的数量,如下所示: [root@www root]# lsmod Module Size Used by autofs 12068 0 (autoclean) (unused) eepro100 18128 1 iptable_nat 19252 0 (autoclean) (unused) ip_conntrack 18540 1 (autoclean) [iptable_nat] iptable_mangle 2272 0 (autoclean) (unused) iptable_filter 2272 0 (autoclean) (unused) ip_tables 11936 5 [iptable_nat iptable_mangle iptable_filter] usb-ohci 19328 0 (unused) usbcore 54528 1 [usb-ohci] ext3 67728 2 jbd 44480 2 [ext3] aic7xxx 114704 3 sd_mod 11584 3 scsi_mod 98512 2 [aic7xxx sd_mod] � rmmod 是用于将当前模块卸载。 � insmod 和 modprobe 用于加载当前模块,但 insmod 不会自动解决依存关系,而 modprobe 则可以根据模块间依存关系以及/etc/modules.conf 文件中的内容自动插入模块。 � mknod 用于创建相关模块。


网友评论