您的位置:首页 > 运维架构

关于open source software

2010-11-18 16:28 405 查看
由于种种原因,我对开源软件以及各种开源软件协议知之甚少。但最近参与的GSOC的一个项目正在因为开源协议的转变而进行着激烈的讨论,由于里边有我很少的贡献,所以促使我去了解开源软件以及各种协议。

下面的很多内容引用自《开源软件之道》和电影"Revolution OS"。

GNU项目是开源软件最早的尝试,它的创立者是Richard Stallman,因困扰于当时各种软件不能自由修改和发布而成立。我们列出一些开源世界的大事件

1976年2月 比尔盖茨给爱好者们的一封公开信,应该说这封信让人们认识到了源代码/软件本身的版权问题

1983年9月Richard Stallman 创立GNU项目

1985年10月Richard Stallman 成立 Free Software Foundation

1989年1月GPL v1发布

1991年 Linus Torvalds 发布 Linux 内核

1995年 Apache Http Server 发布

1997年 Eric Raymond 发布《从教堂到集市》,阐述了开源和闭源软件开发的种种不同,并再次提出"只要有足够多的眼睛,就能发现bug"的论断。

1998年Netscape 公开 Netscape 浏览器和 Bugzilla 代码, Mozilla 开源项目启动

1998年2月 Bruce Perens 和 Eric Raymond 等成立开源软件促进会OSI

1998年4月 Open Source Summit 举行,开源软件的提法开始流行

1999年3月 Apache 软件基金会成立

1999年11月 SourceForge.net上线

2004年1月 Eclipse 基金会成立

2004年11月 Firefox v1.0发布

2005年5月 Apache Harmony 项目成立,开始开发一个基于Apache许可证的Java SE

2006年11月 Sun创立OpenJDK项目,并使用GPL许可证

2007年6月 GPL v3在激烈的讨论之后终于发布

2007年11月 Google 发布Android 平台,并主要是用Apache 许可证

开源世界的大人物:

Richard Stallman

他早先在MIT工作,因不满于闭源软件的种种限制,他成立了GNU项目以及Free Software Foundataion。 他可以说是自由和开源软件的精神领袖, 他讲自由软件上升到一个哲学的层面上。 虽然现在很多人去拥抱Stallman嗤之以鼻的"商业友好"型的开源协议, 但他仍旧以一个传道者的身份, 在各种场合宣传着自己自由软件的哲学。

Eric Raymond

开源软件的传道者,参与了GNU的多个项目,发起成立了开源软件促进会,并提出了以open source software 来统一大家对开源/自由软件的描述。

Linux Torvalds

他和他的Linux可以说是开源软件最好的实践,Linux发布以GPL协议的形式,极大的促进了开发工作。

说到开源软件,不得不提到各种开源软件的协议(license), OSI认证了很多协议,每个协议都有自己不同的版本,其中比较知名的有:

GPL 是FSF最为推崇的协议,GPL最大的特点是"传染性"(copyleft), 如果对基于GPL的软件进行修改再发布,则不能以弱于GPL的协议发布。

LGPL 弱的GPL协议,允许非LGPL协议的软件以动态链接的形式链接到LGPL协议的代码中。

MPL MPL License, 允许免费重发布、免费修改, 但要求修改后的代码版权归软件的发起者。 这种授权维护了商业软件的利益, 它要求基于这种软件得修改无偿贡献版权给该软件。 这样, 围绕该软件得所有代码得版权都集中在发起开发人得手中。 但MPL是允许修改, 无偿使用得。 MPL软件对链接没有要求。

CDDL 通用开发和发布许可证

CPL 通用公共许可证

EPL Eclipse公共许可证

BSD BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。 当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。

2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。

3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

BSD代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

MIT

Apache Apache Licence 是著名的非盈利开源组织Apache采用的协议。 该协议和BSD类似, 同样鼓励代码共享和尊重原作者的著作权, 同样允许代码修改, 再发布(作为开源或商业软件)。 需要满足的条件:

1. 需要给代码的用户一份Apache Licence

2. 如果你修改了代码,需要在被修改的文件中说明。

3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。

4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

AGPL 被称为是GPL的加强版,明确了网络服务的copyleft.

可以说,除GPL和AGPl外,其它的开源协议都是商业友好的协议,能有效的保证公司的利益。

-----------------------------------------------------------

关于开源软件与商业利益

Stallman提出,free software并不是免费软件,公司可以以之收费。并有过一些关于开源软件盈利模式的建议,比如咨询、培训等等。

但仅仅靠这样的盈利方式,对于如此多的软件和互联网公司来说,远远不够。

另一方面,由于GPL的传染性,使得公司因为顾虑而难以参与开源。

各种商业友好的开源协议, 因为其有效的保证了公司的利益, 促进了开源世界的发展。

------------------------

附1:《从教堂到集市》

附2:比尔盖茨-给玩家的公开信

AN OPEN LETTER TO HOBBYISTS

By William Henry Gates III

February 3, 1976

An Open Letter to Hobbyists

To me, the most critical thing in the hobby market right now is the lack of good software courses, books and software itself. Without good software and an owner who understands programming, a hobby computer is wasted. Will quality software be written for the hobby market?

Almost a year ago, Paul Allen and myself, expecting the hobby market to expand, hired Monte Davidoff and developed Altair BASIC. Though the initial work took only two months, the three of us have spent most of the last year documenting, improving and adding features to BASIC. Now we have 4K, 8K, EXTENDED, ROM and DISK BASIC. The value of the computer time we have used exceeds $40,000.

The feedback we have gotten from the hundreds of people who say they are using BASIC has all been positive. Two surprising things are apparent, however, 1) Most of these "users" never bought BASIC (less than 10% of all Altair owners have bought BASIC), and 2) The amount of royalties we have received from sales to hobbyists makes the time spent on Altair BASIC worth less than $2 an hour.

Why is this? As the majority of hobbyists must be aware, most of you steal your software. Hardware must be paid for, but software is something to share. Who cares if the people who worked on it get paid?

Is this fair? One thing you don't do by stealing software is get back at MITS for some problem you may have had. MITS doesn't make money selling software. The royalty paid to us, the manual, the tape and the overhead make it a break-even operation. One thing you do do is prevent good software from being written. Who can afford to do professional work for nothing? What hobbyist can put 3-man years into programming, finding all bugs, documenting his product and distribute for free? The fact is, no one besides us has invested a lot of money in hobby software. We have written 6800 BASIC, and are writing 8080 APL and 6800 APL, but there is very little incentive to make this software available to hobbyists. Most directly, the thing you do is theft.

What about the guys who re-sell Altair BASIC, aren't they making money on hobby software? Yes, but those who have been reported to us may lose in the end. They are the ones who give hobbyists a bad name, and should be kicked out of any club meeting they show up at.

I would appreciate letters from any one who wants to pay up, or has a suggestion or comment. Just write to me at 1180 Alvarado SE, #114, Albuquerque, New Mexico, 87108. Nothing would please me more than being able to hire ten programmers and deluge the hobby market with good software.

Bill Gates

General Partner, Micro-Soft
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: