不出外界意料,Oracle宣布支持Red Hat Linux(即Oracle公司可为使用Red Hat公司的Linux操作系统用户提供技术支持性质的服务,Oracle所收的服务费用要比Red Hat少的多,当时引起了Red Hat股票下跌)。一时间在国内外引发各种议论,似乎难辨Oracle对Red Hat的“支持”是善意还是恶意。我认为,Oracle如果未取得Red Hat的授权,Oracle是难以对Red Hat的Linux用户提供支持的,如果硬要提供支持,也难保用户安全的。其原因是Oracle并没有掌握Red Hat的工程化实现技术。
人们常常误解(看来也包括Oracle的一些决策者在内),似乎Red Hat Linux在执行自由/开源软件GPL许可协议后,其源代码将全部公开,任何人都可从网上自由下载、自由使用、自由修改、自由发行;Oracle是全球第二大软件公司,具有强大的技术实力,它在“充分了解”Red Hat Linux业已公开的全部源代码后,似乎可以单独向Red Hat Linux用户提供支持,认为这是轻而易举的事。
因为这个问题涉及到对自由/开源软件一些基本概念的认识,我认为我在这里必须说清楚。我过去曾多次谈到在开源软件中存在工程化实现技术问题,这是一种专有技术、隐性技术和工程经验,它是并不公开的,其中含有技术秘密与商业秘密(Google资深专家现身说法同意我的看法)。
我曾引用国际IT评论家Matt Asay的一段话:“人们可以得到Red Hat公司企业级Linux发行版的全部源代码,但它直接交付给用户使用的二进制版本(即所谓‘ready to go’版本)并不是这些源代码编译的结果,其中存在着一些差异,这就是商业秘密。”
我经过长期考察后发现,开源软件发行商的Linux内核发行版其源代码或其二进制版本的源代码,与其必须遵循的由Linus Torvalds负责开发和监护的官方(Offical)“内核主线”版本公开的源代码之间存在3-5%的偏差(这不光是Red Hat,也包括Novell和其他Linux发行商,他们均以把握这个偏差的能力来作为其开源品牌创优的条件),今年6月16日,我在与Linux内核2.6版本监护人Andrew Morton讨论时,他向我确认上述偏差的存在(其偏差程度也获得允许),并明确指出形成偏差的原因并不是由于“挑错—纠错—打补丁”的方式所致,而是 “基于其工程技术/工程经验,实现创优”所致。
再者,由于Fedora(开源社区)/Red Hat(开源企业)对其Linux掌握了顶层设计,他们除公开全部源代码外,尚把握很多隐性技术、积累很多工程经验,他们在“挑错、纠错、打补丁、改进或升级”(这也是“支持”的重要内容)过程中,自然也要比诸如Oracle这样的企业要提前一个“时间差”(一般估计为6-8个月),Oracle将落在后面来“支持”,这时“支持”的安全性也就值得商榷了。
除此之外,为提高Linux的稳定性、效率和灵活扩展性,需对其Linux的各软件模块进行优化配置,这也是一种与全部公开的源代码无关(或与执行GPL许可协议无关)的不公开的工程化实现技术。打一个形象比方:如两个企业都掌握了同样的“汽车零部件”,但各自装配出来的“汽车”,其安全性、稳定性、效率及其他性能可能不一样,甚至出入很大。
原文链接:http://www.enet.com.cn/article/2006/1219/A20061219347166.shtml