以下資料參考 Linux核心
並加上自己系統的資料
核心原始碼的系統
位置:
Linux
Ubuntu
/usr/src/linux
/usr/src/linux-headers-2.6.22-14/
(看來ubuntu並沒有在這邊有source code)
arch 該目錄下放著所有的與體系結構有關的核心程式碼 ----------------------------------- ls /usr/src/linux-headers-2.6.22-14 ----------------------------------- arch Documentation include Kbuild Makefile scripts usr block drivers init kernel mm security crypto fs ipc lib net sound
ls /usr/src/linux-headers-2.6.22-14/arch
alpha avr32 frv ia64 m68knommu powerpc sh sparc64 x86_64
arm blackfin h8300 m32r mips ppc sh64 um xtensa
arm26 cris i386 m68k parisc s390 sparc v850
ls /usr/src/linux-headers-2.6.22.14/arch/i386
boot Kconfig.debug mach-es7000 Makefile oprofile
crypto kernel mach-generic Makefile.cpu pci
Kconfig lib mach-visws math-emu power
Kconfig.cpu mach-default mach-voyager mm
ls /usr/src/linux-headers-2.6.22.14/arch/arm
boot mach-davinci mach-ixp23xx mach-realview Makefile
common mach-ebsa110 mach-ixp4xx mach-rpc mm
Kconfig mach-ep93xx mach-ks8695 mach-s3c2400 nwfpe
Kconfig.debug mach-footbridge mach-l7200 mach-s3c2410 oprofile
Kconfig-nommu mach-h720x mach-lh7a40x mach-s3c2412 plat-iop
kernel mach-imx mach-netx mach-s3c2440 plat-omap
lib mach-integrator mach-ns9xxx mach-s3c2442 plat-s3c24xx
mach-aaec2000 mach-iop13xx mach-omap1 mach-s3c2443 tools
mach-at91 mach-iop32x mach-omap2 mach-sa1100 vfp
mach-clps711x mach-iop33x mach-pnx4008 mach-shark
mach-clps7500 mach-ixp2000 mach-pxa mach-versatile
include 該目錄下放著系統構建所需的大多數include檔案。
init 該目錄中是核心的初始化程式碼。建議讀者閱讀核心程式碼從這開始。 ls /usr/src/linux-headers-2.6.22-14/init Kconfig Makefile mm 該目錄中含有所有的記憶體管理程式碼。 drivers 所有的的設備驅動程式的目錄。
ls /usr/src/linux-headers-2.6.22-14/srivers
acorn char firewire Kconfig misc ps3 tc
acpi clocksource firmware kvm mmc rapidio telephony
amba connector hid leds mtd rtc usb
ata cpufreq hwmon macintosh net s390 video
atm crypto i2c Makefile nubus sbus w1
auxdisplay dio ide mca parisc scsi zorro
base dma ieee1394 md parport serial
block edac infiniband media pci sh
bluetooth eisa input message pcmcia sn
cdrom fc4 isdn mfd pnp spi
ipc 該目錄含有核心的程序間通信程式碼。 fs 檔案系統程式碼。 ls /usr/src/linux-headers-26.22-14/fs 9p coda ext2 hostfs Kconfig nfsd reiserfs adfs configfs ext3 hpfs Kconfig.binfmt nls romfs affs cramfs ext4 hppfs lockd ntfs smbfs afs debugfs fat hugetlbfs Makefile ocfs2 sysfs autofs devpts freevxfs isofs minix openpromfs sysv autofs4 dlm fuse jbd msdos partitions udf befs ecryptfs gfs2 jbd2 ncpfs proc ufs bfs efs hfs jffs2 nfs qnx4 vfat cifs exportfs hfsplus jfs nfs_common ramfs xfs kernel 主要的核心程式碼。與硬體相關的部份在arch/*/kernel中。 net 關於網路的程式碼。 ls /usr/src/linux-headers-26.22-14/net 802 bridge ieee80211 Kconfig netfilter rose unix 8021q core ipv4 key netlabel rxrpc wanrouter appletalk dccp ipv6 lapb netlink sched wireless atm decnet ipx llc netrom sctp x25 ax25 econet irda mac80211 packet sunrpc xfrm bluetooth ethernet iucv Makefile rfkill tipc
lib 該目錄含有核心的函式庫程式碼。與硬體相關的部份在arch/*/lib中。 根據作者的建議 可以先從系統初始化的部份開始閱讀 => 記憶體管理 => 核心 ...
系統初啟和初始化
對於基於Intel的系統,當loadlin.exe或LILO將核心裝載進入記憶體中並將控制交給核心時,
核心進入開始階段。請閱讀 arch/i386/kernel/head.S關於上述過程。Head.S做一些與體系結構
相關的設置工作,然後跳轉到init/main.c中的main()函數
沒有留言:
張貼留言