Biên dịch Linux kernel ở dạng nén sẽ tạo ra file vmlinuz nằm ở /boot
Nói cách khác
Linux kernel ở dạng nén thường tên là vmlinuz.
vmlinuz được nén bằng zstd trên Ubuntu Server 22.04
grep CONFIG_KERNEL_ /boot/config-`uname -r`
# CONFIG_KERNEL_GZIP is not set
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
CONFIG_KERNEL_ZSTD=y
vmlinuz được nén bằng xz trên Debian 12 Bookworm
grep CONFIG_KERNEL /boot/config-`uname -r`
# CONFIG_KERNEL_GZIP is not set
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
CONFIG_KERNEL_XZ=y
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_ZSTD is not set
vmlinuz được nén bằng gzip trên AlmaLinux 9
grep CONFIG_KERNEL /boot/config-`uname -r`
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_ZSTD is not set
Sau khi được giải nén Linux kernel thường được gọi là vmlinux
Linux kernel được giải nén bằng công cụ extract-linux viết bằng bash shell.
vmlinux có định dạng ELF chạy được (Executable file)
./extract-vmlinux /boot/vmlinuz-`uname -r` > vmlinux-`uname -r`
readelf -h vmlinux-`uname -r`
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x1000000
Start of program headers: 64 (bytes into file)
Start of section headers: 73400752 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 5
Size of section headers: 64 (bytes)
Number of section headers: 39
Section header string table index: 38
Như bạn đã thấy xài extract-vmlinux rất dễ vì vậy nếu chỉ xài lệnh Linux bạn sẽ không có ưu thế gì so với người khác.
Hãy học lập trình bash shell thực chiến để hiểu rõ 100% code của extract-vmlinux.
Chỉ có học lập trình thực chiến bạn mới tăng kiến thức lập trình và kĩ năng lập trình để làm ra sản phẩm công nghệ thông tin.
Như mọi khi chúng tôi luôn có bài tập lập trình thực tế, lập trình thực chiến cho các bạn.