diff --git "a/\347\254\2541\351\203\250\345\210\206\342\200\224\342\200\224\345\210\235\350\257\206\345\274\200\346\272\220/\344\273\200\344\271\210\346\230\257\345\274\200\346\272\220.md" "b/\347\254\2541\351\203\250\345\210\206\342\200\224\342\200\224\345\210\235\350\257\206\345\274\200\346\272\220/\347\254\254 1 \345\260\217\350\212\202\357\274\232\344\273\200\344\271\210\346\230\257\345\274\200\346\272\220.md" similarity index 80% rename from "\347\254\2541\351\203\250\345\210\206\342\200\224\342\200\224\345\210\235\350\257\206\345\274\200\346\272\220/\344\273\200\344\271\210\346\230\257\345\274\200\346\272\220.md" rename to "\347\254\2541\351\203\250\345\210\206\342\200\224\342\200\224\345\210\235\350\257\206\345\274\200\346\272\220/\347\254\254 1 \345\260\217\350\212\202\357\274\232\344\273\200\344\271\210\346\230\257\345\274\200\346\272\220.md" index 644b070ac95e958a7d636d5f4997394c617c73e4..7cdf95f078f4b6f788014a24f6e2534a226b6f66 100644 --- "a/\347\254\2541\351\203\250\345\210\206\342\200\224\342\200\224\345\210\235\350\257\206\345\274\200\346\272\220/\344\273\200\344\271\210\346\230\257\345\274\200\346\272\220.md" +++ "b/\347\254\2541\351\203\250\345\210\206\342\200\224\342\200\224\345\210\235\350\257\206\345\274\200\346\272\220/\347\254\254 1 \345\260\217\350\212\202\357\274\232\344\273\200\344\271\210\346\230\257\345\274\200\346\272\220.md" @@ -1,10 +1,10 @@ -# 什么是开源 +# 第 1 小节:什么是开源 -> 本篇内容将会从最基本的概念开始带开发者们认识开源 +> 本篇内容将会从最基本的概念开始带开发者们认识开源。 ## 开源的概念 -「开源」一词对应英文 Open Source,最初起源于软件开发领域,因此也称为「开放源代码」,对应的软件则称为**开源软件**(Open Source Software)。除了我们熟知的开源软件以外,开源的表现形式还有**开源硬件**(Open Source Hardware)。 +「开源」一词对应英文 Open Source,最初起源于软件开发领域,因此也称为「开放源代码」,对应的软件则称为**开源软件**(Open Source Software)。除了我们熟知的开源软件以外,开源的表现形式还有开源硬件(Open Source Hardware)、开放设计(Open Design)、开放文档(Open Document)。 ### 开源软件 @@ -25,20 +25,33 @@ | 9 | License Must Not Restrict Other Software | 许可证不能限制其他软件 | | 10 | License Must Be Technology-Neutral | 许可证必须是技术中立的 | -看起来有点复杂,你现在只需要记住,**开源软件是在开放源代码许可证下发布的软件。** +通过了解这些条件约束,我们可以得出开源软件的定义:开源软件是一种**技术和立场中立**的**使用许可证约束**的**开放源代码**的软件。 -开源软件不仅仅意味着公开源代码,还需要遵循开源许可证,允许任何人使用、拷贝、修改以及重新发布。开源许可协议主要分为宽松许可协议(如 Apache、BSD、MIT)和严格许可协议(如 GPL、GPL v3、LGPL、Mozilla)两大类。除此之外,一个优秀的可持续发展的开源项目,还需要公开发布项目技术文档和其他材料、二进制文件(可选)等,以及拥有一个开放性的社区,接收用户和开发者的反馈,共同探讨开源项目的发展。 +开源软件需要保持开放的心态,对任何技术和立场都保持客观公正的态度,而且在开放源代码时,还需要遵循开源许可协议,允许任何人使用、拷贝、修改以及重新发布。开源许可协议主要分为宽松许可协议(Apache、BSD、MIT 等)和严格许可协议(GPL、GPL v3、LGPL、Mozilla 等)两大类。除此之外,一个优秀的可持续发展的开源软件,还需要公开发布项目技术文档和其他材料、二进制文件(可选)等,以及拥有一个开放性的社区,接收用户和开发者的反馈,共同探讨开源软件的发展。 ### 开源硬件 -上面我们简单介绍了一下开源软件,那么什么是开源硬件呢?类比开源软件,你可能会误以为开源硬件是可以免费获得、自由修改并再分发的硬件。如果你这么想,你就大错特错了,毕竟硬件是有形的,是看得见摸得着的。我们先来简单看一下[开源硬件协会](https://www.oshwa.org)(Open Source Hardware Association)对开源硬件的描述: +上面我们简单介绍了一下开源软件,那么什么是开源硬件呢? + +类比开源软件,你可能会误以为开源硬件是可以免费获得、自由修改并再分发的硬件。如果你这么想,你就大错特错了,毕竟硬件是有形的,是看得见摸得着的。我们先来简单看一下[开源硬件协会](https://www.oshwa.org)(Open Source Hardware Association)对开源硬件的描述: + > 开源硬件是可以通过公开渠道获得的硬件设计,任何人可以对已有的设计进行学习,修改,发布,制作和销售。硬件设计的源代码的特定的格式可以为其他人获得,以方便对其进行修改。理想情况下,开源硬件使用随处可得的电子元件和材料,标准的过程,开放的基础架构,无限制的内容和开源的设计工具,以最大化个人利用硬件的便利性。开源硬件提供人们在控制他们的技术自由的同时共享知识并鼓励硬件设计开放交流贸易。 -这里要划重点了,OSHWA 在描述开源硬件时使用的是**硬件设计**而不是硬件本身。开源硬件的定义是在开源软件的基础上进行的,这里不再赘述,感兴趣的读者在 OSHWA 官网找到开源硬件的完整[定义](https://www.oshwa.org/definition/)。 +这里要划重点了,OSHWA 在描述开源硬件时使用的是**硬件设计**而不是硬件本身。开源硬件的定义是在开源软件的基础上进行的,这里不再赘述,感兴趣的读者可以在 OSHWA 官网找到开源硬件的完整[定义](https://www.oshwa.org/definition/)。 目前比较有名的开源硬件有 [Arduino](https://www.arduino.cc/)、[树莓派(Raspberry Pi)](https://www.raspberrypi.org/)、[BeagleBone](https://beagleboard.org/bone) 等等。 +### 开源设计 + +开源设计是开源项目的另一表现形式,开源设计的定义是**遵循开源许可**的**可以通过公开渠道获得**的**设计类**项目,主要指的是非源代码类型的项目,比如: icon、UI、画稿、图纸等。这些项目也需要遵守开源协议,并且享受协议规章的保护。 + +下面提供一个 icon 的设计,供大家参考。 +- [开源和开放设计 - Make Icons Witch Sketch](https://www.jianshu.com/p/e3de4fbd105f) + +### 开源文档 + +开源文档在开源项目中非常常见,开源文档的定义是**遵循开源许可**的**可以通过公开渠道获得**的**文档类**项目,开源文档存在于各种项目中,种类覆盖广泛,像博客、百科、菜谱、冷知识、项目说明文档等都可以作为开源文档进行分享。开源文档常见的开源协议也有很多,比如我们《开源指北》使用的协议:CC-BY-NC-SA 协议。 ## 开源的历史 @@ -58,8 +71,6 @@ 转折发生在 1984 年,由于对 AT&T 的限制法令被解除,AT&T 开始以能获利的价格销售 UNIX。UNIX 的源码依然可用,但 AT&T 将 UNIX 从研究性质的项目转变为一个商业项目,这在 UNIX 黑客社区里产生了危机,他们开始寻找一个可替代的类 UNIX 系统。 - - ### GNU 实际上,在 UNIX 变成一个商业项目之前,由于硬件价格的不断下跌,制造商已经开始期望软件能够带来额外的收入。于是,开始出现种种保护软件、对其收费的措施,越来越多的厂商开始单独销售软件,也不再提供软件的源代码,软件工业开始独立出来了。1976 年,比尔·盖茨就曾发表《[致计算机爱好者的公开信](https://en.wikisource.org/wiki/Open_Letter_to_Hobbyists)》,明确提出了软件版权(CopyRight)的理念。 @@ -72,8 +83,6 @@ 随着推动自由软件发展和成熟的愿景日益强烈,理查德·斯托曼意识到仅通过编写和分享 GNU 代码是远远不够的。于是,在 1985 年创建了自由软件基金会(Free Software Foundation,简称 FSF),其主要工作是运行 GNU 计划,开发更多的自由软件。同时,FSF 还创建了保护 GNU 和其他自由软件项目的法律和制度框架,提出了与 CopyRight 理念针锋相对的 CopyLeft(许可复制权)理念,其表现形式为 GPL,即公共许可证(General Pubic License)。 - - ### Linux 1991年,林纳斯·托瓦兹(Linus Torvalds)公开发布了一个类 UNIX 操作系统内核 —— Linux,并接受 CopyLeft 理念。从 Linux 0.12 版本起,Linux 内核开始采用 GPL 许可证的新版权声明。虽然 Linux 内核并不是 GNU 计划的一部分,但由于 HURD 内核进展缓慢,使得 Linux 得到广泛关注并得以快速发展。GNU 与 Linux 的发展,可以说是相辅相成,因此 我们通常把使用 Linux 内核并且大量使用 GNU 组件的操作系统发行版称为 GNU/Linux。 @@ -84,8 +93,6 @@ 正是 Linux 的出现,使得自由软件运动有了自己可以与 Microsoft 的 Windows 相抗衡的操作系统。自由软件运动初战告捷。但是,自由软件运动关于自由的追求,毕竟和现实的商业氛围格格不入,带有着过于理想化的色彩。这种反商业的信条,让一些本来也反对私有软件的人士对自由软件敬而远之。正是在这种背景下,一部分原有自由软件运动人士,开始尝试将理想的自由软件与现实的商业氛围进行某种衔接。 - - ### 自由软件和开源软件 @@ -117,17 +124,15 @@ 总的来说,Git 和代码托管平台有直接关联,但又有许多不同的地方。关于 Git 和代码托管平台的操作,将在后续章节展开描述。 +## 小结 +不会写代码也可以参与开源吗?相信你在读完这篇文章后,在自己心中应该有了答案。当然,答案是肯定的。 -## 不会写代码也可以参与开源吗 - -从自由软件运动和开源文化的发展来看,我们会发现其实它是一场社会运动,是一种生产方式的革新。开源运动旨在利用开源软件的价值和分散的生产模型,为其社区和行业的问题寻找新的解决方式。之所以首先出现在软件领域,是因为软件作为一个新兴领域,所受阻力相对较小,同时软件可以依托网络进行异步协作和分发,大大减少了时间和空间的差异以及获取成本。因此可以肯定,开源不仅仅适用于软件领域。 - -时至今日,开源已经成为一种超越软件生产界限的运动和工作方式。「源」的含义也从「源代码」扩展到各类「资源」,一个很好的例子就是最贴近软件的硬件领域。随着 Arduino 和树莓派的流行,如今我们对「开源硬件」一词已经不陌生了。 +从自由软件运动和开源文化的发展来看,我们会发现其实它是一场社会运动,是一种生产方式的革新。开源运动旨在利用开源软件的价值和分散的生产模型,为其社区和行业的问题寻找新的解决方式。之所以首先出现在软件领域,是因为软件作为一个新兴领域,所受阻力相对较小,同时软件可以依托网络进行异步协作和分发,大大减少了时间和空间的差异以及获取成本。但从涉猎范围来看,开源除了适用于软件领域以外,在开源硬件、开源设计、开源文档等领域也有足够的发挥空间。 -另外,还有许多与软件源代码具有相同传播属性的各类设计文档,比如书籍、博客、食谱、配方、照片、音频和视频制品等资料。非营利性组织 Creative Commons 的 CC 许可协议就是专门应用于此类著作权法的保护。 +时至今日,开源已经成为一种超越软件生产界限的运动和工作方式。「源」的含义也从「源代码」扩展到各类「资源」。像文中提到的硬件领域,随着 Arduino 和树莓派的流行,如今我们对「开源硬件」一词已经不陌生了。还有许多与软件源代码具有相同传播属性的各类设计文档,比如书籍、博客、食谱、配方、照片、音频和视频制品等资料。非营利性组织 Creative Commons 的 CC 许可协议就是专门应用于此类著作权法的保护。 -所以,开源与我们息息相关,即便不写代码也可以参与开源(强烈建议)。 +开源与我们息息相关,即便你不写代码,我们也期望大家能够参与开源(**强烈建议**)!愿你在开源领域乘风破浪,所向无前! ## 参考资料