打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
*** (操作系统介绍详细)什么是微内核,什么是宏内核?这两者之间有何区别?

计算机操作系统按照体系可分为微内核和宏内核,目前是宏内核的天下,但是随着移动互联网业务的发展,尤其是5G 物联网时代的到来,在稳定性、实时性、小型化和轻量级方面有着天然优势的微内核,似乎有了崛起的机会。*


什么是操作系统

操作系统(OS)是计算机用户和计算机硬件之间的接口,每台计算机必须至少具有一个OS才能运行其他程序。操作系统是执行所有基本任务的软件,例如文件管理,内存管理,进程管理,处理输入和输出以及控制外围设备(例如磁盘驱动器和打印机)。一些流行的操作系统包括Linux操作系统、Windows操作系统、VMS、OS/400、AIX,现在随着移动终端的流行Android、IOS也十分流行。

操作系统的历史

  • l 操作系统最早于1950年代后期开发,用于管理磁带存储;

  • l 通用汽车研究实验室在1950年代初为其IBM 701实施了首个操作系统;

  • l 在1960年代中期,操作系统开始使用磁盘;

  • l 在1960年代后期,开发了Unix OS的第一个版本;

  • l 微软构建的第一个操作系统是DOS。它于1981年通过从西雅图公司购买86-DOS软件而构建;

  • l 当前流行的OS Windows于1985年首次出现,当时创建了GUI并与MS-DOS配对;

  • l 2003年10月,Andy Rubin的Android公司在加利福尼亚的帕洛阿尔托成立,研发出了Android系统;

  • l Apple于2007年6月29日推出了iOS,当时称为iPhone OS。

操作系统的功能

以下是操作系统的一些重要功能:

  • l 内存管理

  • l 处理器管理

  • l 设备管理

  • l 文件管理

  • l 安全

  • l 控制系统性能

  • l 职位会计

  • l 错误检测工具

  • l 其他软件与用户之间的协调

什么是内核?

内核是计算机操作系统的核心组件。内核执行的唯一工作是管理软件和硬件之间的通信。它使硬件和软件之间的通信成为可能,内核是操作系统的最内部部分。内核可以进一步分为两类,微内核和宏内核。

内核分为:宏内核与微内核!

20世纪70年代初诞生的UNIX系统可以说是那一时期最好的操作系统,随着计算机技术的快速发展。在UNIX系统功能变的越发强大的同时,内核代码量也在快速的膨胀,带来的弊端也随之出现,系统的可靠性、代码的可维护性和稳定性都存在着问题。

为了解决这些问题,业界开始反思UNIX系统设计。从重构UNIX代码和架构开始,人们尝试把UNIX内核提供的一些服务和功能放到内核外,把执行在特权级别的内核代码缩到最小,内核只提供基本的服务,而用户空间程序承担尽可能多的原来驻留在内核空间的功能。

这就诞生了第一代微内核Mach。由于第一代微内核性能太差,很快就被业界所遗忘,但是人们并没有停止对微内核的研究,随后推出的第二代、第三代微内核都得到了很好的发展。当然,与此同时作为宏内核的代表Linux和Windows系统也在快速的发展。

作为操作系统发展的两大分支——微内核和宏内核,他们有着截然不同的设计理念。宏内核将所有的系统功能(包括内存管理、文件系统、设备驱动等)都在内核里实现,而微内核则只在内核中保留了必须在内核态运行的功能,而把其他功能都移至用户态以服务线程的方式来实现。

这种设计方法使得微内核本身的体积大大减小。同时,运行于微内核之上的用户态的系统服务由于处于各自的地址空间之内,保证了服务之间的强隔离。这种设计思想,给予了基于微内核的操作系统高度的可重构性、稳定性和可靠性。

微内核的定义

作为内核的微内核管理所有系统资源。但是在微内核中,用户服务和内核服务是在不同的地址空间中实现的。用户服务保存在用户地址空间中,内核服务保存在内核地址空间下。这减小了内核的大小,并进一步减小了操作系统的大小。

除了系统的应用程序和硬件之间的通信外,微内核还提供最小的进程和内存管理服务。客户端程序/应用程序与在用户地址空间中运行的服务之间的通信是通过消息传递建立的。他们从不直接互动,这就降低了微内核的执行速度。

在微内核中,用户服务与内核服务是隔离的,因此,如果任何用户服务失败,则不会影响内核服务,因此操作系统不会受到影响。这是微内核的优点之一。微内核很容易扩展。如果要添加新服务,则将它们添加到用户地址空间,内核空间不需要任何修改。

宏内核的定义

宏内核管理系统的应用程序和硬件之间的系统资源。但是与微内核不同,用户服务和内核服务是在相同的地址空间下实现的。这增加了内核的大小,进一步增加了操作系统的大小。

宏内核通过系统调用提供CPU调度、内存管理、文件管理和其他操作系统功能。由于用户服务和内核服务都位于相同的地址空间中,因此可以快速执行操作系统。

微内核和宏内核之间的主要区别

区分微内核和宏内核的基本点是微内核在不同的地址空间中实现用户服务和内核服务,而宏内核在相同的地址空间中同时实现用户服务和内核服务。

微内核很小,因为只有内核服务驻留在内核态地址空间中;由于内核服务和用户服务都驻留在相同的地址空间中,因此宏内核的大小比微内核要大。

通过使用系统调用在应用程序和硬件之间建立通信,宏内核的执行速度更快。另一方面,由于通过消息传递建立了系统的应用程序和硬件之间的通信,因此微内核的执行速度很慢。

扩展微内核很容易,因为要在与内核空间隔离的用户地址空间中添加新服务,因此不需要修改内核。如果在宏内核中添加新服务,则整个内核都需要修改,这与微内核相反。

微内核比宏内核更安全,因为微内核中的服务失败时,运行系统不会受到影响。另一方面,如果服务在宏内核中失败,则整个系统都会失败。

宏内核设计需要更少的代码,从而进一步减少了错误。另一方面,微内核设计需要更多代码,从而导致更多错误。

宏内核与微内核,孰优孰劣?

关于微内核和宏内核孰优孰劣的讨论,业界也一直没有停息过。1992年Andrew Tanenbaum(Minix系统设计者)和Linus Torvalds(Linux内核创始人)之间进行了一场关于“Microkernel vs Monolithic kernel”的长篇邮件论战,论战也吸引了众多操作系统方面的顶级黑客参加。

因为当时微内核还处在学术研究阶段,且有着严重的性能缺陷,最终大家得到的一致结论则是微内核不如宏内核。14年后的2006年,两人再次对这个话题进行了论战,这时候Andrew Tanenbaum明显有了底气,因为在这十几年中微内核解决了令人诟病的性能问题,并且在嵌入式系统领域(航空航天、汽车电子、无线通讯、医疗设备等)愈发得到市场的认可。所以我们不能简单的评判微内核和宏内核哪一个更好,作为操作系统设计的两种思路,两者各有优缺点,随着技术的进步,二者也在相互的借鉴。可以确切的说,只要操作系统还在发展,关于二者的讨论就不会停止。

宏内核与微内核比对:

图 IPC性能耗时分析

从目前的研究热点来看,更多的人把目光投向了微内核,利用微内核在实时系统及嵌入式虚拟化领域的优势,来解决现有的嵌入式操作系统的安全性问题。OK Labs提出的Microvisor概念,即具有虚拟化功能的微内核,就是一个很好的案例。L4微内核家族的众多成员,如Fiasco.OC、NOVA、Codezero以及seL4都有虚拟化方面的应用。

结论

由于早期的微内核系统无法摆脱性能的制约(大量进程间通信带来的性能消耗),而导致研究人员一直致力于提升微内核的IPC性能,随着对微内核的不断优化改进,以及硬件性能的大幅提升,IPC性能不再是困扰微内核发展的主要因素,以安全为导向的微内核研究已成为一大趋势。在桌面机和服务器领域是宏内核的天下,由于性能的因素,微内核一直不在考虑范围之内。

而移动互联网的发展,智能设备的兴起,给微内核的发展、产业化带来了机遇。微内核比单内核慢,但更安全可靠,在扩展方面有优势。宏内核速度很快,但安全性较低,因为任何服务故障都可能导致系统崩溃。微内核架构上是在系统上构建及简的系统功能,仅提供进程之间的基础通讯,其余复杂的功能散落在不同的服务里,所以在微内核架构里面融入移动智能操作系统在技术层面是一个可以容易实现的事。因此近期的华为的鸿蒙系统就是基于微内核的架构,Google面向下一代操作系统的Fuchsia同样基于微内核架构,可以看出未来操作系统的发展方向是微内核。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
操作系统如何实现:什么是宏内核、微内核
微内核与第二代微内核
【转】Linux 中的零拷贝技术,第 1 部分
微内核操作系统及L4概述
Unix的成功与Linux的兴起
你以为鸿蒙是安卓杀手,但其实它更像Windows
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服