|
相信很多开始学习linux内核的兄弟们都符合这样条路线bootsect.S->setup.S->head.S->...,而且多数人研究的是'Intel x86'平台,其实这么做还是有很大难度的,很容易让人产生倦怠。但我还是倾向于采用'自底向上'(bottom-up)的方法,自底向上研究的过程就好比跑1000米,到了第一圈结束时你会有一种特别累要退出的感觉,但如果这时你坚持住,往后你就会愈来愈轻松自如。Linux内核是一个'超级庞大'的工程,在初始研究阶段你可能会遇到一些足以让你放弃的困难,战胜它们,你就会看到前面的路是那么平坦宽阔。我自己就是最近开始研究linux内核的。 x86上的资料最多,而且x86应该是最复杂的,因为有个默认的segment mechanism。我在研究阶段看了大量的书籍包括“OReilly Understanding the Linux Kernel 3rd Edition”、“Linux内核源代码情景分析(上)”等,但是我觉得对研究x86下内核引导最有帮助的却是另外一本书“Intel Architecture Software Developer's Manual, Volume 3, System Programming”。有这样一种感觉虽然像Understanding the Linux Kernel 这样的书已经很好了,但是还是有很多代码中的疑惑在书中找不到合理的答案,而Vol3就是针对System programmer 写的,特别是对CPU工作模型、内存模型以及mix 16-bit & 32-bit 的讲解相当的详细透彻,其中的很多图简直一目了然,很多Understanding the Linux Kernel 我想也是参照Vol3的。大家不妨试试。 |
|