linux目录架构解读
|-- Documentation 工程文档资料
|-- arch 系统体系架构依赖
|-- block 块设备结构
|-- crypto 加密,校验算法
|-- drivers 设备驱动
|-- firmware 平台固件模块
|-- fs 文件系统
|-- include 内核源码头文件
|-- init 内核初始化代码及第一应用父进程
|-- ipc 进程间信道
|-- kernel cpu核心代码实现
|-- lib 内核源码依赖库文件
|-- mm 内存管理单元
|-- net tcp/ip网络代码实现
|-- samples 事例
|-- scripts 配置初始化脚本
|-- security 安全相关机制
|-- sound 声卡设备结构实现
|-- tools 内核工具
|-- usr 用户空间代码
|-- virt 虚拟文件系统实现
|-- COPYING 版权说明文件
|-- CREDITS 开发人员荣誉列表
|-- Kbuild 内核构建帮助信息
|-- MAINTAINERS 内核维护者
|-- Makefile 内核工程依赖文件
|-- README 工程应用说明文件
`-- REPORTING-BUGS 工程更新与补丁报告
21 directories, 7 files
建议先充分理解源码根目录下的自说明文件“Readme“文件,然后顺次了解工程规则依赖文件Makefile;
通过项目描述文件的信息所得,进一步接触工程规则文件下的宏规则引用例如:
make help命令可以给我们提供大量入门信息,以便我们简单快捷的学习应用。
要求,make help命令的执行必须在内核源码根目录的第一层目录下去执行,否则无效。
以当前较新内核版本2.6.31.6为例,其信息如下:
pqwang@x32:~/linux-2.6.31.6$ make help
Cleaning targets:
clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files
distclean - mrproper + remove editor backup and patch files
Configuration targets:
config - Update current config utilising a line-oriented program
menuconfig - Update current config utilising a menu based program
xconfig - Update current config utilising a QT based front-end
gconfig - Update current config utilising a GTK based front-end
oldconfig - Update current config utilising a provided .config as base
silentoldconfig - Same as oldconfig, but quietly, additionally update deps
randconfig - New config with random answer to all options
defconfig - New config with default answer to all options
allmodconfig - New config selecting modules when possible
allyesconfig - New config where all options are accepted with yes
allnoconfig - New config where all options are answered with no
Other generic targets:
all - Build all targets marked with [*]
* vmlinux - Build the bare kernel
* modules - Build all modules
modules_install - Install all modules to INSTALL_MOD_PATH (default: /)
firmware_install- Install all firmware to INSTALL_FW_PATH
(default: $(INSTALL_MOD_PATH)/lib/firmware)
dir/ - Build all files in dir and below
dir/file.[ois] - Build specified target only
dir/file.ko - Build module including final link
modules_prepare - Set up for building external modules
tags/TAGS - Generate tags file for editors
cscope - Generate cscope index
kernelrelease - Output the release version string
kernelversion - Output the version stored in Makefile
headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH
(default: /home/pqwang/linux-2.6.31.6/usr)
Static analysers
checkstack - Generate a list of stack hogs
namespacecheck - Name space analysis on compiled kernel
versioncheck - Sanity check on version.h usage
includecheck - Check for duplicate included header files
export_report - List the usages of all exported symbols
headers_check - Sanity check on exported headers
headerdep - Detect inclusion cycles in headers
Kernel packaging:
rpm-pkg - Build both source and binary RPM kernel packages
binrpm-pkg - Build only the binary kernel package
deb-pkg - Build the kernel as an deb package
tar-pkg - Build the kernel as an uncompressed tarball
targz-pkg - Build the kernel as a gzip compressed tarball
tarbz2-pkg - Build the kernel as a bzip2 compressed tarball
Documentation targets:
Linux kernel internal documentation in different formats:
htmldocs - HTML
pdfdocs - PDF
psdocs - Postscript
xmldocs - XML DocBook
mandocs - man pages
installmandocs - install man pages generated by mandocs
cleandocs - clean all generated DocBook files
Architecture specific targets (arm):
* zImage - Compressed kernel image (arch/arm/boot/zImage)
Image - Uncompressed kernel image (arch/arm/boot/Image)
* xipImage - XIP kernel image, if configured (arch/arm/boot/xipImage)
uImage - U-Boot wrapped zImage
bootpImage - Combined zImage and initial RAM disk
(supply initrd image via make variable INITRD=)
install - Install uncompressed kernel
zinstall - Install compressed kernel
Install using (your) ~/bin/installkernel or
(distribution) /sbin/installkernel or
install to $(INSTALL_PATH) and run lilo
acs5k_defconfig - Build for acs5k
acs5k_tiny_defconfig - Build for acs5k_tiny
afeb9260_defconfig - Build for afeb9260
am200epdkit_defconfig - Build for am200epdkit
ams_delta_defconfig - Build for ams_delta
assabet_defconfig - Build for assabet
at91cap9adk_defconfig - Build for at91cap9adk
at91rm9200dk_defconfig - Build for at91rm9200dk
at91rm9200ek_defconfig - Build for at91rm9200ek
at91sam9260ek_defconfig - Build for at91sam9260ek
at91sam9261ek_defconfig - Build for at91sam9261ek
at91sam9263ek_defconfig - Build for at91sam9263ek
at91sam9g20ek_defconfig - Build for at91sam9g20ek
at91sam9rlek_defconfig - Build for at91sam9rlek
ateb9200_defconfig - Build for ateb9200
badge4_defconfig - Build for badge4
cam60_defconfig - Build for cam60
carmeva_defconfig - Build for carmeva
cerfcube_defconfig - Build for cerfcube
cm_x2xx_defconfig - Build for cm_x2xx
cm_x300_defconfig - Build for cm_x300
colibri_pxa270_defconfig - Build for colibri_pxa270
colibri_pxa300_defconfig - Build for colibri_pxa300
collie_defconfig - Build for collie
corgi_defconfig - Build for corgi
csb337_defconfig - Build for csb337
csb637_defconfig - Build for csb637
davinci_all_defconfig - Build for davinci_all
ebsa110_defconfig - Build for ebsa110
ecbat91_defconfig - Build for ecbat91
edb7211_defconfig - Build for edb7211
em_x270_defconfig - Build for em_x270
ep93xx_defconfig - Build for ep93xx
eseries_pxa_defconfig - Build for eseries_pxa
ezx_defconfig - Build for ezx
footbridge_defconfig - Build for footbridge
fortunet_defconfig - Build for fortunet
h3600_defconfig - Build for h3600
h5000_defconfig - Build for h5000
h7201_defconfig - Build for h7201
h7202_defconfig - Build for h7202
hackkit_defconfig - Build for hackkit
integrator_defconfig - Build for integrator
iop13xx_defconfig - Build for iop13xx
iop32x_defconfig - Build for iop32x
iop33x_defconfig - Build for iop33x
ixp2000_defconfig - Build for ixp2000
ixp23xx_defconfig - Build for ixp23xx
ixp4xx_defconfig - Build for ixp4xx
jornada720_defconfig - Build for jornada720
kafa_defconfig - Build for kafa
kb9202_defconfig - Build for kb9202
kirkwood_defconfig - Build for kirkwood
ks8695_defconfig - Build for ks8695
lart_defconfig - Build for lart
littleton_defconfig - Build for littleton
loki_defconfig - Build for loki
lpd270_defconfig - Build for lpd270
lpd7a400_defconfig - Build for lpd7a400
lpd7a404_defconfig - Build for lpd7a404
lubbock_defconfig - Build for lubbock
lusl7200_defconfig - Build for lusl7200
magician_defconfig - Build for magician
mainstone_defconfig - Build for mainstone
mini2440_defconfig - Build for mini2440
msm_defconfig - Build for msm
mv78xx0_defconfig - Build for mv78xx0
mx1ads_defconfig - Build for mx1ads
mx1_defconfig - Build for mx1
mx21_defconfig - Build for mx21
mx27_defconfig - Build for mx27
mx31pdk_defconfig - Build for mx31pdk
mx3_defconfig - Build for mx3
n770_defconfig - Build for n770
neocore926_defconfig - Build for neocore926
neponset_defconfig - Build for neponset
netwinder_defconfig - Build for netwinder
netx_defconfig - Build for netx
ns9xxx_defconfig - Build for ns9xxx
omap_2430sdp_defconfig - Build for omap_2430sdp
omap_3430sdp_defconfig - Build for omap_3430sdp
omap3_beagle_defconfig - Build for omap3_beagle
omap3_evm_defconfig - Build for omap3_evm
omap3_pandora_defconfig - Build for omap3_pandora
omap_4430sdp_defconfig - Build for omap_4430sdp
omap_apollon_2420_defconfig - Build for omap_apollon_2420
omap_generic_1510_defconfig - Build for omap_generic_1510
omap_generic_1610_defconfig - Build for omap_generic_1610
omap_generic_1710_defconfig - Build for omap_generic_1710
omap_generic_2420_defconfig - Build for omap_generic_2420
omap_h2_1610_defconfig - Build for omap_h2_1610
omap_h4_2420_defconfig - Build for omap_h4_2420
omap_innovator_1510_defconfig - Build for omap_innovator_1510
omap_innovator_1610_defconfig - Build for omap_innovator_1610
omap_ldp_defconfig - Build for omap_ldp
omap_osk_5912_defconfig - Build for omap_osk_5912
omap_perseus2_730_defconfig - Build for omap_perseus2_730
omap_zoom2_defconfig - Build for omap_zoom2
onearm_defconfig - Build for onearm
orion5x_defconfig - Build for orion5x
overo_defconfig - Build for overo
palmte_defconfig - Build for palmte
palmtt_defconfig - Build for palmtt
palmz71_defconfig - Build for palmz71
palmz72_defconfig - Build for palmz72
pcm027_defconfig - Build for pcm027
picotux200_defconfig - Build for picotux200
pleb_defconfig - Build for pleb
pnx4008_defconfig - Build for pnx4008
pxa168_defconfig - Build for pxa168
pxa255-idp_defconfig - Build for pxa255-idp
pxa910_defconfig - Build for pxa910
qil-a9260_defconfig - Build for qil-a9260
realview_defconfig - Build for realview
realview-smp_defconfig - Build for realview-smp
rpc_defconfig - Build for rpc
rx51_defconfig - Build for rx51
s3c2410_defconfig - Build for s3c2410
s3c6400_defconfig - Build for s3c6400
sam9_l9260_defconfig - Build for sam9_l9260
shannon_defconfig - Build for shannon
shark_defconfig - Build for shark
simpad_defconfig - Build for simpad
spitz_defconfig - Build for spitz
stmp378x_defconfig - Build for stmp378x
stmp37xx_defconfig - Build for stmp37xx
sx1_defconfig - Build for sx1
tct_hammer_defconfig - Build for tct_hammer
trizeps4_defconfig - Build for trizeps4
u300_defconfig - Build for u300
usb-a9260_defconfig - Build for usb-a9260
usb-a9263_defconfig - Build for usb-a9263
versatile_defconfig - Build for versatile
viper_defconfig - Build for viper
w90p910_defconfig - Build for w90p910
yl9200_defconfig - Build for yl9200
zylonite_defconfig - Build for zylonite
make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build
make V=2 [targets] 2 => give reason for rebuild of target
make O=dir [targets] Locate all output files in "dir", including .config
make C=1 [targets] Check all c source with $CHECK (sparse by default)
make C=2 [targets] Force check of all c source with $CHECK
Execute "make" or "make all" to build all targets marked with [*]
For further info see the ./README file
整理中……
阅读(1754) | 评论(0) | 转发(0) |