学了一段时间的操作系统源代码,自己写些感受。
操作系统不是想象的那样深不可测,按照系统的启动过程是可以理解的。所以有时候有人认为Linus不是像你想象的那样伟大是有道理的,感觉Stallman,Kernighan、Ritchie、Gosling等比他NB点。
操作系统是按照CPU的指令执行的,我们写操作系统是对计算机体系结构和指令结构按照图灵机的理论进行运行。
怎样将运算结果进行存储和进程调度是操作系统的2个核心问题。其它的问题都借助此实现的。
CPU的指令是我们进行CPU运输的途径,使用C和汇编编码都是要转换为机器指令的。
操作系统编写不能使用纯C是因为C不能提供对应的CPU指令代码。
即使使用C编写,也和编译器有关。特别是传参的规定。
读源代码关注数据结构是个不错的方法,这些数据结构描述了数据的组织。
数据结构和算法是操作系统的基石。
以前不明白内核的运作心里总是纠结,操作系统的书是明白就是不知道怎么实现的,看了代码基本明白了,感觉内核也不是计算机的最底层,下面还有CPU指令和设计。这个可以参考我的以前的博客有关于CPU设计的使用VHDL描述的。即使明白了CPU的基本设计下面也有逻辑门等元器件。一直不停的往下追索无止境了。
我的感觉就是其实我们理解操作系统的理论一般使用是够了的。管太多了也太累了,时间成本也不一定划得来。不过学习了后有个理性的认识对编写好的程序稍有帮助。
最后的感悟,其实就是2个字:逻辑!
从中推出其实编程语言无所谓好坏,哪个适合最关键。因为说白了,大家都是逻辑的组成。