能给我一篇关于exchange域管理员检查域用户邮件的文章吗?

最近,我与Janet Robbins和Mike Otey一起参观了微软,我们有机会见到了Windows历史上最著名的两位人物:马克·洛考夫斯基和大卫·汤普森。在Windows NT的早期,Lucovsky和Thompson在这个重要软件项目的开发中扮演了关键角色。马克·洛考夫斯基是著名的工程师和Windows服务器设计师。他和DEC前雇员、NT设计师戴夫·卡特勒一起加入了微软。他的非凡能力首先体现在如何让NT中的数百个组件协同工作。Lucovsky以其敏锐的技术嗅觉和早期将NT从基于OS/2的系统改造为运行32位Windows程序的系统的努力而闻名。大卫·汤普森是Windows服务器部门的副总裁。1990加入微软。当时领导一个LAN Manager项目的高级开发团队,后来加入nt团队。

微软著名工程师和Windows服务器设计师。

“我们是在1988165438+10月份作为一个群体走到一起的。”Lucovsky告诉我们并强调,NT团队的第一个任务是获得一台开发机,其次是一台25MHz的386 PC,110 MB硬盘和13 MB内存。"它们质量很高。"他笑着说。前两周,除了用Word写最初的设计文档,没有什么大的开发活动。

最后,是时候开始写代码了。“我们在1988 65438+2月中旬左右检查了原始代码,”Lucovsky说。“到10月底,它只有一个在英特尔i860模拟器上启动的非常基本的系统。”其实这才是NT名字的真正由来。根据Lucovsky的说法,“新技术”一词是在产品取得市场成功后添加的。“起初,我们将NT的目标锁定在Intel i860(代码编号N-Ten),这是一种令人讨厌的RISC处理器。由于我们没有i860机器,我们必须使用i860模拟器。这就是为什么我们称它为NT,因为它在‘n-ten’上工作。”

1989年4月,新任命的NT团队在模拟器上运行了基本的系统内核。“我们五个来自DEC的人和来自微软的Steve Wood开始一起工作,”Lucovsky说。“我们组保留了很久。过了一个夏天,我们开始思考:创造一个操作系统有多难?我们制定了18个月完成NT的计划。但是我们忘记了一些重要的因素,比如用户模式,网络等等。”

1989之后,NT团队开始扩张。他们增加了一个正式的网络团队和一个扩大的独立安全团队,他们以前负责文件系统和本地化开发。“第一年,我们增加到50人,”Lucovsky说。“在这一年,我们终于得到了i860的第一个原型,因此我们可以取代模拟器。我们开始研究上下文切换的数量,试图找到一种方法让它更好地工作。我们几乎立刻发现i860永远不会工作。因此,我们开始专注于MIPS系统,另一种RISC设计。”

1989 65438+2月,NT团队决定放弃i860,换成MIPS R3000芯片。“我们在两三个月的时间里,在真实的硬件上无休止地引导NT,”Lucovsky告诉我们。“当我们将其移植到MIPS时,我们获得了奖励。我们把NT设计成可移植的,它几乎立刻就开始工作了。这种变化并没有带来多大的痛苦。”

此后,NT团队迅速扩大,微软不同阵营的人现在也加入进来。当一种使用图形的新风格被创造出来时,图形团队迅速成长。他们也开始把NT换成当时主流的PC处理器Intel i386。Lucovsky解释了为什么他们一开始没有定位i386。“我们暂时避开386是为了避免局限于这个系统,我们不想采用一个不可移植的想法。”他说,如果一开始就定位在Intel系列芯片,前期可以有高性能的系统,但那样会长期伤害NT,很难跟上新架构的发展,比如最近基于64位安腾芯片的Windows Server 2003。

NT变成了Windows NT

“我们的核心系统非常坚实,因此我们可以让NT从1990中的386-25适应嵌入式设备、64路64位多处理器机器和1000美元单元的刀片服务器。”

——大卫·汤普森

微软副总裁,Windows Server产品组

“在1990的春天,我们的MIPS版本继续一波三折,同时我们也开始热情地开发386版本,”卢科夫斯说。“这是另一个重大突破。”当年5月,微软发布了Windows 3.0,立即引起了全世界的关注。Windows因其基于PC的图形功能而取得了显著的成功。“我们开始研究Windows 3.0,并问自己,‘如果我们用32位版本的Windows取代OS/2,会发生什么?’”Lucovsky抛出了一个更深层次的问题:“史蒂夫·伍德(Steve Wood)、斯科特·路德维希(Scott Ludwig)、一群图形工程师和我自己,我们四个人研究了16位Windows API,研究了如何将其扩展到32位。我们花了一个月的时间完成了一半的API收集,然后交给100的设计评测人员,看看他们是怎么想的。"

新的API最终被命名为Win32。关键是,虽然是新的API,但外观和运行方式都和16位Windows API相似,开发者可以很容易地将程序移植到新系统中。“我们使得将16位程序移植到nt上变得非常容易,”Lucovsky说,“这些程序将受益于NT的独特功能,例如更大的寻址空间。我们还添加了许多16位版本中没有的API。我们添加了主流的新功能,使其成为一个完整的操作系统API,但我们使用了Windows程序员熟悉的风格。”

这立即在微软内部引起了反响。“当他们看到它是多么容易使用时,他们立刻就喜欢上了它,”Lucovsky说。“它是基于Windows而不是OS/2,它使用的是完全不同的编程模式。”但是更换OS/2产品,把NT变成32位版本的Windows,带来了新的问题,不完全是技术问题。微软必须获得ISV和OEM的批准,当然,它必须通知IBM这一变化。“我们做了一个IBM的ISV预览版,有20多页,然后我们说,‘看,这就是我们要做的。’起初他们认为Win32只是OS/2的一个迷人的昵称,但后来你可以看看他们的脸:‘等一下,这不是OS/2!’"

OS/2的抛弃永远伤害了两家公司的感情。“但是我们执行了批准并开始了程序,”Lucovsky说。"所以我们选择Win32来运行NT而不是OS/2子系统."他说,那一刻,这个产品就变成了Windows NT。

NT的模块化结构促进了这种变化。“感谢我们的微内核系统,它弱化了内核和应用环境之间的相关性,比如POSIX和Win32。我们不必改变内核,也不必从头开始编程,”Lucovsky告诉我们。“时间表的内容不必更改。我们在两周内运行命令行应用程序。这是9月1990。”

汤普森阐述了NT基础的重要性:“我们的核心系统非常坚实,所以我们可以让NT从1990的386-25适配到嵌入式设备、64路64位多处理器机器和1000美元一个单元的刀片服务器。我们可以为其提供全方位的服务。”

1990年9月是Windows nt真正的转折点,也是戴夫·汤普森加入NT团队的时候。他之前领导微软的Lanman for OS/2 3.1高级开发团队。“我们经历了一场变革,”汤普森告诉我们。“我们的团队已经从28人增加到300人。我们有了第一个真正的产品计划。”

NT纪念品

10月365438日:大卫·卡特勒来到微软。

1988 165438+10月:NT项目开始运营。

1993年7月27日:Windows NT 3.1在售。

1994 9月21: Windows NT 3.5发售。

1995年5月30日:Windows NT 3.51发售。

1996 7月31: Windows NT 4.0发售。

2000年2月17: Windows 2000发布。

2006 54 38+0 65438+25 00年10月:Windows XP发售。

2003年4月24日:Windows Server 2003发布。

1993年7月,Windows NT的第一个版本Windows NT 3.1发布,版本号的命名与当时的16位Windows产品相同。那个版本的NT有两个版本,桌面和服务器,采用域形式的分布式安全机制。此后,NT团队开始不断发布产品,所有的开发都基于相同的底层代码。

第二个发布版本,Windows NT 3.5(代号Daytona),9月份上市,1994。“代托纳是一个非常有价值的项目,”汤普森说。“我们专注于尺寸和性能,改进3.1的功能。代托纳得到了显著的改善和增强。”Daytona最初的主题是大小、性能、压缩和Netware兼容性。这其中有两个想法很有时代特色:1990之前,双倍压缩是个热门话题,因为当时硬盘很贵;Netware也是当时占主导地位的网络操作系统。“我们最终停止了压缩项目,”汤普森说,“但是Netware兼容性部分是战略性的。Novell与NT桌面系统是矛盾的。他们不知道是否要创建客户端。我们提供了帮助,但他们仍然处于混乱之中,而且…我们自己做了。对于Netware来说,这是一个更好的客户端,用户已经使用了几年,尽管他们最终做了一个。这个客户端使nt桌面系统能够成为Netware的客户端,因为Netware是当时市场上的主流服务器系统。否则我们的NT桌面就卖不出去了。”

Daytona还受益于新的编译器技术,这使微软能够减少代码量,使NT桌面成为真正的低端系统。汤普森说:“这些结果具有统计学意义。”。

Windows NT 3.51是和Power PC一起发布的,因为是围绕Power PC设计的,3.5版本没有对Power PC的支持。因为IBM经常延迟Power PC芯片组的发布,所以导致了孤立的NT发布。“NT 3.51的发布是非常没有价值的,”汤普森说,与代托纳的评价相反。“在Daytona完成后,我们花了大约9个月的时间来纠正错误,以便等待IBM完成Power PC。但正因为如此,NT 3.51非常稳定,我们的客户也很喜欢。”NT 3.51终于在1995年5月上市。

在下一个Windows NT 4.0中,采用了Shell Update Release(SUR),这是受益于NT的模块化结构的另一个具有挑战性的任务。"我们想创建一个95外壳的桌面,但是它使用nt技术."Lucovsky告诉我们,“我们最终迁移了Win32 GUI组件,并使其成为一个进程内驱动程序。性能是受影响的一个方面,在不同的进程中运行这个API会导致问题。因此,将代码迁移到与运行时相同的上下文将解决很多问题。我们不必为GDI和USER做死锁检测。这是一项重大任务,但它解决了很多令人头疼的问题。”NT 4.0月上市,1996,是NT系列产品的分水岭。

Windows挤走NT

在下一个版本中,Windows NT放弃了NT这个名字,变成了一个简单的Windows。汤普森说,这个决定来自营销团队。“一个从Windows市场部调到nt市场部的家伙,说我们会到处用Windows这个名字。起初,更改名称让我们所有人都感到不舒服,因为NT的声誉很好。然而,由于Windows 2000的可靠性,人们开始谈论Windows 2000比旧的NT好多少,即使它们基于相同的架构。所以这是个意外。Windows 2000没有代号,因为吉姆·奥尔钦不喜欢它。”汤普森说。

Windows 2000完成以来,Windows团队做出的最大决定就是在Whistler产品中分别发布客户端和服务器,也就是现在的Windows XP和Windows Server 2003。Thompson告诉我们:“这使我们把重点放在服务器客户上,他们现在要求更高的稳定性。“桌面软件会根据PC厂商的销售周期同步发布。这和服务器周期不一样。”

大卫·汤普森,微软公司视窗服务器部门的副总裁。1990加入微软,在调到Windows NT项目组之前,领导并负责公司的LAN Manager for OS/2项目。在Windows nt的开发过程中,Thompson领导的开发团队为NT网络子系统做出了杰出的贡献,不仅保证了产品能够与微软产品和谐工作,还保持了与其他公司产品的兼容性。

马克·洛考夫斯基,微软著名的软件工程师和服务器架构设计师。1988与戴夫·卡特勒一起加入微软。他们都是前数字设备公司(DEC)的优秀软件设计师。Lucovsky在将NT从基于OS/2的系统迁移到32位Windows应用程序的早期过程中,做出了杰出的贡献,并拥有敏锐的技术,受到了许多工程师的钦佩。

——马克·洛考夫斯基

NT系列操作系统从Windows NT发展到Windows 2000、XP,再到现在的Windows Server 2003。虽然细节发生了巨大的变化,但有一个关键元素没有变,那就是构建操作。在微软内部,实际上每天至少有一个Windows产品被编译或生成为可执行代码,开发团队可以立即进行测试。对于Windows Server 2003来说,这个过程在微软的26号楼达到了高潮,那里一排排的PC和CD拷贝机始终处于几名工程师的持续监督之下。

“回想早期,我们开始只有六个人,”马克·洛考夫斯基告诉我们。“现在,Windows团队有5000名成员,另外还有5000名合作伙伴,并且已经编写了5000多万行Windows Server 2003代码。让所有人员遵守统一领导制造守则是一项巨大的任务。生成他们的工作成果,编译连接成可执行程序或其他组件,最后形成Windows光盘。这个过程持续12到13小时,每天都在进行。这是有史以来最大的软件工程任务。其他任何软件项目都无法与之相比。”几乎每天,微软都要编译所有的东西——全部5000万行代码。“我们一直在改善开发环境。”卢科夫斯基强调。

“当我们启动机器时,我们编译所有的内容,”他说。“我们必须能够随时再生系统。开发者签到代码,我们按下按钮,生成系统。我们应该可以在未来三年内使用不同的工具、编译器和脚本再生系统。”

大卫·汤普森详细介绍了这一过程。“关键是我们全年生成系统,并从三个方面进行推广,”他说。“第一是产品本身,第二是我们设计产品的方式,第三是我们与客户互动的方式。产品的进化是完美的,我们现在使用的是全新的源代码控制系统。我们从现有的技术开始,马克·洛考夫斯基亲自领导新系统的开发。我们每天生成一个分阶段的)构建,这些分阶段的构建将形成最终的完整构建。我们在继续发展的同时保持了稳定——我们知道自己每天的进步。”

吃吧:微软供应狗粮。

“有一天我收到了85份入住记录,这是我们当时能拥有的最大数量。现在我们每天能收到超过1000,这是一个完全不同的比例,即使白板实际上是基于Web的电子化。”

——大卫·汤普森

卢科夫斯基回忆了一些往事。第一个nt原型是在他的办公室里生成的,然后他发了一封邮件告诉NT团队,NT Build已经准备好了。因此,NT团队中的50多人将“吃自己的狗粮”,在自己的系统上测试构建,并进行压力测试。“我们过去只是围绕这个构建工作,并写下我们发现的问题,”Lucovsky说。“所以才是前NT 3.55438+0。现在我们有七个构建实验室。戴夫·汤普森有自己的构建实验室,覆盖1200人。主构建实验室进行官方构建,每天进出数千人。整个大学的主干服务器会自动向各个地点发送通知。”

汤普森说:“起初,我们可以在每天的固定时间检入代码然后停止开发,然后开始生成新的系统。最后,我们将团队成员增加到85人,并对流程进行了序列化,以便进行更多的控制。我们都为戴夫·卡特勒(Dave Cutler)工作,他负责一代实验室大约一周的时间,然后要求每个人在实验室白板上写下自己的签到请求,并强制执行。我也在那里待了一段时间,有一天我收到了85个入住,这是我们当时能拥有的最大数量。现在每天能收到1000多。这是完全不同的比例。尽管白板现在实际上是基于网络的电子版。”

“其他软件项目无法与之相比,”Lucovsky说,“但有一点是不变的,那就是生成Windows所需的时间。无论哪一代产品,编译和连接系统都需要12小时。”随着生产过程能力的增长,Windows也在增加,开发过程变得更加复杂,所以微软在日常生成中进行更多的代码检查。“构建实验室的CPU已经连续工作了12小时,我们从Windows 2000开始就适应了这个过程。现在,我们将源代码相互分离,使用新一代环境。这是一个多机环境,使我们能够更快地生产。但因为所有代码都需要分析,所以还是需要12个小时。”

汤普森告诉我们,NT团队完全“吞下”自己的代码是必要的,它与微软的自然条件共存。“回想起来,这是我们一直在做的事情之一。今天,当我们谈论电子邮件程序时,我们都觉得很可笑。那时候NT刚在PC上运行的时候,我们的Email程序因为是DOS程序而无法工作,而且那时候我们还没有DOS兼容模式。于是我们把内部邮件程序WizMail改成了Win32,这样就只能在NT系统上工作了。”

汤普森补充说:“当你被迫自己使用系统时,如果你看到漏洞和性能问题,你必须找到负责人,请他修复问题。”当Thompson加入NT团队时,他的主要职责之一是提供NT文件服务,以便它可以用作源代码服务器。它需要信任,尤其是因为NT使用NTFS文件系统。“网络组工作非常努力,”他说,“同时确保为内部部署做好准备。一旦实施,就没有回头路了。显然,如果文件服务失败,那将是一场灾难。所以那是我们非常时期。”

后来随着Windows NT 4.0开发的结束,Thompson的团队采用了微软的第一个目录服务Active Directory (AD),发表在1996的专业开发者大会(PDC)上。“在AD之前,我们在基础设施中使用NT域,”他说。“转AD更复杂。我们很早就部署了AD,首先是我们的团队,然后是更广泛的Windows团队。1999年4月,我们在雷德蒙大学正式使用AD。”

汤普森说,微软在公司的其他级别谨慎地实施AD,该大学去年使用Windows Server 2003实现了多林AD拓扑。“对于所有基础服务器,我们总是在内部完全部署,然后扩展到JDP(联合开发伙伴)。他们在250个使用场景中对其进行测试和产品化。我们收集错误报告、功能反馈和复杂的测试环境来测试产品。”

在2002年夏天,Windows Server 2003(RC1)的可靠性达到了99.995%。2002年6月+2002年10月+2002年10月,Microsoft.com网站由Windows Server 2003(RC2)全面部署。汤普森告诉我:“关键是在内部使用它,并接近客户。”。“我们的产品现在更成熟了。我们不仅销售盒装产品,还销售各种辅助工具、产品、服务和文档。”汤普森还谈到,Outlook 11、Exchange Server 2003(Titanium)和Windows Server 2003的团队工作更加紧密地结合在一起,以满足最终客户的需求。在过去,这些产品往往是独立开发的,互不相关。

关注产品和服务

Lucovsky补充道:“这项服务近年来也变得成熟了。我们为每个产品做了大量工作,提供正确的混合服务包、热修复、产品开发分支、测试版和JDP客户。”(下一节有更多关于开发分支的信息。)

"我们确实延长了产品的服务时间."汤普森说,因为微软销售一款服务器产品,客户可能会使用长达10年。Volume or Stream在过去七年中一直在提供服务,但该公司一直在研究提供全面升级和更正的方法。首先,微软必须确保错误修复应用于所有开发分支。“我们在快速定位安全漏洞方面的工作意味着我们现在可以主动发布热补丁,”汤普森强调说。“同样,它使服务包更加灵活,这种方法可以提供像修复包这样的新功能。但客户明确表示,他们只是想获得漏洞修复。虽然这引出了一个有趣的问题:什么是错误?一个缺失的功能,对吗?顾客往往有自己的看法。然而,NT 4 SP3是最后一个包含主要新功能的服务包。”

影响主干服务的一个方面是,微软必须为最近的每一次产品变更保留一个测试环境。这意味着Windows 2000的最终或“黄金”版本是一个分支,Windows 2000 SP1是另一个分支,Windows 2000 SP2是另一个分支,以此类推。“完全消化对于提供成套服务也很重要。我们在我们的IT组织中保留了一个独立的Windows 2000 basic产品,这样我们就可以随时生成Windows 2000系统,并在生产环境中进行测试,”汤普森说。“很贵,但很值。”

热修复程序被简化为仅修复一个特定问题,不会影响系统的其他部分。汤普森说,一般来说,客户只有在受到相关问题影响时才会应用一个热修复,但安全纠正则是另一回事。“我们希望所有客户都安装安全补丁,因此我们对它们非常谨慎,并做了足够多的测试。它们通常是可部署的版本(GDR),就像服务包一样。”

树干、树和树枝

如前所述,不同版本的Windows需要一系列的产品代码分叉,不同的Windows产品从“主干”开发中“分支”出来。所以每次Windows发布,都会有至少两个不同的版本。在撰写本文时,Windows Server 2003和Longhorn正在同时开发中。因为Windows Server 2003是从XP中分离出来的,所以这个服务器产品基本上是建立在XP之上的。未来几年将超越XP的客户端发行版Longhorn,其实是在服务器代码分支的基础上生成的,而不是你所期待的XP。

卢科夫斯基告诉我们:“这种机制是自我意识的。对于当前的Windows版本,我们有一个主代码分支,它成为热修复和下一个服务包的源代码基础。一旦我们发布了一个服务包,它就变成了一个新的分支,所以我们有两个分支来测试热修复和服务包。我们不能告诉客户安装SP1,做热修复。这在每个Windows版本中都会继续,所以会有两到三个服务包、许多热补丁和许多安全补丁。每一个都是托管的,是五千万行代码的集合。这是一个巨大的话题。”

此外,对于每个主要的开发分支,微软也有大约16个分支团队,并允许他们在主线上独立并行工作。每个团队都有一个完整的生成实验室环境来生成一个包含他们变更的完整发布版本,每个团队定期将测试过的变更集成到主分支中,这样他们就可以互相交换测试过的工作。

在作战室消除错误

“如果有人不在作战室,我会批评他们。我只踢傻逼。”

——托德·万科

Windows Server分发管理办公室微软产品总监

这个项目最令人兴奋的部分是在作战室,战斗小组一天会面两到三次,一周五到六天。现在Windows Server已经进入了开发的最后阶段。"战斗小组每天都测量和报告项目的进展."汤普森告诉我们,毫不夸张地说,作战室令人震惊。“现在一切都是自动的,但当我们第一次来的时候,我们必须在纸上写下我们的工作。当时作战室大概有15到20人。现在大不一样了。”

托德·万科负责Windows Server 2003的作战室,我们惊讶地发现他非常有魅力。但在作战室工作时,他是铁腕人物,处处发号施令,产品组成员只能耐心忍受残酷的会议过程。

作战室的工作状态是这样的。每天早上9:30,来自Windows Server 2003不同职能小组的代表开会检查错误。他们排着队进入26号楼的3243室,门上标着手写的“辩论赛诊所”。房子中央有一个很大的会议桌,但许多与会者都站着,房子总是挤满了人。我们参加战团会议的那天,是第一次允许外人进入Windows Server的圣地,也是NT和Windows发展史上的第二次。那天,团队讨论了大约50个错误,大部分是简单的商标错误,尽管那天不允许我们参与讨论一些特殊的错误(所以我们很晚才进入,最重要的话题是给Windows重新命名。NET Server 2003在最后一刻作为Windows Server 2003)。

每一个错误都被记录在一个增量错误跟踪系统中,伴随着令人眼花缭乱的信息,包括错误是如何被发现的,是否有客户受到影响,以及错误被从根本上解决的完整历史。万科迅速审查错误,并召集相关职能团队的成员解释纠正的进展。例如,如果IIS中有一个或多个错误,IIS团队的代表需要参加。他不仅应该解释错误,还应该解释客户是否会受到影响,纠正对系统其他部分的影响,以及纠正需要多长时间才能完成。在开发过程的最后,如果错误不是很严重,就会“传递”给下一个Windows发行版——longhorn。