「源码分享」基于GF,源码爱好者

linux内核源码大而全,一个人,即使再聪明、再有精力,也不可能完全看完、看懂所有的linux内核源码 。linux0.11的内核源码,结合下面这本书,我花了大概一个寒假(1个半月),看了一遍 。linux内核代码涉及c语言、硬件组成原理、操作系统、数据结构和算法等,这些基础知道你都具备了吗?如果没有具备,即使看完linux内核源码,你也看不懂liux内核的精髓 。
需要多久才能看完linux内核源码?

「源码分享」基于GF,源码爱好者


linux 0.11的内核源码,结合下面这本书,我花了大概一个寒假(1个半月),看了一遍 。然而,现在的内核已经膨胀的不成样子了,以还不算最新的linux-4.9.229为例:整个内核源码一共约 801M:驱动代码占了大概一半,大约407M:体系相关的代码大约164M:网路子系统相关的代码29M:文件系统相关的代码38M:linux内核核心代码大约7.7M:但是就这7.7M,其实你要完全看完看懂也不容易 。
linux内核代码涉及c语言、硬件组成原理、操作系统、数据结构和算法等,这些基础知道你都具备了吗?如果没有具备,即使看完linux内核源码,你也看不懂liux内核的精髓 。linux内核源码大而全,一个人,即使再聪明、再有精力,也不可能完全看完、看懂所有的linux内核源码 。你得选择一个主线进行深入研究,这些主线可以是:linux内核启动过程研究linux驱动架构的学习和研究linux网络子系统的研究linux内存管理机制的研究linux调度器的学习和研究linux进程管理的学习和研究linux虚拟机制(kvm)的学习和研究linux内核实时化技术的研究沿着某一个主线,深入进去,在研究清楚这个主线的同时,向其他的主线扩展、渗透和学习 。
谁来说说华为鸿蒙系统与安卓、苹果、window系统有什么区别?
「源码分享」基于GF,源码爱好者


所有的现代操作系统,都起源于贝尔实验室的Unix操作系统 。换句话说,Unix操作系统是所有操作系统的祖宗 。但是话虽如此,但各大操作系统与Unix系统的渊源还是不太一样的 。MacOS,也就是苹果电脑所预装的操作系统,其内核就是直接采用的Unix系统的BSD分支 。换句话说,MacOS是Unix操作系统的嫡子 。
而题主所说的苹果系统,应该是特指iPhone等移动设备搭载的iOS操作系统 。iOS系统是基于MacOS而来的,换句话说,iOS系统和Unix系统之间的关系是传承有序的 。Linux,由于早年Unix系统的电脑非常昂贵,并且各种不兼容等等问题非常的多 。因此,Linus Torvalds决定完全参考Unix思想,但是绝不抄袭Unix系统任何代码,开发出来了完全开源的操作系统——Linux 。
虽然Linux并非Unix演变而来,但是因为其完全借鉴了Unix的思想,所以两者在应用层面的差异性并没有很大 。在很多时候,人们将其统称为类Unix系统 。不过Linux系统由于其开源的特性,导致广为流传,现在的发展也是要比Unix还要好 。算是Unix的义子吧 。Windows操作系统,出自微软 。在比尔盖茨创办微软之处,也有考虑过和苹果公司一样,基于Unix系统开发视窗系统 。
但是后来考虑Unix系统的版权归属十分凌乱,为了自己的商业利益考量,决定参考Unix系统的树形结构的思想,打造了自成体系的MSDOS系统 。当然,现在已经演变为Windows系统了 。微软仅仅是借鉴了Unix的树形接口的思想,但是在其他方面则大胆创新,自成体系 。由于其发展路径诡异(一开始就为PC而生),导致其适应性不广 。
在PC时代自然呼风唤雨,过了这个时代,下坡路是注定的 。算是Unix的俗家弟子,自创门派后脱离师徒关系吧 。安卓操作系统是谷歌公司基于Linux系统开发的一套移动端专用的操作系统 。但是其并没有采用Linux标准发行版(Ubuntu\RedHat\Deepin等)通行的GNU\Linux的方式开发,而是对Linux系统进行了相当的裁剪和专有优化,在安卓系统上运行的软件都是基于虚拟机进行运行 。

推荐阅读