“Microsoft is sharing source code with customers, partners, governments, and competitors. ”

   2003年底,Microsoft通过MVP Source Licensing Program (MVPSLP)向MVP开放了Windows 2000、Windows XP和Windows Server 2003操作系统及其主要Service Pack的源代码。MVPSLP允许MVP阅读、参考这些操作系统的完整源代码,但是不能对原码进行修改或者将源代码用作技术支持以外的其他用途。

  我在2003年10月提交了MVPSLP的申请,今年2月收到并且签署了相关的Agreement,3月初收到用于访问Code Center Premium的SmartCard/Reader和Certificate,并且简单的浏览了一下Internet Explorer的源码(其实没看出什么名堂吐舌笑脸)。Microsoft提供了一个Online的Source Code Server,以避免在客户端直接保存完整的操作系统源代码带来的维护负担和安全隐患。一方面我们可以在浏览器里通过SSL连接(需要客户证书认证)直接浏览源代码;另一方面,Source Server保存了各个操作系统版本的Symbol File (*.PDB),通过使用WinDbg我们可以直接进行源代码级的Kernal调试。这里有一段演示,是通过WinDbg单步跟踪CoInitialize的(Cool, Isn't it? 咧嘴笑脸)。

    目前Souce Server还不能及时更新各个Hotfix的Symbol File,而我不幸总是很及时的Apply 各种Hotfix,这就导致了在我的机器上不能原码级调试一些经常更新的系统文件(NTDLL.DLL等等)悲伤的脸。正准备另起炉灶安装一个“赤裸裸”的Windows 2000,专门用来调试。笑脸

    3月15号的New York Times上有一篇关于Microsoft Shared Source Program的文章,原来包括政府机关、Microsoft的合作伙伴、当然还有MVP在内,MSSP已经发布了100万个源代码许可(第一百万个说不定是我,不知道有没有什么奖品咧嘴笑脸)!看来Windows的源码虽然还算不上“地球人都知道”,可比Coca-Cola的配方要公开多了。笑脸

   P.S. Rotor(Shared Source CLI)实际上是Microsoft Shard Source Program的一个部分,它是.NET Framework源代码经过裁减以后的一个分支。包括了所有ECMA标准的内容,但是没有Asp.net和Windows Form部分。