科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道虚拟化:创建新软件开发模式

虚拟化:创建新软件开发模式

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

虚拟化的软件开发让开发人员创建高性能的、功能准确的硬件模型,让开发人员在开发流程较早的阶段开始调试、测试和优化系统。虚拟化的软件开发还能够避免代码本身的局限性,通过在需要时逆向执行代码提一种TiVo式的功能,不需要任何代码设备或者额外的硬件。

来源:IT专家网 2008年5月19日

关键字: 虚拟化 软件 服务器 开发模式 微处理器 MIPS 虚拟化技术 IBM

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

嵌入式软件开发行业目前正处在这种状况,传统的以硬件为中心的开发或者内部的一次性虚拟化软件开发解决方案都不能提供及时上市、节省成本和质量保证等好处。这些好处在竞争激烈的市场中是必须的。嵌入式设备中软件内容的任务还没有消失的迹象,多内核设备的普及为硬件和软件的组合提供了前所未有的复杂性。不可避免的向多内核设计的过渡强调了需要开发能够利用多核设备潜在性能的软件开发解决方案的需求。

  当前嵌入式软件开发的状况需要企业战略性地再次访问和重新思考他们的流程,不仅要在组件级重新考虑这些问题,而且要在流程设计级考虑这些问题。我们能够从硬件行业学习一些东西,包括虚拟化技术。但是,我们需要让虚拟化再前进一步,在我们自己的行业把虚拟化技术作为一种基础的、基本的基础设施。

  虚拟化的软件开发是一种让软件开发脱离应用程序将使用的物理硬件的一种产品开发战略。虚拟化的软件开发能够让开发人员直接在台式电脑上开发,产生一个真正联合开发的战略。在这个战略中,硬件和软件开发是同时开始的。软件/硬件集成变成了一种前台优先安排的事情,而不是后台的工作。

  虚拟化的软件开发让开发人员创建高性能的、功能准确的硬件模型,让开发人员在开发流程较早的阶段开始调试、测试和优化系统。虚拟化能够应用于各种详细的级别(如从处理器到电路板到设备),在一个准确的级别上,二进制代码能够不加改变地运行,行为不会发生任何异常。

  高性能虚拟平台提供了在物理平台上进行测试不可能达到的控制水平。软件本身的性质是在同样的条件下执行的方式都是一样的。这种决定论在虚拟的测试中变成了现实。随着处理器和硬件设计复杂性的提高,决定论意味着在操作中的一些变化。这些变化不仅是由于可以跟踪的软件瑕疵引起的,而且还是由不能跟踪的硬件中的变化的引起的。这将产生称作“海森堡虫子”(Heisenbug)的事件。这种状态取决于不能重复的敏感的时机互动,即使整个系统完全重新运行一次也不能重复这种状态。这个以虚拟化平台为基础的模拟基础设施允许开发人员采取一次性步骤或者停止检查其内部状态。开发人员能够反复地重新产生一个错误,甚至在模拟多处理器内核和每个内核的多个流程的时候也能够做到,从而使多内核处理器的调试与在单内核处理器上调试一个程序一样简单。

  虚拟化的软件开发还能够避免代码本身的局限性,通过在需要时逆向执行代码提一种TiVo式的功能,不需要任何代码设备或者额外的硬件。虚拟化让开发人员等待一个错误的出现,然后“倒卷磁带”重新执行一遍那个代码,查出引起问题的原因。“倒卷磁带”重新执行代码需要廉价地检查整个系统的容量以及以飞快的速度进行模拟的能力。退回一个指令的过程实际上就是倒回到一个检查点,然后前进到“倒卷磁带”点之前下达指令的那个点。如果模拟的速度足够快,这个过程对于用户来说就像是同时发生的。这种可逆向的调试环境与多处理器和多核处理器一起使用,让开发人员能够查出许多软件瑕疵,如竞态条件、被零除错误、锁冲突、僵局和优先权不足等等。所有这些问题在多核架构中是很容易出现的。

  创建虚拟化模型还需要广泛的标准,找出软件和硬件团队都能够使用、增强和共享的一个有意义的平台。虚拟化的软件开发能够访问无限数量的虚拟目标。这个虚拟的平台(作为硬件的一个软件代表)能够在几秒钟之内用电子邮件发送到全世界。因为虚拟模型制作的数据没有物理的限制,企业能够与合作伙伴和客户方便地和有效地共享自己的虚拟化的软件开发的知识产权。

  最近推出的一个类似的平台“谷歌Android”就说明了虚拟化的软件开发的情况,尽管这是在软件开发工具环境中说明的。然而,这个概念是相同的,并且包括一个模拟的虚拟平台。这个模拟平台能够实现严密的管理方法,不需要应用程序级上的硬件。这个虚拟平台能够提供设计所需要的全部服务,把硬件当作前台而不是后台的事情。一旦软件开发完成,硬件将为软件进行优化,而不是相反。

  实践中的虚拟化软件开发

  虚拟化的软件开发正在把自己的益处向主流的、商业性的领域扩展。许多公司已经在自己的设计流程中实施这种方法,创建基于虚拟化的软件开发的新的和创新的基础设施。

  

  图1

  IBM在开发和测试其强大的POWER6平台中的复杂的软件过程中使用了虚拟化的软件开发技术。通过使用这个技术,IBM的开发团队能够解决在开发复杂的固件和管理程序中遇到的难题,在虚拟的系统模型中启动和运行多个操作系统,不需要物理硬件。这种做法有助于减少整个硬件开支。IBM很快认识到它可以使用虚拟化的软件开发优化其整个产品开发生命周期以及最大限度地减小硬件和软件设计团队之间的障碍。

  通用电气航空系统公司使用虚拟化技术为其处理模块开发模拟的模型。通用电气公司建立最终系统的模型能够比传统的开发环境提供更大的好处。这些好处包括减少的开发与测试成本、获取和维护成本以及变化的成本。虚拟化的软件开发的确定性能力使通用电气公司的开发人员轻松地再现性能问题以便进行深入检查和诊断。

  设备软件优化(DSO)领域的龙头企业Wind River一段时间以来一直虚拟化的软件开发方法改善操作系统的开发流程(如在VxWorks SMP),一贯地和公开地把虚拟化的软件开发作为自己开发战略中的一个主要因素。

  最近,智能设备Linux操作系统提供商Monta Vista软件公司把虚拟化的软件开发又向前发展了一步,把虚拟化作为其软件销售和评估过程的一个关键部分。Monta Vista允许其潜在的用户在网络上评估其Linux产品,方法是通过一项名为“TestDrive”的服务把用户连接到一个虚拟的信息板并且在一个虚拟化的软件开发平台上运行评估。这是虚拟化的软件开发鼓励新的思考和做生意的方法的一个极好的例子。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章