Linux驱动开发必看:详解神秘内核
2.8 查看源代码
内存启动始于执行arch/x86/boot/目录中的实模式汇编代码。查看arch/x86/kernel/setup_32.c文件可以看出保护模式的内核怎样获取实模式内核收集的信息。
第一条信息来自于init/main.c中的代码,深入挖掘init/calibrate.c可以对BogoMIPS校准理解得更清楚,而include/asm-your-arch/bugs.h则包含体系架构相关的检查。
内核中的时间服务由驻留于arch/your-arch/kernel/中的体系架构相关的部分和实现于kernel/timer.c中的通用部分组成。从include/linux/time*.h头文件中可以获取相关的定义。
jiffies定义于linux/jiffies.h文件中。HZ的值与处理器相关,可以从include/asm-your-arch/ param.h找到。
内存管理源代码存放在顶层mm/目录中。
表2-1给出了本章中主要的数据结构以及其在源代码树中定义的位置。表2-2则列出了本章中主要内核编程接口及其定义的位置。
表2-1 数据结构小结

表2-2 内核编程接口小结



0
第1页:启动过程第2页:BIOS-provided physical RAM map第3页:Kernel command line: ro root=/dev/hda1第4页:Calibrating delay...1197.46 BogoMIPS第5页:Checking HLT instruction第6页:Setting up standard PCI resources第7页:INIT: version 2.85 booting第8页:内核模式和用户模式第9页:长延时第10页:短延时第11页:实时钟&内核中的并发第12页:自旋锁和互斥体第13页:旧的信号量接口第14页:信号量接口案例第15页:原子操作第16页:调试&proc文件系统第17页:内存分配第18页:查看源代码
相关文章