本世纪之交,计算机业界人士开展了一场精彩的辩论:假如高通量应用程序的性能大幅提升,多线程和虚拟化将如何成为桌面PC和服务器的下一个重大突破。他们称,这是历史的重演。
十年以后,这两个概念发生了戏剧性的逆转。这一次的辩论则与之前不同:我们不再谈论服务器的性能,而是专注于下一代嵌入式设备和物联网节点。会话内容也发生了变化:我们以更智能的方式使用多线程来提高功率和面积效率,同时虚拟化又为整个系统的安全奠定了基础。
但这两个概念并不新鲜:多线程计算机架构自20世纪50年代以来就已出现,而虚拟化早在20世纪70年代末就已获得“年度最具发展前景的技术”殊荣。
但是,这两个概念对于未来连接运算的发展都至关重要,尤其是物联网未来的发展。最新预测的物联网市场将涵括数十亿连接设备,包括智能传感器、网关、中间节点或数据中心。
上述的每一类产品都可受益于多线程和虚拟化。本文我将对虚拟化的概念进行阐述,随后再介绍虚拟化系统的硬件和软件架构。最后,我将简要描述MIPS CPU对虚拟化的支持程度。
虚拟化概念简述
简单来讲,虚拟化可以使物理设备显示为一个或多个虚拟设备。可以在处理器级别(如CPU或GPU)或系统级别(如SoC)实现虚拟化。
虚拟化将虚拟机上运行的软件从底层硬件资源中分离出来
通过添加虚拟化支持,平台可以创建多个虚拟机(VM),而每个VM可以运行其自身的 *** 作系统、嵌入式程序或两者结合。
虚拟化平台的硬件和软件架构
说到虚拟化,您将遇到一些常用术语,如主机处理器、虚拟机、根和用户环境、管理程序等。
主机表示实际的物理硬件,其资源可以被虚拟化。对于MIPS而言,主机处理器等同于CPU的物理实例。
虚拟机(VM)是软件创建的处理器虚拟环境。在这个环境中,主机支持多个虚拟机,每个用户 *** 作系统将在其环境中运行一个VM。因此,根环境是物理系统的环境,用户环境则属于每个虚拟机。
创建并控制虚拟机的软件称为管理程序。管理程序是虚拟系统的关键组件,表示虚拟机之间的中间软件层和实际硬件。在根环境中运行时,管理程序可以直接控制硬件,从而创建及维护可信执行环境。管理程序的主要工作是加载及控制在用户环境中运行的软件。
尤其重要的是,在用户环境中运行的软件不能检测到中间软件层的存在:从用户环境的角度来看,虚拟机内的软件似乎可以直接在硬件平台上运行。
虚拟化的基本原则
正如多线程一样,虚拟化的概念并不新鲜。1974年时,两大著名的计算机科学家Gerald J. Popek (加州大学洛杉矶分校) 和Robert P. Goldberg (哈佛大学)写了一篇名为“虚拟化第三代架构的形式规定”的文章,该文章便涵括了虚拟化的三大支柱要点:
?等价性:虚拟机上运行的程序应该与实际硬件上运行的程序相同
?资源控制:管理程序必须完全控制所有虚拟化的资源
?敏感行为指令:大多数虚拟化软件执行的指令不需要管理程序的干预
管理程序
有两种类型的管理程序:第一类(或本地)管理程序可以直接在硬件上运行,同时用户软件可以在虚拟机上运行。
SELTECH FEXEROX和PUCRS Hellfire便是MIPS架构本地管理程序的例子。
第二类(托管)管理程序在传统的 *** 作系统环境中运行。第二类管理程序也被称为陷阱和模拟管理程序,因为用户 *** 作系统的所有行为都是受限的,且对硬件的访问是模拟的。MIPS CPU第二类管理程序最常见的例子就是Linux内核中运行的KVM管理程序。
在MIPS CPU中,第二类管理程序在内核模式中运行,而用户 *** 作系统则在用户模式下运行。这样,一旦用户 *** 作系统尝试访问特殊内存区域或执行特殊指令,内核模式中运行的管理程序将会进行异常处理 *** 作。
MIPS虚拟化模块(MIPS VZ)和OmniShield-ready MIPS CPU
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)