我在我的 Ubuntu 16.04 LTS 上运行sudo lsmod
命令,我得到一个输出,其中的一部分如下所示。
使用的模块大小 simple_lkm 16384 0 ufs 73728 0 xt_CHECKSUM 16384 1 iptable_mangle 16384 1 ipt_MASQUERADE 16384 3 nf_nat_masquerade_ipv4 16384 1 ipt_MASQUERADE iptable_nat 16384 1 nf_nat_ipv4 16384 1 iptable_nat nf_nat 24576 2 nf_nat_ipv4,nf_nat_masquerade_ipv4 nf_conntrack_ipv4 16384 2 nf_defrag_ipv4 16384 1 nf_conntrack_ipv4 xt_conntrack 16384 1 nf_conntrack 98304 5 nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4 ipt_REJECT 16384 2 nf_reject_ipv4 16384 1 ipt_REJECT xt_tcpudp 16384 6 桥 114688 0 stp 16384 1 桥 有限责任公司 16384 2 stp,桥 ebtable_filter 16384 0 ebtables 24576 1 ebtable_filter ip6table_filter 16384 0 ip6_tables 20480 1 ip6table_filter iptable_filter 16384 1 ip_tables 20480 3 iptable_filter、iptable_mangle、iptable_nat x_tables 24576 11 ip6table_filter、xt_CHECKSUM、ip_tables、xt_tcpudp、ipt_MASQUERADE、xt_conntrack、iptable_filter、ebtables、ipt_REJECT、iptable_mangle、ip6_tables drbg 28672 1 ansi_cprng 16384 0 中心 16384 2 立方厘米 20480 2 binfmt_misc 20480 1 gpio_ich 16384 0 戴尔wmi 16384 0 sparse_keymap 16384 1 戴尔 wmi 戴尔rbtn 16384 0 戴尔笔记本电脑 24576 0 dcdbas 16384 1 戴尔笔记本电脑 戴尔smm_hwmon 16384 0 英伟达 10375168 52 核心温度 16384 0 kvm_intel 167936 0 kvm 483328 1 kvm_intel snd_hda_codec_hdmi 49152 1 snd_hda_codec_idt 53248 1 irqbypass 16384 1 kvm snd_hda_codec_generic 69632 1 snd_hda_codec_idt snd_hda_intel 36864 3 snd_hda_codec 118784 4 snd_hda_codec_hdmi,snd_hda_codec_idt,snd_hda_codec_generic,snd_hda_intel snd_hda_core 61440 5 snd_hda_codec_hdmi,snd_hda_codec_idt,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel snd_hwdep 16384 1 snd_hda_codec input_leds 16384 0 ...
现在,我很好奇许多模块的大小是否有任何特定原因16384
。
这些不是模块的大小,要获得这些模块的实际大小,您可以运行以下命令:
哪个输出(以字节为单位):
“16384”是该模块使用的内存大小,以字节为单位,等于“16KiB”。而且据我所知,这只是一个默认数字,也是可以使用的最小值,如果您仔细观察,您会发现没有大小小于 16384 的模块。
我猜这个最小值与
PTHREAD_STACK_MIN
运行有关:你会得到:
从这里:
阅读越来越多。