赵炯博士的《Linux内核完全剖析》是基于linux-0.11的,书中是在red hat 9上编译kernel。
自己尝试编译linux-0.12,起来后挂掉了, 分析下原因:
找到原因了:
自己编的0.12版本第一次fork后,任务1调用init(),写堆栈异常,进page_fault:
感悟:
解决这个问题花费了大量的时间和精力,记得刚毕业进UT,部门培训的时候,老员工说过有时候设备出问题了,
用debug版本是OK的,但是release版本就出错,就要查看是否与编译器优化有关。
当时听了没啥感觉,现在回想起来真是感悟颇深啊。