单核操作系统和微核操作系统有什么区别?各有什么优缺点?
单核操作系统
一般指带有单核处理器的操作系统,用于电脑、手机等早期电子产品。随着近年来多核处理器的逐渐普及,单核操作系统逐渐被双核或多核的高速处理能力所取代。从单核处理器到多核处理器的发展是处理器发展史上的一次重大变革。
所谓“微核”,就是操作系统只有一小部分以最高优先级运行,其他功能都是基于。
如果用人类社会做比喻,CPU代表执行,这是一个抽象的概念;操作系统是各级政府,操作系统的内核是最高决策者,以前是皇帝和宰相(现在是总统)以及他们周围的一个团队。
在古代,CPU是没有特权级别的(这里只分析x86系列,原来的8086/8088只有一个实模,没有特权级别),就像在古代的尧舜禹时代一样:据说连大禹都要亲自动手,因为天天泥到水里来,以至于小腿上都没长毛。
后来聪明人发现这个系统存在效率问题。韩非的文章《骊山农民侵岸》中有一段描述,说在舜耕种的地方:骊山,在骊山耕种的人侵占了别人的农田,舜就去那里耕种,一年后,农田不再被破坏和侵占。(历山农民侵岸,去耕,期好。),然后在河里钓鱼的人起了争执,舜就去那里钓鱼。一年后,年长的人被允许占据最有利的水域。东夷制造的人造陶器又差又不结实,舜就去那里制陶。一年后,陶器非常坚固。这样的民间纠纷一出现,舜就以身作则纠正民风。韩非对此提出了自己的看法,认为舜无法用有限的生命纠正世间无限的错误。这时,他必须通过特权来达到目的:即使是不如舜那样英明的君主,也能轻而易举地执行他的死刑。
CPU也是如此。80286年,保护模式出现,保护模式真正开始实用。它和80386一起出现,一直沿用至今。在保护模式的设计下,CPU中有一个特权类,也就是我们所说的Ring0级,所有在Ring0级执行的指令都是有特权的;我们平时的程序都运行在Ring3级别(Ring1和Ring2级别不用),也叫用户模式。这样操作系统的代码运行在Ring0级别(还有一些病毒),通用程序运行在Ring3级别。一般的程序都可以调用操作系统的功能,就像我们可以去政府申冤一样,都是由各级政府的行政和民政部门来处理,但是处理过程一般都是给我们的。
在保护模式下,操作系统有两种设计思想:单核模式和微内核模式。
Monolithic kernel的思想是大量的政府部门都在特权级工作,这样的好处是政府内部效率比较高,比如我们用的windows系列,从win95到vista。当然,windows也表示,他们已经将大量的操作系统服务归入用户级别,或者让用户根据自己的条件决定是否加载:我们可以通过控制面板配置很多服务,比如SNMP(简单网络管理协议)和微软自己的防火墙。Unix/linux也是一个单片内核系统。但是,因为一项发明是32位的科学操作系统(不像windows靠拙劣的DOS发了大财),人们甚至用Xwindows程序代替普通用户最常用的图形界面,效率不一定比windows低,因为SGI等图形工作站用的是UNIX。
微内核的思想是只将操作系统最基本的功能模块保留在特权级别。操作系统提供的大量服务都是以用户态运行的,原则是越简单越好,所以被称为“微内核”,现在多用于嵌入式设备。操作系统只提供存储空间管理、进程调度、进程间通信等与CPU硬件相关的系统调用。微核的想法很好,但一直被诟病效率不高,一直没有得到广泛应用。
简单来说,微核是对占据过多资源的臃肿机构不满,是惠民理念和政府小型化的产物;单核系统强调政府执行的效率,但也占用了更多的社会资源。
再比如:在微内核下运行程序有点像吃自助餐,而在monolithic kernel机制下的操作系统会提供日式餐饮的贴心服务。
哲学家告诉我们,矛盾是辩证统一的。就像RISC、CISC和中西医一样,最终的结果是融合而不是解体。未来的操作系统一定会吸收两者的优点,为我们使用电脑提供更完善的帮助。
据报道,汶川地震的几乎所有捐款都已纳入政府财政部,如何使用由政府决定。但大多数民间慈善机构因为资金问题无法运作,以至于纷纷撤离灾区。