TONT 41663 『NT』最初代表的含义是什么?

原文链接:https://blogs.msdn.microsoft.com/oldnewthing/20031201-00/?p=41663

Finally, the real story of what the letters “N” and “T” originally stood for is now public, so I can stop being coy about it. (Via LockerGnome.)

终于,那两个字母『N』和『T』所代表含义的真实故事现已公之于众,我也不用再扭扭捏捏不愿说了。(via LockerGnome)

译者语:

(1)原文所指向的两个链接已失效,故译文中未再重复制造无效数据;

(2)本篇内文为所指向文章的全文及译文,共分三篇,由于文章长度及空闲时间关系,将在本篇中进行不断更新,直至全部翻译完为止。

(3)内文翻译进度:Part 1(翻译完成)、Part 2(进行中)、Part 3(未开始)

Windows Server 2003: The Road To Gold, Part One: The Early Years

Windows Server 2003:黄金之路,第一篇:最初那些年

Paul Thurrott | Jan 24, 2003(2003年1月24日)

During a recent trip to Microsoft’s Redmond campus with Janet Robbins and Mike Otey, we had the chance the sit down and chat with two of the most notable figures in the history of Windows, Mark Lucovsky and David Thompson. For those of you not familiar with the early days of Windows NT, known then simply as NT, both Lucovsky and Thompson played key roles in the development of this important software project. Mark Lucovsky, Distinguished Engineer and Windows Server Architect at Microsoft, joined the company with the original wave of ex-Digital Equipment Corporation (DEC) employees that accompanied NT architect Dave Cutler. Known primarily for his unusual ability to grok how the thousands of components in NT work together, Lucovsky is widely hailed for his technical acumen and his early efforts to change NT from an OS/2-based system to one that ran 32-bit Windows applications. David Thompson, Vice President of the Windows Server Product Group, joined Microsoft in 1990 and led an advanced development group in the company’s LAN Manager project before joining the NT team later that year. There, Thompson guided the development of NT’s networking subsystem, ensuring that the product would work not just with Microsoft’s products but with the outside world.

最近,在一次与Janet Robbins和Mike Otey一同前往微软Redmond总部园区的行程中,我们有机会坐下来与两位在Windows研发历史上有举足轻重地位的两位大人物、Mark Lucovsky和David Thompson进行了对话。对于不太了解Windows NT(或简称NT)早期历史的各位解释一下的话,Lucovsky和Thompson在这个具有重要意义的软件项目的开发过程中都起到了关键作用。Mark Lucovsky是微软公司的一名卓越的工程师和Windows Server架构师,与前迪吉多公司(Digital Equipment Corpotation, DEC)的雇员们一起加入微软公司,随NT架构师Dave Culter一起工作。有鉴于其对NT系统中上千个组件协同工作原理之异乎常人的理解,Lucosky因其技术方面的天才、及其早期将NT系统从一个OS/2为基础的系统转化为运行32位Windows应用程序的努力而备受赞许。David Thompson,Windows Server产品组副主任,于1990年加入微软公司,负责带领一支经验丰富的团队研发LAN Manager项目,并在当年晚些时候加入了NT项目组。在那里,Thompson带领开发人员们研发了NT的网络子系统,确保整个产品不仅与微软自己的产品配合良好,还与整个世界其它的软件协作顺利。

Here’s how it all began.

以下是故事的开端。

The NT team arrives at Microsoft

NT团队在微软的发端

“We came together as a group in November 1988,” Lucovsky told us, noting that the first task for the NT team was to get development machines, which were [then] top-of-the-line 25 MHz 386 PCs with 110 MB hard drives and 13 MB of RAM. “They were ungodly expensive,” he said, laughing. The first two weeks of development were fairly uneventful, with the NT team using Microsoft Word to create the original design documentation.

『我们在1988年11月时组成了这个团队,』Lucovsky说道,提及NT团队的第一项任务是购置开发机,其规格(在当时)是顶尖的25Mhz 386 PC,带110MB的硬盘和13MB内存。『那些机器简直贵上天了』,他笑着说。开发过程的最初两周平淡无奇,NT团队的成员们用Microsoft Word撰写着最初的设计文档。

Finally, it was time to start writing some code. “We checked the first code pieces in around mid-December 1988,” Lucovsky said, “and had a very basic system kind of booting on a simulator of the Intel i860 (which was codenamed “N-Ten”) by January.” In fact, this is where NT actually got its name, Lucovsky revealed, adding that the “new technology” moniker was added after the fact in a rare spurt of product marketing by the original NT team members. “Originally, we were targeting NT to the Intel i860, a RISC processor that was horribly behind schedule. Because we didn’t have any i860 machines in-house to test on, we used an i860 simulator. That’s why we called it NT, because it worked on the ‘N-Ten.'”

后来,总算到了开始写代码的时候。『我们在1988年12月中旬时对第一份代码进行了审查,』Lucovsky说道,『这段代码是一个非常基础的系统,到第二年一月时,差不多达到可以在Intel i860(代号N10(译注:英文为N-Ten))模拟器上跑起来的程度。』实际上,这就是NT名字的来源,Locovsky解释道,还补充说『新技术』(new technology)这个绰号是后来NT团队做市场营销时灵光一闪想出来的。『最初,我们是以Intel i860作为目标机器开发NT的,而i860是一款进度严重滞后的RISC处理器。由于我们当时没有一台i860的用于测试,就用i860模拟器来代替。这就是NT名字的来源,因为它是跑在N-Ten上的。』

The newly named NT team had a basic kernel mode system up and running on the simulator by April 1989. “We started with five guys from DEC and one from the ‘outside’ (i.e. Microsoft), a guy named Steve Wood,” Lucovsky said. “And we stayed a tiny group for a long time, through the summer. We thought, ‘How hard could it be to build an OS?’ and scheduled 18 months to build NT. But we had forgotten about some of the important stuff–user mode, networking, and so on.”

到1989年4月时,有了新名字的NT团队已经初步实现了运行在(i860)模拟器上的基础系统内核。『我们的团队中最早由5个来自DEC的人,还有一个是从『外面』(即微软)来的,名字叫Steve Wood,』Lucovsky说,『团队的小规模保持了很长一段时间,一直度过了当年的整个夏天。我们原本以为,『开发个操作系统能有多难?』,于是定下了18个月开发NT系统的目标。然而那时候我们忘了一些很重要的东西——用户模式、网络系统,等等。』

By late 1989, the NT group began growing. They added a formal networking team and expanded the security team beyond a single individual who, incidentally, had also been previously burdened by file system and localization development. “We grew that first year to 50 people or so,” Lucovsky said. “And within a year, we finally had the first functioning i860 prototypes, so we could use those instead of the simulators. We started looking at context switch times, to get an idea of how well it would perform. It became obvious almost immediately that the i860 would never work out. So we started looking at the MIPS architecture, another RISC design.”

1989年的后期,NT团队开始扩张,增加了一个正式的网络团队,并将原来只有一个人的安全团队进行了扩展,当时原来的那个人还同时负责文件系统和本地化功能的开发。『第一年我们扩充到了大约50人左右』,Lucovsky说,『后来大概一年之内,我们终于拿到了第一批可以工作的i860原型机,于是终于可以在这些真机上开发、而不用跑在模拟器上了。我们开始关注上下文切换次数,以此来判断i860到底性能如何。很快我们就发现i860这东西不行,所以我们开始关注MIPS架构——另一个RISC设计。』

In December 1989, the NT team made the decision to ditch the i860 and target the MIPS R3000 chip instead. “Within two or three months, we were booting NT on real hardware in Big Endian mode,” Lucovsky told us, “and our architecture really paid off. We had designed NT to be portable, and we proved it would work almost immediately when we moved to MIPS. We made the change without a lot of pain.”

1989年12月,NT团队决定抛弃i860,转而将MIPS R3000芯片作为目标机器。『大约用了2到3个月,我们就将NT跑在了Big Endian模式的真机上。』Lucovsky说道,『而我们对系统架构的努力也真的得到了回报。我们将NT设计为可迁移的(内核),而转向MIPS架构后,NT基本上很快就能在上面跑起来了,而做出这一修改并没有经历很多苦难。』

By this time, the NT team started expanding rapidly, with most of its members now coming from the ranks at Microsoft. The graphics team was greatly expanded, once a new style of doing graphics was created. They also started an NT port to the Intel i386, which was the mainstream PC processor at the time, but Lucovsky explained why it was important to the team that they didn’t target the i386 initially. “We stayed away from the 386 for a while to avoid getting sucked into the architecture,” he said. “We didn’t want to use non-portability assumptions.” If they had targeted Intel’s volume chip from day one, he said, they would have had a higher performing system initially, but it would have hurt NT in the long run, and made it harder to pursue new architectures as they did recently with the 64-bit Itanium versions of Windows Server 2003.

在这期间,NT团队急速扩张,新加入的成员来自微软的各个阶层。当对图形绘制有了一种新方法后,图像团队大大扩展了。同时,团队也开始将NT迁移到Intel i386上,这在当时是一款主流的PC处理器,但Lucovsky也解释了为什么团队没有一开始就以i386作为目标机器进行开发。『我们避开了386一段时间,以避免受其架构的限制,』他说,『我们不想用上无法迁移的设计。』Lucovsky还说,如果一开始就针对Intel的量产芯片进行开发,可能最初会开发成一个性能较高的系统,但长久看来会对NT有不利影响,也阻止了NT针对新处理器架构的追求,比如他们最近为将Windows Server 2003迁移到64位Itanium处理器上所做的事情。

NT becomes Windows NT

当NT成为Windows NT

“By the spring of 1990, we had the MIPS version limping along and we started the 386 version in earnest,” Lucovsky said. “It was another huge growth spurt.” That May, Microsoft released Windows 3.0 and, suddenly, the world took notice. Windows was a smash success, and the obvious future of PC-based graphical computing. “We started looking at Windows 3.0 and said, ‘What if, instead of OS/2, we did a 32-bit version of Windows?'” Lucovsky noted, casually throwing out the question on which the next decade of computing hinged. “Four guys–Steve Wood, Scott Ludwig, a guy from the graphics engine group, and myself–looked at the 16-bit Windows APIs and figured out what it would take to stretch them to 32-bit. We spent a month and a half prepping the API set, and then presented it to a 100-person design preview group to see what they thought.”

『到1990年春天时,MIPS版本开始蹒跚学步,我们也开始热心地开发386版本,』Lucovsky说,『此时则是另一个突飞猛进的增长。』当年五月,微软发布了Windows 3.0,然后就像是突然之间,整个世界都为之瞩目(译注:Windows 1.0和2.0版本都没有引起太大轰动,前者平淡无奇,后者收获了一定影响,但远不如当时其它公司的产品)。Windows大获成功,而基于PC的图形化计算也成为显而易见的未来。『我们仔细观摩了Windows 3.0,想到,如果我们不再开发OS/2,而是做一个32位的Windows会怎么样呢?』Lucovsky一边说,一边将对当时而言未来数十年计算机的发展脉络做出预测的问题抛出。『有四个人——Steve Wood,Scott Ludwig,一个图像引擎组成员,还有我自己——开始研究16位的Windows API,并摸索出了将其扩展至32位的门路。我们花了一个半月的时间为(32位的)API集合做准备,然后把成果展示给一个有100人的设计预览团队,来倾听他们的想法。

The key characteristic of the new API, eventually named Win32, is that, though it was a new API, it looked and acted just like the 16-bit Windows APIs, letting developers easily move to the new system and port their applications. “We made it possible to move 16-bit applications to NT very easily,” Lucovsky said, “and these applications could take advantage of the unique features of NT, such as the larger address space. We also added new APIs that weren’t in the 16-bit version. We added major new functionality to complete the API, making it a complete OS API, but we did this using a style that would be familiar to the emerging body of Windows programmers.”

新版API(最终被命名为Win32)的一个关键调整是,尽管是一套新的API,但不论是看上去还是用起来都与16位的Windows API很相似,使得开发者们迁移到新系统、并将应用程序进行迁移较为简单。『我们令将16位应用程序迁移到NT上这件事成为可能,』Lucovsky说,『并使这些(迁移而来的)应用程序可以利用起NT的独特功能,例如更大的地址空间等等。我们也增加了不在16位版本中的API。我们增加了重要的功能来补全API集,使整个API作为操作系统API完整起来,不过所采用的风格是为不断成长中的Windows应用开发者团体所熟悉的。』

The reaction within Microsoft was immediate. “They loved it,” he said, “when they saw how easy it would be. It was basically Windows on steroids, and not OS/2, which used a completely different programming model.” Making NT a 32-bit Windows version instead of an OS/2 product, however, introduced new issues, not all of which were technical. Microsoft had to get ISV and OEM approval, and of course alert IBM to the change. “We did an ISV preview with IBM, and had this deck of about 20 slides, and we said, ‘look, this is what we’re going to do.’ At first, they thought Win32 was a fancy name for OS/2. Then you could just see it on their faces: ‘Wait a second, this isn’t OS/2.'”

(新API)在微软内部的反应是立竿见影的。『他们很喜欢,』他(Lucovsky)说道,『当了解到(针对新API进行开发)有多容易之后。基本上这就是打了兴奋剂的Windows,并且(完全)不是OS/2,后者是完全不同的编程模型。』不过,将NT开发为Windows的32位版本——而不是OS/2产品,也引入了新问题,并且不是所有的问题都是技术方面的。微软需要取得ISV(Independent Software Vendors,独立软件开发商,指一类利用已有的软硬件平台开发特定应用程序的厂商,例如Oracle等)和OEM厂商们的认可,当然也需要提醒IBM正在发生的变化(译注:微软从1985年起与IBM合作开发OS/2,由于前文提到的Windows 3.0的大获成功,微软最终与IBM分道扬镳)。『我们与IBM进行了一次ISV预览会议,针对变化做了大约20张幻灯片,然后说,「看,这就是我们要做的事情。」一开始,他们(IBM的人)以为Win32只是OS/2的一个花名,但随后你就能从他们的脸上看出感觉事情不对的表情:「等等,这好像不是OS/2。」』

The decision to drop OS/2 for Windows forever damaged the relationship between the two companies. “But we had executive approval, and started the port,” Lucovsky said. “So instead of working on an OS/2 subsystem for NT, we picked up Win32.” At that moment, he said, the product became Windows NT.

放弃OS/2 for Windows的决定对两家公司之间的关系产生了伤害。『但我们获得了执行准许,并开始了迁移工作,』Lucovsky说,『于是我们选择了Win32,而不是做一个NT的OS/2子系统。』到那时,他(Lucovsky)说,这个产品开始成为Windows NT了。

NT’s modular architecture paid off during this change as well. “Thanks to our microkernel architecture, with the kernel decoupled from application environments like POSIX and Win32, we didn’t have to change the kernel or start a new programming effort,” Lucovsky told us. “The deep guts of the scheduler didn’t have to change. We had C command line applications up and running within two weeks. This was September 1990.”

NT的模块化结构在这个转变中也收到了回报。『感谢我们的微内核架构,(在这种架构下)内核与应用程序环境——例如POSIX和Win32之间是相互分离的,我们不必对内核进行修改,或者启动领一次编程的努力,』Lucovsky告诉我们,『调度器的深层机制不必做出改变。我们在两周内就写好了C语言撰写的命令行应用并使其跑了起来,那是在1990年的九月份。』

Thompson elaborated on the importance of NT’s foundations. “Our core architecture is so solid, that we were able to take NT from 386-25’s in 1990 to today’s embedded devices, 64-way, 64-bit multiprocessor machines, and $1000 scale-out server blades. We’ve been able to deliver a whole array of services on it.”

Thompson详细阐述了NT基础的重要性。『我们所撰写的核心是如此稳固,以至于可以从1990年的386-25一直用到如今的嵌入式设备、64位+64路多处理器系统,还有价值$1000美元的可扩展刀片服务器。我们可以在其上提供种类繁多的服务。』

September 1990, truly, was the turning point for Windows NT. Not coincidentally, that’s also when Dave Thompson, previously heading Microsoft’s LANMAN for OS/2 3.1 advanced development team, joined the NT team. “We threw the switch,” Thompson told us, “and the team went from 28 to about 300 people. We had our first real product plan.”

1990年的九月着实是Windows NT的一个转折点。巧合——或者说是必然的是,这也是Dave Thompson——曾任微软的LANMAN for OS2 3.1高级开发组经理——加入NT团队的时间。『我们扳动了开关,』Thompson告诉我们,『然后团队就从28人扩展到了300人。我们这才有了第一个真正的产品规划。』

RTM and beyond

RTM(Release To Manufacturing)及未来

The first version of Windows NT, Windows NT 3.1, was released in July 1993 and named to match the version number of the then-current 16-bit Windows product. That NT version featured desktop and server editions and distributed security in the form of domains. Since then, the NT team has worked on a progression of releases, all developed on the same underlying code base.

Windows NT的第一个版本,Windows NT 3.1,于1993年7月释出,并与当时的16位Windows产品线版本号齐头并进。该版本的NT包含桌面版和服务器版,亦含有以域为形式的分布式安全设计。从那时起,NT团队的成员们开始在一系列发行版上进行开发,而所有这些版本都基于相同的底层代码库。

The next release, Windows NT 3.5, was code-named Daytona, and shipped in September 1994. “Daytona was a very rewarding project,” Thompson said. “We focused on size and performance issues, and on “finishing” many of the first-release features of 3.1. Daytona also had significant functional improvements and enhancements.” The original themes for Daytona were size, performance, compression, and Netware compatibility. Two of those goals were emblematic of the time: DoubleSpace-style compression was a hot topic in the early 1990’s because disk space was at such a premium, and Netware was the dominant network operating system of the day. “We eventually dropped compression,” Thompson said, “but the Netware port was strategic. Novell was ambivalent about the NT desktop ? they didn’t know if they wanted to build a client. We offered our assistance, but they kept messing around and … well. We did our own. And it just blew them away. Ours was the better Netware client, and customers used ours for years, even after they finally did one. That client enabled the NT desktop, because Netware was the prevalent server in the market. We wouldn’t have been able to sell NT desktops otherwise.”

下一个版本,代号为Daytona的Windows NT 3.5,于1994年9月发布。『Daytona是一件很有价值的项目,』Thompson说,『我们专注于其体量和性能,并「完成」了许多在NT 3.1中首次推出的功能。Daytona也同时包含了重要的功能型改进和增强。』Daytona最初的设计主题是尺寸、性能、数据压缩和Netware兼容性。其中两个目标在当时具有象征意义:DoubleSpace式的数据压缩功能在1990年代早期是个热门话题,因为当时磁盘空间贵到上天;此外,Netware也是当时占主导地位的网络操作系统。『我们最终放弃了数据压缩功能的开发,』Thompson说,『但针对Netware的对接是具有战略意义的。Novell对NT桌面系统有一种矛盾心态,说不准自己是否要另外做一个客户端出来。我们尽可能提供了邪乎,但他们总是搞砸,最后……我们自己做了一个出来,而我们自己研发的客户端让他们感到惊讶不已。我们自己研发的Netware客户端更加优秀,客户们一用就是好多年,即便是他们(Novell)后来终于自己开发了(官方版的)一个版本出来亦是如此。这个(Netware)客户端成就了NT桌面系统,因为Netware在当时是普遍使用的服务器标准,如果不这么做,我们就卖不动NT。』

Daytona also benefited from new compiler technology which enabled Microsoft to compress the code size and enable realistic NT desktops on lower-end systems than the original version. “The results were measurable,” Thompson said.

Daytona也从新的编译技术中受益,使得微软能压缩代码尺寸,并使得在低端硬件上运行NT桌面系统成为可能——而这在之前是无法做到的。『效果显而易见』,Thompson说。

Windows NT 3.51 was dubbed the Power PC release, because it was designed around the Power PC version of NT, which was originally supposed to ship in version 3.5. But IBM constantly delayed the Power PC chips, necessitating a separate NT release. “NT 3.51 was a very unrewarding release,” Thompson said, contrasting it with Daytona. “After Daytona was completed, we basically sat around for 9 months fixing bugs while we waited for IBM to finish the Power PC hardware. But because of this, NT 3.51 was a solid release, and our customers loved it.” NT 3.51 eventually shipped in May 1995.

Windows NT 3.51被戏称为Power PC版,因为这个版本是围绕着Power PC版NT设计的,后者原本要用3.5这个版本号发布。然而IBM对Power PC芯片一拖再拖,使得额外发行一个版本的NT成为必要。『NT 3.51是一个非常没有价值的发行版,』Thompson说,与Daytona相比起来的话。『完成Daytona后,我们基本上是用9个月的时间等待IBM完成Power PC的硬件开发,在此期间,我们对bug进行修修补补。不过,也正因为如此,NT 3.51成为了一个非常稳定的版本,客户们很喜欢。』NT 3.51最终于1995年5月发布。

Fittingly, the next NT release, Windows NT 4.0, became known as the Shell Update Release (SUR), another challenging task that would once again prove the benefits of NT’s module architecture. “We wanted to build a desktop that had the 95 shell but used NT technology,” Lucovsky told us. “We eventually moved the Win32 GUI components and hosted them as an in-process driver. Performance was one side effect. We had had problems taking that API and running it in a different process. So moving the code to the same context as the runtime solved a lot of issues. We didn’t have to do dead lock detection for GDI and USER. It was significant work, but it solved a lot of headaches.” NT 4.0, a watershed release for the product, shipped in July 1996.

很恰当地,下一个NT发行版,Windows NT 4.0,被称为外壳更新版本(Shell Update Release,SUR),这是另一项具有挑战性的工作,后来又一次成为NT模块化架构优势的证明。『我们想开发一款桌面系统,具备Windows 95的外壳界面,但使用NT的技术。』Lucovsky告诉我们,『我们最终对Win32 GUI组件进行了迁移,并将其转化为一个进程内驱动。性能问题成为副作用之一,我们曾一度在调用API并在另一个进程中运行之时遇到了困难,所以将相关代码移动到与运行时同一上下文解决了很多问题。我们不用再面对GDI和USER的死锁检测了。这项工作很艰巨,但确实解决了大问题。』NT 4.0,作为NT产品线中的一道分水岭,于1996年7月发布了。

Windows everywhere

Windows遍天下

With the next release, Windows NT would lose the NT name and become, simply, Windows. Thompson says the decision came from the marketing team. “A guy from the Windows [9x] marketing team moved over to NT marketing and said we should use Windows everywhere. We were all uncomfortable with the name change at first, because NT had a solid reputation. But because of the reliability push with Windows 2000, people started talking about how much better Windows 2000 was than ‘that old NT stuff,’ even though it was the same architecture. So it was actually kind of fortuitous how it happened.” Incidentally, Windows 2000 didn’t have a codename “because Jim Allchin didn’t like codenames,” Thompson says.

到下一个发行版时,Windows NT从名字中去掉了NT的字样,成为简简单单的『Windows』。Thompson说这项决定是由市场团队提出的。『有个从Windows(9x)市场团队来的人调到了NT市场团队,提出我们应当在所有地方使用「Windows」这个称呼。一开始我们对改名这件事都感到很不适应,毕竟NT拥有坚定的信誉基础。不过,由于对Windows 2000信任的推动,人们开始谈论Windows 2000比「那些旧的NT的东西」有多么多么好,即便这两个实际基于同一种架构。所以改名这件事实际上也有其偶然性。』顺便一提,Windows 2000没有代号(codename),『因为Jim Allchin不喜欢这么做,』Thompson说。

Since the completion of Windows 2000, the biggest decision the Windows team made was to split the client and server releases with the Whistler products, which became Windows XP and Windows Server 2003. “This lets us focus on the server customers, who want it rock solid, rather than right now,” Thompson told us. “Desktop software has to ship in sync with [PC maker] sales cycles. There is no holiday rush with servers.”

在完成了Windows 2000之后,Windows团队所作出的最大决定是在Whistler产品线中区分个人版(client)和服务器版(server)两种发行版,后来(Whistler产品线的这两个发行版)分别成为了Windows XP和Windows Server 2003。『这样做使我们能比过去更加专注于服务器用户,这些用户要求系统稳若磐石,』Thompson告诉我们,『桌面版软件的发布需要与PC制造商的销售周期同步,而对服务器来说,并没有什么赶着假期(出新品)之说。』

Windows Server 2003: The Road To Gold, Part Two: Developing Windows

Windows Server 2003:黄金之路,第二篇:Windows开发那些事

Paul Thurrott | Jan 30, 2001(2001年1月30日,原文日期如此(可自行验证),不要问我为什么)

One element about the NT family of operating systems–which evolved from Windows NT to Windows 2000, XP, and, now, Windows Server 2003–that has remained unchanged over the years, though the details have changed dramatically, is the build process. Somewhere deep in the bowels of Microsoft, virtually every day, at least one Windows product is compiled, or built, into executable code that can be tested internally by the dev, or development teams. For Windows Server 2003, this process is consummated in Building 26 on Microsoft’s sprawling Redmond campus, where banks of PCs and CD duplicating machines churn almost constantly under the watchful eyes of several engineers.

NT家族操作系统——囊括了从Windows NT到Windows 2000、XP,以及最近的Windows Server 2003——有一个多年来未曾改变的要素(尽管细节上大相径庭),那就是开发进程。微软内部深处的某个地方,差不多每天都有至少一个Windows产品被编译(或构建)为可执行的代码,以在公司内部供开发者、或开发团队进行测试。对于Windows Server 2003而言,这一过程是在微软遍地开花的Redmond园区26号楼圆满完成的,在那里,有成堆的PC和CD复制机器被好几位工程师留心看护着。

The details of NT–excuse me, Windows–development have changed dramatically since the project first started in the late 1980’s. “Back in the early days, we started with 6 people,” Microsoft Distinguished Engineer and Windows Server Architect Mark Lucovsky told me. “Now there are 5000 member of the Windows team, plus an additional 5000 contributing partners, generating over 50 million lines of code for Windows Server 2003. Getting all those people going in the same direction, cranking out code, is an enormous task. Building the results of their work, compiling and linking it into the executable and other components that make up a Windows CD is a 12 to 13 hour process that is done every day of the week. It’s the biggest software engineering task ever attempted. There are no other software projects like this.” And Microsoft compiles the whole thing–all 50+ million lines of code, almost every single day, he said. “We’re evolving the development environment all the time,” Lucovsky noted.

有关NT——不好意思,是Windows——的开发细节,自项目最初于1980年代开始至今,已发生了翻天覆地的变化。『早先的时候,我们是从6个人的团队开始的,』微软卓越的工程师和Windows Server架构师Mark Lucovsky告诉我。『现在Windows团队有5000人,另外再加上5000名贡献合作伙伴,为Windows Server 2003创作出超过5000万行代码。统领所有这些人朝着一个共同的方向前进,共同撰写代码,是一项艰巨的工作。将所有这些人的工作进行生成,编译并连接成为构成Windows CD的可执行文件和其它组件,是每周每天都要花上12到13个小时去做的事。这乃是(我们)所尝试过的最大的软件工程任务,再也没有其它的软件工程能与之相比了。』微软几乎每一天都会把整个项目——全部的5000万行代码进行一次编译,他说,『我们无时不刻都在促进开发环境的进化,』Lucovsky指出。

“When we turn the crank, we compile the whole thing,” he said. “We have to be able to reproduce the system at any point in time as well. So developers check in code, we press a button, and out comes a system. We should be able to reproduce that [build] three years in the future, using the various tools, compilers, and scripts we used at that time.”

『我们转动摇把,然后就整个编译一遍,』他说,『也可以重新构建任何时间节点上当时系统的样子。开发者们签入代码,我们按一个按钮,(编译好的)系统就从另一头出来了。即使是在未来的三年,我们应该也可以用当时那一堆工具、编译器和脚本,来重新构建之前所编译过的某个版本。』

David Thompson, corporate vice president of the Windows Server Product Group at Microsoft, elaborated on the process. “The key here is that we built up the system over the years, advancing it in three dimensions,” he said. “First is the product itself. Second is the way we engineer the product. And third is the way we interact with a broader and broader set of customers. The product evolution is pretty straightforward. The source code control system we use now is new, because we really pushed the scale of the previous version with Windows 2000. Mark [Lucovsky] personally lead the development of the new system and introduced it post-2000. We started with some acquired technology. We now do have a staged build [for the first time]. But every day the [staged builds] are rolled up into the total build. So we can scale but maintain stability–we know where we stand every day.”

David Thompson,微软Windows Server产品组的执行副总裁,详细说明了整个过程。『关键点在于,在开发这套系统的这些年间,我们从三个维度去完善它,』他说,『一是产品本身,二是我们策划产品的方式,三是我们与不断扩展的用户群进行交流互动的方式。产品本身的进化很直接了当。现在使用的源代码控制系统是全新的,因为为了Windows 2000,我们显著扩展了其体量。Mark(Lucovsky)独立领导了新(代码控制)系统的研发,并在Windows 2000之后将其引进。我们首先从熟知的技术开始,现在我们(第一次)拥有了阶梯式生成,不过每天(阶梯式生成的结果)都会并入主线。由此我们可以在扩张(系统体量)的同时保持稳定性——我们很清楚自己每天所处的位置。』

Just eat it: Microsoft serves up dog food

吃就是了:微软给大家派饭

Lucovsky reminisced a bit about the early days, when the first NT prototypes were built in his office with only a single person overseeing the process. That person would simply send out an email to the NT team when a new build was ready, and then 50 people or so would “eat their own dog food,” testing the build on their own systems and run stress tests. “I used to just walk around the building and write down the problems we found,” Lucovsky said. “That’s how it was pre-NT 3.51. Now we have 7 builds labs. Dave [Thompson] has his own [build lab] for the 1200 people he oversees. The main build lab cranks out the official build, which goes out to thousands of people daily. Notification is automatic, and is sent out in multiple stages using the backbone servers across the campus. It’s all automated. Those little things have now scaled up.”

Lucovsky回忆了一下早年间在他的办公室构建第一个NT原型、并且只有一个人监督着整个过程的日子。那个(做监督的)人只是简单地发一封邮件给NT团队,告诉大家新编译的版本出来了,然后大约就会有50个人来『领走自己那份饭』,到他们自己的机器上测试新编译版本、运行压力测试等等。『我曾经只需要在大楼里转一转,把大家发现的问题记下来而已,』Lucovsky说,『那是NT 3.51之前的事了。现在我们有7个构建实验室,Dave(Thompson)自己就管着一个,统管着约1200人的团队。主构建实验室生成官方build,每天分发给好几千人,通知机制是全自动的,通过横贯整个园区的骨干服务器逐级分发,整个流程都自动化。早年间的那些简单的事情如今扩张了不少。』

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

 剩余字数 ( Characters available )

Your comment will be available after auditing.
您的评论将在通过审核后显示。

Please DO NOT add any links in your comment, otherwise it would be identified as SPAM automatically and never be audited.
请不要在评论中插入任何链接,否则将被自动归类为垃圾评论,且永远不会被提交给博主进行复审。

*