linux 0.11 内核学习路线

声明:本文为转载,原文找不到了

当初一开始拿到赵炯的书时是兴奋的,代码几乎每行都有注释,心想这不手到擒来的吗。但是代码看到十几行就看不下去了,没错就是十几行,操作系统的代码跟应用层的代码完全是两回事,注释再多也不明白什么意思。后来才知道需要 实模式和32位保护模式 的基础,这个是操作系统的核心知识。
这里总结一下需要的基础知识。按学习顺序:
《汇编语言_第2版》,王爽
《x86汇编-从实模式到保护模式》,余洁。操作系统知识的核心
《C语言XXX》,就不多介绍了,网上一堆
《Orange’S 一个操作系统的实现》,于渊。傻瓜式教程,从0开发一个简易操作系统
《AT&T汇编》,这个内容比较少,只要注意一下语法就行了。linux内核到处用到
学完以上所有,再来看linux内核非常轻松。最后就是下面这本:
《Linux内核0.11完全注释》,赵炯

有几个地方需要注意:

  1. 网上总有人说内核中汇编用到不多,不用学。这是个极大的误区,在整个内核代码中,汇编代码确实不是很多,但地位极度重要,而且穿插用在很多核心模块,并不只是启动那块才用到汇编。比如说进程切换,从高层到底层的层层流程下来,最终就是汇编的切换进程代码;还有系统调用,也是最终调用的是80中断。例子太多。而且,汇编讲的不只是汇编代码,还有计算机底层的运行机制,这对于想学操作系统的你来说,简直就是必学课程。比如说计算机刚启动时,内存是什么情况,那些中断代码放在哪里,那操作系统就不能动这里的代码等等。

  2. 《x86汇编-从实模式到保护模式》这本书不是讲汇编的,实际上是讲操作系统的书,直接从实模式开始看,实模式是讲以前的操作系统架构,然后就是现代操作系统架构32位保护模式。这本要是不看,就不用往下进行了。

  3. 于渊的那本书只看到上篇就好了,因为他的下篇是按照Minix的微内核来实现的,linux是宏内核,两者在代码实现上有很大的不同。但他上篇的内容很有价值,因为讲解得非常详细傻子都能看懂,而且基本上每章内容都和Linux内核相似。毕竟操作系统的底层基本知识都差不多。看完这本相当于有人带你学习了一遍简易版的linux内核。

  4. AT&T汇编不是讲汇编知识的,而是讲另一种汇编语法的,所以内容比较少,linux内核里大量用到这种语法格式的汇编。分析linux内核用到的时候再看也可以,我就是这样。

  5. 最后提一点非常非常重要的,就是每看一本书一定要做笔记。因为操作系统包含大量的知识,用笔记记录每个知识点的核心,能很方便下次翻阅,因为你必定会回头来翻阅的,你不可能记住每个知识点。如果你没有这种习惯,到时候知识一多就会引发混乱,然后导致放弃。

你可能感兴趣的:(操作系统,linux,学习,运维)