Я работаю sudo lsmod
команда на моем LTS Ubuntu 16.04 и я получаю вывод, раздел которого показывают ниже.
Module Size Used by 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 bridge 114688 0 stp 16384 1 bridge llc 16384 2 stp,bridge 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 ctr 16384 2 ccm 20480 2 binfmt_misc 20480 1 gpio_ich 16384 0 dell_wmi 16384 0 sparse_keymap 16384 1 dell_wmi dell_rbtn 16384 0 dell_laptop 24576 0 dcdbas 16384 1 dell_laptop dell_smm_hwmon 16384 0 nvidia 10375168 52 coretemp 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
.
Это не размер модулей, для получения реального размера этих модулей, как которые можно выполнить что-то:
lsmod | grep 16384 | cut -f1 -d ' ' | xargs modinfo | grep filename |\
grep -o '/.*' | xargs stat -c "%s - %n"
, Который выводы (в байтах):
...
19086 - '/lib/modules/4.4.0-78-generic/kernel/sound/core/seq/snd-seq-midi.ko'
21470 - '/lib/modules/4.4.0-78-generic/kernel/sound/core/snd-hwdep.ko'
15798 - '/lib/modules/4.4.0-78-generic/kernel/sound/core/seq/snd-seq-dev
...
Эти "16384" размер памяти, используемой тем модулем в байтах, который равен "16 кибибитам". И поскольку я знаю, что это - просто число по умолчанию и также минимум, который может использоваться, если Вы смотрите тщательно, Вы видите, что нет никакого модуля с размером меньше, чем 16 384.
я предполагаю, что этот минимум связан с PTHREAD_STACK_MIN
, выполнен:
getconf PTHREAD_STACK_MIN
Вы доберетесь:
16384
От здесь :
атрибут размера стека определяет минимальный размер (в байтах), который будет выделен для потоков, созданных с помощью attr объекта атрибутов потока.
читает больше и [еще 117] .