虚拟化:使软件尽早插手系统设计
入到我们自己的产业中。
虚拟化软件开发是一个产品发展战略,它可以将软件开发从依赖于物理硬件(在其上,应用将被部署)解放出来。相反,虚拟化软件开发使得软件开发商可以直接在桌面上进行开发,制造出一个真实的共同发展战略,这样,硬件和软件开发可以同时进行。软件/硬件集成是前端的优先,而不是后端的急于求成。
虚拟化软件的开发使得开发者制造了高性能,功能准确的硬件模型,可以使得他们在系统开发过程中尽早地开始调试、测试和优化系统。虚拟技术可以用于不同程度的细节,从处理器到板级到设备,在这样的精度水平,二进制代码可以不变运行且不会伴随任何行为上的分歧。
物理硬件测试过程中,高性能虚拟平台不同程度的控制是不可能的。必然的,当同样的条件应用,软件往往以相同的方式执行的固有性质成为了虚拟测试的一个实际。随着处理器和硬件在复杂度上的提高,必然也就意味着在操作的过程中没有其他的改变不是由于软件的追踪缺陷造成的,而是由硬件引起的往往难以察觉的变化,这个变化也就产生了所谓的“海森堡虫子”(Heisenbug),依赖于细小的时钟干扰的状态有的时候是不可能复制的,甚至是在整个系统反复重新运行过程中。仿真基础设施背后的虚拟平台使得开发者可以单步骤或者停止系统来检查他们的内部转台。开发者可以在仿真多核处理器内核和每个内核的多个过程中不断的复制一个错误,从而使得多核处理器调试就像调试一个单一处理器的单一程序一样简单。
虚拟软件开发也避开“codeís”固有限制,通过在需要逆向时执行代码,开发了类似于“TiVo”的功能,且没有任何的代码仪表或者额外的硬件。虚拟化让开发者等待一个错误,然后“倒带”寻找到一个故障所在处的代码的执行。倒带代码执行能力需要可以廉价的检查整个系统的能力和高速仿真的能力。倒退一个指令实际上就是通过回复到检查点和倒退到一个点,倒带点的指令之前完成的,如果仿真速度够快,这个过程就像是在瞬间给使用者的。这种可逆式的调试环境与多处理器系统和多核处理器共同工作,使得开发人员可以跟踪缺陷,诸如竞争情况,被两个零错误分开,锁定重读,死锁和缺乏优先级,所有这些都将出现,更多的是在多核架构中。
虚拟化模型的建立使得通过确定一个有意义的平台使得平台更加标准化,这个平台可以使得软件和硬件可以使用,加强和分享。虚拟化软件设计可以获得无限量的虚拟指标,虚拟平台(硬件的软件代表)可以被在几秒内通过邮件发送到世界各地。因为由虚拟模型产生的数据不是物理限制的,公司可以与合作伙伴和客户简单的有效的分享他们的虚拟化软件开发知识产权。
虚拟化软件开发最近表现在另一个类似平台的引入,Google的Android(Google 的手机操作系统和相关软件的总称),虽然在一个软件开发工具包的上下文。不过,这样的概念是一样的,并构成了一个仿真的虚拟平台,使得由上而下的方法在应用层使得硬件基本上是不相关的。虚拟平台提供了设计所有的必要的服务,使得硬件可以被看作一种前端,而不是在后端考虑。一旦软件发展,硬件优化软件,而不是与此相反。
实际虚拟软件开发
虚拟软件开发在主流的商业规模中显示了它的好处。许多公司已经在他们的设计过程中移植了这个方法,创造了一个全新的创新的基于虚拟化软件开发的基础架构。
IBM在其强大的Power6平台中的复杂软件开发和测试中使用了虚拟化软件开发。通过使用这个方法,IBM的开发团队能够提高他们开发复杂固件和系统管理程序的挑战,从而无需物理硬件可以启动和运行多个操作系统上的虚拟系统模型。这反过来,可以帮助降低整体的硬件花费。IBM很快意识到可以使用虚拟软件开发优化它的整个产品开发生命周期,同时也可以最大限度的减少硬件和软件设计团队的壁垒。
GE Aviation系统(前身为Smiths Aerospace)使用了虚拟化为它的过程模型发展了仿真模型。GE建立了最终目标系统模型提供更多的好处,与传统的开发环境相比,包括降低开发和测试成本,整合成本,收购成本,维修保养的成本及成本的变化。虚拟软件开发确定性的能力使得GE的开发者可以在他们在深入检查和诊断的空闲再现性能问题。
风河系统,领先的设备软件优化供应商,使用了一段时间的虚拟软件开发以提高他们操作系统的开发过程(如VxWorks中SMP),同样公开确定了虚拟软件优化在他们的开发战略中作为一个主要内容。
最近,Monta Vista软件公司,智能设备的Linux系统提供商,将虚拟软件优化更进了一步,使得虚拟
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)