对操作系统内核的一个小困惑
ucos内核的源码还不到一万行,但是我感觉它就已经具有操作系统应该具有的功能了,像任务调度,内存管理,···,但是Linux的内核竟然有上千万行!!我以为即使增加些功能也不就大不了比ucos再多上几倍代码罢了,可是却足足多了上千倍!
Linux内核到底是为了满足什么需要才搞了这么庞大的代码呢???
------解决方案--------------------内存管理就有很大差别,具体我也不懂。呵呵,,
它的驱动什么的也分好多层,层层抽象,以支持更多硬件平台。
------解决方案--------------------支持的硬件平台多了,支持的系统调用多了,支持的驱动多了(usb 网口 键盘等),管理的硬件复杂程度很大,ucos那个时代的硬件设备比较少呗,系统资源也很少呗,进程调度更加多和复杂。尽管如此,linux内核模块的代码也只有几M,linux-XXXX/kernel/ 下的代码,而linux-xxxx/下有fs , driver(比较大),net。。。。。等等等等。
------解决方案--------------------为了支持越来越多的硬件
平台越来越多了。
------解决方案--------------------硬件驱动,要支持很多种硬件
文件系统,要支持很多种文件系统
……
类似的地方很多,如果你为某个特定的硬件环境定制linux内核,将不需要的代码都去掉,那剩下的应该也没多少了。