问题: 听了太多次大师的训诫:UNIX是如何如何的简约,如何如何的精致。以至于,几乎都快忘了这个通俗的道理:任何事物都会有它的生命期。我想,UNIX类操作系统应该也是一样。一个事物的腐烂,应该是从其最脆弱的地方开始吧?!那么,现代UNIX都有什么缺点呢?单从内核技术角度上有哪些呢?我想自己没有体会到显著缺点的最大原因是身在此山中且道行不深。
网友答复:...另外,现代OS对从嵌入式、移动、大型多处理器服务器到云集群的适应能力有不足。这些差异很大的设备,要涉及到调度和内存分配算法策略需求不同,但是现有OS内核只能有一个通用的调度算法和内存分配算法。Linux的调度和内存分配只好侧重服务器了。内核与应用软件分成了,Mach/Plan再搞了微内核,以上需求再对内核提出了新的需求。
我的答复:我这里不得不发表一下我的拙见了,迄今为止,有哪个内核能像linux这样经得住动态裁剪的,不是我偏心,我真的觉得linux十分不错,从大型机,服务器,pc,netbook,手机,猫等等,无一没有linux的席位,这本身就说明 linux很强。unix呢?都知道linux是类unix系统,但是这种“类”体现在接口上而不是内核设计上,我们可以看到的unix,比如 solaris,aix,hp-ux以及bsd等等,差不多都是大玩意,也许是商业原因使得unix“不屑于”往更广的方面发展,这个不属于我们技术圈的事,也就不多谈。但是linux强大的背后却是它模块化,细粒度,开放式的设计理念,模块化可以根据需求动态增删模块以及裁剪内核本身,细粒度使得上述工作更加简单,另外细粒度和模块化使得内核机制之间的耦合度降低,这样可以增加其设计灵敏度,开放式开发使得它能够瞬间捕捉到需求或者bug,然后独立地进行开发修改而不会影响别的模块,不会牵一发而动全身。这其中最最重要的就是它的开发模式是开放式的,互不相识的人们一起开发了这个内核,这个模式决定了 linux模块间必然是低耦合的,这就是它灵活的原因,灵活意味着它可以很方便的适应不同的领域的不同的需求。unix也好,windows也罢,Mac OS也好,它们就是庞大的航母或者巡洋舰,而linux呢,啥也不说,微型核潜艇吧。现在不是很多人在整什么软件工程或者OO设计吗?还看那么多案例,看看linux就可以了,看看它的开发模式,然后就决定了这一切。很多人都认为linux只适合在服务器领域晃荡,别的不说,且不管它在桌面领域输的多惨,仅凭它敢于进军桌面市场这本身不仅仅是靠勇气就可以的,还有实力,linux的架构证明它有这个实力,输的是商业策略而不是技术,再者就是嵌入式市场,windows ce的架构和NT是两码事,但是linux内核却是始终如一的,unix呢,看过BSD或者Solaris内核或者用过AIX的都会知道,它里面动不动就是虚拟化容器什么的,内存管理一向很大气,不拘小节,可是这种大气用到嵌入式领域就成了苛刻,再者嵌入式领域一般只有极少的任务,容器根本用不着。
从这个讨论可以看出,unix是有缺点,可是linux继承了它的优点,这里的意义就是,linux继承了unix所有值得继承的东西,它的开发模式决定了它只继承好的东西而抛弃不好的,隐藏再深的弊端在众人眼里就成了显然。unix的基因在linux这里延续,父亲死了儿子继承父业也是不错的。unix绝大部分的意义来自于那个时代现在那个时代已经过去,unix的那些意义也就失去了本真,进而从unix中提取的更有意义的东西被linux继承,这就是一切的一切。
本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1273308