Biên dịch nhân Linux để làm gì?
Compile Linux kernel mất bao nhiêu thời gian?
Compile Linux kernel cho Rocky Linux 9 trên máy ảo VMware Workstation
Alpine Linux có Linux kernel config khác gì với Red Hat Enterprise Linux – Ubuntu – Debian?
Loadable kernel module hay Linux kernel module built-in
extract-vmlinux lấy cảm hứng từ extract-ikconfig.
extract-ikconfig lấy ra file cấu hình .config của Linux kernel được nhét vào trong file Linux kernel là vmlinuz.
extract-ikconfig viết bằng shell script nên nếu bạn muốn học lập trình bash shell thực chiến hay học Linux chuyên sâu, thực chiến thì bạn cần đọc hiểu 100% code của extract-ikconfig.
Nếu bạn đã đọc hiểu và thực hành về extract-vmlinux thì extract-ikconfig cũng rứa.
Giải mã 100% code extract-vmlinux của Linux Kernel
Xài extract-ikconfig rất dễ chỉ với 1 câu lệnh như hình dưới
Nếu chỉ xài extract-ikconfig bạn sẽ không có ưu thế gì so với người khác vì ai cũng xài được, chỉ có học lập trình bash shell giúp bạn đọc hiểu 100% code extract-ikconfig rồi nấu nướng thêm khi cần mới giúp bạn có ưu thế vì không phải ai cũng làm được chuyện này.
kernel='https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/scripts/extract-ikconfig'
curl -Os $kernel
bash ./extract-ikconfig vmlinuz-6.6.7 > kernel-config.txt
head -20 kernel-config.txt
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 6.6.7 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=110400
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=23800
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=23800
CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
CONFIG_TOOLS_SUPPORT_RELR=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
file vmlinuz-6.6.7 | tr ',' '\n'
vmlinuz-6.6.7: Linux kernel x86 boot executable bzImage
version 6.6.7 (root@linuxkernel) #1 SMP PREEMPT_DYNAMIC Thu Dec 21 10:02:51 UTC 2023
RO-rootFS
swap_dev 0X7
Normal VGA