单一内核

编辑
本词条由“匿名用户” 建档。

unikernel是一种专用的、单一地址空间的机器映像,通过使用库操作系统构建。开发人员从模块化堆栈中选择最小的库集,这些库对应于应用程序运行所需的操作系统构造。然后,这些库与应用程序和配置代码一起编译,以构建密封的、固定用途的图像(unikernel),这些图像直接在管理程序或硬件上运行,而无需Linux或Windows等操作系统的干预。 在图书馆操作系统中,保护边界被推到最低的硬件层,导致: ...

目录

单一内核

编辑

unikernel 是一种专用的、单一地址空间的机器映像,通过使用库操作系统构建。 开发人员从模块化堆栈中选择最小的库集,这些库对应于应用程序运行所需的操作系统构造。 然后,这些库与应用程序和配置代码一起编译,以构建密封的、固定用途的图像 (unikernel),这些图像直接在管理程序或硬件上运行,而无需 Linux 或 Windows 等操作系统的干预。

设计

编辑

图书馆操作系统中,保护边界被推到最低的硬件层,导致:

  • 一组实现机制的库,例如驱动硬件或讨论网络协议所需的机制;
  • 一组在应用层实施访问控制和隔离的策略。

与传统的操作系统设计相比,图书馆操作系统架构有几个优点和缺点。 优点之一是因为只有一个地址空间,所以不需要重复的特权转换来在用户空间和内核空间之间移动数据。 因此,库 OS 可以通过允许直接访问硬件来提供改进的性能,而无需在用户模式和内核模式之间转换(在传统内核上,这种转换由单个 TRAP 指令组成,与上下文切换不同)。 可以通过消除在用户空间和内核空间之间复制数据的需要来实现性能提升,尽管这也可以通过传统操作系统中的零复制设备驱动程序实现。

一个缺点是因为没有分离,尝试在一个库操作系统中并排运行多个应用程序,但具有强大的资源隔离,可能会变得复杂。 此外,运行图书馆操作系统的特定硬件需要设备驱动程序。 由于硬件正在迅速变化,这造成了定期重写驱动程序以保持最新状态的负担。

操作系统虚拟化可以克服商品硬件上的一些缺点。 现代管理程序为虚拟机提供 CPU 时间和高度隔离的虚拟设备。 作为虚拟机运行的库操作系统只需要为这些稳定的虚拟硬件设备实现驱动程序,就可以依赖管理程序来驱动真实的物理硬件。 然而,仍然需要协议库来替代传统操作系统的服务。 创建这些协议库是实现现代库操作系统时的大部分工作所在。 此外,在 unikernel 和管理程序之间切换时,以及在管理程序虚拟设备之间传递数据时,对管理程序的依赖可能会重新引入性能开销。

通过减少部署的代码量,unikernel 必然会减少可能的攻击面,从而提高安全性。

基于 unikernel 的消息传递客户端示例的大小约为使用 Linux 的等效代码库的 4%。

由于其构造的性质,可以跨设备驱动程序和应用程序逻辑执行整个系统优化,从而提高专业化。单一内核

单核已定期显示启动速度非常快,在请求超时之前及时响应传入请求。

单核有助于创建遵循面向服务或微服务软件架构的系统。

高度专业化意味着 unikernel 不适合传统操作系统用于的那种通用、多用户计算。 添加额外的功能或更改已编译的 unikernel 通常是不可能的,相反的方法是编译和部署具有所需更改的新 unikernel。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/196286/

(1)
词条目录
  1. 单一内核
  2. 设计

轻触这里

关闭目录

目录