From 5be81d2cd76f16d88f2f7ab869fb9ce9092c2a08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=80=8A=E6=96=B0=E7=A8=8B=E5=BA=8F=E5=91=98=E3=80=8B?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E9=83=A8?= Date: Mon, 23 May 2022 17:02:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E3=80=8A2022=E4=B8=AD?= =?UTF-8?q?=E5=9B=BD=E5=BC=80=E6=BA=90=E5=8F=91=E5=B1=95=E8=93=9D=E7=9A=AE?= =?UTF-8?q?=E4=B9=A6=E3=80=8B=E9=9D=9E=E6=9C=80=E7=BB=88=E7=89=88/?= =?UTF-8?q?=E7=AC=AC1=E7=AB=A0=20=E5=BC=80=E6=BA=90=E7=9A=84=E5=9F=BA?= =?UTF-8?q?=E6=9C=AC=E6=A6=82=E5=BF=B5.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...72\346\234\254\346\246\202\345\277\265.md" | 231 ++++++++++++++++++ 1 file changed, 231 insertions(+) diff --git "a/\343\200\2122022\344\270\255\345\233\275\345\274\200\346\272\220\345\217\221\345\261\225\350\223\235\347\232\256\344\271\246\343\200\213\351\235\236\346\234\200\347\273\210\347\211\210/\347\254\2541\347\253\240 \345\274\200\346\272\220\347\232\204\345\237\272\346\234\254\346\246\202\345\277\265.md" "b/\343\200\2122022\344\270\255\345\233\275\345\274\200\346\272\220\345\217\221\345\261\225\350\223\235\347\232\256\344\271\246\343\200\213\351\235\236\346\234\200\347\273\210\347\211\210/\347\254\2541\347\253\240 \345\274\200\346\272\220\347\232\204\345\237\272\346\234\254\346\246\202\345\277\265.md" index 8b13789..26b09d8 100644 --- "a/\343\200\2122022\344\270\255\345\233\275\345\274\200\346\272\220\345\217\221\345\261\225\350\223\235\347\232\256\344\271\246\343\200\213\351\235\236\346\234\200\347\273\210\347\211\210/\347\254\2541\347\253\240 \345\274\200\346\272\220\347\232\204\345\237\272\346\234\254\346\246\202\345\277\265.md" +++ "b/\343\200\2122022\344\270\255\345\233\275\345\274\200\346\272\220\345\217\221\345\261\225\350\223\235\347\232\256\344\271\246\343\200\213\351\235\236\346\234\200\347\273\210\347\211\210/\347\254\2541\347\253\240 \345\274\200\346\272\220\347\232\204\345\237\272\346\234\254\346\246\202\345\277\265.md" @@ -1 +1,232 @@ +## 第一章 开源的基本概念 + +### 1.1 开源的定义和特征 + +#### 1.1.1 开源的定义 + +开源(Open Source)—词于1998年2月3日由Chris Peterson提出,“Open Source”的概念出自当时著名的黑客(Hacker)社区Debian的社长Bruce Perens起草的“ Debian Free Software Guidelines”(DFSG)。 + +1998年2月下旬,Eric Raymond和Bruce Perens共同创立"Open Source Intiative"(OSI), OSI承担的首要任务之一是起草开源定义(OSD),并使用它来开始创建OSI批准的许可证列表。 + +对确立“Open Source”定义有决定意义的是在1998年4月7日在美国加州Palo Alto由18位“自由软件运动领袖”召开的Freeware”高层会议,通过了传播开源的必要性。会议由Tim O'Reilly主持,Brain Behlendorf(Apache创始人)、Linus Torvalds(Linux创始人)、Guido Van Rossum(Python创始人)、Eric Raymond(著名记者、OSI首届主席)等参加。 + +随着时代的变迁,开源的定义内涵也在不断演进。目前的共识是:开源是促进信息技术创新的重要途径,是将源代码、设计文档或其他创作内容开放共享的一种技术开发和发行模式。技术领域的开源已包含源代码+软硬件设计文档源代码、源数据等技术和资源的开放共享,源代码仍然是开源的主要内容。 在开源模式下,通过许可证的方式,使用者在遵守许可限制的条件下,可自由获取源代码等,并可使用、复制、修改和再发布。 + +本质上,开源模式是一种依托互联网平台,大规模群体智慧通过共同参与和协作,不断累积智慧,实现持续创新的方法。该方法中,项目的核心开发人员与大规模的外围群体紧密合作,他们通过互联网来共享资源、开展协同开发、管理代码等,由此使得项目开发的效率、应对需求变化的能力大幅提升。 + +#### 1.1.2开源的特征 + +中国开源软件推进联盟于2016年归纳提出的(已被国际认可)开源特征包括:开放、创新、自由、共享、协同、绿色、民主(化)。开源的本质在于开放、共享、协同。 + +* 开放指开放标准、开放环境、开放源码; +* 创新是主轴; +* 自由指自由发布、自由传播、自由复制、自由修改、自由使用,其中,自由传播是开源运动的要义; +* 共享指共享资源; +* 协同指协同开发、协同作业、协作生产; +* 绿色指支持绿色可再生能源、绿色环境和零边际成本效应; +* 民主化指在新兴协同共享中,创新和创造力的民主化正在孵化一种新的激励机制,这种机制很少基于经济回报,而更多地基于推动人类的经济生活方式,缩小收入差距,实现全球民主化。为避免原创技术的流失,不能单纯限制孵化阶段开源代码的自由传播,可通过开源的商业模式、安全模块、运维举措、生态系统所构筑的屏蔽层来解决。 + +作为一种创新协作模式,开源已经不仅仅是开放源代码的软件技术开发,还包括更为广泛的开放技术领域及协同创新的理念与机制,总体包括开放科学、开源软件、开源硬件、开源技术、开源文化、开源经济等。“互联网+基于知识社会的创新 2.0”是开源创新的基础理论(2005年由中国开源软件推进联盟提出,后来获得全球开源界领袖们的确认),与工业 4.0、工业互联网机制相通,与最近提出的元宇宙(Metaverse)概念相似。利用开源渠道,将高阶社会(知识社会,虚拟化的实验空间)中的技术、管理、资源等要素,作用于低价社会(现实的工业社会,物理空间)中的业态(生产的、技术的、经济的、社会的),促使其产生0→1的爆发性重构。 + +#### 1.1.3 开源的范畴 + +时至今天,开源已成为开源软件、开源硬件、开源生态、开源技术、开源社区、开源经济、开源商业模式、开源理念、开源文化、开源教育、开源许可证、开源基金会、开源孵化器、开源数字化治理体系、开源标准等总称。 + +### 1.2 世界开源发展简史 + +世界开源的发展历史,具有三个里程碑时间节点:1970年、1985年、1991年,分别对应UNIX、GNU、Linux的发展。 + +#### 1.2.1 UNIX简史 + +* 1969年之前,Bell实验室和MIT、GE合作启动开发一个多任务多用户的操作系统Multics,为早期UNICS操作系统诞生创造条件。 +* 1969年,UNIX原型——UNICS(UNiplexed Information and Computing System)诞生。 +* 1973年,Dennis Ritchie发明C语言,用C语言将UNICS重新改写并更名为UNIX,UNIX正式诞生。 +* 1969-1977年,UNIX相继推出V1-V6版本,向社会开放源代码。 +* 1977年开始进入“后UNIX”时代,UNIX开始演化为UNIX(闭源,即AT&T-UNIX)和BSD(开源,即BSD-UNIX)。主流的开源BSD操作系统主要有386BSD、FreeBSD、NetBSD、OpenBSD。 + +因此,世界开源的历史始自1970年开启的“前UNIX”,至今52年,开源在事实上已经历了半个世纪的发展历程。 + +#### 1.2.2 GNU简史 + +GNU系统是一套向上兼容UNIX的完全自由的操作系统。GNU代表“GNU's Not UNIX”。 + +* 1983年9月27日,Richard Stallman提出了GNU工程的初始声明,意在找回在早期计算机社区中广泛存在的合作精神,通过除去专属软件所有者设置的障碍而使得合作再次成为可能。 +* 1984年1月,Richard Stallman从MIT离职并开始编写GNU软件,同年9月开始GNU Emacs的工作。 +* 1985年,Richard Stallman发表《GNU宣言》,吸收“前UNIX”和BSD的开源成果,开发推出Emacs等编译器等自由软件(Free Software)。同年10月,自由软件基金会(FSF)正式成立。 + +“Free Software”中的“Free”关乎自由,而不是价格,是指可以付费或不付费得到GNU软件。一旦得到了软件,便拥有了使用它的四项特定自由。可以自由按照自己的意愿运行该软件;可以自由复制软件并将其送给朋友和同事;可以自由通过对源代码的完全控制而改进程序;可以自由发布改进的版本从而帮助社区建设。 + +#### 1.2.3 Linux简史 + +Linux的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX操作系统、MINIX操作系统、GNU计划、POSIX标准和Internet网络。 + +* 1977年,UNIX的重要的分支——BSD在UC Berkeley诞生。开发者是后来的SUN公司创办者Bill Joy。 +* 1984年,Andrew S. Tanenbaum为了能续进行学术教育研究,自行重新开发了一个基于“前UNIX”和BSD4.3的开放源代码操作系统——Minix,这是Linux最开始的前身。 +* 1985年,GNU开源计划和FSF基金会成立。在这个时间前后,涌现了很多重要的软件和协议,如GPL协议、GCC C编译器、Emacs编辑器、Glibc、bash shell等,为Linux后来的发展创造好了肥沃的土壤。 +* 1991年,芬兰本科生Linus Torvalds在Minix和和GNU成果的基础上,开发并发布了开放源代码操作系统Linux0.01。Linus承认其为GNU Linux(自由软件),但他更喜欢采用Linux(开源软件)。Linux问世至今31年。 +* 1992年1月5日,Linux v0.12 release 版本的内核重新以GNU GPL的协议发布。原来的许可证是禁止任何商业用途的。通过这次协议变更,发布和出售修改或未修改版的Linux成为了可能。5月21日 , Peter MacDonald发布第一个独立的Linux安装包SLS。 +* 1993年6月17日,Slackware Linux由Patrick Volkerding发布,这是第一个取得广泛成功的Linux发行版,现在仍在使用。8月16日 ,Ian Murdock(Debian中的“ian”)发布了第一个Debian Linux的发行版。Debian是最有影响力的Linux发行版之一,是MEPIS、Mint、Ubuntu等众多发行版的鼻祖。8月19日 ,Matt Welsh写的《Linux Installation and Getting Started》第1版出版,这是第一本关于Linux的书籍。 +* 1994年3月14日 ,Linux内核V1.0发布,它支持基于i386单处理器的计算机系统。8月15日 , William R. Della Croce, Jr.申请了“Linux”商标,9月进行了注册。11月3日,Red Hat共同创始人Marc Ewing宣布可以以49.95美元的零售价格获得Red Hat Software Linux的CD-ROM和30天的安装支持。 +* 1996年5月9日 ,最初由Alan Cox提议,之后经Linus Torvalds改良,Larry Ewing创造了这只叫做Tux的吉祥物。 + +![](https://img-blog.csdnimg.cn/b6c9cd3ca98f4baab234ab303423fed0.png) +
*Linux的吉祥物Tux* + +同年6月9日,Linux内核V2.0发布,这是第一个在单系统中支持多处理器的稳定内核版本,也支持更多的处理器类型。Linux从此成为很多公司的郑重选择。10月14日 ,Mattias Ettrich发起KDE项目,此前UNIX和Linux都没有统一的桌面系统,编写桌面软件非常复杂。 + +* 1997年1月9日 ,第一个“Linux病毒”Bliss被发现。 +* 1998年5月1日,基于Linux的Google搜索引擎面世。12月4日 ,IDC报告称,1998年Linux的出货量至少上升了200%,以其他任何操作系统无法企及的速度增长着。 +* 1999年3月3日,GNOME桌面系统进入Linux世界。 +* 2000年2月4日,IDC报告表明Linux排在“最受欢迎的服务器操作系统的第2位”。10月30日 ,第一个Linux live发行版由Linux咨询顾问Klaus Knopper发布,名字叫做Knoppix。 +* 2001年1月,Linux 2.4发布,进一步提升了SMP系统的扩展性,同时集成了很多用于支持桌面系统的特性:USB、PC卡(PCMCIA)的支持,内置的即插即用等功能。 +* 2003年3月6日,SCO Group公司宣布正在发起对IBM高达10亿美元的诉讼,声称IBM把SCO的商业机密整合到了Linux中。12月,Linux 2.6版内核发布。 +* 2007年8月8日,Linux基金会由开源发展实验室(OSDL)和自由标准组织(FSG)联合成立,得到了主要的Linux和开源公司,包括富士通、HP、IBM、Intel、NEC、Oracle、Qualcomm、三星和开发者的支持。11月5日,Google发布Android,被称为“第一个真正开放的综合移动设备平台”。 +* 2011年5月11日 ,Google I/O大会发布基于Linux内核的云操作系统Chrome OS的Chromebook。6月21日,Linus Torvalds 发布Linux3.0版本。 + +#### 1.2.4 开源基金会崛起 + +开源基金会是开源生态中的重要部分。对于非营利性且处于中立位置的开源基金会来说,他们拥有开源项目的知识产权,而且没有任何商业利益,这为贡献者、开发者、用户提供了良好的协作平台;基金会也会通过技术服务和项目孵化来帮助开发者和开源企业,如软件仓库、问题跟踪、技术指导、法律支持、项目投资、公共关系维护等;基金会还会提供项目日常的运营和治理,以满足在项目生命周期不同阶段对于管理项目的需求。 + +自20世纪80年代自由软件基金会开始,全球各类开源基金会快速发展,在构建全球开源生态中发挥着巨大的促进作用,据不完全统计,各类开源基金会已经超过100家,其中一些在业内依然保持活跃,其中具有代表性的包括: + +* 自由软件基金会(1985年成立) +* Open Source Intiative(1998年成立) +* Apache软件基金会(1999年成立) +* GNOME基金会(2000年成立) +* Blender基金会(2002年成立) +* Mozilla基金会(2003年成立) +* Eclipse基金会(2004年成立) +* Open Invention Network(2005年成立) +* Linux基金会(2007年成立) +* 云原生计算基金会(2015年成立) +* RISC-V 基金会(2015年成立) +* OpenJS基金会(2019年成立) +* TARS 基金会(2020年成立) +* SODA 基金会(2020年成立) +* 开放原子开源基金会(2020年成立) +* 开源基础设施基金会(2020年成立) +* Rust 基金会(2021年成立) + +具体介绍参见后续章节。 + +#### 1.3 中国开源发展简史 + +1991年,中国与AT&T Bell Laboratories USL/USG合作,引进UNIX SVR 4.2版本源代码(全球唯一,但属于“后UNIX”闭源时期),并发布了中文版本,合作组建了中国UNIX公司;中方同时也引进“前UNIX”开放的源代码。 + +1999年,中国中科红旗、中软网络、冲浪平台在引进Red Hat公司Linux发行版的基础上,分别推出最早的Linux中文版本。 + +因此,中国开源的发展历史具有两个里程碑节点:1991年、1999年,至今31年、23年,可以分为启蒙、萌芽、发展、加速四个时代。 + +**启蒙时代** + +1991年,陆首群、张克治和杨天行牵头代表中方代表团与美国AT&T USG合作,美方将最新开发的UNIX版本——UNIX SVR4.2源代码向中方开放(除美方外中方是全球获得源代码的第二家)。中方为此组织了Unix新版本编辑委员会,由杨芙清、胡道元、仲萃豪、刘锦德、尤晋元、贾耀良、孙玉芳等国内资深软件专家组成,并邀集全国软件专家、程序员200多人,翻译、编辑、出版了UNIX SVR4.2中文版本共19册,首发式在人民大会堂举行,向全国各大图书馆、各高等院校赠书,业界影响甚大。这一历史事件被Linux基金会收录,后被作为中国开源诞生的标志性事件。1991年成为中国开源的诞生元年。 + +1992年12月,中方与USG合资在华成立了中国UNIX公司。 + +1994年,已经在芬兰工作5年的宫敏博士第一次将Linux和大量自由/开源软件源码通过磁带运回中国。 + +1997年,宫敏第二次运回80GB的自由软件,并在国家信息中心的帮助下在中国经济信息网(https:// www.cei.gov.cn/)上建成了“中国自由软件库”,为国内技术人员了解、学习和使用Linux及相关自由/开源软件提供了便利。 + +1998年,在开源这个概念提出的这一年,在湖南长沙读博士的章文嵩在Linux2.0内核上利用课余时间开发了Linux虚拟服务系统(LVS),并在第一时间开源,在全世界引起很大反响。同一年,在北京清华大学读研的魏永明,决定开发针对实时嵌入式系统的图形界面系统并将其开源,MiniGui应运而生。同一年,在安徽合肥读大二自动化系学生吴峰光开始接触Linux,发现Linux的文件预读算法磁盘I/O性能较差,他开始尝试对Linux内核进行改进。 + +1998年初,北京冲浪平台软件技术有限公司成立,专注于研发Linux中文发行版,同年9月XteamLinux收获了第一个市场用户——北京市政府政策研究室。1999年3月正式对外发布XteamLinux中文版1.0。2001年冲浪平台在香港创业板上市。 + +**萌芽时代** + +在历时8年的启蒙阶段中,自由/开源软件的理念和文化开始在中国大地生根发芽,随着UNIX、Linux在中国用户的激增,以及互联网时代的到来,中国自发地涌现出一批开源社区和开源企业。在中国开源发展的萌芽阶段,Linux技术的快速普及起到了核心的推动作用。 + +1999年9月,蓝点软件技术(深圳)有限公司成立,次年3月在美国纳斯达克上市。一个中国初创公司从成立到在美上市仅用不足200天,且上市当天股价暴涨400余倍,这个神话实在是旷古绝今。 + +1999年底,时任中国科学院软件所副所长的孙玉芳老师牵头筹建了北京中科红旗软件有限公司和北京红旗中文贰仟有限公司,分别基于Linux和OpenOffice进行中文版红旗Linux和RedOffice的研制。孙玉芳老师英年早逝,一生发表操作系统相关论文180余篇,编著和译著操作系统原理相关著作140余册,他指导过的诸多硕士/博士生现已成为开源产业的中坚力量。 + +1999年,中国软件开发者社区CSDN在蒋涛的努力下成立了,并于2000年创办《程序员》杂志。 + +2000年2月,在科技部国家高技术研究发展计划(863计划)的支持下,由一批国内高校、研究院所、IT企业联合发起成立了共创软件联盟。共创软件联盟在开源许可证规则下对863计划的软件成果进行开源培育和孵化,并提出以开放源代码的协同创新模式作为中国基础软件发展的主要路径,对我国开源产业发展起到了重要的推动作用。 + +2002年,黄建忠以CJacker的ID在中国Linux公社发布了基于Redhat8再发布的Magic Linux版本——这是国内第一个Linux社区发行版。在这个阶段,部分中国开发者开始尝试向国际上游社区贡献代码。但同时,国内Linux企业对开源技术采用拿来主义,忽视开源社区、商业模式和开源知识产权等方面的投入和积累,导致在国际社区中出现了许多针对中国Linux发行商只是开源使用者的评价,直到2008年,这种印象才得以扭转。 + +2004年,中国开源软件推进联盟成立,陆首群教授被推举为联盟主席,在陆首群主席的大力推进下,为推动开源在中国的发展而不懈努力,也启动了中国与日本、韩国以至全球在发展开源的方面国际合作。联盟的国际智囊团聘请了几十位全球顶级开源专家以多种形式参与和推进中国开源建设,如此规模的智囊团在全球首屈一指,是开源界公认的顶级智库。可以说,联盟的成立和陆主席的领导加速了中国开源软件发展的速度,为碎片化的国内开源产业建立了统一的根据地,为国际开源生态和中国开源生态建立了纽带。 + +2008年,以Kernel、Apache、GNOME、OpenOffice为代表的国际知名开源社区纷纷选择在北京召开全球技术峰会,作为他们进入亚洲的第一步(之前从未在亚洲国家召开顶级技术峰会)。这是对中国开发者在该社区提交贡献的肯定。因此,我们认为2008年成了中国开源发展重要的分水岭。 +发展时代 + +在2009年前,中国常被视为国际开源资源单纯的使用者,2009年之后,中国开发者提交的代码被Linux基金会接受,其排名稳居世界前四(Kernel 2.6.27之后),中国开始成为国际开源资源的贡献者。 + +在2009年之后,伴随着云计算、物联网、大数据、移动互联网的快速发展,中国一批有实力有抱负的知名科技IT企业、互联网公司开始选择拥抱开源。Linux基金会执行董事Jim Zemlin曾表示:“这些中国科技公司无论从开源技术上,还是产业、经济发展上,已经走进世界领导者行列。” + +在2009-2018年这十年中,中国开源呈现了百花齐放的繁荣局面,从开源开发者数量的激增,到开源社区的多样化(不再局限Linux等操作系统领域),再到知名科技企业自内而外的拥抱开源(内部实行开源治理,逐渐对外捐献开源项目,并向上游技术社区提交贡献)。2012年成立的中国开源云联盟(COSCL)和2016年成立的云计算开源产业联盟(OSCAR)就是典型的开源与云计算技术融合的产业联盟。这一阶段明显的特点在于不论是初创企业还是千百亿体量的科技巨头纷纷用开源技术来构建公司自身的技术堆栈,在技术上全面拥抱开源,并越来越重视对上游开源社区和开源基金会的投入与贡献。 + +**加速时代** + +2019年至今,中国开源进入了一个新的时代一一加速阶段。 + +根据Linux基金会有关Kernel.org社区贡献的统计,来自中国开发者的贡献已居全世界之首(Kernel 4.14至今)。中国开源发展进入深水区,开源生态的完整性、开源社区的成熟型、开源商业模式的多样性和复合性都在发生巨大变化。 + +由木兰开源社区牵头主导多家单位联合参与起草的“中国第一个开源协议——木兰许可证”已经正式发布,前不久还被OSGJ翻译为日文版使用。由华为、百度、腾讯、360、浪潮等发起成立的开放原子开源基金会填补了中国没有开源基金会的空白,尽管它还不能与Linux基金会、Apache软件基金会相提并论,但在开源领域依旧备受瞩目。 + +在现阶段,部分领先的中国企业不满足于拥抱开源,他们正在很多创新领域跃跃欲试,希望通过开模式来对创新技术进行引领,如商汤的OpenMMLab计算机视觉开放算法、矩阵元的Rosetta隐私Al开源框架、阿里的RocketMQ海量信息中间件、京东的JD Chain开源区块链、百度的PaddlePaddle深度学习平台和Apollo自动驾驶平台、海尔卡奥斯COSMOPlat工业互联网平台的工业APP开发框架开源项目等。同时,在现阶段出现了一些原生的开源明星项目,如Apache SkyWalking、Apache Echarts、Apache loTDB、TiDB,其中一些优秀的开源项目如TiDB备受资本市场的推崇,创造了全球数据库融资历史新的里程碑。 + +### 1.4 开源软件与知识产权 + +至此,我们对开源的定义和发展史有了基本的概念,在继续深入了解之前,有必要关注开源软件与知识产权的知识。 + +#### 1.4.1 软件知识产权的主要内涵 + +软件知识产权是计算机软件人员对自己的研发成果依法享有的权利。由于软件属于高新科技范畴,目前国际上对软件知识产权的保护法律还不是很健全,大多数国家都是通过著作权法来保护软件知识产权的,与硬件相关密切的软件设计原理还可以申请专利保护。 + +* 软件知识产权的内容主要包括著作权、专利权与商标权。 +* 著作权指软件的表达(如程序代码、文档等)方面的权利。 +* 专利权包括软件的技术设计,如程序设计方案、处理问题的方法、各项有关技术信息等方面的权利。 +* 商标权则是指软件的名称标识方面的权利。 + +软件需要有硬件平台的支撑才可以运行,而在硬件平台台上运行的软件基本上是目标码(二进制格式),从而造成软件源码和二进制目标码的分离和割裂,而软件作为通用商品进行销售或分发时主要提供的只是二进制文件,这也成为主流的软件销售和分发方式,并主要通过随软件一起发布的最终用户许可协议(End User License Agreement,EULA)对软件的使用、修改和分享及其他相关事宜作出规定。 + +最终用户许可协议指的是一家公司的软件与软件的使用者所达成的协议,此协议一般在软件安装时出现。如果使用者拒绝接受这家公司的EULA,那么便不能安装此软件。最终用户许可协议是软件应用程序作者或者发布者与应用程序使用者之间的合法合同。 + +EULA一般主要规定用户不可以盗版软件,并没有对用户明确涉及对应软件源代码的处置问题——除非特定情况,销售的二进制形式的软件并不提供对应软件源代码;即使偶有提供,但对用户基于该源代码的复制、修改和二次分发等作了严格限制或者禁止。 + +针对于上述对软件源代码的处置方式,就出现了另一种以开放、协同、共享的软件发展模式,通过开源软件许可证对软件源代码的复制、修改、再分发等权益,也对诸如商标、专利、著作权等内容进行进一步的规范,也这是对软件知识产权发展的一个重要补充。 + +#### 1.4.2 开源软件许可证 + +开源许可证,就是开源软件使用的许可证。对开源软件许可证的法律界定先前存在一定的争议。在美国,一些法院认为软件许可证是合同(Contract),一些法院则认为是许可(License)。两者的区别在于,许可在传统上是由地产或物主作出的,目的在于允许他人使用自己的地块或物品。因此,它是单方向的,不构成完整的合同,而是作为合同的一个要素,用来和他人交换的条件。 + +合同和许可之分在美国法上具有重要意义。如果是合同,那么需要适用各州不同的合同法;如果是许可,那么需要适用统一的联邦版权法。除此以外,合同的违约救济和版权的侵权救济也有着诸多不同,比如禁令(行为保全)的适用、判赔额的确定、律师费的分担等。 + +不过,包括中国在内的大陆法系国家,则普遍认为开源软件许可证构成合同;只不过这种许可合同并非协商得到,而是事先规定好的标准化格式合同。具体来讲,开源许可证是涉及版权、专利、商标等一系列权利义务的格式合同,且自动生效。 + +法律并没有限定许可证不能包含什么条款,这导致许可证的类型极其繁多、内容也非常自由。据不完全统计,广义上的开源许可证目前有超过200种,即便是开放源代码促进会(Open Source Initiative,OSI)批准的许可证目前也多达96种。 + +当前以满足OSI定义的十大特征描述的软件称为开源软件的狭义定义。十大特征描述如下: + +* 可自由地再发布; +* 源代码公开; +* 允许派生作品; +* 作者源代码的完整性; +* 不能歧视任何个人和团体; +* 不能歧视任何领域; +* 许可协议的发布; +* 许可协议不能针对某个产品; +* 许可协议不能约束其他软件; +* 许可协议必须独立于技术。 + +#### 1.4.3 国外主流开源许可证解读 + +目前通过OSI认证的开源许可证有XX款,其中包括由中国主导编制的Mulan Permissive Software License v2 (MulanPSL - 2.0)。全部许可证可以参见https://opensource.org/licenses/alphabetical和https://opensource.org/licenses/category。据OSI统计,以下开源许可证流行程度较高: + +* Apache License 2.0 (Apache-2.0) +* 3-clause BSD license (BSD-3-Clause) +* 2-clause BSD license (BSD-2-Clause) +* GNU General Public License (GPL) +* GNU Lesser General Public License (LGPL) +* MIT License (MIT) +* Mozilla Public License 2.0 (MPL-2.0) +* Common Development and Distribution License 1.0 (CDDL-1.0) +* Eclipse Public License 2.0 (EPL-2.0) + +根据专门提供开源软件合规服务的Whitesource的调查报告,以下10个许可证(包括同一个许可证的不同版本)占到开源许可证使用率的90%。 + +![](https://img-blog.csdnimg.cn/dfa74a69473548f18a5ef1730169dc6b.png) +
*2020前10开源许可证* + -- GitLab