好好看!
预编译:处理预编译指令,如#if等、将所有的宏展开、处理#include指令、删除所有注释、添加行号和文件名标记、保留所有#pragma编译器指令
编译:词法分析、语法分析、语义分析、代码优化
汇编:指令翻译成二进制
链接:合并段和符号表、符号解析、分配地址和空间、符号重定位
用户空间两个段存放数据: .data .bss
.data段 : 放已初始化且初始化不为0的数据
.bss段: 未初始化或初始化为0的数据
symtab符号表
强符号:全局已初始化的符号
弱符号:全局未初始化的符号
强弱符号的规则:
1.两个强符号 重定位错误
2.一强一弱 选强符号
3.两个弱符号 选数据较大的
强符号放*COM* 弱符号放*UND*
符号解析:在外部符号应用的地方找到符号定义的地方
内核部分: DMA 16M 直接内存访问
NORMAL 892M 内核映射结构体
HIGHMEN 116M 高端内存