操作系统还是容器?它就是Unikernel!

日期: 2015-12-28 作者:Stephen J. Bigelow翻译:邹雅玲 来源:TechTarget中国 英文

Unikernel压缩OS空间,保存计算机资源、提高性能、加强安全性。 典型企业级操作系统占用巨大空间,涵盖诸多功能,然而应用程序实际需要的仅是其中一部分功能而已。未被使用的功能占用一部分很重要的计算机资源,否则,可多增设几台虚拟机器。Unikernel将选定的OS功能直接编辑到自有的应用程序中。

一般来说,OS可提供用户界面、辨别及组织底层系统硬件、发布及支持使用硬件的应用程序。由动态链接库(简称DLL)和其他驱动创建复合型OS平台来弥补这些组件,然而所创建的复合型OS平台上,甚至在应用程序开始占用系统资源之前,就需要相当大的内存、较长的处理器周期以及较大的存储空间。随着虚拟化需求的不断增加……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

Unikernel压缩OS空间,保存计算机资源、提高性能、加强安全性。

典型企业级操作系统占用巨大空间,涵盖诸多功能,然而应用程序实际需要的仅是其中一部分功能而已。未被使用的功能占用一部分很重要的计算机资源,否则,可多增设几台虚拟机器。Unikernel将选定的OS功能直接编辑到自有的应用程序中。

一般来说,OS可提供用户界面、辨别及组织底层系统硬件、发布及支持使用硬件的应用程序。由动态链接库(简称DLL)和其他驱动创建复合型OS平台来弥补这些组件,然而所创建的复合型OS平台上,甚至在应用程序开始占用系统资源之前,就需要相当大的内存、较长的处理器周期以及较大的存储空间。随着虚拟化需求的不断增加,需要在每台VM中加入一个单独的OS实例。

例如,像Windows Server 2016的Nano Server这样级别较低的操作系统缩减了许多安装内容,如不含有图形用户界面,不具备32位兼容性,支持Windows Installer以及其他功能。

虽然Unikernel也缩减了OS空间,但是却应用了另外一种策略。开发人员编译了可满足应用程序操作需求的Unikernel组件。Unikernel函数库本身就可满足应用程序需求,不需要增加额外的功能。

开发人员并非超级英雄

尽管Unikernel的优点十分吸引人,但是该操作系统也存在一些缺点,特别是开发人员方面。

在新版本及新功能中,我们发现了开发人员在编程中存在某些逻辑问题,因此,重新编译和重新部署应用程序和Unikernel操作系统。Unikernel系统在许多企业应用程序中都不能应用。Unikernel系统语言和运行时环境的需求会限制其灵活性。

开发人员及其IT组织应该基于现有平台的程序性和范围、Unikernel的底层开发语言(如C语言、Java语言、OCaml语言、Haskell语言等等)、预定的及优先的目标环境(例如Xen、KVM、KFreeBSD等)以及Unikernel整体生态系统库大小来综合评估潜在的Unikernel系统。

OS将成为数据中心的明日之星

Unikernel称其比Windows 2016 Nano Server这样传统的操作系统更有优势,其中包括,缩减资源需求、较好的性能、运行环境的灵活性以及更高的安全性。

Unikernel节省了数据中心的资源使用费用,将该部分资金用于购置更多的VM以及增加指定IT基础架构的工作负载量上。如在ClickOS这样的Unikernel操作系统中,典型VM只需要5 MB存储空间,而在Windows Server 2016系统中则需要至少512 MB存储空间。应用程序实际所编译的Unikernel库数量不同,实际需求数量也会所有变化。

资源需求数量减少则性能会相应增强。与传统的OS版本相比,小型OS启动时间变得更快。Unikernel开发商MirageOS称,Unikernel操作系统能够将启动时间所缩减到不到一秒钟。若能将OS 足迹也去除,则完成VM迁移及数据保护过程将会使用更少时间。

Unikernel系统中的应用程序基本上可在VM或者直接在底层物理硬件上形成一种复杂图像。这样可以保证,在虚拟及物理数据中心环境中允许更多的灵活异构操作。

Unikernel对安全性也有所保障。很少有OS元素能够降低潜在攻击面,与应用程序一起编译库组件可以创建一种应用程序和OS组件都无法更改的固定图像。这彻底地改善了传统的操作系统在更新和修补方面惯有做法。

Unikernel在内核使用方面只做了一个更改。其他内核模型,如Asexokernel、Microkernel、Nanokernel和Picokernel则着重对OS足迹缩减以及应用程序部署界面更改两方面的设计。

Unikernel与管理程序和虚拟化之间的关联

在典型VM中,需要运行一个完整的OS以及独立的应用程序,而Unikernel则在内设管理程序的VM中可运行一个较小的OS和应用程序。但是,这并不是Unikernel应用管理程序的的唯一方面。

实践中,开发人员经常应用管理程序处理一些OS功能和性能问题。大多数以Unikernel为基础的部署都会依赖于底层管理程序(如VMware ESXi、Microsoft Hyper-V、Xen 或者KVM)所提供的服务。

尽管Unikernel的特性与基于容器的虚拟化行为相似,但是,Unikernel却有别于容器。在容器中,应用程序都会共享一个通用的OS内核。而有了Unikernel,数据中心则可以部署较多小型VM托管个体OS,同时加快了VM启动时间。最终,Unikernel也许会成为微服务型应用程序部署的一个候选方案。

作者

Stephen J. Bigelow
Stephen J. Bigelow

数据中心和虚拟化网站的高级技术编辑,拥有20年的PC和技术写作经验。