开放源代码
开放源代码(Open Source):用于描述那些源码可以被公众使用的软件,并且此软件的使用、修改和发行也不受许可证的限制。被非赢利软件组织(美国的Open Source Initiative协会)注册为认证标记,并对其进行了正式的定义。指一种软件散布模式。开源并不仅仅作者公开其源代码即称为“开源”,真正的开源要符合多个条件才能称之为“开源”。
重要人物[ ]
- Richard Stallman——自由软件运动的精神领袖。
- 林纳斯·托瓦兹——Linux内核的创造者。
- Eric Steven Raymond——开放源代码运动理论家,Fetchmail软件的创造者,《大教堂与市集》的作者。
组织及协作计划[ ]
- Linux——第一个采用开放源代码软件开放模式的软件协作计划
- Debian——开放源代码开放模式下的Linux包
- Mozilla Firefox——开放源代码的浏览器
- OpenOffice.org——开放源代码的办公软件
- OpenBSD、FreeBSD、NetBSD和OpenSolaris——四个相近的开放源代码4BSD UNIX版本
- 开源人(vifir.com)——以宣传开源人物和开源项目为主的开源社区
- 开放源代码促进会(Open Source Initiative)——促进开放源代码运动发展的组织
- OSDN——专门发布与开放源代码运动有关新闻的网站
介入开源运动发展的企业[ ]
- 红帽公司(Red Hat)—— 最大的Linux包发行商
- 红旗Linux—— 中国最大的Linux发行商
- 苹果电脑(Apple)——开放了该公司操作系统Mac OS的内核Darwin的源代码(但不包括图形用户界面)。
- IBM—— 协助发展多项开放源代码计划
- 网景公司(Netscape)—— 协助发展Mozilla计划
开源模型的应用及漏洞[ ]
wiki就是开源模型应用的实例之一。其他开源的应用还可以在政策法规方面。
虽然开放源代码的堡垒看似严谨,但其实大部份的程序开发员都弄不清各种许可证之间的差别,导致成为了小部份别有用心人士所利用的对象, 较著名的例子有Divx,早期divx雏形是一个LGPL的自由软件,由大部份优秀的软件高手义务地开发,但当软件渐渐成形时,divx的公司DXN利用LGPL的漏洞对divx进行了闭源,大部分义工都感到被出卖,所以着手开发了Xvid。虽然Xvid在软件方面明显比divx优秀,但市场占有率却不如divx
开放源代码的定义[ ]
1. 免费重新发布
当软件是几个不同来源的程序集成后的软件发行版本中的其中一个组件时,许可证不能限制任何团体销售或分发该软件,并且不能向这样的销售或分发收取许可费和其他费用。
2. 源代码
程序必须包含源代码,并且必须允许以源代码或已编译的形式发布。如程序在发布时未带源代码,则必须以一种非常公开的方式,在不超过合理重造成本的情况下,让人们获得源代码,例如可以在不收取费用的情况下,放在网络上供人们下载。源代码无疑是编程人员最容易修改程序的形式。不允许故意混乱源代码。也不允许使用中间形式,比如预处理器或转换器的输出。
3. 衍生产品
许可证必须允许修改原产品和衍生产品,并且必须允许在与原始软件相同的授权情况下发布修改过的产品。
4. 作者的源代码的完整性
许可证可以禁止他人以修改过的形式发布源代码,只在该许可证基于修改程序的目的时,才允许随源代码发布 “补丁文件”。该许可证必须明确允许发布根据修改过的源代码构建的软件。许可证可能要求衍生产品必须附加不同于原始软件的名称或版本号。
5. 不得歧视任何人或团体
许可证不得歧视任何人或任何团体。
6. 不得歧视程序在任何领域内的使用
许可证不得禁止任何人在特定领域内使用某一程序。例如,不得禁止程序在商业上的应用,或者在基因研究上的使用。
7. 许可证的发布
附加在程序上的权利必须应用于那些使用重新发布的程序的人,无需通过其他人额外加以授权使用。
8. 许可证不得专属于特定产品
附属于程序的权利不得仅限于作为特定软件发行版一部分的程序。如果程序衍生自该发行版并以获得该程序的授权的名义被使用或发布,则使用重新发布的该程序的其他所有人应该享有原始软件发行版本中所授予的那些权利。
9. 许可证不得对其他软件加以限制
许可证不得对其他随已许可的软件一起发布的软件附加任何限制。例如,不得规定在相同媒体上发布的其他所有程序接受该许可证的限制。
10. 许可证必须是技术中立的
任何许可证规定都不可以基于任何单独某项技术或界面风格。
开放源代码与自由软件[ ]
许多人将开放源代码与自由软件(free Software)视为相同,但若以定义条件而言,自由软件仅是开放源代码的一种,也就是自由软件的定义较开放源代码更为严格,并非开放源代码的软件就可称为自由软件,要视该软件的授权条件是否合乎自由软件基金会对自由软件所下的定义。
开源软件基础[ ]
操作系统[ ]
- o Linux
- o BSD
- o BSD + System V
协议基础[ ]
- o 高层协议
- + TCP/IP Suite
- + 分布式协议
- # CORBA
- # DCOM
- # RMI
- + 中间件协议
- # XSTP
- o 底层协议
- + OSI模型
- + SNA模型
- + APPN模型
开源软件语言[ ]
- o 表现层语言(HTML, CSS, XML)
- o 脚本语言(XSL, TCL, PHP, JavaScript,Perl, Python),不同于前三者,其中Perl, Python偏向系统语言。
- o 系统语言(C/C++, Java)
一些开源软件[ ]
- Linux——操作系统内核
- Eclipse——软件开发平台,尤其是对 Java 开发
- TeX——排版软件
- Apache——HTTP服务器
- Mozilla Firefox——网络浏览器
- GNU Emacs——文本编辑软件
- XFree86, X.Org服务器——用于UNIX/Linux系统的图形用户软件
- GNU GCC、Open64——多种语言编译器
- Zope——应用服务器
- Plone——内容管理系统
- OpenOffice——办公软件套装
- GIMP——GNU图像处理软件