目录
开源即开放源代码,Open Source code,也称源代码公开,指的是一种开发的软件开发模式,一种基于去中心化、自组织式的软件开发模式运作的工作方式。其模式是软件、硬件或其他技术的设计和制造过程对公众开放并可自由使用、查看、修改和分发该代码。
与闭源相对应,开源的技术通常具有以下特点:
开放性:开源技术的代码和文档等信息可以向公众开放,方便用户和开发者了解和学习。自由使用:开源技术的用户可以自由地使用、复制、分发和修改。
共享创新:开源技术的开发者可以自由地在已有技术基础上进行创新和改进,推动技术的发展。
社区合作:开源技术的开发和维护通常是由社区合作完成的,参与者来自各个领域,共同推动技术的进步。常见的开源技术包括Linux操作系统、Apache服务器、MySQL数据库等,这些技术的开放性和自由性为开发者和用户带来了便利和创新空间。
开源发展历程可以分为以下几个阶段:
- 初始阶段:开源软件的概念最早出现在20世纪70年代末和80年代初。当时,计算机科学家们开始共享他们的软件代码,并允许其他人自由地使用、修改和分发这些代码。这种共享的精神奠定了开源软件的基础。
- GNU项目和自由软件基金会(FSF):在20世纪80年代,理查德·斯托曼(Richard Stallman)发起了GNU项目,旨在创建一个完全自由的操作系统。为了保护软件自由,他成立了自由软件基金会(FSF)。GNU项目和FSF的成立为开源运动奠定了基础,并推动了开源软件的发展。
- Linux操作系统的诞生:1991年,芬兰大学生林纳斯·托瓦兹(Linus Torvalds)发布了Linux内核,这是一个开源的操作系统内核。Linux的成功吸引了全球开发者的关注,并成为开源运动的重要组成部分。Linux操作系统的成功也证明了开源模式在商业上的可行性。
- 开源许可证的出现:为了保护开源软件的自由和开放性,一些开源许可证相继出现。其中最著名的是GNU通用公共许可证(GPL),它要求任何使用或修改开源软件的人都必须将其代码开放。其他常见的开源许可证还包括MIT许可证、Apache许可证等。
- 开源社区的兴起:随着开源软件的普及,越来越多的开发者和用户加入到开源社区中。开源社区成为了一个自由交流、协作和分享的平台,促进了开源软件的不断发展和改进。
- 商业化和企业参与:随着开源软件的成熟和广泛应用,越来越多的企业开始意识到开源软件的价值,并积极参与到开源项目中。一些公司还基于开源软件构建自己的商业产品和服务,形成了开源商业模式。
- 开源的广泛应用:如今,开源软件已经在各个领域得到广泛应用,包括操作系统、数据库、网络服务器、人工智能、大数据等。开源软件不仅提供了高质量的技术解决方案,还促进了技术创新和知识共享。
(99+ 封私信 / 82 条消息) 开源是什么意思,有没有解释全面的? - 知乎 (zhihu.com)
微软的一封信:
自上世纪第一台计算机问世以来,计算机产业是以硬件为主的商业模式,即硬件销售为主要收入来源,附带的软件并不收费且附有源代码,便于专业人员调试和修改。虽然现在都将软件著作权视为司空见惯,但当时的法律并不能给予这一新生事物充足的保护。后来,随着个人电脑的普及,人们对软件的需求扩大,出现了一批专门开发通用软件的公司,这样的软件公司需要对软件收费来获取利润。但软件收费与提供源代码显然是矛盾的,因为只要仍然提供源代码,就无法阻止用户或者竞争对手复制或改写软件代码。
1976年2月3日, Bill Gates发表了著名的《Open Letter to Hobbyists》(致电脑业余爱好者的一封公开信),在这封公开信中,BillGates明确提出软件应该具有“CopyRight”(版权)。这封公开信奠定了软件产品“CopyRight”的理论基础,也促使私有软件成为软件产业发展的主流。“Copy Right”理念的提出,必然导致源代码被彻底被封闭起来。
客观地讲,Bill Gates的“Copy Right”理念以及私有软件的兴起,对于推动软件产业的兴旺功不可没。但是,Microsoft等私有软件厂商对于软件市场的垄断,引发了用户和广大软件开发者的强烈不满,兴起了反对私有软件理念的运动,开源软件就是这种运动的重要组成部分。首先兴起的私有软件运动,是自由软件运动(Free Software Movement),它是开源软件运动的先河。
自由软件运动:
一些人对于软件从免费转向收费并且不再提供源代码这一现象感到不适应或不满,其中最著名的就是发起了自由软件运动的RichardStallman。70年代的Richard在MIT的AI(人工智能)实验室做程序员。施乐的打印机不再提供源代码,Richard无法像以前通过修改代码来解决打印机故障;Richard向商业公司提供了LISP编译器的公共代码,但该公司拒绝分享扩充和改进后的代码。这两件事促使Richard辞职,投入到自由软件运动中。
1983年,Richard 开始倡导自由软件运动。
1985年,Stallman等人创建了自由软件基金会(Free Software Foundation,简称FSF)。Stallman提出了与“Copy Right”理念针锋相对的“Copy Left”(许可复制权)理念,其表现形式是GPL,即公共许可证(General Pubic License)。
自由软件应该是具有如下4大自由的软件:
1.出于任何目的运行该软件的自由;
2.有研究该软件如何运行并加以改进使之更符合自己需要的自由;
3.有重新发布以帮助邻里的自由;
4.有改善程序,公布改进方案(以及通常的修订版)以推动整个社区利益的自由。
时间来到1991年,自由软件基金会已经开发了GNU操作系统的大部分组件(例如编译器、编辑器、用户界面等),但是仍然未完成作为操作系统核心的内核,即GNU Hurd。
完成操作系统内核的任务是在一个21岁的芬兰大学生LinusTorvalds的带领下完成的。出于个人兴趣和测试目的,Linus于1991年9月编写了0.01版的Linux内核,而该版内核甚至还无法运行。不过1个月后他就写出了0.02版,该版本已可以运行各种GNU组件了(所以Linux也常被称为GNULinux)。在0.02版后,来自世界各地的程序员们加入到了Linux内核的开发中,使其迅速完善。在1992年2月释放0.12版时,Linus将Linux内核的许可证改为GPL许可证第二版,并一直保持至今。
1994年3月,1.00版Linux内核开发完成。
正是 Linux 的出现,使得自由软件运动有了自己可以与 Microsoft 的 Windows 相抗衡的操作系统。自由软件运动初战告捷。但是,自由软件运动关于自由的追求,毕竟和现实的商业氛围格格不入,带有着过于理想化的色彩。这种反商业的信条,让一些本来也反对私有软件的人士对自由软件敬而远之。正是在这种背景下,一部分原有自由软件运动人士,开始尝试将理想的自由软件与现实的商业氛围进行某种衔接。
1998 年2月,Richard Stallman、Eric Raymond等人在美国加州成立了一个名为开源促进会(Open Source Initiative,简称 OSI)的组织,旨在推广开源软件。为了减少意识形态上的沟壑,以及「自由(Free)」一词造成免费软件的误解。OSI 组织决定从「自由软件」中去掉了「自由」一词,使用「开源软件」(Open Source Software)作为共通名称,并创建了自己的开放源码的定义,以及自己的一套许可证。根据开源促进会的标准,开源软件可以使用非著佐权(copyleft)性质的宽松(permissive)许可证,允许该许可证下的代码的衍生代码闭源。
用一句话概括,开源软件就是源代码开放且可以自由复制的软件。开源软件运动的理念更倾向于解决实际问题,既抓住了私有软件的痛点,又实现了与商业的融合。
开源软件和自由软件的区别:
定义和重点:
开源软件(Open Source Software):强调开放源代码、透明度和协作开发,其主要关注点在于开发模式和技术层面,以提高软件质量和推动技术创新为目标。
自由软件(Free Software):强调用户的自由权利,包括自由运行、复制、分发、研究、修改软件的权利,其主要关注点在于用户自由和社会伦理,以保障用户权益和社会价值为目标。
许可证:
开源软件:通常使用开源许可证,如MIT、GPL、Apache等,这些许可证规定了软件的使用、修改和分发条件,保证了开源软件的开放性和自由度。
自由软件:通常使用自由软件基金会(FSF)认可的自由软件许可证,比如GPL、LGPL等,这些许可证确保了用户对软件的自由使用和传播。
理念和目标:
开源软件:主要关注于提高软件质量、推动技术创新和促进合作开发,强调开放源代码、透明度和社区参与。
自由软件:主要关注于用户的自由权利和道德责任,强调保护用户的自由、防止软件专有化和确保社会公平。
社区和文化:
开源软件:开源软件更注重技术和商业应用,吸引了大量企业和开发者参与其中,形成了庞大的开源社区。
自由软件:自由软件更注重用户权利和社会价值,强调用户的自由和隐私权,吸引了一批追求自由软件理念的开发者和用户。
开源社区的组成:
在了解开源的意义和作用之前,我们需要对开源社区的组成做一个简短的介绍。开源社区由各种不同的人和组织组成,他们共同致力于开源软件的开发、维护和推广。以下是开源社区的几个主要组成部分:
开发者(Developers):
开发者是开源社区中最核心的一部分。他们负责编写、测试和维护开源软件的代码。开发者可以来自不同的背景,包括专业的软件工程师、业余爱好者、研究人员等。他们通过共享自己的代码并与其他开发者合作,为开源软件的发展做出贡献。
用户(Users):
开源社区的用户是使用开源软件的人群。他们从开源软件中受益,并提供反馈、报告错误、建议改进等。用户可以通过参与用户论坛、邮件列表、社交媒体等方式与开发者和其他用户进行交流和互动。
组织(Organizations):
许多组织在开源社区中扮演着重要的角色。这些组织可能是商业公司、非营利组织、学术机构等。它们可能提供资金、资源、技术支持或法律支持,以支持开源项目的发展和可持续性。
社区管理员(Community Managers):
社区管理员是负责管理和组织开源社区的人员。他们协调开发者、用户和组织之间的联系,促进讨论、解决冲突、组织活动等。社区管理员也可以提供指导和支持,以确保社区的健康和可持续性。
资助者(Sponsors):
一些开源项目依赖于资金支持来维持其发展和运作。资助者可以是个人、公司或组织,他们向开源项目提供捐赠、赞助或其他形式的支持。资助者的贡献有助于确保开源软件的持续发展和创新。
贡献者(Contributors):
除了开发者之外,还有其他形式的贡献者参与到开源社区中。他们可能提供文档编写、翻译、测试、设计、用户支持等方面的帮助。这些贡献者的工作对于完善开源软件的功能和用户体验非常重要。
开源的意义:
开源对社会的意义:
- 提供了一个无国界的交流学习的平台
- 促进协作和共享以及知识的传播
- 降低数字鸿沟
- 加速科技创新、推动社会进步
- 降低了软件的开发和维护成本
开源对企业的意义
- 改进代码和功能
- 获取竞争、招牌优势
- 开源商业模式直接盈利
开源对个人的意义:
- 提升代码指量
- 展示个人代码
- 建立个人品牌
- 社交和合作
- 学习和成长
开源作为大规模智力协同的创新协作模式,不仅限于代码开源的软件开发,还包括更为广泛的科技领域及协同创新的理念和机制。开源作为一种文化,具有“开放、自由、共享、协同、贡献、合规”等价值取向和重要特征。其核心理念为开放、共享、协同
开放:
指源码开放、标准开放、规则开放、环境开放等;
自由:
包括自由发布、自由传播、自由复制、自由修改、自由使用等;
共享:
指代码共享、技术共享、成果共享、知识产权共享;
协同:
指利用去中心化的生产模式来寻求解决问题,开源软件以分散和协作的方式开发,依靠同行评审和社区共建来迭代;
贡献:
则是开源文化倡导的一种重要精神,鼓励自由贡献、回馈开源。我们在享用开源带来的知识、技术及成果时,应当记住这些都源自开源贡献者基于开源精神的无私奉献所积累而成,我们也当传承这种奉献精神。
合规:
合规也是开源文化的重要价值取向,开源软件以许可证协议模式来保证开源软件的传播和利用的权利和义务。开源软件的使用、分发、传播等都需要遵循开源许可证协议的要求。
开源软件:
可以理解为一种技术和立场中立的使用许可证约束的开放源代码的软件。根据开放源代码促进会(Open Source Initiative)的开源定义(The Open Source Definition),开源软件并不仅仅意味着源代码可获取,还必须满足分发自由、原作者源码完整性、不歧视个人或团体、不歧视任何领域、不限制其他软件、许可证必须是技术中立的等十项原则。Linux操作系统是最为典型的开源软件。
开源硬件:
开源硬件的概念是受开源软件的启发而来,但实际上早在上世纪60年代就已经有了开源硬件。根据开源硬件协会(Open Source Hardware Association)对开源硬件的定义,开源硬件是可以通过公开渠道获得的硬件设计,任何人可以对已有的设计进行学习、修改、发布、制作和销售。目前较为知名的开源硬件包括Arduino、树莓派(Raspberry Pi)、BeagleBone、micro:bit、虚谷号等。
开源设计:
开源设计是开源项目的另一表现形式。开源设计被定义为遵循开源许可的可以通过公开渠道获得的设计类项目,主要指的是非源代码类型的项目,比如icon、UI、画稿、图纸等。这些项目也需要遵守开源协议,并且享受协议规章的保护。
开源文档:
开源文档被定义为遵循开源许可的可以通过公开渠道获得的文档类项目。开源文档存在于各种项目中,种类覆盖广泛,比如博客、百科、菜谱、项目说明文档等都可以作为开源文档进行分享。
开源软件是指采用了开源模式进行开发的软件。开源软件的特点包括:
源代码开放:
开源软件的源代码对公众开放,任何人都可以查看和修改代码。
自由使用:
用户可以自由使用和运行开源软件,无需支付费用。
自由分发:
用户可以在遵守开源许可证的前提下,自由地复制和传播开源软件。
允许修改:
开源软件允许用户修改和定制软件以满足自己的需求。
社区参与:
开源软件通常有一个活跃的社区,其中包括开发者、用户和贡献者,他们共同参与软件的开发、测试和维护。
开放原子开源基金会副秘书长刘京娟:中国开源发展现状及趋势思考-CSDN博客
开放、共享、协同,一文了解“开源”文化—e-works 杨培--
开放、共享、协同,一文了解“开源”文化_IT综合_基础信息化_文章_e-works数字化企业网
开放原子开源基金会副秘书长刘京娟:中国开源发展现状及趋势思考--
开放原子开源基金会副秘书长刘京娟:中国开源发展现状及趋势思考-CSDN博客
(99+ 封私信 / 82 条消息) 开源是什么意思,有没有解释全面的? - 知乎 (zhihu.com)—知乎尹乔
及其他网站相关信息