下载本文的PDF版本 PDF

Longhorn 将平台应用与核心操作系统紧密结合

微软的新操作系统会成为开发者的美梦成真吗?

Alexander Wolfe,科学撰稿人

称之为微软所有事物的全套工具。这是我开始思考 Longhorn 的方式,Longhorn 是微软的下一代操作系统,预计于 2006 年发布。该操作系统将预示着主流计算向 64 位过渡,而不仅仅如此。它将标志着一种新的、多方面的编程模型的出现。

Longhorn 打破了传统的计算机科学分类法,在传统分类法中,操作系统几乎与硬件抽象层脱节,而 Longhorn 更像是一个多触角的容器,容纳了各种管理和应用程序工具。

Longhorn 的基本操作系统将专注于中断和内存的控制,以及系统资源的划分,以防止应用程序崩溃。在此方面,Longhorn 将延续 CLR(公共语言运行时)的概念,微软已将其作为其 .NET 计划的一部分引入。

CLR 强制将进程划分为托管代码区域,从而封装应用程序。它处理诸如内存管理和安全功能等底层细节,以避免崩溃并防止恶意代码的执行。

来自超线程以及英特尔和 AMD 即将发布的多核处理器的支持也将是 Longhorn 的关键要素。

然而,Longhorn 的配套软件包将构成非常广泛的应用程序抓取——这来自一家正受到(例如,欧盟委员会)压力要求解绑的公司。

请注意,我在这里不就微软的做法表明立场;我只是在报道它。为了替 Redmond 辩护,我想指出,x86 平台已经变得如此复杂,以至于微软通过一个连贯的、总体软件架构来解决平台所有要素的举动,实际上可能是唯一明智的做法。随着 x86 微处理器即将通过 AMD 的 Opteron 和 Athlon 64 以及英特尔新的 32/64 Xeon 中的指令集扩展扩展到 64 位,这种复杂性正变得显而易见。(完全 64 位的架构,如英特尔的 Itanium 2,正在高端服务器而非主流 PC 中得到应用)。与此同时,周围的 PC 平台正在成为下一代 I/O 通道(如 PCI Express)、DDR2 形式的更快内存以及日益复杂的图形架构的宿主。

回到 Longhorn。这个操作系统将实现一个新的文件系统 (WinFS) 和一个新的编程模型 (WinFX)。其配套软件包 Indigo 将为 Longhorn 平台提供 Web 服务。Yukon 将交付微软下一代 SQL Server 实现。Avalon 将构成媒体呈现技术组件。

先进的 Web 服务作为 Longhorn 架构关键组成部分的出现,是由于互联网的成熟以及微软成为企业计算领域主流参与者的意图所推动的。

反过来,这一策略将使 XAML 在 Indigo 和 Avalon 中都扮演重要角色。XAML 是一种旨在支持 Web 服务的声明性标记语言。Longhorn 程序员将能够使用 XAML 来设计其应用程序的用户界面。XAML 将提供高级语法,微软希望软件设计师使用它来创建应用程序的前端。微软正在提供挂钩,以便 XAML 描述符可以调用来自 .NET Framework 的功能。.NET Framework 是微软庞大的交互式开发环境,包含编程语言和编译支持以及运行时存储库。

为了用更底层的业务逻辑填充顶层 XAML,将鼓励开发人员使用“过程式 .NET Framework 语言”,也就是微软自研的编程语言——例如 C# 或 Visual Basic。(他们可以使用 C++,但该语言与微软软件库的联系将更加薄弱。)

Avalon 是 Longhorn 的媒体呈现技术组件,它被定位为一个新的图形子系统,作为 Longhorn shell 的基础。Avalon 将附带一套完整的 Longhorn 用户界面组件,在这里,XAML 也将充当第一线工具。

由于 XAML 是一种描述托管对象的通用机制,微软正在将其纳入服务,以构建 Windows Forms UI(用户界面)和 Avalon UI。(程序员还可以使用 XAML 混合 Avalon 和 Windows Forms 控件。)

微软为 Avalon 大力宣传的两个功能是可组合性和导航。使用前者,可以通过组合旧的 Windows Forms 来构建新的 Windows Forms——也就是说,从其他控件构建新的控件。

Avalon 将消除以前对可用于表单的控件树深度的限制。微软表示,这将使创建需要高度自定义控件的应用程序成为可能。虽然放宽此类大小限制应该使软件重用更容易,但一些爱开玩笑的人可能会说,这只会鼓励更加臃肿的 kluge(蹩脚程序)。

无论如何,Avalon 还将实现一个配备新导航功能的应用程序模型,这将使开发人员更容易在应用程序内的页面之间移动。这再次与 Web 浏览范例相一致,后者对 Longhorn 架构师的思维产生了如此大的影响。

兼容性

也许 Longhorn 最突出的特点是,行业向 64 位过渡使得微软能够彻底改造其系统软件,而无需完全向后兼容的历史限制。

“在 Longhorn 中,我们能够实现某些在向后兼容的操作系统中难以实现的功能,”Longhorn 的 Indigo Web 服务组件的微软架构师 John Shewchuk 在电话交谈中告诉我。这些功能包括对下一代消息传递协议的支持。“其中一个杀手级功能是从网卡进行直接内存访问的能力,”Shewchuk 说。

微软的战略思维显而易见。虽然 XAML 在开发人员所看到的内容方面发挥着主导作用,但 Shewchuk 和他的团队正在构建一个底层基础,这将加速进行基于电子商务的 Web 服务所需的消息传递流量。

“我们编写了非常精细的代码来提供完整的 Web 服务通信模型,”Shewchuk 解释说。“这是一个高性能、操作系统级别的消息处理引擎。”

Longhorn 另一个有趣的“大思路”要素是,微软显然有将 Web 服务转变为分布式计算新范例的想法。这是因为构成此类服务定义要素的消息流量也构成了控制地理上分散的计算机网络的自然方式。

“我们认为这种面向服务的架构 [SOA,微软对 Web 服务的术语] 可以作为分布式计算的基础,”Shewchuk 说。“如果你今天查看计算机内部,这些 [Web] 服务不是基于总线架构,而是基于 Web 的消息传递模型。因此,你可以将你的计算机视为通过 SOA 通信的自主组件的集合。”

Shewchuk 希望 Indigo 能够实现一种新的范例,在这种范例下,程序员将使用新的 Longhorn 编程模型来访问 SOA 或 Web 服务。

微软称之为 WinFX 的编程模型将使用 CLR 将语言和 API 整合在一起,而这些语言和 API 以前必须单独处理。

CLR 是使 Longhorn 的操作系统、数据库和 Web 服务元素能够相互通信的实际机制。也许在这个黑客意识强烈的时代更重要的是,CLR 将把每个单独的应用程序放在其自己的“沙箱”中。这标志着在软件安全方面做出了更自觉的尝试——微软过去在这方面一直受到批评。

Longhorn 的沙箱将应用微软的 SEE(安全执行环境)。SEE 实施了受限权限的层次结构,以限制应用程序可以在本地计算机上运行的位置,并控制这些应用程序可以访问的本地资源。

试驾

正如大型项目所预期的那样,微软一直对 Longhorn 及其配套组件的发布日期含糊其辞。无论当前预期的明年 beta 版和 2006 年发布是否会实现,软件开发人员今天都可以开始试用 Longhorn。这可以通过试验最新版本的 Visual Studio 2005(原代号 Whidbey)开发环境来完成。

Whidbey 实现了 CLR 和微软新的托管代码范例。支持的编程语言包括 Visual Basic 和 C++,以及微软自研的 C# 和类 Java 的 J#。

Indigo 支持尚未到位。新的 Visual Studio 仍然与微软现有的 ASP.NET Web 服务模型配合使用。从好的方面来说,包含的模型引入了一种更安全的方法来处理 Web 应用程序中的客户端文件。微软表示,迁移到 Indigo 不会破坏与 ASP.NET 的向后兼容性。

在教程方面,微软发布了 Longhorn 软件开发工具包,这是一组代码示例和文档,旨在帮助开发人员初步了解即将推出的操作系统和相关技术。

资源

Visual Studio

Visual Studio 2005 的 beta 版本可从微软免费下载,网址为 http://lab.msdn.microsoft.com/vs2005/

Microsoft Longhorn 开发者

http://www.codezone.info/en/tours.aspx 观看关于 Longhorn、Avalon、WinFS 和 Whidbey 的 PowerPoint 演示文稿。

WinHEC 2004

技术演示文稿,包括关于 Longhorn、Avalon 和 Indigo 的 PowerPoint 演示文稿,可在 http://www.microsoft.com/whdc/winhec/pres04-tech.mspx 找到。

微软的 Longhorn 软件开发工具包 (SDK)

访问此 SDK,网址为 http://msdn.microsoft.com/Longhorn/understanding/documentation/releasenotes/default.aspx

喜欢它,讨厌它?请告诉我们

[email protected] 或 www.acmqueue.com/forums

ALEXANDER WOLFE 在纽约市的库珀联盟学院获得电气工程学位。他是一位居住在纽约州森林小丘的科学撰稿人,曾为 IEEE Spectrum、EE Times、Embedded Systems Programming 和 Byte.com 撰稿。

© 2004 公司。保留所有权利。

acmqueue

最初发表于 Queue 第 2 卷,第 6 期——
数字图书馆 中评论本文





更多相关文章

Brendan Burns, Brian Grant, David Oppenheimer, Eric Brewer, John Wilkes - Borg、Omega 和 Kubernetes
尽管对软件容器的广泛兴趣是相对较新的现象,但在谷歌,我们已经大规模管理 Linux 容器超过十年,并在那段时间内构建了三个不同的容器管理系统。每个系统都深受其前辈的影响,即使它们是出于不同的原因而开发的。本文描述了我们从开发和运营它们过程中学到的教训。


Rishiyur S. Nikhil - 硬件系统设计中的抽象
软件工程的历史是不断开发旨在解决日益增长的复杂性的抽象机制的历史。然而,硬件设计并不那么先进。例如,两种最常用的 HDL 可以追溯到 20 世纪 80 年代。标准的更新落后于现代编程语言,例如类型、封装和参数化等结构抽象。它们的行为语义甚至更加落后。它们是根据在单处理器冯·诺依曼机器上运行的事件驱动模拟器指定的。


John R. Mashey - 64 位漫长之路
莎士比亚的话语常常涵盖超出他最狂野梦想的情境。即使人们提前计划,辛勤工作和麻烦也伴随着重大的计算转型。“校准今天的明日遗产”,我们应该研究“昨日的明日遗产”。明天的许多软件仍将受到数十年前的决策的驱动。过去的决策具有意想不到的副作用,这些副作用持续数十年,并且难以撤销。





© 保留所有权利。

© . All rights reserved.