开源论战 微软和开源的“江湖恩怨”何时休?

今年IT界有一朵祥云飘过,哦,不,我不是说微软和雅虎收购案(事实上到后来烟硝味还蛮浓的)。我指的是微软对另一个宿敌—开原码—大动作示好的行为。什么,你没感觉? 今年二月间微软提出“四大互通原则”。主要包含支持业界标准、加强与开原码社群互动,及允许某些技术的非营利使用等等。可谓是近年来对开原码最大规模的善意宣示。

长久以来,微软和开源阵营一向水火不容,至少是长期在言辞上交锋。开源人士认为,OSS软件的价值在于“选择自由”宗旨的实践:免于被微软绑架。从这点就可以衍生出包括整体购买成本较底、可依自己规划时程升级、选购不同品牌的软硬产品。此外,由于集合众人智能,开源软件也被认为比较封闭式平台安全。 当然,微软作为OS界的巨人,它的响应策略也随着敌我情势不同而有所演进。我们就来看看十年中有哪些改变。

早期:超级比一比

九零年代末期达康热潮,Linux、Apache、MySQL及 PHP(统称为LAMP)被像Amazon.com及大大小小的网络公司拿来执行网站而兴起,因此很早时,微软总是告诉大家,开源虽然稳定,但平台未经实证(proven),因此它或许可当成Web、 email server、或是跑打印服务器、档案服务器等“非关键系统”(non mission-critical applications)”,但是数据库、ERP等关键系统则不宜转到开原码软件来冒险。

后来,随着Linux在服务器操作系统愈来愈普及,连Oracle也推出Linux版本,而且IBM也让z 990大型主机透过Lpart技术(即硬盘虚拟化)来执行Linux。这时期,微软打出的是“整体拥有成本”(Total Cost of Ownership, TCO)说法。按照微软的说词,企业用Linux系统,上面的应用系统不够丰富、OS修补程序、驱动程序、还有软件升级、维护、人才等等问题都得自己去找来。

按照微软的说法,Linux产品最初购买价格较便宜,但是长时间下来TCO不降反升。微软相信,对企业来说,自由价值不及管理;Windows单一环境容易管理、维护成本较低、封闭系统也较安全。而且对许多拥有数百台PC以上的大型企业,透过大量授权(EA)来采购,的确升级、采购都较为方便。若考虑人才资源,Windows与.Net人才更是"物美价廉"了。

但对计算机制造商来说,少了OS的授权,总体成本将大幅降低,尤其是毛利润降到4%左右的今天,要不是消费者仍不习惯,否则哪家不想推Linux PC呢?(低价计算机一旦安装WIndows还会低价吗?)

近几年,微软是以安全性来强调它的优越性。

讲到安全性,微软态度也是大转变。早期微软员工面对产品安全性的质疑总难以自圆其说,只能以“树大招风”自清。其实话也没错,市占超过九成的Windows,难保不惹黑客们的眼。不过自从2002年比尔盖兹著名的对员工公开信件写道:“安全是我们的第一要务”之后,微软花了很大力气来改善安全性XP SP2强化了防火墙、发布每月安全通报、Vista限制个人使用者权限、加入BitLocker等等。努力的成果让Windows安全性提升不少。(为了强调安全性,Vista的UAC甚至还说是“故意”触怒使用者的哩。)

微软不但敢说自己很安全,甚至可以举出证据,说Linux的弱点其实还更多。

或许是多年来pure Microsoft策略难以改变企业异质环境的事实,最近几年软件巨人一改仇视、批评策略,对开源采走较温和的“互通性”路线。一时之间,微软收起公关炮火,展现力求兼容的圆融面貌。

微软为了保有OS市场鱼肉乡民太久,现在好像愿意放软身段,学习敦亲睦邻的作法。

有条件释出善意

过去,微软动辄拿专利权提告威胁,让开源风声鹤唳,在温和路线之下,陆续释放善意(虽然也有人不这么认为,后面会谈到)。这些善意主要在和Linux兼容性(interoperability)基础上为之,包括2006年成立兼容实验室、和Novell签定合作协议,微软也保证不对使用该公司技术的用户提告(微软宣称开原码侵犯了该公司 235项软件专利权)。接着,JBoss、Samba、TurboLinux等等也都和微软签定技术合作协议。在台湾,微软也成立专责单位,专门负责与本地亲Linux团体,如台北市计算机公会(下有Linux促进会)建立联系,今年更参加由中研院举办的自由软件论坛。

今年二月间宣布的“四大互通原则”,大意是:从最新版OS、SQL Server、Office到Exchange等高发行量的产品做起建立互通环境,包括不对使用通讯协议(如SOAP、WS-Security、Kerberos Binding、WSDL等)做非商业应用开发的组织提告、RAND (合理、非歧视)的专利权费用原则;承诺支持业界标准,像是IE 8.0支持像是HTML 5.0与CSS 2.1,下一版Visual Studio要支援UML;促进数据的可移植性(让Office和ODF文件格式能够互通)。

由于微软老被批是封闭、拥专利自重,于是乎也展现过去几年投入贡献原始码的成果。根据微软提供的资料,该公司开原码项目网站Codeplex.com每月有1,150个项目,而且已有超过二万支开原码程序可以执行于Windows平台上。

一位微软高层对媒体将Google描述为开原码的盟友颇不以然,因为虽然Google用Linux来跑公司服务器,也用Linux改写成自有的手机操作系统Android,但究其实,Google并没有像大家要求微软公开Windows原始代码一样,将搜寻技术开放出来啊!

微软的逻辑很明白:只要在Windows之上,一切都好谈。而它也想强调一点是,不是Linux不等于不会开放原始码(你瞧我不是贡献很多吗?)。反之,用Linux不一定就会开放原始码。

难以跨越的鸿沟

尽管微软看来极具诚意,开源阵营似乎不太领情。撇开过去种种公开言论不谈(毕竟开源的炮火也不遑多让),开源人士比较担心的是,这种热烈拥抱只是邪恶帝国“先拥抱、再延伸、最后歼灭之”(embrace, extend and extinguish)的故技重施,想想IBM OS2、Netscape等,和它合作的得获善终者几希。那些和微软合作的,从Novell到Sun Microsystems和最近的OLPC,不是遭人批评背叛自由精神,就是大概缺钱而受微软金钱攻势招降。

较温和派则认为,微软的确迈向开放,但基于卖Windows的原罪,恐怕不可能真的开放。例如,尽管微软改善了Windows在异质环境下的兼容性问题,但说穿了,微软最终还不是想卖Windows吗?如果要共通,就应该完全支持标准化、Internet,不把使用者绑在平台上,而不是另立一套障碍重重的"产业标准"。

微软坚持的软件专利权,对一些极左派人士像Richard Stallman来说,则是完全没有讨论空间。他五月间来台时,再度大力批判软件专利权。而对开源有限度的不提告,业者或企业用户恐怕还是会怕怕的,因为专利规定一个弄不清楚,你不知道哪一天会接到法院传单。

另外,桌面端每隔五、六年一次的OS强迫升级剧目,引发的使用者不满,更是一个不是花钱做营销就能灭得了火的罪愆。只要新PC不再安装旧OS,终究使用者不得不使用新版本。从Windows 2000、XP到Vista(2009年又有Windows 7),教受挫的使用者如何不对Linux on Desktop恨铁不成钢!

微软对开源从公开口水战、到商业合作(收买?)、学习开放模式、再到释放兼容性善意,这戏剧化情况未来还会怎么演不得而知。只是我怀疑,微软的几个坚持若一天不改变,两者可能永远都会处在楚河汉界的两边,再怎么演变,只是为软件业历史凭添曲折的情节。