开源世界的学术问题

3328f691a87ff8d92f02e6ce2715d828.jpeg

5845067532b74d453ea8ec78b93adddc.jpeg

fc436498aed3ff2c7daa07e7818c2eac.jpeg

8a7a3dc891d6811eda40d17a63b1099c.jpeg

自由软件基金会是1983年成立的,到现在是41年。正好很有意思的是,在去年还有一篇文章CSDN 的翻译,专门在质疑说成立 40 年的自由软件基金会是不是已经快不行了,所以我们会用这个标题叫做兴衰发展历程来介绍这个事情。

黑客文化和黑客伦理

在介绍自由软件基金会、介绍自由软件运动之前,不得不提到的黑客文化和黑客伦理。黑客文化起源于1960年代末的美国大学校园俱乐部和科研机构,比如说麻省理工的人工智能实验室。其实我们经常会说 Richard Stallman 是最后一个黑客,他就是在 MIT 的人工智能实验室里工作的。

在这些实验室里面工作的很多人,他们形成了一套独特的技术风格和文化,其中还有一个叫 Jargon File 的这样的一个文档,这是由一群黑客自己维护的一本手册,内容就类似于行业黑话,像我们有哪些笑话、有哪些段子或者是梗,这些外面人不懂,但是我们自己要搞清楚。他们有一个很有意思的传统,什么时候你才会被认为是一个黑客?很简单,就是你被其他黑客认为你是黑客的时候,那么你就是黑客。他有点像是黑帮组织,一旦你被认可成为里面的人,你就会成为其中的一份子。这是一种是非常小团体的文化,他们是一群做技术的人,他们对技术抱有非常深厚的热情,也在推动技术往着极限的方向去发展。

44c511e21f131d139b0d2e4e9b97f412.png

他们也为自己创造了一套黑客伦理,这里做个摘要:

第一条就是信息是应该自由流通的,限制信息的流通对知识自由的损害。之前有一个,曾经发明了 RSS 文件格式的一个小伙,叫 Aaron Swartz,他就是一个继承了黑客精神的一个人。他利用自己的这个技术手段,跑到大学校园里,把很多没办法被公众所阅读的论文拷出来,然后公开的在网上散播。他认为既然都已经是公开发表的论文,为什么不能被大家知道?后来他因为这个原因被 FBI 逮捕。他认为信息是应该自由的,这就是一种黑客伦理,所以黑客伦理经常会被一些圈外人所诟病,也是因为觉得他们是在合法和非法之间的一个灰色地带做事情。

所有的黑客对计算机和技术的渴望都是无限的无穷无尽的。尤其是在1960年代、1970年代,那个时候一个学校里就那么几台大型机、小型机,他们想要去玩、去摆弄那些机器,如果有人阻止他们不让他们进机房,他们就会想方设法的敲门、开锁进去弄计算机。这就是他们对计算机那种渴望的心情,就跟现在很多小孩喜欢打游戏,偷偷躲在被子里也要把游戏给玩了,是一个道理。

反对权威,也是因为这个原因,他们会觉得你们水平还不如我,为什么你们会有那么多用计算机的时间,而我们因为是学生、资格不够老,反而不准我们用,是非常无法理解的事情。所以在他们的黑客伦理里面就会讲,谁是大牛、谁写出了最好的代码,我们就应该听他的,因为他最厉害、他脑子最清楚、他智商最高,因为他写出来的程序最漂亮,这就是厉害的人,我根本不去管他是权威或者职务,只管他自己本身有没有做出足够的贡献。

另外还有一个,“Hacker 黑客” 和 “Crack 骇客”最大的区别。黑客是在改善世界的,他们用技术在做改善世界,创造更美好于世界的事情,而不是去做破坏,去为自己谋利益。所以 Hack 和 Crack 是两个完全不同的类型,虽然他们都掌握了非常强大的技术。

自由软件运动的时间线

我们谈到自由软件运动,一定会谈到 Unix,因为在1969年 Unix 诞生之后,Unix 的很多源代码背后的思想,以及它所用到的 C 语言以及它背后的编程风格,都严重影响了所有的早期黑客。这也是为什么在很多的高校里面,他们通过改 Unix 来开始自己最早的黑客生涯。

b4a6e829796a3fbc3cf11d7f72227363.png

1976年,Richard Stallman 就已经开发了最早的 emacs。等到后面他自己弄了 GPL 之后,他的 emacs 就用 GPL 来发布了。

1983年,Richard Stallman 宣布要建立一个 GNU 项目(GNU's Not UNIX),号称要创建一个自由的Unix。为什么会有这样的一个项目的诞生?其实是因为在70年代末的时候,商业软件开始兴起,这就意味着很多的企业可以通过售卖软件来赚钱,于是越来越多的商业软件公司诞生,他们开始把软件闭源并开始发布形形色色、互不兼容的操作系统去卖钱。而 Richard Stallman 受不了这种事情,因为本来他所处在的是一个像乌托邦一样的社会,在那个社会里面,所有的代码都是自由流通的。现在大家都把自己的代码给闭源了,他要去改代码改不了。更重要的是,他原来所在的 MIT 人工智能实验室里面的朋友都是一起在钻研技术的人,没想到这些人为了搞商业软件就从实验室离开了,连朋友都没得做。这些是他非常痛恨的事情,所以他就发起了 GNU 项目。

1985年,Richard Stallman 成立了自由软件基金会。

1989年,他找到了一位律师作为合作伙伴,发布了 GPL 的 1.0 版本。

1991年,发布了 GPL 的 V2 版本。这一年其实也是自由软件运动的转折之年,因为在那个时候 Linus Torvalds 也开始启动了 Linux 内核项目,后来他也采用了 GPL V2。

2001年,成立了自由软件基金会的欧洲分部。

2007年,GPL V3 发布,但事实上,GPL V3 发布已经埋下了分裂的种子,因为那个时候 Linus Torvalds 坚决不愿意把 Linux 内核项目改到 GPL V3,他只愿意用 V2,当时理念已经有分裂了。

不过,开源运动的分裂还要再往前算。

自由软件的定义与GUN 通用公共许可证(GPL)

什么叫做自由软件?通常在 Richard Stallman 所宣传的自由软件的哲学当中,他会把自由软件的四个标准分别称之为自由之零壹贰叁。从零开始,这就是他们一个玩梗的做法。

第一个是运行的自由,就任何一个代码,任何一个程序,你能够按你的自由去运行,不管它用于什么目的。

第二个是修改的自由,你可以修改来符合你的需要。

第三个是散布分发的自由,或复制或再次传播,是帮助他人的自由。

最后一个是把前面的三个加在一起,也就是你可以再修改,修改之后再散播,这样你就有机会让你的改善惠及整个社群。

所有的前提就是你必须得有源代码,否则没办法修改,更没办法散播。自由软件的目标就是为用户提供自由和控制力,帮助他们能够使用复制、分发和改进软件,而不受专有软件的限制,这就是自由软件的核心。

整个 GUN Public license(GPL)就是为了贯彻这一套自由软件的定义而开发出来的一套法律的授权的协议(license)。

自由软件基金会正在走向消亡

2019年,Richard Stallman 替他的朋友明斯基(一位著名的人工智能专家)辩解,而后就引发轩然大波,还被迫辞去了自由软件基金会主席的职务。

到了2021年,两年之后,他又重返了自由软件基金会,但是遇到了很多抵制的呼声,甚至像开源软件促进会(OSI)和红帽(Red Hat)都发公开信直接抵制他,认为自由软件基金会不应该接纳他回来做主席。

在2023年4月份的时候,有人声称说40年来,自由软件基金会正在走向消亡。因为它没有真正的重视传播自由软件的理念,没有认真的去发布和推广 Copy Left(Copy Right 的反面的一种许可证,指的是GPL),它没有帮助自由软件运动健康发展,还分心将资源投到了其他的乱七八糟的事情当中。当然,我相信写这篇文章的人应该算是自由软件应用的铁粉,所以他会认为自由软件基金会没有真正的做到他的理想。

事实上,我们这些在自由软件运动之外的人,我们现在确实更多的在谈论的是开源软件,而不再是自由软件。就像我们今天分享的主题已经讲的是开源世界的学术问题,而不是自由软件世界的学术问题。那我们可不可以认为自由软件运动已经完成了自己的历史使命?我们有可能通过改革重振旗鼓?重新宣扬,激起大家对自由软件的渴望?我说实话,我个人的判断几乎不可能,这就是是现状!而为什么会变成这样,恰恰是一个值得研究的问题。

围绕自由软件运动,能够提出哪些问题

ac16f66fb3ccbcd797691364274291a0.png

我们来尝试提问。

第一个提问就是自由软件运动的文化背景。出于什么样的原因,自由软件运动会在1970、80年代在美国兴起,这件事情为什么会在美国发生?

其实我们可以看得到,第一个是在美国的70年代、80年代是他们的技术理想主义最兴盛的时候,就是有一群搞技术的人,同时坚定的相信技术在不断进步,在不断的造福世界。做技术的人、做软件的人、写程序、做计算机科学的那些人就应该为了世界更加美好而去做出努力,他们会相信通过技术能做到这一点,这是一种非常乐观向上的一种技术理想主义。

第二,黑客文化的影响。技术理想主义的典型就是黑客文化,就这么一小撮这群人的黑客文化被传播出来,他们会影响着非常庞大的一个群体。因为绝大多数的人,把他们等同于技术天才,创造力无限,同时他们会对世界产生很多的贡献。

第三,对商业化和专有软件的反思。我们可以说微软在这个当中起了一个很大的作用,所有人都会把微软当成是一个反面典型,商业化和专有软件大家都不喜欢,所以我们要通过自由软件运动去反对它。

第四,是当时在美国的反文化运动。当时的反越战、当时的反对黑人民权运动,包括当时的女权运动,整一系列的反对声音,都是汇集在一起的,统称为反文化运动。而这些反文化运动当中,有一群嬉皮士是这样的一种风格,就像说我们有时候经常会混淆一个嬉皮士和一个黑客区别,只在于他用不用电脑。如果他不用电脑的时候,就像是一个嬉皮士,他用起电脑来的时候,就像是一个黑客,是这样的一种人的人物画像。那这群人他们会非常向往共产主义社会,向往每个人都为世界贡献出自己的力量的这样的一种可能性,向往一种开源软件和自由软件被分享和散布到全世界的、遍及全世界的一种未来。

85dc2bb5ada1c6d3338175e24515ed69.png

这是自由软件运动的一种文化背景。事实上我们再去回看,当年的美国和现在的美国,我们可以认为现在的美国根本不可能再诞生新的自由软件或者开源软件运动,美国现在已经不是这个样子,当然中国也不是这个样子。

除此之外我们接下来,还可以有一些提问。

第一,在中国现在的文化背景下,自由软件运动和开源软件运动背后的这些文化在中国能不能扎根?

第二,我们可以看得到,在自由软件运动兴起的时候,其实是激烈的反对版权专利和相关的知识产权的那一套体系的,所以才会有 GPL 或者叫 Copy Left 这样的一套理念。但这套理念到底对版权法和传统的知识产权产生了多大的冲击?我们再去看后面的开源软件 License 的历史的时候就会发现他们渐渐又相融了,这样的一个过程,从法律的角度、从知识产权的角度是有很多可以研究的点,所以这个也是一个可以探讨的问题。

第三个,自由软件真的对商业不友好吗?我们经常会说,或者经常会听到说 GPL 有传染性,或者说这个自由软件对商业不友好。是这样吗?我们说整个的 Linux 内核,整个 Linux 操作系统以及像红帽这样的开源软件公司,它下面基于的就是 GPL,但他们的商业也同样的很成功。那么这背后的原因到底是什么?很多国内的厂商上来就是我不要用 GPL,或者我如果要开源,我也不选 GPL,因为 GPL 对商业不友好,我认为他没有被认真的研究、分析过国外的这些案例到底是不是真的不友好。

再接下来,自由软件运动在诞生之初就开始讨论在数字世界,用户的主权以及用户的隐私,他们认为这样的一种自由软件运动能够保护用户的数字隐私。但是我们也可以看到后面的时代,尤其是除了云计算的兴起以后,事实上越来越多的计算不是发生在用户的本地,而是发生在云端。这个时候用户如何来保护自己的数字隐私,还是说每个用户都需要通过提升自己的软件能力,通过运行在自己家里本地的服务器来保护自己的数字隐私,有没有这种可能?我认为是非常困难,但是这也是自由软件运动的理想之一。

这就是我们围绕着自由软件运动可以提出来的很多问题,我没有答案。

e544f693cb2f6480674fe4e91c4acffb.jpeg

0ce6bb78472a704ccf466d8f11b8e910.png

为什么会提这个案例,因为它恰恰是一个分水岭,就是我们既可以把 Linux 的诞生称之为自由软件运动当中的重要的里程碑式的现象,但它同时也是开源软件运动的重要的里程碑,所以它同时是身兼两种角色的。

2d058598ee74d38abb790e3df6f9dd1a.png

上图是Linus Torvalds 91年读大学的照片

下图是二零零几年的一张照片

Linus Torvalds 在读大学的时候就开始对计算机有浓厚的兴趣,从小开始玩家里的一种早期计算机。到了91年读大学,因为当时家里面是搞到了一台386(Intel 80386是英特尔公司于1985年10月17日发布的 CPU),于是他就在自己家的386上面想要基于当时他认识的一个老师开发的 Minix 教学版操作系统做自己的修改,然后再全部从头推翻做,最后开发出了自己的开源的内核,又借助当时早期的互联网邮件列表,开始对外发布自己的源代码,并且很快就吸引了全球开发者的贡献和兴趣。

到了93、94年的时候,Linux 凭借其稳定性,安全性和开源的特性,已经成为多种计算平台的重要选择。甚至有很多的商业的 Unix 的操作系统公司倒闭了,被一个完全不要钱的、开源的、免费的、全部源代码公开的操作系统给干掉了,这就是 Linux 的早期阶段。

b7351e87ab72dc7f1581806ab9e1091b.png

另一位非常重要的人物,叫 Eric Raymond。我们之前提到的 Jargon File 黑客手册是他在维护。这个人在黑客当中最会写文章,也是在写文章的人当中最会写代码的一个家伙,身兼两职,他在97年的时候发表了一场演讲,经过整理之后在99年出版了一本书,叫《大教堂与集市》。这本书在国内被卫剑钒老师翻译成了非常优秀的一套中文版本,我推荐大家去阅读。这本书主要是由五篇论文组成,在书中他探讨了很多要点。其中讲到了大教堂与集市是两种开发模式,他认为 Linux 开发是一种集市的模式,通过广泛的协作和开源的方式,有效的提升了软件质量和创新速度,而这样的一种方式在他的描述下是一种更先进的、更理想的开发协作,所以他还总结了“优秀开源软件的19条经验”(书中第二章节),我认为到现在都不过时,如果要想去做一个好的开源软件,或者是维护一个好的开源社区的话,这个是非常值得一读去吸收的经验。

另外,礼物文化也是 Eric Raymond 在《大教堂与集市》这本书里第三章节提到的,它背后引用的是人类学。有一位法国人类学家马塞尔·莫斯写过一本书《礼物》,Eric Raymond 引用的是里面的一个例子,讲的是古代社会在原始部落里面,部落酋长通过赠送礼物,甚至通过“夸富宴”这样的一种行为来获取自己在部落和部落之间的部落联盟中的声望和影响。我不是通过我的强力,不是通过我的战斗力,不是通过我的武装力量,而是通过我更慷慨,更加愿意把礼物送出去来换取自己的地位,这就是他所认为的礼物文化,而这个礼物文化在开源社区里面到处都能看得到。我们经常会认为那些写代码写得最好,并开源出来的人是大牛,因为他们给这个社区贡献了更多的礼物。

另外还有一个,林纳斯眼球定律,这个定律是在讲一个开源软件为什么它会有更高的质量,是因为社区人越来越多,这些社区的人都能够看得到软件的代码,眼球越多,代码的质量就会越高,因为大家能够更快发现代码中的 Bug 和缺陷,也能够更快的让软件得以修正。这就是他在描述开源软件为什么会有更高的质量的时候,背后的一个逻辑。97年的时候,网景公司(Netscape Communications Corporation)曾经有一个高管,他正好在现场听到了 Eric Raymond 的演讲,于是他就回到公司写了一份邮件给自己公司的其他高管,当时正是 Netscape 在跟微软浏览器大战的时候,微软通过在 Windows 里面捆绑 IE 这样的一套战术,把他们逼得已经快不行了。

到了98年,他们通过跟 Eric Raymond 一起合谋并对外宣布将在本季度内对外开源。结果到了第二个月,整个网景浏览器的源代码就对外开源了。到了1998年2月3日,在加利福尼亚的这个战略会议上面,他们达成了一致意见,把 Open Source 这个名字给定下来。与此同时的话,他们还就很迅速的成立了开放源代码促进会(OSI)。1998年4月7日,第一届 Open Source Summit 就召开了,整个事情在几个月的时间里面发生得非常快。

f5dc0710b6ceeed7f953eb8d79484507.png

右侧三图,最上面是 Firefox 最早的 logo,到后面才改成了稍微圆润一点的火狐的样子。最下面是 OSI 的 logo,我们可以认为是 open source 的一个标志

d7beac655ee3f909293b881d5c8e3a27.png

80年代末主要是理想主义,但是到了90年代,尤其是2000年之后,我们可以看得到一系列的大企业的影子。比如90年代开始,IBM 为支持 Linux 缴纳超过十亿美元的专利费。1999 年 IBM 帮助创建了 Apache 软件基金会。

2000年,为了支持 Linux,开源发展实验室(OSDL)成立。

2001年,IBM 开发了 Eclipse 项目,并引导了2004年 Eclipse 基金会的成立。

2005年底,IBM 联合多家企业创立了开放专利的网络开放专利联盟(OIN,Open Invention Network),通过这样的办法来形成一个互相之间不再做专利起诉的一个联盟,也是为了共同的对抗微软。

2007年,OSDL 与自由标准组织一起合并成立了 Linux 基金会。目前除了当时的初创企业之外,还有了微软、华为和其他公司s如 PPT 截图),我们可以看到微软是2016年加入的。

我们去看对抗微软的联盟是怎么形成的?他们要做开源的操作系统,然后 Eclipse 是开源的 IDE,OIN 是开源的,或者说是开放的专利,还有 Apache 最开始的时候是 Web Server。这些说实话本来就是微软的优势项目,他们通过开源企图削弱微软在市场上的竞争力。一开始微软是反对的,后面诋毁,最后打不过就加入了,这样的一个过程。

7b2c0a19c8827e70fd8079304e46ca6e.png

开源运动时间线

我们再去看看这个开源软件运动的一个时间线(详见上方截图)。2014年,微软新任的 CEO 宣布微软爱 Linux,在后面他们还有一系列的动作,比如2016年微软加入了 Linux 基金会、比如微软收购了 Github、再比如微软现在已经成为全世界对开源贡献最大的企业之一,甚至有可能排名第一。背后线索非常的有意思,我们看得到的是微软当时是最强大的公司,所有其他的公司通过开源来对抗它。但是等到微软转过头来做开源的时候,它依然是最强大的开源公司,它在开源领域同样玩得风生水起,不输给任何一家,是一个很有意思的时间线。

e284c8c982a400462b1d317a785eca5f.png

2e0712a7c8fe0389d6ac681417edfdf1.png

那么围绕着 Linux 的兴起和开源软件运动,我们能够提哪些问题?我们能够去思考哪些问题?

比如说第一个问题:开源从自由软件当中分叉出来,他们到底有什么样的分歧?我们可以听到的一个最常见的分歧也是我认为最站不住脚的分歧,是他们认为 free software 的“free”有免费的意思,容易让人误解,所以我们就不要用这个词。事实上,自由软件运动当时并不是无人知晓,而且 Richard Stallman 以他的影响力一直对外宣称的是“free”不是啤酒的“free”,而是自由的“free”。他们一直在宣传,不存在什么分歧。对于自由软件和对于 GPL 的所谓的这个什么传染性、商业不友好,这样一系列的宣传,我相信它同时是从两个阵营出来的。

一个阵营当然是微软长期以来会对 Open Source、对 Free Software 散布一些不利的言论,但是另外有一些言论其实是从 Open Source 那里来的。我自己的理解认为开源和自由软件最大的分歧是,自由软件真正要强调的不是软件,是自由,而开源软件,不那么关心真正的自由,他真正关心的是怎么样做出更多更好的软件。它是一种更加务实的、更加功利的,或者说更加愿意与商业与企业妥协合谋共谋的一种开源运动,这就是最大的分歧,也就是 Richard Stallman 不愿意跟他们妥协,不愿意像他们那样愿意跟企业去妥协、愿意在自由上让步,所以他们分分道扬镳。这也是我的一家之见,可以继续探讨。

另外,《大教堂与集市》这本书,我们一直认为它是开源运动的圣经,它阐述的思想非常值得深入的解读,它奠定了开源文化的基础。我之前在对外经贸大学做过一次演讲在讲《大教堂与集市》里面提到的礼物文化,到底有没有道理?我觉得是很牵强的,在物理世界的礼物文化,我给你一个礼物,我没了,你有了,这里面存在的是物的传递,我把一个东西给了你,我就少了一样东西,而你多了一样东西,这是一种礼物,这种礼物是马塞尔·莫斯在《礼物》这本书中提出的说法,其实他还提到另外一个东西叫做回礼的压力。我们中国人都说礼尚往来,我给了你一件礼物,你就有受到某种压力,你要回礼给我,这个是在人类学里面会谈到的一种礼物文化。但是在开源软件、自由软件中都不存在所谓的得失的差异,虽然我把我的代码贡献到社区,我并没有损失,我并没有少掉这个代码,那么也不存在一个所谓回礼的压力,那这个时候礼物文化到底是不是真的适合用来去描述开源软件这个世界?描述这些贡献者的社区地位?至少不能简单的套用。

比如说 Mozilla 的开源是先成功后又失败。我们看浏览器的市场份额,一开始的时候,他被 IE 打得起不来,他开始通过做开源,变成 Firefox 华丽转身、凤凰涅槃。但是后面谷歌为什么不再继续支持Firefox,反而自己去搞了一个 Chrome。到现在 Chrome 浏览器一家独大,那么 Mozilla 到底做错了什么?以至于谷歌不再支持他,而谷歌又做对了什么?它以一个后来居上的开源浏览器,为什么还能够超过早期的 Firefox?同样都是开源,为什么会有成败?

比如说 IBM 还有早期参与开源基金会的大公司,他们的动机到底是什么?我们可以简单的说,他们是为了对抗微软。但是他们为什么会选择用基金会的方式去对抗微软?他们各自也有自己的利益,他们如何在一个开源的基金会里面协调自身的利益来共同的对抗微软,这件事情是怎么做到的? 

比如说 Linux 基金会,他是很多家大企业各自捐献了一笔钱,成立的一个公益组织。各家企业如何去一个公益组织里面实现自己的商业利益?公益组织本身又如何去平衡这些利益而不至于变成大企业的代言人。Linux 基金会是怎么做到的?我们也想研究,我们也想看一个基金会怎么样才能做到开放中立,但是又能够为各家企业的利益服务?这都是很不容易的事情。  

再比如说,我们现在越来越发现开源软件和自由软件,这样的统称为 FLOSS 的软件,它可能在我们现有的软件当中占比已经是60%、70%到80%,那么越来越多的安全漏洞和开源供应链的风险都已经暴露出来了。我们又不可能退到不用开源软件的时代,们如何去解决开源软件供应链的安全风险?如何解决开源软件普及带来的网络安全问题,这也是我们需要去理解和研究的。 

最后一个问题,微软在后期越来越拥抱开源,我们刚才有个简单的说法叫打不过就加入,但真的这么简单吗?微软背后的商业逻辑是怎么做到的?它是为什么能够转身从一个抵制开源、反对开源的企业变成一个拥抱开源的企业?是因为他们变善良了吗?因为他们的商业利益和背后的整个企业的商业逻辑发生了变化。我不相信一家企业是因为邪恶转回善良,一定是因为原来是这样的方法赚钱,后来是另外的方法赚钱。从始至终,他们一直在寻找的是更赚钱的办法,而不是一个更善良的办法。我们会发现,在开源的世界里面有很多时候会有道德的呼声,或者是一种道德的呼吁,但是我们撇开这些道德呼吁和道德的褒贬,要去讨论商业逻辑才是我们应该去研究的问题

5ce68eeb9056388771e4061332c4c59c.jpeg

4ab55ed33eeb6555f84065e8fcfb38f4.png

其实这件事情我犹豫了很久,因为谷歌开源了很多东西,比如说他们开源了 Go 语言、开源了 Chrome、也开源了 kubernetes(容器编排引擎),都很成功,但是他们是各种不同的成果。我们想来想去,最后还是觉得可以讨论一下安卓的开源战略。

0dabc082c44b2cbc52c70ef0dbbb14cf.png

首先,谷歌开源安卓肯定是为了对抗苹果,对抗苹果的封闭式 IOS,打破苹果在智能手机市场的垄断,谷歌想要去构建开放生态。谷歌虽然拥有安卓的名称,安卓的商标,但谷歌希望安卓是一个开源和开放的平台,所以鼓励更多的厂商加入一个叫开放手机联盟的组织,一起来扩大安卓的生态。通过开源,谷歌能够吸引更多的厂商和开发者,而且使得谷歌能够在不直接参与硬件制造的情况下,通过操作系统来控制移动互联网市场。其实这是最大的诉求,因为在 PC 市场的时候,谷歌是搜索领域的绝对王者,那么在移动互联网时代,他们如何依然能够占据移动互联网广告和移动互联网搜索的世界?这个是他们要通过安卓开源来实现。

4da1b77608845a5a8632eed2c7b4816e.png

谷歌的安卓开源战略模型具体是怎么实施的?

第一个,它通过 AOSP(安卓开源项目)来提供了一个避免中心故障的开放平台,保证没有一个行业的参与者可以限制或者控制其他参与者的创新。作为一个完整的、生产质量的操作系统,安卓是具备生产质量的、商业质量的一个操作系统,具备极高的可移植性等等。这一段话。说实话我是用 CHAT-GPT 生成的,GPT 肯定是拿到了一段谷歌自己的宣传材料,而谷歌的宣传材料当然会美化自己的动机和美化自己的所谓的开源战略模型。事实上,谷歌非常严格的,严重的控制着安卓所谓的创新,基本上都是他说了算的。这个是一个要点。

另外,谷歌非常鼓励广泛的社区参与和反馈,保持安卓内容的新鲜准确等等。但是谷歌是怎么做到?既鼓励社区参与,又保持整个的掌控度的?还有降低市场门槛,安卓的开源模型之所以能够移植到各种各样的开源、各种各设备上,其实它就是开放给硬件制造厂商,帮助他们能够更好的适配自己的机型。但是另外一方面。谷歌有一部分东西是不开源的,比如 GMS (谷歌的移动服务),包括 DMail,YouTube,Google Play 等,通过这样的一些核心应用来控制用户体验和生态系统。当然,这个括号确保所有基于安卓的设备都能提供一致的服务,听上去又是为了用户体验,但事实上也是一种控制,这是他们的开源战略的高明之处。

谷歌的开源生态系统的构建是非常成功的,我们可以看到下方的图,安卓和 IOS 的市场占有率在2012年的时候,安卓的市场占有率已经远远的超过了 IOS。

a003c33e025f796ebaea3b94bb9b1efb.png

从10%不到,经过两年跃升到了40%,在后面就一直停留在70%以上。我们可以看得到这样的趋势。还有一个数字,到2012年,全球的安卓开发者的数量已经 iPhone 开发者的接近三倍。

这个背后的结论是一个开源的操作系统更能够吸引开发者参与进来,此消彼长,它就会比 IOS 的市场占有率更高,这是开源生态系统的一个逻辑。我们再去看谷歌的开源的商业模式,它靠什么赚钱,其实就是广告收入,还有就是基于开放市场的一个,它背后讲的就是 APP Store 的基数增长。说实话,我找到的数据不全,我只找到了一个2016年的报道。在2016年,安卓为谷歌带来了310亿美元的年收入,其中220亿美元为净利润。事实上最近几年我不知道,网上要查这些数据还挺不容易的,或者说我时间也不够,要花更多的时间才能够搜索到,这个也是留给我们后面研究这些商业案例的一个必须去深入的任务,否则的话,我们就会停留在一些表面的东西上。

818cacfbece9b110ac8b546bb1a16d2a.png

安卓的开源也面临一些挑战和批评,虽然它能够与其他的技术巨头竞争,也能够与其他的硬件制造厂商和开发者合作。安卓面临的挑战,比如说它跟 Oracle 之间是有一场官司的,这场官司打了很多年,最后基本上算是胜诉,虽然他用到了 Java 的编程语言以及相关的接口的 API,并不被算成是侵犯 Oracle 的 Java 的知识产权。但事实上,这个官司反反复复打了很多年,一会胜诉,一会败诉,现在我印象当中是尘埃落定了,最后还是 Oracle 败诉了。

另外一个挑战,谷歌收购了摩托罗拉也是为了应对专利的情况,这次收购拿到了15000个摩托罗拉的专利,这个也是他们必须要过的这一关。其实还有就是因为安卓是开源的,所以安卓的市场通常会被人诟病为很多的不兼容,更容易被恶意软件清洗,经常会有流氓软件、恶意软件、病毒软件侵入我们的安卓的手机,这个是一个开源带来的问题,但是这方面的问题很多时候是被特定的手机厂商给解决掉了,因为手机厂商有极大的利益,需要来保护自己的手机用户。

3313bd1bb31065c61ccdc7d49654d3d3.png

我们再来讨论一下围绕谷歌的开源战略,尤其是安卓的开源战略能够提哪些问题?比如说它开源了安卓、Chrome,Kubernetes 和 Go 等众多项目,还有很多默默无闻甚至死掉的开源项目,哪些成功,哪些失败?为什么会有些成功有些失败?如何去总结背后的经验,这是值得思考的问题。

第二个,安卓其实有一个非常巧妙的知识产权的架构设计。它虽然是基于 Linux,但是它上面做了一个中间层,再做了一个虚拟机在网上架了他自己的安卓的 AOSP,用得是不同的 License 才能够做到这一点?

再接下来,安卓的生态运营利弊得失怎么去判断?这些都是围绕着安卓本身我们会提出来的问题。

那么如果撇开安卓,单说我们自己的企业,我们如何向谷歌学习来制定自己的开源战略模式,我们去要制定哪些原则?我们去做什么分类?怎么样去设计我们的打法?这些可能每一个企业自己要去想谷歌当然是一个很重要的参考和一种榜样。

还有当一个企业对外开源项目的时候,他如何去维护自己的开源项目?去管理开源社区的时候会遇到哪些挑战?

还有一个问题,我们看谷歌的这些开源项目,他有些捐给了开源的基金会,但有些也没捐,为什么?什么样捐,什么样可以不捐,什么样是值得他另外发起一个基金会再捐?这些玩法背后有什么区别?也涉及到一家企业如何去制定自己的开源战略的问题,很难,但是要思考,或者说至少我们不能光看热闹,我们要想办法看门道。

5e3196c10513d3be6dbfd61cd8be0934.jpeg

34e8537ed62e61e5bcf14b79418777f0.png

f41e50117d745500fb5a2124afa858d3.png

我们先看第一条时间线,用美国制裁和限制华为的时间线。在2018年的时候,美国国会已经开始在呼吁谷歌停止与华为合作。他们很早就开始干这件事情,也不是指这一件,其实还有其他的,我没有摘录进来。

2019年5月15日,特朗普就发布总统令。要禁止使用敌对国家的信息与通信技术服务,当时所谓的敌对国家指的就是中国,禁止华为、中兴这样的一些企业。然后在同一天就把华为列入了“实体清单”(Entity List)。

5月19日,谷歌公司就将华为手机从安卓的升级列表中删去了。同时,谷歌还宣布暂停向华为提供 GMS 等应用程序和服务,事实上就宣布华为手机出口到欧美国家无法使用 GMS,是一个极大的制裁措施。

7月16日,美国两党参议员搞了一个 5G 的立法,限制华为的 5G 技术,使其进入黑名单。

2020年8月19日,他们还没完,又将46家华为附属公司也加入到“实体清单”,反正就是要把你断干净了。在不断制裁和限制华为发展的前提下,那华为必须要想办法。

b541dff99cdcf17ebb87ba206a2d50ef.png

在2019年5月份谷歌开始限制华为使用 GMS。到了2019年的8月份,在华为的开发者大会上面就正式发布了鸿蒙的 HarmonyOS,但那个时候还不是开源操作系统,所以叫 HarmonyOS。

2020年6月15日,由阿里巴巴、百度、华为、浪潮、360、腾讯、招商银行联合发起、成立了开放原子开源基金会,成为中国首个致力于开源产业,公益事业的非盈利性的独立法人机构。

9月9日,百度超级链成为基金会首个捐赠项目。9月10日(第二天)HarmonyOS 的开源版本 OpenHarmony 捐给了开放原子开源基金会。在后面的一系列动作都是围绕着要在中国成立开源基金会,在中国的开源基金会下面要有一大批的开源项目,不断的要繁荣,要发展起来等等,后面我就没有再摘录了。

5994757c15c0c8a62b732be1db2f6ac4.png

开放原子开源基金会一直在往前来发展。直到今天,我们可以稍微总结一下,OpenHarmony 的发展从2020年9月华为捐赠代码以来,经历了多个版本的迭代,到了2023年9月份发布了4.0的正式版本。

另外的话,技术架构就不说了,应用范围其实非常广泛了,从无频设备到复杂的带频设备,多种的类型,比如说抽油烟机,冰箱还有各种各样的智能设备,其实都开始在用 OpenHarmony。

在生态系统方面,有超过210家的合作伙伴,40款的行业发行版广泛的应用在金融,交通,教育,政府能源制造等行业,实现商业化应用等等,甚至已经开始考虑要做这个 OpenHarmony 的 PC 版本了。

社区和代码领域也非常的活跃,共建者的数量一开始就只有华为,到后面2021年的时候,从1000多位共建者到了2023年的时候有5100多位。代码现在已经超过了一亿行代码,展现了社区的积极参与和项目的快速发展。这个其实也是在基金会的帮助下,不断发展起来的一个开源的社区。

接下来我们再谈一个番外篇,这个番外篇其实也是我认识的一个开放原子开源基金会的一个朋友,他们在整理从2020年、2021年开始,从中央到地方、各省、各市陆陆续续、分别出台的各种各与开源相关的政策,给大家看一眼,不可能都每一条都读一下,这代表的是什么,就是从十四五规划开始,不断的就会有越来越深入,越来越细化,越来越完整的推动开源或者开源相关技术的各种各样的政策文件出来。就刚才张老师也在讲,我们现在又在谈精致生产力,这个其实又是更加往上提高到全社会要改变我们的整体认识,这样的一个高度来讨论我们的产业发展也是非常鼓舞人心的一件事情。这个是汇编,为什么要汇编,我们接下来提问中国开源的崛起之路到底怎么走?也是我们需要去问自己的问题。

a4aea45be67428c12a66c082c28a2cc0.png

第一个,国际政治和国家间的竞争会如何影响技术、开源和商业。

下一个问题,中国的开源基金会如何定位?应该如何运作?中国要通过开源来自立自强怎么走?但另外一方面,我们又一方面说,我们民族要自立自强,我们的科技要中国的民族的科技要发展起来,但是开源一直都是一种全球化的开源,一种是面向国际社会的全社会都能受益的,全世界都能受益的开源。背后其实存在理念的冲突的。如何去协调?还有我们如何用开源的模式来促进技术创新?尤其是中国的技术创新。我们除了现在说我们要追赶,我们要有中国的跟技术,我们要有中国自己的操作系统,自己的数据库,自己的什么什么。我们有没有可能发展出一些别人没有的东西?怎么做到?

还有中国的开源政策对于技术和商业的模式会产生哪些影响?

甚至我们还可以去反过来思考,如果要对技术和商业产生更好的影响,中国究竟应该制定一些什么开源政策?才能够符合产业发展的规律。这些都是我们需要去思考的。

8968da45e45a7c11f635285284fa3126.jpeg

6f06a37cfb127f66b775e294ddc71a82.png

现有学科向开源的延伸

我们总结和梳理一下,围绕开源可以开展哪些学术研究?我们首先可以从现有的学科向开源来延伸。

850a4899ec1efabdd7b4d5fdc6bfb304.png

从软件开发的领域,我们以前也一直说,我们要做软件开发、做软件工程师先学编程语言,接下来我们要学架构、学设计模式,但是当开源的成分超过70%甚至更多之后,我们的架构设计思维是不是要发生变化?要开始考虑一种开放式的架构。

再比如说,当一个软件的开源成分超过70%甚至更多之后,我们的软件工程应该发生什么样的变化?现在一种趋势是从 DevOps 到 DevSecOps ,就是在 DevOps 的过程中,会嵌入更多的开源安全扫描的成分,来做这样的一个东西,但是这样是不是就够了?我们要做到面向开放式架构的软件工程,它究竟要发生哪些变革?

第三个我们一直在研究传统的供应链,到现在的开源软件的供应链,中间到底会有哪些不同之处或可以借鉴的地方?当我们说供应链的时候,链条有可能会断掉,所以我们经常会说开源软件会不会断供?因为觉得有一根链条会断掉。当我们去用这样的思维去看开源软件供应的时候,会不会自己吓到自己?事实上不存在这样的断供,或者说供应链安全到底注重的是什么样的安全?我觉得不是简单的说,我们全部都要把所有的软件下载回中国来,所以我们的供应链就安全了,可能不是这样简单的答案。

我们原来就有统计学,大数据分析和深度学习,那么现在面临全网都能够获取到的开源相关数据,我们做开源数据分析的时候能够得出哪些结论?像国内我们很熟悉的,有一个叫 OSS Compass 开源指南针项目,另外还有 Xlab 的OpenRank 和 OpenDigger 项目,他们就已经开始在做面向开源的大数据分析,但是他们还能够怎么样往前进展?也是我们非常期待的一个方向。

标准以前一直在做,那么在开源领域,我们以开放的方式制定针对开源的标准,我们还有哪些工作要做?我之前也参与过很多的开源标准相关的讨论,制定相关的工作,在接下来还怎么样去延伸?这个也是值得深入思考的问题。

807026299a5e7e07ca73d1179de303c8.png

前面已经提到了很多 License 、法律、知识产权的问题,那么专利、授权或者所有权这些传统知识产权的问题。第一是在数字世界,第二是在开源的情况下,他们的定义是不是已经会发生变化?所谓的授权、所谓的权力的转移。比如说我们昨天听到一个七彩棱镜的朋友在说:一个企业把自己的开源项目捐赠到一个开源基金会,捐赠到底意味着什么?如果是一家国有企业把自己的开源项目捐赠到基金会,是不是意味着国有资产的流失?如果我把一个开源项目捐给你,我自己没有少一分,所谓的捐赠是不是并不等于一个所有权的转移?如果不是所有权的转移的话,那么这个捐赠到底是什么含义?这些我个人是觉得没有想明白的,或者说没有被明显的表示出来,这个都是法律和知识产权需要研究的问题。

从经济学的角度,我们传统的经济学能够解释哪些现在的开源现象?还有很多现象,我相信现在传统的经济学解释不了,甚至会觉得很突兀,或者说无法理解。开源刚出来的时候,很多人都无法理解一个免费的、不要钱的一个源代码完全公开的一个软件,为什么能够在它基础上建立商业模式?为什么它会产生整个全世界范围内的经济运行的变化?如果没有一套好的开源经济学去解释的话。事实上我们整个国家相关政策的制定都会出现很多问题。

我们再从商业的角度,商业战略和开源的商业战略。传统的商业战略当中能不能够容纳关于开源的思考?又如何去思考开源的占比,或者说开源的策略?打法到底会有什么变化?说实话,我们刚才在说,我们想研究谷歌也好,研究谷歌的各种各样的或成功或失败的开源也好,都是想从这个方面得到一些拓展。

再说生态学,传统的生态学研究的是物理世界中动物、植物这些生态,但是如果我们将开源世界看成一个生态系统的话,如何去帮助它更加健康和繁荣?

社会学和文化人类学,传统的都是研究一些我们看得见的那些社区、社群、部落这样的一些地方的发生的问题,但是像开源社群和开源文化,当我们用社会学和文化人类学的视角去研究这些开源人组成的社区的时候,他们到底是怎么运作的?

我们当然说,最早的 Eric Raymond 提出来的礼物文化,这个礼物文化到现在是不是还存在?又发生了哪些变化?现在的开源人和十年前、二十年前、甚至50年前的开源人到底有什么区别?这些也要去研究的。

跨学科研究

41a7938b422690e08632564804291187.png

无论是心理学,教育学,政治学和国际政治学等等,其实我们都可以从各自的自身的学科的角度出发,去研究开源心理学、开源的教育学、开源的政治学,包括开源的国际政治。还有传统的伦理学或者是技术伦理学,都会去研究的是我们在技术影响世界的过程中,应该如何去判断技术的安全性,技术的可靠性,以及如何应用新技术到我们过去的这个世界上,但是当代码是开源的时候,这些开源软件是不是需要去考虑它的应用范围?但是无论是自由软件还是开源软件,其实都会强调一个不限制任何目的使用,不谈伦理,或者说直接是伦理无关的一种开源软件,但是没有人会提出来说你这样不对,那么这个问题有没有被真正的去正视它和很好的去妥善的去解决它,其实是没有。

当然,我们还呼唤其他的跨学科的研究,比如说开源文化与传播,还有在开源世界里面的博弈论的现象,包括我们用复杂网络的视角去看开源世界,是不是也能看出来一些别的门道?这些也是各种各跨学科的研究。

a45ae87288d3e8aa1c5105368f68236a.jpeg

c074f15e4c01ac8e5cf148bcf60b77af.png

最后我们稍微来谈一下对未来的展望。我们为什么要去讨论学术研究,用学术研究的方式去看开源。前提就是我们认为学术研究会有帮助,比如说我们其实有很多的基本概念是不清晰的,通过学术上的研究,比如说制定好的标准,形成某种共识,其实我们能够对于现状和现象形成更加一致的判断。我们如果简单的沿用过去的传统的思路去接着去走开源的这条路很有可能就会走弯路,我们现在已经看到类似的或多或少的走弯路的现象,我们又很难说它为什么是错的。为什么?

因为你自己都没有形成一套完整的形成一套学科认识或者说是概念的一套体系,所以你说别人错,别人说凭什么?我不一直就是这么来的吗?就很难形成一个对话的机制。当然,我们也认为好的学术研究有深度的探索和建构性的学术研究,有可能去指导各种各样层面的决策,比如说国家政策应该去怎么制定,企业战略怎么制定?社区运营应该如何去做,包括我们个人,我们也需要决策,我们到底应该学什么样的技术,加入什么样的社区,参与到什么样的层面?这些其实我们都需要一套,比如说指标体系,或者说是一套判断的依据等等。这些说实话,很多情况下在目前来说都还是很随意的。这些需要学术研究来做出一些给出一些答案。

其实我真正希望的通过今天的这样的一个分享在呼吁我们有没有可能去组建一个跨学科的共同来研究开源的团队。当然,他也有可能变成是一个学术社区,而这个社区里的人从各自的角度出发,大家共同来研究开源世界发生的各种各样的现象,以及在这个过程中不同的学科针对相同的现象,一方面形成各自的看法,同时也能够达成在各种层面上的共识,这就是我对未来的一个展望。

今天就分享到这里,谢谢大家!

作者丨Corrie 不 Coding

编辑丨张可芯

相关阅读 | Related Reading

【龙年大礼】| 2023中国开源年度报告!

【Deep Dive:AI Webinar】联邦学习-数据安金性和隐私性分析的思维转换

开源社简介

开源社(英文名称为“KAIYUANSHE”)成立于 2014 年,是由志愿贡献于开源事业的个人志愿者,依 “贡献、共识、共治” 原则所组成的开源社区。开源社始终维持 “厂商中立、公益、非营利” 的理念,以 “立足中国、贡献全球,推动开源成为新时代的生活方式” 为愿景,以 “开源治理、国际接轨、社区发展、项目孵化” 为使命,旨在共创健康可持续发展的开源生态体系。

开源社积极与支持开源的社区、高校、企业以及政府相关单位紧密合作,同时也是全球开源协议认证组织 - OSI 在中国的首个成员。

自2016年起连续举办中国开源年会(COSCon),持续发布《中国开源年度报告》,联合发起了“中国开源先锋榜”、“中国开源码力榜”等,在海内外产生了广泛的影响力。

1c53de62a189e2fad9563b2d342449f4.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/702773.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel的中高级用法

单元格格式,根据数值的正负分配不同的颜色和↑ ↓ 根据数值正负分配颜色 2-7 [蓝色]#,##0;[红色]-#,##0 分配颜色的基础上,根据正负加↑和↓ 2↑-7↓ 其实就是在上面颜色的代码基础上加个 向上的符号↑,或向下的符号↓ [蓝色]#,##0↑;[红色…

uni-app vue3 setup nvue中webview层级覆盖问题

核心就是这两行,🤣发现设置后不能点击了,这个玩意可能只能弹窗打开的时候动态的修改 position: static, zindex: 0onLoad(options > {loadWebview()})function loadWebview() {let pageInfo uni.getSystemInfoSync();width.value pageI…

ROS 2的前世今生 | ROS 2学习笔记

自2015年底首次踏入ROS(Robot Operating System)的世界以来,我在机器人领域的旅程已近九年。这段历程始于团队几位志同道合的朋友在业余时间的自发学习,逐渐演变成成立了一个致力于英特尔硬件平台与ROS框架集成优化的专业团队&…

力扣--动态规划1014.最佳观光组合

思路分析: 初始化左侧景点的评分为第一个景点的评分,最终结果为0。从第二个景点开始遍历数组。对于每个景点,计算当前观光组合的得分,即当前景点的评分 左侧景点的评分 - 两者之间的距离。更新最终结果为当前得分和之前结果的较大值。更新左…

matlab simulink变压器温度仿真

1、内容简介 略 48-可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 matlab simulink变压器温度仿真_哔哩哔哩_bilibili 4、参考论文 略 大型油浸风冷变压器绕组温度场分析_高原 基于顶层油温的变压器绕组热点温度计算改进模型_陈伟根 基于热电类比理论的油浸式电…

Python及Pycharm专业版下载安装教程(Python 3.11版)附JetBrains学生认证教程

目录 一、Python下载及安装1、Python下载2、Python安装3、验证是否安装成功 二、PyCharm下载及安装1、PyCharm下载2、PyCharm安装3、激活PyCharm 三、JetBrains学生认证 本篇主要介绍Python和PyCharm专业版的下载及安装方式,以及通过两种方式进行JetBrains学生认证。…

基于ZYNQ的PCIE高速数据采集卡的设计(五)上位机软件设计

4.4 上位机软件设计 上位机主要完成数据的接收和保存文件等功能。由于采集卡是一种 PCIE 设备, 需要一种 PCIE 设备的驱动程序为基础进行开发。本设计选择 WinDriver 开发工具来 生成 PCIE 设备驱动和函数库,并基于该驱动在 Visual Studio(…

【自译】MIT麻省理工学院技术双月刊(The Bimonthly MIT Technology Review)125周年纪念词

上期 MIT Review 链接:创新版块概览(二) MIT Technology Review 125 原文 Happy Anniversary For 125 years, Technology Review has aimed to explain the “always new and ever more complex problems” we face. “To a community gr…

【Vuforia+Unity】AR04-地面、桌面平面识别功能(Ground Plane Target)

不论你是否曾有过相关经验,只要跟随本文的步骤,你就可以成功地创建你自己的AR应用。 官方教程Ground Plane in Unity | Vuforia Library 这个功能很棒,但是要求也很不友好,只能支持部分移动设备,具体清单如下: 01.Vuforia的地面识别功能仅支持的设备清单: Recommended…

【变压器故障诊断分类及预测】基于GRNN神经网络

课题名称:基于GRNN神经网络的变压器故障诊断分类及预测 版本日期:2024-02-10 运行方式:直接运行GRNN0507.m文件 代码获取方式:私信博主或QQ:491052175 模型描述: 对变压器油中溶解气体进行分析是变压器…

应急响应实战笔记03权限维持篇(4)

第4篇:Linux权限维持--后门篇 本文将对Linux下常见的权限维持技术进行解析,知己知彼百战不殆。 1、一句话添加用户和密码 添加普通用户: # 创建一个用户名guest,密码123456的普通用户 useradd -p openssl passwd -1 -salt sal…

26.java-单元测试xml注解

单元测试&xml&注解 单元测试 单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法,因此,单元测试就是针对 Java 方法的测试,进而检查方法的正确性。 简单理解 : 就是一个测试代码的工具 目前测试…

2024年2月20日v1.0.5更新·优雅草便民工具youyacao-tools

2024年2月20日v1.0.5更新优雅草便民工具youyacao-tools apk下载 https://fenfacun.youyacao.com/tools105.apk 介绍 优雅草便民工具是一款由成都市一颗优雅草科技有限公司打造的便民查询公益工具,2024年1月17日正式发布v1.0.0版本,本工具为了方便大众免…

mysql优化指南之优化篇

二、优化 现在的理解数据库优化有四个维度,分别是: 硬件升级、系统配置、表结构设计、SQL语句及索引。 那优化的成本和效果分别如下: 优化成本:硬件升级>系统配置>表结构设计>SQL语句及索引。 优化效果:…

Linux环境安装ffmpeg6.x

1.官网ffmpeg下载源码 https://ffmpeg.org/download.html#build-windows 2.未安装x264库则先安装配置 可以先查询x264库: whereis libx264 安装编译工具和依赖库: sudo yum install gcc make cmake mercurial git yasm pkgconfig autoconf automake libtool sudo…

RabbitMQ 面试八股题整理

前言:本文是博主网络自行收集的一些RabbitMQ相关八股文,还在准备暑期实习,后续应该会持续更新...... 参考:三天吃透RabbitMQ面试八股文_牛客网 目录 RabbitMQ概述 什么是 RabbitMQ? 说一说RabbitMQ中的AMQP 为什么…

zabbix监控业务数据

前言 监控系统除了监控os和数据库性能相关的指标外,业务数据也是重点监控的对象。 一线驻场的运维同学应该深有体会,每天需要向甲方或者公司反馈现场的数据情况,正常情况下一天巡检两次,早上上班后和下午下班前各一次。监控项目…

【C语言】指针初阶

正文开始之前,我们要记住一个东西就是:地址指针 目录 一、指针的解释二、指针变量和地址1、取地址操作符2、指针变量和解引用操作1、指针变量2、拆解指针类型3、解引用操作符4、注意事项 3、指针变量的大小4、指针的解引用5、void*指针 三、指针的运算1、…

数据结构:链表的冒泡排序

法一:修改指针指向 //法二 void maopao_link(link_p H){if(HNULL){printf("头节点为空\n");return;}if(link_empty(H)){printf("链表为空\n");return;}link_p tailNULL;while(H->next->next!tail){link_p pH;link_p qH->next;while(q…

CUDA C:核函数、主机函数、设备函数

相关阅读 CUDA Chttps://blog.csdn.net/weixin_45791458/category_12530616.html?spm1001.2014.3001.5482 核函数(Kernel Function)指的是在主机(CPU)调用(某些情况下也可以在设备调用),在设备(GPU)上执行的函数,使用__global__…