1.使用GCC的O0优化选项来编译内核有什么优势?
O0表示编译时不做优化,正因为不会优化,因此在线debug时不会出现指针乱跳的情况,可以精准定位到问题点,帮助分析问题。缺点也很直接,未经过优化的代码,所占用的空间会变大,且运行效率大概率不是最优的。
2.什么是加载地址、运行地址和链接地址?
加载地址:存储代码的物理地址
运行地址:程序运行时的地址
链接地址:在编译链接时指定的地址,编程人员设想将来程序要运行的地址
3.什么是位置无关的汇编指令?什么是位置有关的汇编指令?
位置无关的汇编指令,即这部分汇编指令的执行与内存地址无关;无论链接地址和链接地址是否相等,这部分指令都能正常运行。
位置有关的汇编指令,即这部分汇编指令的执行是与内存地址有关的,和当前PC值无关。