“如果你不能击败你的对手,就加入他们”这句生存法则的精髓现在套用在微软身上正合适。微软于昨日正式宣布加入开放源代码社区,并宣布遵守开放源代码协议(OSI)。
在衡量轻重后,微软的软件许可条款会加入10项开放源码定义,OSI标准将出现在微软公共许可(Ms-PL)与微软交互授权协议(Ms-RL)上。
但是来自开源社区的微软操作系统对手则对于微软的表示显得相当惊异。红帽负责源代码部分的副总裁Michael Tiemann惊叹道:“这是终结的开始吗?抑或是现在才开始终结?”“我会睁大看看开源技术世界到底会发生些什么变化,我也将看看微软的将来会做出些什么。”
今年七月,微软就表示他们即将批准符合OSI标准的微软公共许可(Ms-PL)与微软交互授权协议(Ms-RL),自由软件基金会曾就微软把三款授权软件转为免费软件公开赞扬微软。
微软表示,从7月起该公司就一直在与开发源代码社区和OSI董事会联系以听取反馈意见,并进行关注以做出适当的改变。但是从OSI的邮件列表里仍然可以看出微软加入OSI的事件还是激起了不少人的反对,例如Google就做出过一些负面评论。
Google的开发源码程序经理Chris DiBona曾想要在微软加入OSI应用时附加一些额外条款,他在写给OSI的群组邮件中写到“这是一间曾经把开发源代码组织比喻成癌症的公司!我们为什么要批准这样的事情?难道只是为了表现友善?”
另外一些人则认为,微软支持开放源代码的宣布简直是天要塌下来了,并且认为开放源代码的世界末日即将来临。一位分析师在个人Blog中写到,“对于其他人来说,微软的宣布代表了一个进程,我们看到了微软开始加入OSI并开始影响到OSI的条款。看起来微软愿意采用灵活的态度”
Open Source:Show All
\"Open Source\"(开放源码)被非赢利软件组织(美国的Open Source Initiative协会)注册为认证标记,并对其进行了正式的定义,用于描述那些源码可以被公众使用的软件,并且此软件的使用、修改和发行也不受许可证的限制。
开放源码软件通常是有版权 ( copyright ) 的.它的许可证可能包含这样一些限制:着意地保护它的开放源码状态,著者身份的公告,或者开发的控制。实际上,开源软件同时涉及源码本身和开发过程,涵盖了三个方面的意义:免费分发的源代码、模块化的体系和集市式的开发--在这种开发方式中,任何地方的任何人都可以参与最终产品的制造,三个方面互相之间有密切的联系,集市式的开发过程给开源软件以强大的改错能力,因为它将程序中的错误公开给了数量巨大的观众,他们都是潜在的改错者。另一方面,任何人都可以复用和发行开源软件的代码这一事实又支持了公众利益,因为创新的观念被整个集市所共享。另外,\"open source\"这一术语还被延伸到其他智力团体中,指那些可通过公开手段获得的智力资源,比如报纸、教学课件等。
美国一些进步的评论家指出,在象网络这样的虚拟环境中,驱动系统的底层代码,尤其是广为人知的那些应用程序之间的通信协议,它们在某种意义上很象现实社会中的法规。换句话说,这些代码对网上的行为给出了一些规范,它鼓励某些行为,而限制其他行为,就像现实社会的法律一样。因此,开放源码带来了一个更民主的开发方式,在这种方式下,好的主意将被集体分享,而不是作为智力资本被个人秘藏着。在这种意义上,开放源码实质上成为一种政治哲学。
相关组织:Show All
自由软件有个自由软件基金会(Free Software Foundation,FSF),而开源软件则是开放源代码运动协会(Open Source Initiative,OSI)。
OSI 的理念非常简单:当程序员能够阅读,分发,和修改某个软件的源代码时,软件就能进步。许多人改进它,许多人改造它,许多人为它除错,“只要眼球足够多,所有臭虫都好捉”。 OSI 专注于强大可靠的软件技术。
开源的成果:Show All
开放源码带来了一个更民主的开发方式,在这种方式下,好的主意将被集体分享,而不是作为智力资本被个人秘藏着。
最早的开源可以 回朔到1960年代。当时,售卖大型计算机的厂商如IBM,把一些软件及原始码一并送给客户,让客户能够因不同需求而自行更改软件。在 1991-1992 年期间,住在芬兰的 Linus Torvald制造了第一版的 Linux 操作系统。在一群热心的程序人员努力下,把 Linux 操作系统以及外围的应用程序逐一打造。
出名的开源作品除了趋于成熟的Linux 操作系统外,还有 Apache网页服务器、Perl 程序语言、MySQL 数据库、Mozilla 浏览器、OpenOffice等等。近来,在政府的推动及各软件大厂(如 IBM、Redhat、Apple 等)的推动下,预料这股旋风将会掀起新的软件革命。
OSI协议:Show All
OSI协议是ISO组织早期提出的一个网络协议. 这个协议分为七层
- 第一层: 物理层(physical). 定义了网络硬件的技术规范. 如RS-232标准定义了LAN的硬件规范.
- 第二层: 数据链路层(data link). 定义了数据的帧化和如何在网上传输帧.
- 第三层: 网络层(network). 定义了地址的分配方法以及如何把包从网络的一端传输到另一端.
- 第四层: 传输层(transport). 定义了可靠传输的细节问题.
- 第五层: 会话层(session). 定义了如何与远程系统建立通信会话.
- 第六层: 表示层(presentation). 定义了如何表示数据. 不同品牌的计算机对字符和数字的表示不一致,表示层把它们统一起来
- 第七层: 应用层(application). 定义了网络应用程序如何使用网络实现特定功能.