关于开源软件的七大错误认知(上)

敏捷开发
• 阅读 328

开源软件已经像水和电一样融入到了我们日常的生活中,但我们对开源软件还有很多错误的认知。我尝试站在开源软件作者的角度来进行总结,总共有七大错误认知,今天跟大家分享其中的三个错误认知,分别是:

  • 只要软件开源了,就会有人用;
  • 我又没收你钱,开源软件的漏洞与我无关;
  • 开源软件应当使用最宽松的协议。

首先来看第一个错误认知:只要软件开源了,就会有人用。

很多刚开始从事开源软件开发的作者,会有这样的想法。认为我只要把软件开源出来,就会有人来使用。但事实上一个软件有没有人用,首先看它有没有价值,而不是先看它是不是开源软件。 开源软件首先是一个软件,开源是其定语。所以从这个角度来讲,开源软件不会超越软件本身的属性限制,要先有用。在这个基础上,再进行开源,可以为用户带来增强的附加属性。

这给我们的提示就是在做开源软件之前,要认真思考软件的定位:

  • 这款软件要解决的问题是什么;
  • 它的目标用户是谁;
  • 和市面上其他软件相比有什么优势;
  • 如何进行宣传推广。

第二个错误认知:我又没收你钱,软件有漏洞、问题跟我没关系。

开源软件许可协议通常会包含类似这样的条款,表明作者不对用户使用该软件所造成的任何问题负责。比如GPL V3的第15条款,就是这样的声明:

15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

中文版本: 本程序在适用法律范围内不提供品质担保。除非另作书面声明,版权持有人及其他程序提供者“概”不提供任何显式或隐式的品质担保,品质担保所指包括而不仅限于有经济价值和适合特定用途的保证。全部风险,如程序的质量和性能问题,皆由你承担。若程序出现缺陷,你将承担所有必要的修复和更正服务的费用。

这份协议还特意用了全大写的方式来声明。但是自2017年《中华人民共和国网络安全法》正式实施以来,这样的声明就不再有效了。

《中华人民共和国网络安全法》第二十二条规定:

网络产品、服务应当符合相关国家标准的强制性要求。网络产品、服务的提供者不得设置恶意程序;发现其网络产品、服务存在安全缺陷、漏洞等风险时,应当立即采取补救措施,按照规定及时告知用户并向有关主管部门报告。

网络产品、服务的提供者应当为其产品、服务持续提供安全维护;在规定或者当事人约定的期限内,不得终止提供安全维护。

网络产品、服务具有收集用户信息功能的,其提供者应当向用户明示并取得同意;涉及用户个人信息的,还应当遵守本法和有关法律、行政法规关于个人信息保护的规定。

第六十条规定: 违反本法第二十二条第一款、第二款和第四十八条第一款规定,有下列行为之一的,由有关主管部门责令改正,给予警告;拒不改正或者导致危害网络安全等后果的,处五万元以上五十万元以下罚款,对直接负责的主管人员处一万元以上十万元以下罚款:

(一)设置恶意程序的;

(二)对其产品、服务存在的安全缺陷、漏洞等风险未立即采取补救措施,或者未按照规定及时告知用户并向有关主管部门报告的;

(三)擅自终止为其产品、服务提供安全维护的。

所以各位开源软件的开发者们,一定要认真理解这个法律的条款。我们已经收到过五次公安部下发到青岛市网警的漏洞整改通知。具体细节就不跟大家讲述了。这给到开源软件作者们两点警示:第一个就是一定要及时处理自己产品的相关漏洞,另外一点就是认真思考开源商业化方面。

第三个错误认知:我应当选择最宽松的开源软件协议。

许可协议是开源软件的法律基础,它规定了用户可以如何使用、修改和分发软件。有些人错误地认为,选择最宽松的许可协议可以吸引更多的用户和贡献者。然而,许可协议的选择应该根据具体情况进行权衡,并考虑到软件作者的目标和需求。

比较宽松的许可协议限制比较少,如MIT和BSD许可证。这些许可协议几乎没有限制,允许用户自由地使用、修改和分发软件。然而,这也意味着其他人可以将开源软件用于商业目的,甚至将其更改后的版本作为专有软件发布,而无需向原作者贡献任何代码或修改。对于一些开源软件作者来说,这可能不符合他们的意愿和目标。

相比之下,像GNU通用公共许可证(GPL) 这样的许可协议对代码的再分发和修改设置了更严格的限制。它要求任何使用或修改GPL许可的软件的派生作品必须以相同的许可证开放源代码。这样可以保护开源软件的自由性和共享精神,防止将其私有化。

因此,在选择许可协议时,开源软件作者应该考虑到他们的目标、期望用户和社区的需求,并选择合适的许可协议来平衡开放性和保护性的要求。

以上是我总结的关于开源软件的七大错误认知上篇,下周我会接着和大家分享接下来的四个错误认知,分别是:

  • 我应当努力将软件捐献给基金会;
  • 开源之后会有很多人帮我来完善项目;
  • 我开源不是为了钱;
  • 开源软件靠服务和捐助可以赚钱。
点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Spring Boot 2.0(三):Spring Boot 开源软件都有哪些?
2016年SpringBoot还没有被广泛使用,在网上查找相关开源软件的时候没有发现几个,到了现在经过2年的发展,很多互联网公司已经将SpringBoot搬上了生产,而使用SpringBoot的开源软件在Github/码云上面已有不少,这篇文章就给大家介绍一下Github/码云上面和SpringBoot相关的开源软件。1、
Wesley13 Wesley13
3年前
2018年阿里巴巴重要开源项目汇总(持续更新中)
_摘要:_ 云栖社区特在2018年年末,将阿里巴巴的一些重要的开源项目进行整理,希望对大家有所帮助。开源展示了人类共同协作,成果分享的魅力,每一次技术发展都是站在巨人的肩膀上,技术诸多创新和发展往往就是基于开源发展起来的,没有任何一家网络公司可以不使用开源技术,仅靠自身技术而发展起来。阿里巴巴各个团队都是发自内心地将踩过的坑和总结的经验融入到开源项目中,
Stella981 Stella981
3年前
Docker 微服务教程安装WordPress
Docker是一个容器工具,提供虚拟环境。很多人认为,它改变了我们对软件的认识。站在Docker的角度,软件就是容器的组合:业务逻辑容器、数据库容器、储存容器、队列容器......Docker使得软件可以拆分成若干个标准化容器,然后像搭积木一样组合起来。!(https://oscimg.oschina.net/oscnet/fc61b0e
Wesley13 Wesley13
3年前
73款阿里巴巴开源软件详解
这是开发者和开源爱好者正在共同书写的峥嵘岁月。“拥抱开源、回馈开源、融合开源和回报开源”是阿里的开源历程,通过“众创”带来技术上的创新和推动是阿里开源最核心的意义,而阿里的每一项重要开源技术都离不开业内广大开发者的参与和贡献。 受益开源,就当回馈。面对阿里头顶上“贡献开源软件数目第一”的光环,我们清醒地认知阿里开源的目的:阿里开源不是到业内“秀肌肉
Wesley13 Wesley13
3年前
2014年国人开发的最热门的开源软件TOP 100
不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必。做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可。中国是开源不可忽视的力量。而我们这个榜单也是从这些国人开发、主要参与开发或者基于国外开源软件进行改进并形成独立版本的软件中,根据该软件的访问、收藏、下载等多个角度
Wesley13 Wesley13
3年前
GNU 对自由软件的定义:与免费无关
近年来,很多开源项目在商业化的过程中遇到了困难,抗议开源商业化的声音也一直存在。在很多对自由与开源软件不太了解的人眼中,开源软件免费软件——这其实是一个错误的观念。自由软件运动之父RichardStallman(RMS)曾在GNU章程中明确表示,自由软件是可以被售卖的。也就是说,自由与开源软件的商业化其实是一件非常合理的事情。
架构探索之路-第一站-clickhouse | 京东云技术团队
一、前言架构,软件开发中最熟悉不过的名词,遍布在我们的日常开发工作中,大到项目整体,小到功能组件,想要实现高性能、高扩展、高可用的目标都需要优秀架构理念辅助.所以本人尝试编写架构系列文章,去剖析市面上那些经典优秀的开源项目,学习优秀的架构理念来积累架构设计
万界星空科技 万界星空科技
10个月前
快速部署MES源码/万界星空科技开源MES
什么是开源MES软件?开源MES软件是指源代码可以免费获取、修改和分发的MES软件。与传统的商业MES软件相比,开源MES软件具有更高的灵活性和可定制性。企业可以根据自身的需求对软件进行定制化开发,满足不同生产环境下的特定需求。开源MES软件的优势免费获取
敏捷开发 敏捷开发
6个月前
关于开源软件的七大错误认知(中)
最近这几年,有不少国产的开源项目陆续从Apache软件基金会毕业,成为Apache软件基金会旗下的项目。今天来聊聊第四个错误的认知,我应当努力地将软件捐献给基金会。
敏捷开发 敏捷开发
2个月前
关于开源软件的七大错误认知(下)
关于开源软件的七大错误认知系列。