引子
其实,诸如此类这种在认知上的偏差算是很正常的现象,而拨乱反正就是我们布道师的职责所在,正本清源的将一些事情捋一捋,以让民众有一个全新的认识,所谓“群众的眼睛是雪亮的”,相信人们会作出正确的选择的。
软件只是开源的一小部分
我们通常讲的开源,其实指的是代码的那部分,而不是软件的那部分,因为开源的本质其实是不包括软件的那部分内容的,有了代码之后,将代码编译为软件,软件不过是一个附属品罢了。
代码作为信息时代的典型产物,是体现着工程师的劳动结晶的,有着知识的所有特征,比如在撰写、创作的时候是需要花费很大的精力和能量的,而 copy 的时候,是不需要丝毫力气的,而且无限。但是,代码有一个非常特别的属性:它是动态的、生长的,一旦没有人维护,它就会被历史所淹没。
在本土讲开源的故事的时候,会有一个脍炙人口的故事:,那宫敏博士从芬兰用软盘背回来一整个Kernel的源代码么这个源代码和操作系统有什么样的关系了呢/p>
从 Kernel 到发行版,需要走很长的路
仅仅有 Kernel 的源代码,对于用户和非 kernel 开发者而言是毫无用处的,那么到可以使用的软件又会经历什么了呢我们不妨从发行版的角度来看一下,都要经历哪些:
Kernel 本身的运行需要编译器,通常使用的 GNUC ,我们以最简单的 LinuxFromScratch 为例,想要搭建一个Kernel的编译环境,需要如下项目:
-
autoconf
-
automake
-
bash
-
binutils
-
flex
-
…..
每个项目都是必不可少的,成千上万行代码所组成,单独拎出来除了学习几乎没有任何的现实意义。然而进一步想要可用,如桌面可视化环境、打印机程序、日常办公等等,那就需要采用和编译更多的开源项目代码,以知名 Linux 发行版 Fedora 为例,其最近发布的版本 Fedora 32 所包含的软件包(可以简单粗暴的认为一个包就是一个开源项目)为:55281[3]。
这是一条巨大的链条的,涉及到了成千上万、上百万个开源项目,上几百亿行的代码,价值几百亿美元的庞大软件工程。然而,如果人们仅仅是下载 Fedora 发行版去使用的话,是无法体会到开源从代码到软件的过程的。这里可以使用我们常见的露在水面上的不过是冰山上的一角,来比喻软件和开源的关系是颇为妥当的:
(图片截自Linux 基金会最新发布的Kernel 告[2])
有了人之后,就需要大量的协作和沟通,那么这几千几万个人是如何做到沟通的了呢/p>
进一步思考 Linux 既然能完成这么多事,定然充满了无限的商机,那么是否有商业公司侵占或霸占了呢案是没有,Linux 在发展到 2007 年的时候,就成立了非营利的基金会来保证 Kernel 的中立性,我们再看一组数据,即参与 Kernel 的整体 29 年的贡献度:
(图片截自Linux 基金会最新发布的Kernel 告[2])
同理,读者也可以将上述的思路推理到其它软件栈 :Firefox 、 Chromium 、 Apache Hadoop 、 AOSP 、 FreeBSD 、 Postgresql 、 Debian …… 下载到的二进制部分,和整个开源比较起来,实在微不足道。
在开源的世界,开源软件断供可怕吗你拥有冰山的时候,那一个小角落真的那么关键吗/strong>
回顾一下“孤岛”的时代
如果说 1991 年 8 月 25 日, Linus 写下了 Linux Kernel 第一行代码之后以 GPL v2 的形式发布源代码,这天和中国的某个特殊事件有所关联的话,我可以想到 1980 年 8 月 26 日这一天[6]深圳正式成为经济特区,这也是我朋友圈上个月末都在庆祝深证 40 周年,庆祝改革开放带来的富足和有追求的生活。
1980 年前的中国 IT 是什么样,或者说整个中国的状态是什么样,笔者就不在这里提及,有兴趣的读者可以找资料查查,然后和硅谷的历史进行一下对比。[25] 不过那个时候,所谓的孤岛的意思是中国大陆和世界上仅有的几个 会主义国家有往来,和世界上绝大部分国家是没有任何的往来的,在当时的情况下,中国就是一座大的孤岛。不过我这里讲的不是这个孤岛的意思,有兴趣的读者,可以查阅相关的历史书籍,由于封闭的关系,人往往会进入虚构和进行一些不切实际的想象,比如“大跃进”式的魔幻现实。
回到笔者要阐述的“孤岛”,在刚刚过去的8月份下旬,准确点说是22 ,Ibrahim Haddad 博士发布了《技术债务和开放式开发》[26],其中特别针对利用开源的技术债务进行了说明:
世界很大,不止中美
自从发现新大陆之后,人类打开探索地球的大门之后,从全球视野来观看现代世界的思路,就没有改变过。为了避免遭人说卖弄的嫌疑,我这里不打算给大家说什么空间、地理和现代交通的知识,我只想讲讲开源世界的人们。
不妨从下面这段经典的描述说起,尽管是来自一本经典的 会学图书:
人类的多样性也包含着个体的多样性;这些同样须被 会学的想象力所把握和理解。在此想象中,1850 年的婆罗门与伊利诺伊州的拓荒者站在一起;18 世纪的英国绅士和澳大利亚土著人比肩而立,同时在场的,还有一百年前的中国农民,当代玻利维亚的政治家,法国的封建骑士,参加 1914 年绝食抗议的英国女权运动者与一位好莱坞新星和古罗马贵族。写到“人类”,就不能不写到这些男男女女——既有不凡如歌德,也有平凡如邻家女孩。—— C.赖特·米尔斯 《 会学的想象力》
在这里我会从开源共同体内的角色分析(个人与机构分别来谈论) 所分析的开源世界的英雄们讲起,因为这便于大家的理解,最后给大家一个全概念的图,分别来自Apache 年度 告和 GitHub 的 2020 年的 告。
开源领袖们的国籍考
我非常清楚我这么做是非常危险的,又可能被引入到国籍对于开源的影响之类的,但是没有人能够改变一些事实存在的,所以我还是把这些东西列出来的较好。
姓名 | 开源项目或影响领域 | 原始国籍 |
---|---|---|
Linus Benedict Torvalds | Linux 和Git | 芬兰 |
Guido van Rossum | Python | 荷兰 |
尤雨溪 | Vue.js | 中国 |
Tim O’Reilly | Open Source 、Web2.0 | 爱尔兰 |
henry zhu | Babel | 中国 |
Fabrice Bellard | FFmpeg、QEMU、Tiny C Compiler | 法国 |
Matei Zaharia | Apache Spark | 罗马尼亚-加拿大 |
Igor Sysoev | Nginx | 俄罗斯 |
吴晟 | Apache SkyWalking | 中国 |
松本行弘 | Ruby | 日本 |
Avi Kivity | KVM | 以色列 |
…… | … | … |
回应一下这个主题,开源不是任何一个国家或者是任何一个大洲的事情,而是汇聚全球智慧。
Hackers should be judged by their hacking, not criteria such as degrees, age, race, sex, or position .
—— Hacker ethic 1
新的开源的时代下,这句话可能需要加上一个 “ nation ”。
【注:另外,适兕一直想将操作系统虚拟化、容器技术的隐喻来说明 会组织的关系,《利维坦》一旦完成它的使命,可能就会出现偏差,正在积极的准备中,敬请期待。】
交平台与代码托管
在版本控制系统和云计算发展到今天的地步,搭建代码托管平台是一件成本极为低廉的事情,而且任何人都可以随时随地搭建(熟悉Git的朋友都明白: 一条简单的命令就可以成为一个开源仓库。)
这个世界上的代码托管平台
现代的互联 世界当中,有着非常多的可以用来当作代码托管的站点或平台,笔者给大家在这里简单列举一下:
名称 | 公开站点 | 备注 |
---|---|---|
GitHub | http://www.github.com | |
GitLab | http://www.gitlab.com | |
BitBucket | https://bitbucket.org/ | |
Gitee | https://gitee.com/ | |
GNU Savannah | https://savannah.gnu.org/ | |
Sourceforge | http://www.sourceforge.net | |
Launchpad | https://launchpad.net/ |
换句话说,目前的代码托管,作为代码的生产者是拥有主动权的,也是可以选择适合自己口味的。比如是否介意这些平台本身是否是开源的项目,如不介意,那么选择GitHub 、 Gitee 等都是可以的,如果介意,那么选择 GitLab 、 Savannah 也可以。以自身的意愿为主。
可以作为代码托管平台的开源项目
我需要为我刚才说的话(成本低廉)负责,优秀而卓越的可实现代码托管且拥有完善功能的开源项目十余种,起码从这个角度讲,当下技术实现上是较为简单的事情,以下我们就引用 Apache 旗下代码托管平台 allura(知名平台 Sourceforge 所使用的技术)所做的比较:
(图像截自 Apache Annual Report 2020 )
是的,要真实的认清自己的现状,努力学习,虚心请教,开放源代码是平等参与的绝佳机会,也是提高一代人的编码技能的大好机会。如果是拒绝开源,或者是试图将开源拒之门外,而只是将开源的副产品软件复制一份,正如过去 20 年的 linux 发行版一样死于角落[16],不会有任何的提高,反而会将人坑害沦落为狭隘的、拒绝睁眼看世界现代的野蛮人。
我在历史的维度——开源、拿来主义与自主可控的历史对比一文中,回顾了本土和世界的时间节点的对比,本土的IT技术发展晚,基础薄弱,恰逢互联 崛起,以及其孪生兄弟开源的应用,让本土在 Web2.0 之后的电子商务、现代物流、智能手机、云计算等方面,和世界同行业是站在同一起跑线,基础设施可以说是开源承揽了所有的功能。这恰恰验证了:
开源让中国与世界更加同步。
————吴晓敏
写在最后
身为一名开源布道师,写到此处,最大的感受竟然是 First they came [18] 这首诗。用来感慨一下本土的开发者,继续保持沉默,连开源都要被那些铸造高墙的人给剥夺了!这可能是我们这代人最后的机会。
开源 简介
开源 是由国内外支持开源的企业, 区及个人,依“贡献,共识,共治”原则,所组织的厂商中立、纯志愿者、非营利的开源联盟,旨在共创健康可持续发展的开源生态体系,并推动中国开源 区成为全球开源软件的积极参与及贡献者。我们专注于开源治理、国际接轨、 区发展和开源项目。
相关阅读 | Related Reading
2020 中国开源年会(COSCon’20)再启程:开源向善(Open Source for Good)

COSCon’20 讲师征集令
欢迎大家点击阅读原文,关注开源 官 !
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!