Công nghệ lõi Linux nhìn từ việc Linux kernel module được nén lại ở đâu?

Có tùy chọn nén các Loadable Kernel Module (LKM) lại trong Linux kernel, mời bạn đọc bài tech này sẽ rõ.

Linux kernel module được nén kiểu gì khi biên dịch nhân Linux?

Tuy nhiên khi khảo sát trên dòng Red Hat Enterprise Linux thì họ không chọn chức năng này khi biên dịch Linux kernel.

# grep CONFIG_MODULE_COMPRESS /boot/config-`uname -r`
CONFIG_MODULE_COMPRESS_NONE=y
# CONFIG_MODULE_COMPRESS_GZIP is not set
# CONFIG_MODULE_COMPRESS_XZ is not set
# CONFIG_MODULE_COMPRESS_ZSTD is not set

Khi xem thông tin về Linux kernel module được biên dịch ở dạng file rời bằng lệnh modinfo thì thật bất ngờ là chúng bị nén lại.

nvme-core là module trong Linux kernel để nhận biết và chạy được các đĩa cứng SSD chuẩn NVMe được nén lại bằng xz.

# modinfo nvme_core
filename:       /lib/modules/5.14.0-362.8.1.el9_3.x86_64/kernel/drivers/nvme/host/nvme-core.ko.xz
version:        1.0
license:        GPL
rhelversion:    9.3
srcversion:     6505E7EFBF8157201A2E5C7
depends:        nvme-common,t10-pi
retpoline:      Y
intree:         Y
name:           nvme_core
vermagic:       5.14.0-362.8.1.el9_3.x86_64 SMP preempt mod_unload modversions 
sig_id:         PKCS#7
signer:         AlmaLinux kernel signing key
sig_key:        34:2E:71:51:24:9F:6A:BA:45:DD:5A:37:FE:4C:EF:C2:69:14:D3:C4
sig_hashalgo:   sha256
signature:      78:4C:24:82:C6:00:FF:66:92:B3:DA:81:E4:AC:80:00:DC:97:EB:40:

parm:           multipath:turn on native support for multiple controllers per subsystem (bool)
parm:           iopolicy:Default multipath I/O policy; 'numa' (default) or 'round-robin'
parm:           admin_timeout:timeout in seconds for admin commands (uint)
parm:           io_timeout:timeout in seconds for I/O (uint)
parm:           shutdown_timeout:timeout in seconds for controller shutdown (byte)
parm:           max_retries:max number of retries a command may have (byte)
parm:           default_ps_max_latency_us:max power saving latency for new devices; use PM QOS to change per device (ulong)
parm:           force_apst:allow APST for newly enumerated devices even if quirked off (bool)
parm:           apst_primary_timeout_ms:primary APST timeout in ms (ulong)
parm:           apst_secondary_timeout_ms:secondary APST timeout in ms (ulong)
parm:           apst_primary_latency_tol_us:primary APST latency tolerance in us (ulong)
parm:           apst_secondary_latency_tol_us:secondary APST latency tolerance in us (ulong)

Tương tự 1 Linux kernel module được nhiều người biết là pcspkr thường phát ra tiếng bíp khi chúng ta gõ lệnh trên terminal cũng bị nén lại ở dạng xz.

# modinfo pcspkr
filename:       /lib/modules/5.14.0-362.8.1.el9_3.x86_64/kernel/drivers/input/misc/pcspkr.ko.xz
alias:          platform:pcspkr
license:        GPL
description:    PC Speaker beeper driver
author:         Vojtech Pavlik <vojtech@ucw.cz>
rhelversion:    9.3
srcversion:     442716AFCF70201AC875ABE
depends:        
retpoline:      Y
intree:         Y
name:           pcspkr
vermagic:       5.14.0-362.8.1.el9_3.x86_64 SMP preempt mod_unload modversions 
sig_id:         PKCS#7
signer:         AlmaLinux kernel signing key
sig_key:        34:2E:71:51:24:9F:6A:BA:45:DD:5A:37:FE:4C:EF:C2:69:14:D3:C4
sig_hashalgo:   sha256
signature:      8D:D4:85:72:CF:13:45:AE:9E:78:9B:2F:65:4F:F7:3D:64:10:99:ED: