在最后几篇文章中,我们讨论了提供虚拟化所需的硬件支持。 在这篇文章中,虚拟化如何赋予用户权力。 我们将讨论在服务器和台式机空间中已经看到的用例,以及big.LITTLE之类的移动特定应用程序,以及如何降低手机的生产成本。 本系列的第一篇文章对虚拟化进行了概述。 第二篇文章更深入地介绍了为支持核心虚拟化而添加的功能。 第三篇文章讨论了虚拟化在系统级别所需的支持。 本文将重点介绍虚拟化的用例。
服务器空间应用
虚拟化的最大影响是重新定义了现代数据中心。 虚拟化提供容错,VM迁移和沙盒。 没有虚拟化,我们就不会有像EC2这样的服务来驱动许多世界上最大的网站。 过去几年中,随着ARM和Intel不断挑战军刀,以及Intel发布Atom处理器产品线,ARM争夺服务器空间只是时间问题,而ARM为此需要竞争产品在虚拟化中。 这是为虚拟化提供硬件支持的最大原因。
使用跨平台应用程序
我们中的许多人已经为此目的使用虚拟化。 您可以在当前操作系统之上运行其他操作系统,或者仅运行选择服务以支持当前应用程序。 可以扩展这个想法。 瘦OS可以与应用程序打包在一起,以在运行于多种平台上时提供兼容性,类似于运行Java应用程序,但不需要二进制转换。
big.LITTLE
您可能听说过三星的Exynos 5 Octa SoC。 该SoC的亮点是它提供了四个高性能,高功率Cortex-A15内核的集群和四个低功耗但性能低的Cortex-A7内核的集群。 大多数时候,低功耗Cortex-A7内核可以满足手机的性能要求。 此时,高功率Cortex-A15内核已断电。 尽管无需虚拟化即可完成此迁移。 尽管具有虚拟化功能,该功能自然属于VM迁移,并且在软件中实现起来明显容易得多。
![Exynos 5 Octa框图](https://i-blog.csdnimg.cn/blog_migrate/fbbee44fc29668024b36e4ca68d5e6f9.png)
Exynos 5 Octa SoC框图
下图由Anandtech提供,给出了big.LITTLE配置可能节省的电量的概念。 尽管此幻灯片介绍了功能和性能之间的权衡,但仍需要对方法进行一些说明。 首先是我们要衡量的权衡不是功耗与性能。 它是能量与性能。 如果完成任务后内核可以进入低功耗模式,则完成任务所消耗的能量就是该任务的平均功率除以性能。
在该图中引起我注意的第二件事是使用Dhrystone作为基准,如在y轴上使用单位DMIPS所示。 Dhrystone是一个古老的综合基准,不再反映现实世界的使用情况。 例如,整个工作负荷都适合L1高速缓存,因此它看不到Cortex-A15中较大的L2高速缓存具有任何性能优势,但也没有反映出L2高速缓存的功耗增加。 对于要使用的正确基准没有正确或错误的答案。 它总是取决于特定的用例,但是使用SPECint将是系统性能和功耗的更现实的指示。
将OS内核与设备驱动程序分开
虚拟化可用于将操作系统与基础硬件分开。 这种分离可以使用该方法之一提来完成的最后一个职位 。 这种分离具有几种实际应用。 首先将是通过简化将操作系统移植到较新设备的方式来减少开发时间和成本。 但是,更重要的优势将在于推出OS更新。 这是Android常见的问题。 推出Android更新后,每个设备制造商都必须将所做的更改移植到其系统中。 这会大大减慢更新的交付速度。 将OS与基础硬件分开可以加快发布更新的过程。
从愉悦中分离业务
我们的手机已成为我们身份的最大扩展。 我们的手机有我们的联系人,我们的照片,我们的日程安排,我们的电子邮件,我们的文字通讯。 个人和企业信息的这种混合会导致问题。 现在,我们为IT管理员提供了对我们个人信息的广泛控制。 如果IT人员认为我的电话被盗,则有权对它进行远程擦除。 另一方面,IT仍然不能适当地保护公司数据。 例如,他们不能使我仍然可以在系统上安装可能破坏手机中存储数据的恶意软件应用程序。 通过为电话上的工作和个人使用创建单独的VM,可以解决此问题。 因此,损害个人VM不会影响公司数据。 ARM在此博客文章中讨论了这一点(下面的视频):
在同一设备上允许不同的操作系统
回到降低研发成本。 制造商还可以创建一个运行不同操作系统(例如Android或Windows Phone 8)的手机。出售的设备可以预装两个操作系统的安装程序,并且在首次启动时,用户可以选择要使用的操作系统。 这将减少开发和部署成本,同时造成闪存的少量浪费。 但是这个想法可以进一步扩展。 可以实施先试后买的政策,允许用户使用与以往不同的操作系统,如果他们不喜欢这种体验,则可以恢复到他们熟悉的系统。
安全功能
虚拟机管理程序提供了比操作系统更高的特权层。 系统管理程序可以将OS排除在访问内存区域之外。 因此,系统管理程序可用于存储高安全性数据,例如金融帐户密钥,用于检查应用程序完整性的哈希值以及是DRM。 当我内心的极客抗议关闭我所购买的系统的某些部分时,我内心的实用主义者接受这些功能可以改善像祖母这样的人的用户体验,并启用其他方式无法实现的功能。 到此结束有关虚拟化潜在应用的文章。 如果您对虚拟化应用程序还有其他想法,请在评论中听到。 下周,我将通过比较ARM虚拟化扩展与Intel世界提供的产品来结束本系列文章。
翻译自: https://www.javacodegeeks.com/2013/04/arm-virtualization-applications-part-4.html