看一個linux核心子產品之前,首先要做的就是看Makefile,然後試看init和exit函數,我看ext4的代碼看的第一個檔案也是Makefile(除了核心文檔),接下來我們看一看2.6.19核心的ext4的Makefile吧。
#
# ext4子產品的Makefile.
#
obj-$(CONFIG_EXT4DEV_FS) += ext4dev.o
ext4dev-y := balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o \
ioctl.o namei.o super.o symlink.o hash.o resize.o extents.o
ext4dev-$(CONFIG_EXT4DEV_FS_XATTR) += xattr.o xattr_user.o xattr_trusted.o
ext4dev-$(CONFIG_EXT4DEV_FS_POSIX_ACL) += acl.o
ext4dev-$(CONFIG_EXT4DEV_FS_SECURITY) += xattr_security.o
根據Makefile裡的依賴關系我們可以知道,隻要在核心選項裡配置了CONFIG_EXT4DEV_FS,balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o ioctl.o namei.o super.o symlink.o hash.o resize.o extents.o等檔案是一定會被編譯進核心的,屬于是ext4的基礎代碼部分。配置了CONFIG_EXT4DEV_FS_XATTR就等于說是添加了擴充屬性部分的代碼,CONFIG_EXT4DEV_FS_POSIX_ACL選項是表示核心是不是支援控制權限清單功能,CONFIG_EXT4DEV_FS_SECURITY選項表示核心是否支援安全檢查部分的代碼。