一个文章的想法,目前已经看了不少的资料,思路有一点混沌,随手写一篇小引整理下思路,想到什么写什么。

我们似乎对「开源」有一种天生的好感,觉得「开源软件」往往和「免费」和「隐私」联系在一起。为何?然而我们其实也对开源有着不少的误解,例如错认为开源既是 GitHub:在 GitHub 上有项目地址的 Typora 是开源软件;错认为有源代码就是开源软件:把 VS Code 当成了开源软件。

我在知乎和全网搜集资料的时候,发现网友们对开源这个概念一知半解,为何安卓开源,厂商却加了那么多闭源的东西拿出来给大家使用,为何微软、Google之类的大厂如此热衷于开源,开放了源代码不是很危险吗,对于不看代码的人来说,开源又有什么用呢?

开源软件概念的出现

实际上从自由软件而来。计算机行业一开始并不靠软件赚钱,用户的软件可以自由的修改和分发,但随着软件的商业化,对于软件的技术性和法律保护建立起来,人们难以看到软件的源代码,甚至分发软件也成了困难的事(DRM)。可以将软件想象成实体的商品,我们花了钱,却只能拥有其使用权,不能分享给别人,不能随心所欲地修改。于是,来自麻省理工的一位人士就提出了 GNU 计划,此计划内的软件都是可以免费分发和修改的,自由软件的概念也就是对这个计划内软件的定义,一共有四种自由(使用,学习,修改,分发)。

在这个计划和自由软件的概念下,一大批优秀的软件诞生了:Linux 内核,FireFox 的前身,FreeBSD 按照这个协议分发自己的软件。自由软件虽然并不意味着免费(Libre Not Free),但自由软件的概念要求软件必须公开源代码(否则修改和学习软件是不可能进行的),用户也能将软件分享给其他人,这不利于商业模式。

90 年代,一本重要的书探讨了自由软件,商业软件和黑客社区的关系,受这本书的影响,一些认为自由软件概念妨碍了软件的商业价值开发的人提出了开源软件的概念,主要针对软件的源代码做出了规定,消解了自由软件对人的政治(广义上)权利的偏重,这就是开源概念的由来。

开源软件如何获得收益

  1. 募资,众筹,捐款,赞助
  2. 技术服务,个性化,培训
  3. 依托硬件,例如卖 U 盘,卖主机

自由开源软件有何好处,或者坏处

  1. 隐私:并非安全,能避免一些软件厂商迫于无奈加入了一些后门
  2. 安全:安全吗,这要看是白客还是黑客先发现软件的漏洞了,虽然开源软件人人都可以看到代码,但黑客受到利益的驱使可能会比一般程序员更加积极地寻找漏洞

如何判断一个软件是不是开源软件

  1. 看是否公开源代码:GitHub,GitLab,SoureFo 等
  2. 看软件自带的协议是不是开源的

这样写肯定是不行的,基本就是对维基百科的翻译,必须要有一个主题,或者直接写成科普类型的文章,从一个问题导入。我有一些资料没看,比如说那本重要的书,似乎是公开的;还可以请教一些业内人士;我也有一些问题

  • 一个软件开源了,将这个软件打包卖可不可以?可能涉及软件协议问题
  • 自由软件运动是什么
  • 开源软件和自由软件的区别到底是什么,开源自由软件又意味着什么
  • 有没有更多的例子支撑我的观点和故事
  • 中国的开源社区,开源软件现状如何