注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

分享,态度 ·~~

—— 十年太长,五年;如果可以回到五年前,你最想对那时候的自己说什么?

 
 
 

日志

 
 

MSDN Blog:针对 ARM 处理器体系结构构建 Windows  

2013-04-06 12:51:21|  分类: Windows 8 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一年前,我对WOA有很大的期望;但是一年后,市场并不完全认可。不知道这样的设备时候有继续成长的空间,特别是在Intel即将推出新的CPU的时候。WOA目前看起来并不乐观,或许做成功能化、可定制的PAD更好。这篇Blog引用在这里,同时也向Steven Sinofsky致敬。

Microsoft Windows 始终在不断地进行技术革新,其用户群体也日益庞大,这反应了该体系结构具有很强的灵活性,这一点非常值得关注。最初,Windows 只是一款为个人提供工作效率软件的操作系统,但现在,Windows 已成为各种硬件和软件技术的基础,代表着众多相互关联的 Windows 产品以及无限灵活的计算方法。在 Windows 8 中,我们从芯片到体验对 Windows 进行了颠覆性的革新,而将焕然一新的 Windows 引入 ARM? 处理器体系结构是这一创新的重要组成部分。超脱当前人们对 PC 的固有观念,对 PC 的应用范围进行扩展以涵盖更多具有独特外形和设计的设备,对于实现创新目标来说至关重要。ARM 版 Windows 允许在 PC 设计中加入更多创新元素,结合 Windows 操作系统中新加入的功能,必将为用户带来毫不迁就的新型 PC。

本博文将主要介绍我们称之为 ARM 版 Windows 或 WOA 的操作系统的技术基础。WOA 是 Windows 家族的新成员,是与 Windows Server、Windows Embedded 和 Windows Phone 并列的产品。与这些产品类似,WOA 构建于 Windows 的基础上,与 Windows 8 具有高度的共通性并共享了大量代码,将作为全球最大计算生态系统的一部分进行开发、销售并给予支持。今天,我们将重点关注 WOA 的开发过程,并介绍其中的某些功能及其用户体验。与 x86/64 版的 Windows 8 一样,该产品也将进行大量的商业宣传和营销活动。但在本博文中,我们重点讲述开发 WOA 的过程,而不是对其进行宣传或促销。

同时,虽然本博文中只介绍了我们在 WOA 中取得的成果,但在 Windows 8 中,我们与 Intel 和 AMD 针对其全系列 PC 产品,实现了前所未有的深入合作。Windows 8 不仅针对功能强大而丰富的 x86/64 处理器进行了创新,同时还针对一些新型的低功耗处理器(例如,在 CES 中展示的那些)进行了优化,实现此类优化需要 Windows 对这些平台报以同等的重视,投入更多的工程力量,提供可靠的设计,并对体系结构加以改善。在讨论针对 ARM 处理器的工程时,除了我们针对 ARM 平台进行的少数创新以外,本博文中讨论的大部分内容同样直接适用于 x86/64 平台和 Windows 8。我们将在 Windows 8 中为 Intel 和 AMD 的新产品提供前所未有的广泛支持,范围涵盖几乎所有 PC 类型,包括平板电脑、笔记本电脑、Ultrabook?、一体机和台式机,Windows 8 在为这些设备量身打造新功能的同时,也将利用这些硬件的新功能所提供的优势。

使用“即开即用”的 WOA 与使用 x86/64 版 Windows 8 一样方便。您将通过相同的方式登录。您将通过相同的方式启动应用程序。您将通过相同的方式使用新的 Windows 应用商店。您将能够访问 Windows 的全部固有功能,范围从新的 [Start](开始)屏幕和 Metro 风格应用程序直到外围设备,如果需要,还可以访问带有 Windows 资源管理器和桌面 Internet Explorer 等工具的 Windows 桌面。在访问这些功能时,您将获得同样快速而流畅的体验。换言之,我们在设计 WOA 时力求满足您对其外观和体验的期待。WOA 支持创新的 PC 设计,结合操作系统中新加入的功能,必将带给用户毫不迁就的全新体验。

作为深入的工程对话,我们倾向于撰写长篇的 Building Windows 8 博文,本文也不例外。首先,我希望概括一下本篇博文中将详细介绍的内容:

  • ARM 版 Windows(或称 WOA)是在 Windows 基础上构建的 Windows 家族新成员,与 Windows 8 具有高度的共通性并共享了大量代码,将作为全球最大计算生态系统的一部分进行开发、销售并给予支持。我们推出 WOA 旨在支持具有独特功能和外形的新型 PC,吸纳一系列新的合作伙伴,从而扩展包含 Windows 在内的生态系统。
  • WOA PC 尚处于开发阶段,而我们的共同目标是和 PC 制造商通力合作,争取与针对 x86/64 版 Windows 8 设计的 PC 同时面市。这些 PC 将基于由 NVIDIA、Qualcomm 和 Texas Instruments 提供的创新硬件平台构建,共享相同的 ARM 版 Windows 操作系统基础 — 全部运行相同的 Windows 操作系统二进制这一业界独创的方案。PC 制造商正在全力以赴地进行 PC 设计工作,从零开始打造专门针对 WOA 的出色设备。
  • Windows 应用商店中的 Metro 风格应用程序可以同时支持 WOA 和 x86/64 版 Windows 8。希望支持 WOA 的开发人员可以使用新的 Visual Studio 11 工具通过各种语言(包括 C#/VB/XAML 和 Jscript/ HTML5)来开发 WinRT(用于构建 Metro 风格应用程序的 Windows API)应用程序。WOA 支持使用 C 和 C++ 编写的 WinRT 本地代码,此类代码适用于多种体系结构并可通过 Windows 应用商店分发。WOA 不支持运行、模拟或移植 x86/64 桌面应用程序。仅使用 WinRT 系统和操作系统服务的代码可以在应用程序中使用,并通过 Windows 应用商店同时针对 WOA 和 x86/64 分发。用户可通过 Windows 应用商店、Microsoft 更新或 Windows 更新来获取包含设备驱动程序在内的所有软件。
  • WOA 能够支持所有新的 Metro 风格应用程序,包括来自 Microsoft 的电子邮件、日历、通讯录、照片和存储应用程序。WOA 还包含 Internet Explorer 10 中业界领先的硬件加速 HTML5 支持。WOA 将为其他行业标准格式提供支持,包括具有硬件加速和分流计算支持的格式,以及行业标准文档格式。在任何情况下,Microsoft 都希望在为用户提供更多选择这一方面保持领先地位,并允许用户选择使用的应用程序和支持的格式。
  • WOA 包含新的桌面版 Microsoft Word、Excel、PowerPoint 和 OneNote。这些新版 Office 应用程序的开发代码为“Office 15”,它们已针对触控和减少电源/资源消耗进行了显著优化,同时还将为用户提供丰富的功能和完整的文档兼容性。WOA 支持包含资源管理器、Internet Explorer 10 桌面版和大部分其他固有 Windows 桌面功能在内的 Windows 桌面体验 — 这些功能也已经针对触控和电源/资源消耗进行了显著优化。
  • 借助 WOA,您将能够获得包含全新打造的硬件、固件和 WOA 软件的集成端到端产品。构建 WOA 的过程融合了 Microsoft、ARM 授权商、PC 制造商以及组件和外设开发人员的共同工程努力。这些努力横跨针对 WOA 重新设计或大幅度调整的一系列子系统。合作伙伴会将 WOA PC 作为包含硬件、固件和 ARM 版 Windows 软件的集成端到端产品向用户提供。ARM 版 Windows 软件不会独立于新型 WOA PC 销售或分发,满足您对于消费电子产品具有独特集成硬件和软件组合的期望。在 PC 的使用生命周期中,我们所提供的软件将获得周到的服务和升级。
  • 在 x86/64 版 Windows 8 的下一个里程碑版本发布前后,我们将通过一个封闭的仅限邀请计划向开发人员和硬件合作伙伴提供少量测试 PC。这些设备上将运行届时发布的 x86/64 版 Windows 8。这些设备并不代表或暗示即将面市的新型 PC,它们只是供硬件和软件工程人员运行 WOA 特定硬件的设备。
  • Windows Consumer Preview 是 x86/64 版 Windows 8 的 Beta 版本,该版本将于二月底之前提供下载。Windows 8 的这一新的里程碑将提供多种语言的版本,并开放供所有人下载。

本博文主要可以划分为以下几个部分:与合作伙伴的协作、提供应用程序、针对 ARM 的工程(我们将在本部分中介绍各种子系统)、针对 ARM 的开发、推出 WOA PC,最后,还将介绍接下来准备采取的步骤。

我们还准备了一段简短的视频,用来展示本博文中所描述的 WOA。

 
请下载此视频在您常用的媒体播放器中进行观看: 
高质量 MP4 | 低质量 MP4

与合??伙伴的协作

WOA 的设计工作起始于与一些 ARM 处理器制造商的合作,这些制造商会将其生产的处理器与所需的子系统绑定,以提供等同于主板的功能。与众所周知的主板不同,您可以将 WOA 板想象为硅封装,即一系列极小的硅片绑定在一起,我们称其为“片上系统”或“SOC”。

MSDN Blog:针对 ARM 处理器体系结构构建 Windows - 乂乂 - 分享,态度 ·~~
CES 2011 上展示的片上系统 (SoC)。(Julie Jacobson,美国联合通讯社)

每家 ARM 授权商在构建这些封装时会采取不同的方法来选择功能,权衡产品性能,并设计完整的硅封装。这些选择造成了推向市场的基于 ARM 构建产品的多样性。事实上,不存在单一的 ARM 体验,与其他操作系统的情况相同,即使使用相同的 ARM CPU,结合不同的组件、驱动程序和软件,也能带来不同类型和质量的体验。因此从 WOA 项目伊始,我们就着手与以下三家 ARM 授权商合作:NVIDIA、Qualcomm 和 Texas Instruments。每家授权商具有各自的专业知识和方案,必将为 WOA 做出不可替代的贡献。所有授权商目前都已在市场上成功推出了基于 ARM 的产品,范围包括:平板电脑、智能手机、电子阅读器和嵌入式设备。能够从如此强大的合作伙伴获得支持是我们的荣幸,WOA 将成为唯一能够应对这种多样性的操作系统。

SoC 封装本身只是一个开始。推出 WOA PC 还需要与 PC 制造商进行合作,必须将制造商在制造、系统工程和工业设计领域所具有的专业知识与 ARM 合作伙伴的工程努力相结合,才能开发出一台完整的 PC。PC 制造商还将在 PC 销售、业务渠道和长期销售策略方面为我们提供诸多帮助。

在这次合作中,Microsoft 将负责提供针对这一全新硬件类型、新的情境和新的工程难题进行优化的 Windows 操作系统。我们的目标是确保重新设计的 Windows 能够提供从芯片到固件、硬件、操作系统、应用程序直至与 PC 互动的用户的无缝体验。本次合作达到了前所未有的新高度,凝聚了所涉及各方的工程努力。这种新方法旨在于 PC 的生命周期中提供一组独特的选择、体验和可靠的端到端体验。

提供应用程序

在详细介绍为了支持 ARM 硬件而对 Windows 底层实施的更改之前,我们先来看一看 Microsoft 将在顶层提供哪些应用程序(我们都非常乐于看到“应用程序”一词重出江湖,我 1989 年在 Microsoft 的第一张名片上就写着“Software Design Engineer in Apps Tools, Apps Division”(应用程序部门,应用程序工具软件设计工程师))

我们尚未发布任何新 Windows 产品的版本或 SKU,在预发布阶段,我们将包含软件中几乎全部的功能,以供您测试和体验产品的全貌。我们将继续调整 WOA 中包含的功能,以期推出在市场上具有竞争力的产品,并为各种类型客户提供具有吸引力的价值定位。

如同我们曾在 //build/ 和其他论坛中所宣布和展示的一样,WOA 具有 Windows 开发人员预览版中的所有 WinRT 功能,并且您用于构建针对 x86/64 的新 Metro 风格应用程序的所有工具和技术也同样适用于 WOA。除了基于 C#、XAML、VB 和 HTML5 的工具,开发人员还可以利用我们提供的工具来创建本地 C/C++ 代码以获得最佳的性能和灵活性,只要其代码定位到 WinRT API 组,应用程序就适用于 WOA。此外,开发人员可以将现有的 C、C++、C#、Visual Basic 或 JavaScript 代码加入其应用程序,但这些代码必须定位到针对 Windows 服务的 WinRT API 组。Windows 应用商店可以同时承载、分发和服务于针对 ARM 及 x86/64 开发的应用程序(如果应用程序中存在本地代码,则需要发布两个版本)。

我们之前也曾展示过用于连接到基于云的服务(例如,Hotmail、SkyDrive、Messenger 以及通过这些服务连接到的第三方服务)的 Microsoft 新 Metro 风格应用程序。例如,我们的邮件应用程序会连接到行业标准的 EAS,其中涵盖大量基于企业和用户的邮件、日历和通讯录。借助现有 Live Connect 功能,您可以与自己的 Facebook 好友聊天,或在 Metro 风格应用程序中与 LinkedIn 或 Twitter 供稿保持同步,这些在您能够通过 Microsoft 帐户连接的超过 100 种服务中只是冰山一角。这些应用程序将随 WOA 一起提供,当然,用户可以删除这些应用程序,设置不同的默认应用程序,并使用 Windows 应用商店从第三方获取相似的应用程序。此外,Windows 应用商店中的任何 Metro 风格应用程序都可以使用其选择的任何服务,无论这些服务中是否包含任何 Microsoft 服务,范围包括登录、通信、应用程序内支付和广告服务。

在 Windows 8 的下一个预发布版本中,您将看到 Microsoft 提供的各种 Metro 风格应用程序,这些应用程序支持各种行业标准媒体和文档格式,此外还带有支持标准 HTML5 Web 平台的 Internet Explorer 10。我们相信 WOA 中提供的标准支持已跻身一流水平,具有相当高的竞争力。当然,我们希望在为最终用户提供选择方面保持行业领先地位,允许您控制系统中的应用程序并选择希望运行的应用程序。

Windows 桌面的可用性是 WOA 的重要组成部分。您可以通过熟悉的桌面与 PC、特定文件、存储设备、网络及各种外设互动。例如,您可以使用 Windows 资源管理器连接到外部存储设备,通过网络共享传输和管理文件,使用多个显示器,并选择是否使用外接键盘和鼠标来进行这些操作,一切由您掌控。熟悉、快捷、高效、实用。如果需要,您可以深入控制面板设置,对系统进行精细控制。如果您在具有触控功能的 PC 中使用开发人员预览版,您将体验到针对触控交互优化的桌面用户界面以及改善的用户界面情境支持。

同时,WOA(以及 Windows 8)的设计着重于 Metro 风格的应用程序,用户无需花费太多时间在桌面上。桌面的可用性不会导致额外的运行时开销。该功能只是供您在需要时使用。接下来,我们将介绍幕后的技术,看一看它们为何能够确保桌面不会影响 WOA PC 的系统安全性、长期稳定性、性能或电源消耗。对于试用过开发人员预览版的用户,您将注意到用户体验的持续演变,并在接下来的 Consumer Preview 中发现大量改进。

一些用户建议我们将桌面从 WOA 中移除,以便与过去彻底切割,并提供更加简化或高效的方法。对我们来说,放弃某种对用户影响不大的实用功能,是我们不希望在 PC 发展过程中看到的妥协。多种共存的模式对于任何平台来说都至关重要。无论通过支持转换到未来的编程模式(如果可能,包含虚拟化或仿真解决方案),支持同一平台上的多种编程模式(例如本地和基于 Web 的应用程序),或支持不同的工作方式(用于不同情境的命令行界面或 GUI),无论如何,对于任何平台来说,多种模式的共存代表了提供真正毫不迁就体验的灵活解决方案。

在 Windows 桌面中,WOA 包含开发代码为“Office 15”的全新桌面版本 Microsoft Word、Excel、PowerPoint 和 OneNote。WOA 将提供用户熟悉的全套 Office 工作效率软件及文档兼容性、行业领先的硬件加速 Web 浏览器、来自 Microsoft 的应用程序,以及对 Windows 应用商店中各种应用程序的访问权,绝对堪称一款毫不迁就的产品。

WOA PC 将为您提供集应用程序、媒体消费、娱乐、移动和工作效率等功能于一身的真正毫不妥协的体验。WOA 中的新版 Office 应用程序已针对触控和降低电源/资源消耗进行了显著优化。正是这些工程努力让我们得以顺利在 WOA 中提供 Office 软件,这些优化并非简单的重编译或移植,基本上相当于重新设计一款具有完整和一致的用户体验,并准确还原其 x86/64 对应版本的新产品。

您可以在 Office Exec 博客中查看有关开发代码为“Office 15”的下一个 Microsoft Office 版本的更多详情。

针对 ARM 的工程

让 Windows 顺畅地在 ARM 体系中运行是一项艰巨的工程任务。展望未来您将发现,我们历年来向 Windows 中添加的各种功能,正是 ARM 产品的用户迫切渴望和需要的功能,这些设备虽然改变了外形并着眼于移动性能,但在追求毫不迁就的 PC 这一点上与我们殊途同归,因此我们义不容辞地承担了这项工作。虽然做出“从零开始”这样豪迈的宣言非常诱人,我们还是更信赖在坚实基础上发展而来的技术。在这种意义上,Windows 的核心是最坚实、最易扩展且最可靠的平台之一。提供毫不迁就的体验这一信念激励着我们不断迈进。

为了满足客户对于长期可靠性、电源消耗、资源使用和“实时”连接性和可用性的期望,我们必须对 Windows 的某些元素进行重新设计。显然,x86/64 版 Windows 8 产品中同样需要实施这些工作,因此我们针对 ARM 进行的大部分改进将同样适用于新鲜出炉 Intel 和 AMD 产品(由于与本文主题无关,暂且不作详述)。ARM 为我们提供了一个验证各种操作系统行为和编程模式假设的机会,将帮助我们取得长足的进步。

您将注意到 WOA 中的一个新变化,这就是您不需要关闭一台 WOA PC。WOA PC 将不再保留传统的休眠和睡眠选项。取而代之,WOA PC 将始终在新设计的“连接待命”模式下运行,该模式与目前手机使用的模式非常相似。当屏幕开启时,您将能够正常访问 WOA PC 的全部功能。当屏幕关闭时(通过按下电源键或计时器),PC 将进入一种全新的超低能耗模式,在电池供电的情况下可维持数周之久。此外,系统自始至终都会动态调整电源消耗,并尝试减少未使用系统部分的能耗。对于最终用户,WOA 提供的独特功能允许您控制哪些程序能够在后台执行,因此这些应用程序将始终保持连接状态,并随时更新新邮件等信息。连接待命渗透到了 WOA PC 设计的每个角落,包括:硬件、固件、操作系统、WinRT 平台和应用程序。连接待命不会仅限于 ARM 体系结构,我们正在努力将这些功能移植到 x86/64 SoC 产品中。

在我们目前熟悉的 PC 体验中,运行 Windows 的 x86/64 体系结构硬件需要遵循一系列技术规范,以方便 Windows 代码跨各种 PC 平台安装和运行。这对于 Windows 的可扩展性来说功不可没。这种开放性也是 PC 革命的标志之一,并代表了业界自 1980 年以来的集体努力。随着新硬件的陆续推出,这些基准也在不断演进,PC 的体系结构也随之改变。这种做法在 Windows 8 中也绝对不会改变 — 数百万人已经体验了我们的 Windows 8 开发人员预览版,Windows 8 将能够在任何 Windows 7 徽标 PC 上运行,并将兼容所有针对 Windows 7 设计并在 Windows 7 中受支持的所有现有软件和外围设备(当然,需要由制造商提供针对 Windows 8 的支持)。

ARM 产品的授权发行方 ARM Holdings 在设计方面未采取这种标准化的做法 — 每家制造商生产的每种设备都将是独一无二的,每种设备上运行的软件同样如此。虽然具有不断改进的标准指令集和 CPU 体系结构(例如,添加 64 位支持和多核),但 CPU 和其他组件之间的大量联系全部由授权商通过创新的方式引入 ARM 平台。设备的内部可能存在着共通性,但对用户来说并不明显。该体系结构对于最终用户在设备上安装其他操作系统(或操作系统版本)或扩展操作系统设置了技术限制,因此这些操作通常难以实现,设备制造商也不会提供支持。设备制造商将与 ARM 合作伙伴合作,并制造与一组软件严格绑定的设备(有时过程相反),而消费者购买的是这一整套产品,并通过单一的渠道获得此类产品的服务和更新。这种跨合作伙伴的集成工程在此类嵌入式设备中非常常见。在这些方面,WOA 与 x86/64 版本的 Windows 有很大不同。

在 WOA 中,我们的出发点是定义一种开发计算平台的新方式。我们的方法旨在确保软件和外设能够从 ARM 体系结构提供的多样性中获益,拓宽设备类型和制造商的选择范围,并保持平台的开放性。同时,我们也向用户承诺,WOA 将在所有设备中提供一致的功能、体验和基准性能。WOA 借鉴了众所周知的 Windows Phone 7“机壳规格”方法的部分元素。WOA 实施的规格允许跨维度的多样性,同时也意味着追求精益求精的工程和产品,这些全部将在运行相同操作系统二进制的 WOA PC 上实现。

针对 ARM 的工程起始于 Windows 内核的构建,以实现在 ARM 上的启动和运行。您可以想象,这是一项多么艰巨的任务。一些人可能会认为这项工作只不过相当于“移植”或“再编译”一组新指令集的代码。事实上,对于内核及连接硬件的 Windows 组件来说,工作远非如此简单。除了内核,我们还需要开发用于构建 Windows 的 ARM 编译器和工具(包括 Visual Studio)。

在较高的层级(应用程序层),代码的可移植性将大大增加,这要归功于我们长期针对多种体系结构(x86、x64、PowerPC、Alpha、MIPS、IA64 等等)进行开发的经验。即使内核本身也有大量可供移植的代码。在硬件/软件的结合处和所有涉及操作系统与硬件互动的位置,Windows 都针对这一新平台进行了重新设计。ARM 的定义中没有 PCI 总线或 SATA 等常见子系统。虽然某些 ARM 实施中具有类似的概念,但并不常见。所有这些工作都是通过自项目开始后对 ARM 硬件的三次主要修订完成的。

我们先来介绍一下其中某些特定类型的工作,我们在内部称此类工作为“移植”,但事实上的工作内容远不止于此。请记住,这些工作全部是与用户体验、Windows 应用商店、WinRT 和 Windows 8 中的新功能开发同步完成的。

移植的准备工作

在移植工作开始之前,我们首先需要一组用于构建 Windows 的 ARM 编译器和工具。获益于使用 ARM 处理器的其他 Microsoft 产品(例如,Windows Phone 和 Windows Embedded),我们积累了一些零散的工具,但还要进一步改进这些工具以用于构建 Windows。这些工具将向开发人员开放,如果您正在 Windows 8 开发人员预览版中使用 C#/VB/XAML/HTML5,那么您就已经亲身体验过它们了。C/C++ 需要通过 ARM 本地硬件进行测试,我们将在下文中详细介绍。

启动 Windows 的核心

工具就绪后,我们就可以着手移植 Windows 启动环境并开发系统固件规格了。我们甚至开发了自己的原型固件。以下是其中的几个部分:

  • UEFI 固件是 WOA 系统的最底层,可为加载操作系统提供一致的服务。在 WOA 中,我们创建了用于启动将交付合作伙伴的系统的固件。WOA 系统还包含基于固件的 TPM,用于实现可靠的启动和存储加密。例如借助 TPM,我们成功实施了可验证系统未遭恶意软件侵害的可靠启动。
  • ACPI 固件用于在启动过程中管理平台内的即插即用设备,同时还负责 SoC 外部设备(例如,传感器、触控设备等等)的电源管理。多年以来,即插即用总线和 ACPI 已经成为了 PC 的标准配置,操作系统软件和驱动程序只需“遍历设备树”便可查找 PC 中的所有设备。在嵌入式 SoC 设计中,未提供查找连接到 SoC 设备或查找 SoC 如何连接的“设备树”或类似功能。在 Windows 8 中,我们尝试定义了一种新标准,使用表格描述系统配置,并允许软件轻松地从这些表格中读取内容并配置系统。

通过固件,系统可以依此载入启动管理器、启动加载器、内核、HAL 和启动设备驱动程序。

  • Windows 硬件抽象层 (HAL) 支持多样化的核心系统资源(计时器、DMA、中断控制器)。Windows 从设计之初就支持多指令集体系结构 (ISA),而 HAL 是适应通常随新 ISA 一起出现的不同系统体系结构的关键。通过抽象化硬件层,操作系统自身将不需要进行调整以适应新 SoC 的核心系统资源。ARM 平台的多样性迫使我们在设计 HAL 时将抽象化支持提升到新的水平。Windows 8 HAL 新增了一项功能,允许核心系统资源通过 HAL 的扩展组件插入,该扩展组件类似中断控制器的驱动程序。
设备和总线

为了加载设备驱动程序并继续 Windows 启动,我们必须为低能耗的新型总线设计几种新驱动,以及支持连接这些总线的设备驱动。

我们的设备策略是广泛使用标准协议和类驱动。下文将介绍两个例子,第一个是通过 I2C 的 HID 驱动程序,我们将其用于触控控制器和多种传感器,另一个是用于通过 USB 连接的移动宽带收音机的类驱动。当然,Windows 内部有许多类驱动,您在插入各种 USB 设备(例如,存储设备、鼠标或键盘)时就曾使用过它们。

  • I2C / UART 等低能耗串行总线在 ARM PC 中将比 x86 PC 中更为常见。这些总线通常具有较低的数据传输率,同时能耗也非常低,在某些情况下,仅为传统总线的 1/10。为这些总线提供支持对于减少 WOA 的整体能耗和延长电池寿命至关重要。我们将这些总线统称为简单外设总线 (SPB) 并在 WOA 中为它们开发了新的接口。接口就绪后,我们还必须解决一个缺口。在 Windows 中,我们定义了许多设备类型,并通过类驱动为其提供原生 USB 支持。这些类型未在 I2C 中定义,因此系统将无法为这些设备提供类驱动支持。其中一个常见的设备类型为基于人机交互设备 (HID) 协议的设备。HID 是键盘、鼠标、触摸板、麦克风、按钮、触摸屏等设备的首选协议。通过定义标准协议并为 I2C 中的 HID 提供驱动程序支持,我们将与合作伙伴一起努力,改进其基于 I2C 设备的固件,以通过单个类驱动程序提供支持。例如,通过支持 I2C 中的 HID,触控控制器可以利用该接口及 Windows 原有的输入支持。
  • SD I/O 允许您连接低能耗的 Wi-Fi 收音机。目前,PC 中的收音机通过 USB 或 PCI-E 连接。我们添加了 SD I/O 支持,以便在提供高数据传输率 (100 MB/s) 的同时延长电池寿命。WOA 上的 Wi-Fi 支持也允许高效分流,以便在连接待命状态下保持连接的同时尽可能减少能耗。
  • 嵌入式 MultiMediaCard 存储 (eMMC) 是 ARM 设备上的事实存储标准(因为此类设备大多不支持 SATA)。这对我们来说是一项有趣的挑战,因为 Windows 支持快速工作的磁盘和超高带宽的数据传输。除了支持 eMMC,我们还对操作系统性能实施了几项优化以减少并联合存储 I/O,从而减少了存储过程的读写次数。
  • 通用 I/O (GPIO) 驱动程序支持将按钮、中断或其他 I/O 连接到 ARM 处理器。
  • 除了 GPIO 驱动程序,还有一个用于 Windows、电源和音量按钮的按钮驱动程序。ARM 设备上的按钮没有统一的标准。每种系统需要为所有硬件按钮设计专门的驱动程序。
  • 我们构建了一种用于管理 SoC 电源、总体平台电源和连接待命开/关使用模式的新电源框架
进入 [Start](开始)屏幕

当固件、HAL、启动服务、启动设备和总线一切就绪后,我们就可以载入剩下的系统组件,并进入桌面和 [Start](开始)屏幕。

  • 针对 WOA 的 ARM SoC 具有兼容 DirectX 的 GPU (DX),可以为 Internet Explorer 10 中的图形、Windows 的用户界面和 Metro style 的应用程序提供加速。充分利用兼容 DX 的 GPU 对于提供及时响应的用户体验来说至关重要。对于每个 WOA 目标,ARM 合作伙伴都需要开发一种兼容 DX 的图形驱动程序。当今 GPU 的复杂性甚至超过了 CPU,因此这将是一项非常复杂的代码编写任务。为了将 Windows 8 引入这些尚未提供图形驱动程序的新 SoC,又因为 ARM SoC 尚未制定可用于兼容模式的行业标准 VGA 子系统,我们的图形团队不得不编写了一种可直接作用于硬件框架缓冲区的软件 GPU 驱动程序。除了便于开发,当不存在正常 GPU 驱动程序时,它还能帮助我们重新设计 Windows 中使用该软件 GPU 驱动程序的其他组件。例如,运行 Windows 安装时或当 Windows 进入罕见的“蓝屏”时,我们将能够赋予其更为友好的外观,甚至将其本地化,这样,所有平台上的坏消息也会看起来更可爱一些。这个简单的例子同样适用于 x86/64 体系结构。
  • WOA PC 会利用硬件支持将特定任务从主处理器分流至集成的硬件子系统。该功能将改善性能和电池寿命。例如,在观看电影时,该处理将通过多媒体分流(例如,分流至专用的处理器)完成,而所有其他处理将尽量抑制。由于多媒体分流针对播放进行了优化,您将可以在电池耗尽前观看多部电影,PC 也可以设计的更加轻薄小巧。还可以举一个例子,如果您正在同时处理文档和观看电影,则电影将在分流硬件上运行,这将有助于改善系统的整体响应。WOA 充分利用了多种类型的分流,包括多媒体编码和解码,以及针对 Bitlocker 和 EAS 的安全分流。此类工程也适用于 x86/64 系统,这些系统也支持分流,类似功能最初在 Windows 7 中引入。
连接的设备服务

目前为止,我们已经实现了大部分系统功能,接下来只要引入服务就可以实现全部 Windows 功能了。这些在 Windows 支持的体系结构中非常常见,因此开发人员可以在 Metro 风格的应用程序中充分利用它们。

  • 移动宽带 (MBB) 类驱动。通过创建类驱动,我们得以更加轻松地向所有 Windows PC 中添加宽带功能。WOA 催生的这一功能将使整个生态系统受益。
  • 打印机类驱动。在 Windows 8 中,我们重新设计了打印基础架构,以添加类驱动支持。目前市场上销售的大部分打印机都支持使用类驱动,这意味着在 WOA 中,您将无需额外的驱动程序便可实现“即插即用”。虽然新的体系结构需要实现很多功能,但我们从一开始就将打印视为 WOA PC 不可或缺的功能之一。
  • GPS。Windows 提供一种定位功能,可通过 Wi-Fi 访问点和后台数据库对 PC 进行三角定位。此外,具有移动宽带连接的系统还将通过全球导航卫星系统(GNSS,在美国称为 GPS)接收器,在户外提供精确的定位。定位平台会根据应用程序的准确请求来选择正确的位置提供商,在优化能耗和准确性方面起着关键的作用。
  • 传感器(加速度计、转向计、陀螺仪、罗盘、磁力计)。最近的一篇博文曾介绍过“传感器融合”,以及我们如何向 Windows 中添加传感器支持。这项工作同样适用于所有基于 SoC 的体系结构并利用通过 I2C 的 HID 协议。
  • Bluetooth。WOA 支持与 x86/64 版 Windows 8 相同的 Bluetooth LE 和配置文件,以及通过低能耗 UART 连接到 Bluetooth 射频。
  • 通过 USB 和 IP 的 MTP。ARM 版的 Windows 为用户提供了通过介质传输协议 (MTP) 将便携设备(例如,手机、音乐播放器、相机)连接至系统的功能。这些 MTP 合规的设备可以利用收件箱 Windows 类驱动通过 USB 或 IP 连接,并允许用户与常用 Metro 风格应用程序交换数据。
  • 基于 Windows 更新的服务。对于从顶层到底层的所有平台代码(操作系统、驱动程序、系统和设备固件),任何 WOA 系统都将通过 Windows 更新 (WU) 获得服务。为了在 WOA 系统中实现安全可靠的系统固件更新,也为了实现驱动程序定位(即针对每种设备提供最适合的驱动),我们向 WOA 中添加了 WU 支持。

您可以看到,这些工程努力中的一部分仅适用于这种全新的硬件平台。其中一些引入了对全新硬件类型的支持。这项工作的大部分成果将适用于 x86/64 平台,尤其是尖端产品,例如,Intel 在 CES 上展示的全新低能耗 ATOM? 处理器

还有大量成果将融入应用程序层,并成为 //build/ 大会上所介绍的新 WinRT API 的组成元素。例如,我们设计的内核支持连接待命状态,这符合整体 WinRT 应用程序模型乃至工具集延长电池寿命的理念,这一理念也贯穿了 WOA 和 x86/64 版 Windows 8。

我们曾提到,Windows 基本上是通过可以直接应用于 ARM 的代码构建起来的。这些子系统包括 Windows 桌面、应用程序和支持 API,但我们也针对优化资源和电源利用率对它们进行了大幅修改。事实上,您可以查看这幅运行完整 Windows 桌面的早期 ARM 设备(一款早期 Windows Phone)的照片。在 WOA 开发早期,我们只能借鉴已经推出的手机等 ARM 设备(当时 ARM 平板电脑还尚未推出)。我们觉得您可能会有兴趣看一看我们在早期调试完全加载到 RAM 的 WOA 时拍摄的几张照片(未经修改)。请注意:这些照片并不代表我们的产品规划或产品暗示。

 MSDN Blog:针对 ARM 处理器体系结构构建 Windows - 乂乂 - 分享,态度 ·~~

MSDN Blog:针对 ARM 处理器体系结构构建 Windows - 乂乂 - 分享,态度 ·~~

测试

您可以想象我们如何在实验室中测试 WOA。对于 x86/64,我们针对每日的版本使用大型实验室(数千台实体和虚拟计算机)运行高度自动化的测试。WOA 需要我们重新设计自己的实验室和测试流程。在测试 x86/64 时,我们只需订购数千台机架式服务器,甚至使用虚拟服务器;但对于 ARM,我们无法买到能够运行 WOA 的机架式服务器。由于我们正在进行高度集成的硬件/固件/软件开发,因此虚拟化也无法提供帮助,我们必须设计出自己的方案。

我们将数百块 ARM 开发板与一块定制的 I/O 板装入机架,并连接到我们的测试基础设施。我们的原创设计聚焦于支持一个机架中的 300 台 ARM 设备,但我们最终还是倾向于在 1U 设置中对定制 I/O 板进行诊断和可用性测试。

我们设计了可装入标准服务器机架的 1U 底盘。无论是完整大小的设备还是主板都能放入这种底盘。当 SoC 板、IO 板和底盘装配到一起时,整个系统无论外观、感觉还是操作都与标准架装 PC 别无二致,并且正好装入现有的实验室基础设施。

每个 42U 机架包含 32 块 WOA 底盘,外加网络交换机、调试主机和 USB 集线器。截至三月,我们将拥有 100 个装满的机架可用于 WOA 测试。

我们还需要移植测试工具基础设施和测试本身,这也是个不小的挑战,但这也将确保 WOA 能够获益于 Windows 8 的丰富自动测试。以下照片展示了我们新设计的机架,以及其中装入的主版和调试端口:

MSDN Blog:针对 ARM 处理器体系结构构建 Windows - 乂乂 - 分享,态度 ·~~

MSDN Blog:针对 ARM 处理器体系结构构建 Windows - 乂乂 - 分享,态度 ·~~

针对 ARM 的开发

事实上,这部分的工作要比表面上更加深入。我们也利用这个机会对每个 Windows 子系统进行了大规模的重新设计。在构建 WOA 和 Windows 8 的过程中,我们在减少 Windows 的电源消耗和资源使用上投入了大量精力,同时也在致力于改善现有应用程序负载的实际性能。在上一篇有关启动、电源管理和内存使用的博文中,您可以看到这方面工作的一些成果。

我们已经介绍过,WOA 将不会支持任何类型的虚拟化或模拟方法,并且不支持移植或运行现有 x86/64 应用程序。支持各种仿真方式有悖于聚焦系统可靠性和可预测性这一主旨,因为现有代码并未像 WOA 一样针对该平台进行优化。通过虚拟化或仿真方式运行的软件将消耗难以接受的大量电池寿命和 CPU 等系统资源。仿真和虚拟化现有 x86/64 软件还需要具有鼠标和键盘的传统 PC 环境,而 WOA PC 中一般不具备这些条件。

如果允许移植现有代码,我们将无法兑现提供更长久电池寿命、可预测性能及长期可靠体验的承诺。目前 Windows 应用程序所使用的惯例并未提供这些特性,无论是后台进程、投票循环、计时器、系统挂钩、启动程序、注册表更改、核心模块代码、管理权限、未签名的驱动程序、插件或其他常见技术的宿主都存在一定的风险。通过避免这些设计概念,WOA 将提供空前的用户满意度:由于应用程序与系统及其他应用程序间的隔离,您的 WOA PC 将长期处于良好的运行状态,同时您还可以控制哪些软件可以代表您运行,并充分利用多样化的硬件所提供的功能。

我们将为 WOA 用户提供前所未有的安全水平视为重中之重。在一次公开活动中,我们曾被问及是否会“令现有病毒和恶意软件更易于运行”。现在您可以看到,答案显然是否定的。事实上,WOA 只支持运行通过 Windows 更新分发的代码和通过 Windows 应用商店发布的应用程序。众所周知,安全是整个行业面临的多层面问题,此问题涉及的因素太多,因此任何系统或平台都无法保证绝对安全。

如果需要运行现有 x86/64 软件,您可以选择使用 x86/64 版 Windows 8。如果您正在考虑一款非 Windows 设备,我们认为 WOA 将会是一个更好的选择,因为 WOA 产品将提供丰富的外形、外设、Windows 应用商店应用程序(及开发人员平台)、Office 应用程序和一系列固有 Windows 功能。

当然,我们理解 Microsoft 和世界各地的许多开发人员已经熟悉了现有的编程技术,而过渡到 WOA 需要投入大量精力。开发基于 WinRT 的应用程序解决了这些和许多其他难题,WinRT 在提供现代软件所需全部功能的同时,还能避免可能降低总体用户体验的陷阱和误区,并针对工具、语言和开发人员提供了各种支持。

希望将现有应用程序移植到 WOA 的用户可以选择以下两种方式。许多应用程序可以通过为现有数据源或应用程序,以及通过 Web 服务 API 的通信构建新 Metro 风格的前端来实现这一目标。这种方法在业务线应用程序和用户 Web 属性中非常常见,并代表了接入富用户交互模式的最佳方式,在这种模式下,可以实现新应用程序间的交互和信息共享。当然,这种做法不仅可以用于前端,也可以用于本地数据,因为 WOA 能够提供对文件和外设的完整访问。其他现有应用程序可以通过重用大量引擎或运行时代码,并为其加上 Metro 风格体验的外壳来实现这一目的。这将花费一定的时间,并代表了将包含大量知识产权的应用程序移植到 WOA 和 WinRT 的方式。在所有情况下,WinRT 都代表了可供开发人员构建针对 Windows 8 软件的一组全新 Windows 操作系统服务。

返回到 //build/ 大会上发布的体系结构图,从第三方开发人员的角度,最好将 WOA 看作一种与所有其他 Windows 产品共享 Windows 核心操作系统的 Metro 风格平台。Windows 核心操作系统已经过调整和重新构建以支持 ARM 平台,并且支持 WinRT API 和由第三方使用的编程模型。

MSDN Blog:针对 ARM 处理器体系结构构建 Windows - 乂乂 - 分享,态度 ·~~

针对 ARM 的工程是一项浩大的计划,许多 Windows 团队都参与其中。下一步,我们将继续推广 WOA 代码,但在此之前我们要先将 WOA PC 推向市场。

推出 WOA PC

自从 Windows 7 项目结束以来,我们与 PC 制造商在改进 Windows 和构建 Windows 8 等方面进行了大量合作。将新型 PC 推向市场是我们重要的合作成果之一,您在 PC 上看到的“Designed for Windows”徽标代表了大量合作伙伴的共同努力,我们为的只是坚守同一个承诺:将卓越的新型 PC 推向市场。x86/64 PC 还将按照原来的模式推向市场,我们将引入 USB 3.0、UEFI、触控和传感器等新技术,并在新版本的 Windows 中为这些新硬件提供支持。这将是一段长期的共同努力,许多改进将陆续引入这一产品周期。

WOA PC 的面市将是新系统的首次推出,这是一个全新的 PC 生态系统,PC 制造商可以利用这一机会,推出具有全新功能的下一代 PC。这些新型 PC 的突出优势在于以下三点:轻薄小巧的工业设计、超长电池寿命和集成的质量。

由于 SoC、外设、固件和操作系统之间的紧密联系,WOA PC 的研发过程超出了一般意义上的业内合作,可以说是众多参与者共同努力的结晶。在合作过程中 Windows 团队中的软件工程师使用烙铁参与了芯片的调试,而硬件工程师也使用 Visual Studio 参与了用户界面代码计时问题的调试。每款 WOA PC 都是独一无二的产品,从组件、固件、驱动程序、最终装配到来自 PC 制造商的应用程序,无不体现着这种多样性。我们也将新的 ARM 设计引入了模拟和仿真平台,以便在芯片问世之前,进行第一时间的测试。我们将这些生态系统集合到一起,旨在实现低能耗的总体平台设计,这不仅包括出色的 SoC,还包括高效的射频、传感器,乃至高效的 DC 电源基础架构。这些全部是为了实现超轻超薄的 PC、超长电池寿命以及高质量的工程,以便通过针对 Windows 8 设计的应用程序和服务提供绝佳的体验。

虽然每款 WOA PC 都截然不同,但它们将通过 Windows 为您提供一致的体验,同时还要允许独特而创新的硬件发挥其优势,这正是操作系统应该发挥的作用。为了实现这一目标,我们与上述多家 ARM 许可商(Texas Instruments、Qualcomm 和 NVIDIA)进行了深入合作。它们都将与合作伙伴联手将 WOA PC 推向市场。这些 PC 将全部专门针对 WOA 设计和制造。从芯片到固件和驱动程序,全部针对 WOA 进行了优化。合作伙伴正在努力开发创新的工业设计和外形,争取突破平板电脑的固有定义。这些设备目前仍处在开发阶段。我们的共同目标是帮助 PC 制造商同时推出使用新一代低能耗高性能平台的 WOA PC 和针对 x86/64 版 Windows 8 设计的新型 PC。

虽然无关本文的主旨,我们还是希望向您保证,用户购买的 WOA PC 上将有明确的标签和品牌,避免与 Windows 8 x86/64 版混淆。此类 PC 中将预安装操作系统、所有驱动程序及支持软件。WOA 将不会作为一款软件单独发布,因此您将无需担心安装哪张 DVD,及其是否适用于某台 PC。

WOA PC 将仅通过 Windows 或 Microsoft 更新获得服务,而用户应用程序只能通过 Windows 应用商店获得,您将无需担心程序是否能够运行,因为您不会通过 Windows 应用商店以外的体验下载或通过 DVD 安装应用程序。WOA PC 在使用和管理方式上将非常类似消费电子产品。例如,我们曾经详细介绍过新提供的刷新和重置功能,对于 WOA 来说,这些功能就等同于“清洁安装”或镜像。

后续步骤

这个话题还有太多内容可供讲述,我们计划在后续博文中详细介绍 WOA 的工程内容,以及我们根据读者的反馈对操作系统进行的改进。许多人都希望自己能够亲身体验一款软件。当然,x86/64 版 Windows 8 可以利用现有的 Windows 7 PC 来运行,但 WOA 却没有现成可用的硬件。在接下来的计划中,我们准备将 WOA 软件与开发中的硬件一起向外发放。

为了这次发布,我们将随下一个 Windows 8 里程碑版本提供少量专门针对 WOA 设计的测试 PC。这些设备仅供开发人员和硬件合作伙伴测试之用,并不代表或暗示产品的实际外形。这些测试设备带有诊断工具和端口。这种开放性设计是为了方便调试。它们不具有最终产品将使用的最终组件或固件(以及电源或温度管理)。它们使用廉价的塑料制成。您可能在 CES 的展示或演示上看到过类似的设备,而我们之前的所有演示都使用了某种类型的这些测试 PC。这些 PC 能够代表 WOA 及其体验,但它们提供的最终体验不会超出 x86/64 版 Windows 8 的当前范围。这些设备上运行的 Windows 版本将与下一个开发里程碑到来时,向 x86/64 测试者发布的版本相同。

由于这些 PC 是小批量的定制版本,因此制造和发放的成本很高。这些设备将通过开发人员传教士发布。我们介绍这个情况并非为了引诱您或招揽候选人,而是希望将这一信息通过网络传达出去。所有设备都已预定并分配完毕。一方面,这样直截了当的结果可能会让您的幻想破灭,但另一方面,这也是为了贯彻我们在开发 Windows 时秉持的透明这一理念。Windows 8 项目的规模之庞大,以及我们所披露的信息之详尽和展开的对话之深入,都是史无前例的。

在这个月底,x86/64 版 Windows 8 Consumer Preview (Beta) 将提供下载。我们放弃了 Beta 这个名称,因为该术语的含义已经超出了“免费发放的测试版”这一概念,我们不希望因此造成混淆。为了确保我们所承诺的开放程度,您将无需预先注册或加入某个测试计划,而只需下载并将其安装到一台 Windows 7 徽标 PC 上(虽然也支持虚拟机,但这不是尝试消费者体验的最佳方式)。我们已经取得了大幅度的进展,相比 5 个月前发布的 Windows 开发人员预览版,您将看到许多明显的变化。再次提醒您,Windows 8 和 WOA 仍处在开发阶段,从预发布到发布的过程中,还有许多工作等待着我们去完成。我们始终将质量视为重中之重。代码目前尚未完善。

这一里程碑的到来让我们倍感激动。开发新版本 Windows 的重任让我们诚惶诚恐,而发布 WOA 等全新平台的挑战让我们即激动又倍感压力。我们欢迎各位在不久的将来亲身体验一下 Windows Consumer Preview。

代表整个 Windows 团队向您表示感谢!

Steven Sinofsky


【from http://blogs.msdn.com/b/b8/archive/2012/02/09/building-windows-for-the-arm-processor-architecture.aspx】
【本文链接:http://zwkufo.blog.163.com/blog/static/258825120133604657872/ 】
  评论这张
 
阅读(687)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017