最近有关开源软件的话题始终占领着IT界的新闻头条,Log4j开源软件的惊天漏洞,才刚刚出现不久,Fake.js的作者也惊天删库跑路了,CurL的作者怒怼苹果只会白嫖开源却不出力,Linux的祖师爷Linus也不知所云地在Github为WINXP加油打Call。

开源界也算是痴人、狂人、妄人、疯人齐聚了,但是不可否认的是开源极大的推动了IT行业的发展,尤其是让国内新一代程序员快速融入到了信息科技大潮中。去年初一个外国程序员发布了一篇题为《中国的开源项目正在破坏 GitHub 的排行榜》的博客,对中国项目占领GitHub 的趋势榜的情况进行了无奈的吐槽,而这样火爆的场面恰恰是我国开源事业蓬勃发展的一个侧影。目前不但来自中国的项目占领了Github的排行榜,而且越来越多的中国年轻程序员也都始投身到开源社区,目前在GitHub全球4000 万的注册用户中,来自中国的开发者从数量和贡献度上均位列第二,越来越多的国内企业在国际合作的开源项目中扮演着重要角色。

开源-西方人的集市、中国人的侠义

开源软件即公开源代码的软件,所以从这个角度上讲开源软件是信息产业发展到一定阶段以后的产物,因为在IT产业刚刚创立的时候,软件都是以源代码的形式提供的,可以说当时的软件都是开源的。

而在上世纪70年代以微软为代表的软件公司,仅提供编译后的二进制可执行程序,而不再提供源代码了,这就形成了闭源的概念,在在此之后真正意义上的开源产业也就相对于闭源形成了。

开源概念的形成,自始就有很大的挑战传统、不畏强权的侠义精神在其中,而这要从由Richard Stallman创立的GNU开始说起。GNU的官方定义是一个“GNU is Not Unix”,这是十分叛逆的递归型定义,因为人们可能只能从其中看到反Unix闭源的理念,却永远也找不到本意,GNU的目标是创建一套完全自由、开放的操作系统。,从某种程度讲,Linux就是GNU理念不断推广所形成的产物,

后来Richard Stallman创立了自由软件基金会(Free Software Foundation ,FSF),其主要工作是执行GNU计划。为了保证GNU软件可以自由的“使用、复制、修改、发布”,同样也禁止部分人在GNU软件的基础上自己修改并发布的软件中添加任何限制他人自由使用的条款,在这个情况下就诞生了GNU的许可条款,再后来又产生了其他的(非GNU)许可条款,这些又统称为开源许可协议。而这些开源协议又将开源项目分成了各自不同的门派,而各派之间又有不同的玩法,所以从这个角度上讲开源是中国侠义精神的体现一点也不为过。

而开源与集市的类比,要从IT界传奇人物Eric Raymond史诗级的著作《大教堂和集市》(The Cathedral and the Bazaar)说起。书中讲到,世界上的建筑可以分两种:一种是集市,天天开放在那里,从无到有,从小到大;还有一种是大教堂,几代人呕心沥血,几十年才能建成,投入使用。当你新建一座建筑时,你可以采用集市的模式,也可以采用大教堂的模式。一般来说,集市的特点是开放式建设、成本低、周期短、品质平庸;大教堂的特点是封闭式建设、成本高、周期长、品质优异。

而开源将软件之所以使用类似于集市模式,关键在于集市可以让更多的用户参与到软件的开发的过程中,提高软件的质量,来更好地支持自己的服务。这也是为啥微软也在逐渐开源一些自身的工具,比如vs code,微软并不需要售卖vs code所带来的利益,反而让更多的人免费使用vs code,报告vs的bug,扩展vs的功能,反而更有利于微软操作系统 的推广,因为vs生成的软件大多是在windows上执行的,微软也可以通过通过vs来推广自身的一些如windows Azure的服务。其实这种说法,是克里斯·安德森《免费:商业的未来》与谷歌长尾理论的另一种诠释,其逻辑内核都是基于极低边际成本来快速积累用户的模式。这也从另一个侧面说明了开源会是业个典型的互联网产业。

开源不应该被白嫖-业界的反思

去年中国某电子书厂商拒绝开源其基于Linux 内核修改的源码,这一明显违反了GPL协议开源协议的做法,引发了国内外有关开源使用规则的大讨论。当然身力憔悴的开源人并不是我国独有,上文提到的Fake.js、Linux、CurL等知名开源软件的创始人,也都为了开源事业做出巨大贡献了,但是“一斗米是恩,一升米是仇”,一味地无私奉献往往换来的不是赞誉而是漫骂与批评,

因此很多成功的开源软件在创始人屡屡受挫而“心累”之后,往往会倾向于慢慢走向自闭,这个趋势在Github上也能看出端倪,作为全球最大的开源社区网站,在2020年开始对于某些区域的用户加以限制了,对于开源软件的使用也开始有了不同的声音,比如来自清华大学的刘利副教授就公开表示说“我国对国外开源基础软件的依赖,使一些国家可随时通过隐藏最新技术或版权,限制甚至阻碍我国科技发展。”

不过从实际情况上看,笔者不太认同刘利老师的说法,盲目的抄袭当然是有害的,但是借鉴开源软件的思路和想法,对于我国乃至整个IT产业来说都非常重要。在目前IT技术发展日新月异,拥抱开源、互通共享已经逐渐成为了业界的共识,在这种情况下,获取开源技术社区的支持,对地我们来说无比重要,不过这种支持是交互的,也要求我们在使用开源时,尊重开源规则。

契约精神-开源的可持续发展

说起开源协议,就不得不提GNU。其官方定义是一个“GNU is Not Unix”,这是官方给出的递归定义,永远也找不到本意,我们可以将它理解为一个自由软件工程项目或者一种计划,是由Richard Stallman在1983年9月27公开发起的,它的目标是创建一套完全自由、开放的操作系统。1985年10月Richard Stallman创立了自由软件基金会(Free Software Foundation ,FSF),其主要工作是执行GNU计划。为了保证GNU软件可以自由的“使用、复制、修改、发布”,同样也禁止部分人在GNU软件的基础上自己修改并发布的软件中添加任何限制他人自由使用的条款,在这个情况下就诞生了GNU的许可条款,再后来又产生了其他的(非GNU)许可条款,统称为开源许可协议。

这里列举了最常用的几种开源协议:

GPL (GNU General Public License) :GNU通用公共许可协议

LGPL (GNU Lesser General Public License) :GNU宽通用公共许可协议

BSD (Berkeley Software Distribution)  :伯克利软件分发许可协议

MIT (Massachusetts Institute of Technology):MIT许可协议之名源自麻省理工学院,又称“X许可协议”或“X11许可协议”

Apache (Apache License) :Apache许可协议

MPL (Mozilla Public License) :Mozilla公共许可协议

如果将开源协议具体用途的决策点进行分类,那么其导图如下:

笔者在这里必须要提示大家,我国科技公司对于知识产权的重视程度不够,尤其对于开源规则、开源协议重视程度不够,这点的确值得我们反思。

比如国内最早的开源操作系统项目MiniGUI也发布了例外清单,EXCEPTION LIST :: 飞漫对某些未遵守GPL协议的公司进行了例外处理。虽然这些还没有升级成我国IT界与开源社区的冲突,但是笔者还是要呼吁业界,在在使用开源软件的时候一定要注意遵守相关规则。

说起健康的开源模式,国内厂商中RT-Thread算是其中的翘楚,他们的模式是代码完全开源,创始人一手建立的睿赛德则在背后进行技术支持,并收取技术服务的费用,去年睿赛德发布了混合微内核而且支持MMU的物联网操作系统-RT Smart,由于物联网终端的运行条件限制,其操作系统对于性能要求很高,但体积又不能太大一般不有超过10M,可以说体积要求几乎把Windows、安卓等目前主流的操作系统排除在外,所以从这个角度上讲,这对于我们自主的物联网操作系统来说将是一个重大机遇;另一方面物联网操作系统的功能也不能太简单,这对于自主物联网操作系统来说又是一项挑战,而RT Smart在性能、体积与功能方面堪称完美平衡的典范, RT Smart的关键发布也证明了这种代码开源,服务收费的模式才是开源的健康发展模式。

如果要问两年前中国最大的文化输出是什么,那这可能是大刘的科幻,也可能是莫言的小说;而如果现在要问这个问题,那它的答案应该是开源。十年前业界流传“代码正在吞没世界”的观点,现在IT界普遍认为“互联网世界的一切源自开源”,这里笔者再次呼吁业界,遵守开源规则,用好开源软件。

有人痴狂,有人跑路,开源软件新一年的冰火两重天相关推荐

  1. 开源软件新时代:55个经典开源Wind…

    开源软件新时代:55个经典开源Windows工具 开放源代码软件已经成为一个时髦的名词,这里有两个有力的证据:Firefox浏览器的下载人次超过了2500万:同时,基于Linux的Web服务器也占据了 ...

  2. 开源软件新时代:55个经典开源Windows工具

    开源软件新时代:55个经典开源Windows工具 开放源代码软件已经成为一个时髦的名词,这里有两个有力的证据:Firefox浏览器的下载人次超过了2500万:同 时,基于Linux的Web服务器也占据 ...

  3. “Linaro”将推动开源软件新一波开发潮

    根据国外媒体报道,ARM.飞思卡尔.IBM.三星.ST-Ericsson和德州仪器日前共同宣布成立非盈利开源软件公司Linaro,该公司致力于为新一波"在线不停机"的浪潮提高开源创 ...

  4. 开源软件新时代 55个经典开源Windows工具

    开放源代码软件已经成为一个时髦的名词,这里有两个有力的证据:Firefox浏览器的下载人次超过了2500万:同时,基于Linux的Web服务器也占据了最大的市场份额.人们普遍相信,开放源代码软件(op ...

  5. 代码投毒、删库跑路,开源生态链安全该如何保证?

    [CSDN 编者按]这两天node-ipc作者往开源代码投毒一事引起热议,在此之前出现了Log4j2事件,与Marak Squires删库事件,一时间大家都议论纷纷.热议之后,我们不妨品读一下开源社理 ...

  6. 再谈“开源软件供应链安全”

    缘起 之前写过一篇文章<我所理解的开源软件供应链安全>,当时的情况,还没有出现一些值得探讨的,堪称紧迫的热点事件,所以我也仅仅是泛泛而谈,到最后留了一句话:「我的提议是:不再提" ...

  7. 万字总结:开源软件通识基础课第三周知识点总结

    我们在前两周的课程上(第一周.第二周),系统讲授了 FOSS 的课程内容,第三周,我们开始进入 COSS(商业开源)的部分. 本导学班在调研全球开源教育与课程的基础上,通过收集.整理.理解.拓展国际最 ...

  8. 开源软件及国内发展趋势

    源是大势所趋 随着计算机技术的发展,尤其是互联网技术和相关企业的兴起,开源软件在操作系统.编译工具链.数据库.WEB服务器.移动操作系统等各个方面已经成为主流.而且许多企业利用开源软件形成了独特的商业 ...

  9. 开源软件及国内发展现状

    1 开源是大势所趋 随着计算机技术的发展,尤其是互联网技术和相关企业的兴起,开源软件在操作系统.编译工具链.数据库.WEB服务器.移动操作系统等各个方面已经成 为主流.而且许多企业利用开源软件形成了独 ...

  10. 又双叒叕发删库跑路!关于删库跑路的一切都在这里

    你以为"删库跑路"只是IT圈子里的一个玩笑话? 别笑... 这件事儿,它又双叒叕发生了!!!... 这一次倒霉的是微盟. 据官方最新消息,2月23日晚间,微盟的业务系统数据库(包括 ...

最新文章

  1. 查看oracle已经锁定的表,Oracle中查询被锁定的表
  2. Linux搭建安卓开发环境
  3. C中out型参数的使用介绍
  4. mac mysql prefpane_【MySQL数据库开发之一】Mac下配置安装数据库-MySQL
  5. Webpack实战(八):教你搞懂webpack如果实现代码分片(code splitting)
  6. 数据库_day03_对数据库的基本操作
  7. 《Effective STL中文版》前言
  8. 【深度】美俄机器人集群军事作战应用研究现状!三大关键技术体系分析
  9. 信息可视化图表设计指南
  10. OS X: Messages Agent wants to use the login keychain
  11. 车载以太网交换机功能和应用案例汇总, 适用于AVB/TSN, 802.1AS(gPTP时钟同步)
  12. 【信息】三方协议签订相关问题及解答
  13. 迪士尼机器人芭蕾舞_浅析迪士尼跳跳虎机器人
  14. hour:24小时制和12小时制
  15. 一个计算数独的小程序
  16. 用c语言编写小狗图形,小狗的图片简笔画
  17. java语言读后感_《Java语言程序设计基础篇》读后感锦集
  18. emwin 使用外部字库_emWin – 汉字字库生成及显示 | 学步园
  19. t12电烙铁c语言程序,可跑C代码的串口屏之T12白光烙铁
  20. 开课吧直播课笔记-疫情地图项目

热门文章

  1. Ubuntu 16.04安装sogou拼音输入法
  2. matlab rlc串联,rlc串联电路的零状态响应 matlab
  3. 数独游戏 | c++ | BFS
  4. 深入理解栈(Stack)
  5. centos8安装配置web服务器
  6. 如何获取瘦人肠道菌群_瘦人想要长胖,调节肠道菌群很重要
  7. html5图片做成简单拼图,html5版canvas自由拼图实例_html5教程技巧
  8. win10键盘鼠标怎么使用?(键盘操纵鼠标)
  9. System V消息队列报Resource temporarily unavailable 错误
  10. 专辑名称:极品汽车发烧音乐精选-音乐宝典18CD(金碟收藏版)