build linux0.12-编译器优化引发的问题


赵炯博士的《Linux内核完全剖析》是基于linux-0.11的,书中是在red hat 9上编译kernel。

自己尝试编译linux-0.12,起来后挂掉了, 分析下原因:

pic

找到原因了:

自己编的0.12版本第一次fork后,任务1调用init(),写堆栈异常,进page_fault:

pic



感悟:

解决这个问题花费了大量的时间和精力,记得刚毕业进UT,部门培训的时候,老员工说过有时候设备出问题了,

用debug版本是OK的,但是release版本就出错,就要查看是否与编译器优化有关。

当时听了没啥感觉,现在回想起来真是感悟颇深啊。


上篇: linux-0.11 内存研究 (三) 下篇: 将Android安装到PC并设置双系统