首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是统一内核?

什么是统一内核?
EN

Software Engineering用户
提问于 2018-04-14 02:11:10
回答 2查看 321关注 0票数 3

今天,我搜索了includeOS,发现它将自己定义为一个最小的单核

我想知道UniKernel是什么。维基百科的解释对我来说还不够清楚。

统一内核是否与单一应用程序结合在一起,用于类似于嵌入式系统的特殊用途?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2018-04-14 10:11:36

Unikernel是库操作系统的一种特殊类型。库操作系统作为库提供了所有的功能,通常链接到应用程序编译时。

区别并不是很清楚,但当Anil Madhavapeddy发明Unikernel一词时,他指的是一个线程应用程序,所有的东西都运行在单个地址空间中,使用的是以高级类型安全语言创建的库操作系统,运行在虚拟机监控程序上。

应该注意的是,IncludeOS项目没有严格遵守定义。它是用C++编写的,它不是类型安全的,它支持多个CPU核心、线程和裸金属硬件上的引导。

我听说过Anil将IncludeOS描述为一个统一内核,所以我想他对此并不太严格。

使用Uni内核编写应用程序的动机各不相同,但主要是内存占用(unikernels很小)、性能(函数调用比系统调用更快)和安全性。

安全方面的收益来自Unikernels的性质。Unikernels被构建为不可变的。因此,如果您正在构建一个带有Uni内核的虚拟防火墙设备,那么防火墙规则应该是代码,防火墙应该是硬编码的,以准确地执行规则集。这与传统的单块内核不同,在这个内核中,所有的配置都是动态的。

Unikernels并不意味着要重新配置。他们注定要被取代。因此,它们没有支持重新配置的特性,这使得它们很难被利用。

票数 4
EN

Software Engineering用户

发布于 2018-04-14 07:59:56

"Embedded“没有指定软件体系结构,它仅仅意味着软件和硬件是打包在一起的,并且与用户的观点是不可分割的。

在大多数现代计算机系统中,您将拥有一个处理器,它允许在其上运行的第一个程序( OS)控制它,而不是使用所获得的硬件控制,允许其他程序在有限的可能性下运行。这就像一个看门人走进一栋大楼,抓起所有房间的钥匙,在设施控制板上坐下。然后,他等待房客或客人进来,并允许他们有限地进入。除了管理大楼外,他自己没有什么特别的目的。他只是坐在那里监视,分发和收回钥匙和吃甜甜圈。

有了一个统一内核,就只有一个具有专用目的的程序。它不是一个允许程序运行的通用系统,而是一个不允许任何其他程序在其上运行的通用程序。基本上,它是一个没有操作系统的应用程序。应用程序本身控制机器,拥有所需的所有电源和访问权限。

就像一个人走进一个空荡荡的旅馆,把门锁在身后,启动他需要的设施,抓起他想要进入的房间的钥匙,然后做他想做的事情。

在软件中,与通用操作系统和单个应用程序相比,单内核程序将相对较小,因为它只包含应用程序实际使用的那些服务。在嵌入式环境下,这可能是有益的。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/369347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档