diff --git "a/\347\254\254\344\270\200\351\203\250\345\210\206\357\274\232\345\210\235\350\257\206\345\274\200\346\272\220/\347\254\254 3 \345\260\217\350\212\202\357\274\232\345\246\202\344\275\225\345\210\244\346\226\255\344\270\200\344\270\252\351\241\271\347\233\256\346\230\257\345\220\246\346\230\257\345\274\200\346\272\220\347\232\204.md" "b/\347\254\254\344\270\200\351\203\250\345\210\206\357\274\232\345\210\235\350\257\206\345\274\200\346\272\220/\347\254\254 3 \345\260\217\350\212\202\357\274\232\345\246\202\344\275\225\345\210\244\346\226\255\344\270\200\344\270\252\351\241\271\347\233\256\346\230\257\345\220\246\346\230\257\345\274\200\346\272\220\347\232\204.md" index e627de70a09e0ab146aef14d28598f27ac3c94c8..71b5bc883a1cb087902a3e4e7cca2e1e900e459f 100644 --- "a/\347\254\254\344\270\200\351\203\250\345\210\206\357\274\232\345\210\235\350\257\206\345\274\200\346\272\220/\347\254\254 3 \345\260\217\350\212\202\357\274\232\345\246\202\344\275\225\345\210\244\346\226\255\344\270\200\344\270\252\351\241\271\347\233\256\346\230\257\345\220\246\346\230\257\345\274\200\346\272\220\347\232\204.md" +++ "b/\347\254\254\344\270\200\351\203\250\345\210\206\357\274\232\345\210\235\350\257\206\345\274\200\346\272\220/\347\254\254 3 \345\260\217\350\212\202\357\274\232\345\246\202\344\275\225\345\210\244\346\226\255\344\270\200\344\270\252\351\241\271\347\233\256\346\230\257\345\220\246\346\230\257\345\274\200\346\272\220\347\232\204.md" @@ -4,25 +4,27 @@ ## 前言 -项目分为开源项目、闭源项目,以及未被明确定义的半开源项目。那么,什么项目可以称之为开源项目?什么项目是闭源项目呢?它们之间有什么区别?下面让我们一起来了解一下。 +根据项目是否遵循某个开源许可证并向公众公开源代码,可将软件项目分为开源软件和闭源软件(也称为专有软件)两大类。随着开源生态的发展,也出现了“半开源”和“内部开源”等新名词。那么,本节我们就来深入探讨一下这些概念和形式,深刻理解什么样的项目可以称之为开源项目?哪些项目又是闭源项目?它们之间有什么区别? -## 什么是闭源 (Closed Source) +## 开源项目 (Open Source) -这太好解释了:项目的源代码不公开发布,就叫闭源。闭源可以保证源代码的安全性和隐私性,想要获得此类代码一般需要加入闭源项目所属组织或签署保密协议,以确保代码不会泄露。闭源项目一般存在于商业软件领域,可以很好地保护公司的商业机密。此外,个人的私密项目也属于闭源项目,你可以在创建项目时,选择对应的隐私访问级别——Private。 +开源软件是开源的主要表现形式。在第 1 小节中,相信你已经对开源有所了解,下面我们来回顾一下开源的定义:开源软件是一种 **技术和立场中立的使用许可证约束的开放源代码** 的软件。 -闭源在保护机密和隐私方面发挥了重要作用,但由于参与成员的限制性,不能像开源项目那样集思广益,因此,项目的迭代速度一般会慢于开源项目。此外,也正是因为参与群体范围较小,闭源项目的维护管理、标准化难度会小于开源项目。 +对于开源软件来说,技术和立场中立要求开源软件对任何组织和个体要一视同仁,保持公平公正。而使用许可证约束一方面是保证开源者的各项权利。 -## 什么是开源 (Open Source) +当然,关于开源的详细定义还有很多,其中最有影响力的是 [Debian 自由软件指导方针 (DFSG)](https://www.debian.org/social_contract#guidelines) 和 Open Source Initiative 制定的 [Open Source Definition](https://opensource.org/osd)。其中,后者是前者的衍生版本。 -开源软件是开源的主要表现形式。在第 1 小节中,相信你已经对开源有所了解,下面我们来回顾一下开源的定义:开源软件是一种 **技术和立场中立**的**使用许可证约束**的**开放源代码** 的软件。 +更多详细内容,请参考 [第 1 小节:什么是开源](./第 1 小节:什么是开源.md/#开源软件) 。 -对于开源软件来说,技术和立场中立要求开源软件对任何组织和个体要一视同仁,保持公平公正。而使用许可证约束一方面是保证开源者的各项权利 +## 闭源项目 (Closed Source) -当然,关于开源的详细定义还有很多,其中最有影响力的是 [Debian 自由软件指导方针 (DFSG)](https://www.debian.org/social_contract#guidelines) 和 Open Source Initiative 制定的 [Open Source Definition](https://opensource.org/osd)。其中,后者是前者的衍生版本。 +闭源软件(也称为专有软件)是指源代码不公开发布的软件项目。由于公众无权访问源代码,因此无法以任何方式查看或修改源代码。闭源可以保证源代码的安全性和隐私性,想要获得此类代码一般需要加入闭源项目所属组织或签署保密协议,以确保代码不会泄露。闭源项目一般存在于商业软件领域,可以很好地保护公司的商业机密。此外,个人的私密项目也属于闭源项目,你可以在创建项目时,选择对应的隐私访问级别 —— Private。 -更多详细内容,请参考 [第 1 小节:什么是开源](./第 1 小节:什么是开源.md/#开源软件) 。 +我们日常生活中使用的绝大多数应用程序、游戏和专业软件工具都是闭源的,例如 Microsoft Office、Photoshop、微信、MATLAB 等。但是,许多类型的程序都有开源替代品,例如 LibreOffice 可以替代 Microsoft Office,GIMP 可以替代 Photoshop。甚至如果你不想使用 Windows,也可以尝试使用一个开源 Linux 操作系统。 -## 什么是半开源 +相对于开源软件,闭源在保护机密和隐私方面发挥了重要作用,但由于参与成员的限制性,不能像开源项目那样集思广益。因此,项目的迭代速度一般会慢于开源项目。此外,也正是因为参与群体范围较小,闭源项目的维护管理、标准化难度会小于开源项目。 + +## 半开源项目 “半开源”一词从来没有被正式定义过,甚至,“半开源”这个词是不是被生造出来的也不太清楚。下面列举了半开源软件当前较为常见的几种定义(排序不分先后)。 @@ -32,6 +34,12 @@ 虽然没有权威的定义,但从上面几种定义分析,我们可以总结出半开源的特点:开放了源代码,但并没有使用开源许可或没有满足开源使用者一定程度上的需求。从本质上来讲,半开源与开源之间没有明确的界限,两者都开源了源代码,只是由于一些原因,导致开源使用者认为前者并非完全开源的。 +## 内部开源(Innersource) + +“内部开源”是近年来经常提及的一个词,这个词最早由蒂姆·奥莱利(Tim O'Reilly)在2000年提出。内部开源是一种开发方法,在组织内部使用开源软件开发最佳实践建立类似开源的文化和协作方式来完成代码工作。内部开源可以帮助团队更快地构建软件,更好地协同工作,从而实现更高质量的开发和更好的文档记录。 + +内部开源既是一种技术转变,也是一种文化转变,越来越多的科技企业已经意识到开源给组织带来的优势和挑战。与开源项目类似,内部开源项目会在可发现性和可重用性较高的工作中发挥更大作用。它还有助于组织建立具有相似利益和专业知识的小型跨职能社区,降低成本并实现更有效的管理。 + ## 其他概念 ### 自由软件 (Free/Libre Software) @@ -42,7 +50,7 @@ ## 小结 -本篇文章向大家讲解了闭源、开源、半开源的概念,客观分析了它们各自的特点,当你想要保护隐私、少数人参与维护的项目时,闭源更加适合你;当你想要分享自己的项目、吸引更多人维护时,请果断选择开源。关于半开源,虽然大家可能各说纷纭,但它与开源并没有明确的分界线,对于一些观点的解读需要大家理性看待。 +本篇文章向大家讲解了开源、闭源、半开源、内部开源的概念,客观分析了它们各自的特点,当你想要保护隐私、少数人参与维护的项目时,闭源更加适合你;当你想要分享自己的项目、吸引更多人维护时,请果断选择开源。关于半开源,虽然大家可能各说纷纭,但它与开源并没有明确的分界线,对于一些观点的解读需要大家理性看待。 分享需要开放的心态,还望大家求同存异,在开源世界里肆意挥毫,留下浓墨重彩的一笔!