提问:从龙蜥的角度出发,如何去理解生态,怎么才能够称生态是繁荣的、成功的?马涛:这个问题真的是一直在思考。其实我们做 Linux 操作系统的,肯定就看 Linux 内核。每年 Linux 内核的补丁数排名前面的有各种各样的公司,Intel、Google、Facebook 等都在做 Linux 内核,最核心一点就是所有参与开源社区做研发的公司,一定要有适合他公司的商业模式在里面。因为看 Linux 内核的奉献者列表,排名前十的基本上都是各大公司,可能到排十几二十的时候会有一个 hobbyist。有 hobbyist 是很好的一件事,但是更重要的是需要头部的这些公司能够为这个社区做很大的贡献。这些大公司参与社区,他们愿意投几百甚至几千个人,我觉得这是这个社区存在的一个非常重要的意义。社区要帮助参与进来的企业找到一个非常合理的商业模式,才是社区能够良性发展最核心的一点。我个人认为,做好以下两点,这个开源社区的生态才算比较成功的。第一,有很多公司参与进来为社区服务;第二,所有的公司都能在社区里找到自己合理的商业模式,并且能够围绕商业模式打造自己的核心竞争力。提问:龙蜥社区要在众多的开源操作系统里面做好自己的生态建设,它的优势或者说它希望能够发挥的特点是什么?马涛:我可以举几个例子解释。第一,龙蜥不能脱离中国国情和现在的发展。龙芯最近刚把 LoongArch 架构的 gcc 合并到 Linux gcc 主线上。但 LoongArch 体系架构出现已经有一两年了,在这一两年时间里是没有办法从上游社区得到任何帮助的,因为还没进去。那这时候如果国内企业又要用,怎么办?这时候就需要一个操作系统发行版来填补这个空白,龙蜥就能提供这样的平台,提前把龙芯包括国内其他芯片厂商的产品让客户用起来。像国外的一些发行厂商,对于国内芯片支持不是很好,可能也有一些市场或者其他方面因素考虑。但国内的芯片厂商的正在快速增长,包括阿里倚天、龙芯、兆芯、申威,他们需要有一个操作系统来支撑,这些厂商能够从龙蜥获取到营养。第二,云对于操作系统的影响还是有一些。阿里云在这里面做了很多的工作,有可能会影响到未来操作系统的发展。一是在国内的硬件、软件都在快速发展,需要像龙蜥这样的操作系统社区快速满足需求。二是在和上游地区达成一致以后,把上游补丁 backport 回来就可以。但是中间这段时间,我们是需要能够满足所有客户需求的,我觉得这个就是我们能够给企业带来的最大价值。提问:您怎么看待社区和商业化之间的关系?马涛:核心我觉得还是企业商业化,像统信软件、中科方德、万里红等企业,其实都会基于龙蜥出自己的商业发行版提供给客户。但因为毕竟是一个社区版本,所以有两个比较大的问题。第一,响应客户肯定是不像商业公司那么快速。因为很可能你发个 issue,万一这个人比较忙,可能明天才能看到。当这种情况发生的时候,商业公司是可以提供明确的 SLA 保证。第二,商业公司提供了非常严肃的兜底服务。比如说,派工程师去现场排查问题、提供软件升级服务、提供全生命周期管理等。那对于一个社区来说,往往就 focus 在最新的发行版本上,可能会有几个 LTS 版本,或者说如果有问题了也可能会考虑修复的成本。但对于商业化公司来说,有一整套完整的体系。我们把操作系统的能力贡献出去,他们围绕这些能力做自己的商业化服务,相当于是互补的模式。提问:阿里在这个背后能赚到什么?马涛:阿里是不做操作系统这个生意的。那我们的商业利益到底是什么?所有在龙蜥上跑的系统在阿里云上可以跑得很好。只要用到龙蜥,就会想到龙蜥是阿里参与并做出重大贡献的,那企业在选择上云的时候就会考虑上阿里云。提问:就像 Chromium 是 Google 主导的。所以当你想要去做容器,想要去做云原生的时候,就会觉得 Chromium 那当然是谷歌。其实这就对于谷歌云会有很大的帮助作用。所以你们在做龙蜥社区时也是会有这样的一种目标在里面么?马涛:我只能说这是阿里的一个商业利益。因为我现在代表龙蜥理事长,希望所有参与龙蜥的公司都能找到自己的商业利益。提问:之前有同事说我既在开源社、又在华为,是怎么做到的。刚刚听您介绍也是这样一种状态,同时是龙蜥的理事长、又是阿里的员工,可能同时还是 Linux 社区的贡献者,也是有多顶帽子在自己的头上。那同样的问题抛给您,您是怎么做的呢?马涛:我是这么想的,我也感谢龙蜥社区给了我一个机会,因为之前无论是在 Oracle、淘宝还是阿里云,其实都是代表公司在为这个社区做贡献。但如果说你跳出公司的思维,从社区的角度去看这个事情,你就会发现考虑问题的视角会发生不一样的变化,比如作为龙蜥社区的理事长,要考虑怎么让社区里所有的企业都能够从中获利。社区如果要长久发展,那就需要平衡制衡,不能阿里一家独大,如果一家独大,这个社区怎么玩呢?很多时候必须站在这个龙蜥社区理事长角度去考虑问题,才能让这个社区更加公正、公平、开放。提问:现在需要您自己来运营一个本土的社区,面临的主要挑战是什么?马涛:客观来说,龙蜥毕竟是个 Linux 社区,所以和 Linux 社区相比,有很多相同的也有很多不同。相同的点就是刚才前面提到的学习开源还是比较陡峭的,大家很难去把爱好者去培养成新的开发者,确实会比较费劲。但我想说几点不同,第一点是,过去大部分中国做 Linux 开发的都是参与者,没有几个是主导者。现在有龙蜥和欧拉,我一直觉得我们有各自的特点和不同的出发点,但是有一点我认为是一致的,一起促进中国操作系统产业的发展,一起把中国整个操作系统人才的厚度聚起来。所以我觉得在中国做操作系统,第一要扎根中国,想着怎么去把中国的操作系统产业做起来,把中国的操作系统人才培养起来。这个事情很难,但时代赋予了我们机会,我们还是要坚持,还是有信心的。现在相对 2006 年那会儿已经好很多了。第二点是,现在国内对操作系统产业、对基础软件产业的重视程度也是今非昔比的,所以我觉得我们是有机会做出来的,也需要好好做。提问:有一个灵魂拷问,您是要把龙蜥社区运营的更像一个 Linux 内核社区,还是选择立足中国、有自己的特色,运营出龙蜥社区自己的风格?您会怎么选?马涛:首先从我的个人的观点来说,毕竟中国是需要跟国际有沟通和交流,可以看到最核心的 Linux 内核研发人才或者资深人士都在国际上的。所以我觉得首先要做到跟国际社区非常融洽的关系,和上下游打成一片。现在我们各种各样的补丁不会藏在龙蜥社区里面、不向 Linux 上游社区贡献,我们同时会不停地往上游社区去推。如果上游社区(就是 Linux)接受了,那么我就会再把它拉回来,这个工作我们会持续做的。第二,我觉得是需要立足国内的不同环境,有一些不同的常识和打法。其实最简单的,比如老外其实在用邮件列表,国内有钉钉群、微信群,但是如何利用新形式,把钉钉群、微信群运营起来,把这些群成员吸引到社区里、让他们也能够参与到社区开发里面,也是跟国外不一样的点。提问:现在假设你们社区里有一个非常优秀的开发者,您们会愿意帮助他、培养他直接到 Linux 内核社区去提交,还是在龙蜥干,干完了以后社区帮你提交到内核去?马涛:这个我可以直接回答,没问题。我们第一条会鼓励他去上游社区,我们团队有一个同学刚刚提了一些 patch 到上游社区,被邀请去参加美国开的关于文件系统的峰会。我们会鼓励所有人参与国际社区,参与国际社区的标准制定。如果说你总是把他 keep 在自己的小圈里面,那他永远得不到成长的机会。就跟咱们培养小孩子一样,你要让他出去见世面,让他知道人外有人、山外有山,他才能够成长得更好。所以说,我们不但不会阻止,还会鼓励所有社区人积极参与上游社区的贡献,在上游社区里面建立影响力。我们的目标肯定是说影响整个未来 Linux 社区的发展,这是我们最核心的一个目的。提问:龙蜥社区运营过程中有没有什么经验或者称为教训的事件?马涛:教训、经验都有。我分享一个经验、一个教训。我们本来认为在国内运营一个操作系统社区是很难的。但我发现,如果能够找到一个非常共性的点,同时能够为开发者构建一个非常好的基础设施或平台,其实还是相对可以的,即使在基础软件如此难的领域里面也是可以的。反过来说,国内开源社区的蓬勃发展是非常有希望的。现在在国内搞开源没有想象的那么难。如果你想在中国搞开源,想通过开源成立一个公司,我觉得真的是很有机会的。那接下来说一个教训,我觉得可能谈教训更有意思一点。开源是这样的,很多时候我的思维可能还停留在跟老外做事情的风格上面。其实在中国确实需要因地制宜做一些改变。在国内我们已经习惯了用钉钉、微信这种即时通讯工具了,国外的话可能还是在用邮件,你发个邮件可能第二天才会给你答案的,这是很正常的,因为时差。当我的用户提出一个问题的时候,你要是在钉钉群或者微信群里面一两个小时没人回,他可能就会有点不耐烦了。之前觉得老外响应快多了,但现在中国的节奏很快。所以在初级阶段,我们还是要积极响应所有的用户问题,尤其是大家适应了这种快节奏文化的。在开技术委员会或者理事会会议时,我都会请求,碰到用户在群里提问时,尽快回答。现在我们也有一些值班制度,可以让用户在用操作系统或者在开发过程中遇到一些问题的时候,能够快速得到答案。龙蜥已经构建了比较完善的一个答疑体系,他们很多会问一些很着急的问题,比如安装,就非常希望你赶紧告诉我怎么回事,那我们的值班制度就可以非常快速地告诉他该怎么办。但老外的话经常要第二天才会有人会理你的,大家也习以为常。但在中国这块儿其实还是不一样。(图/龙蜥社区首届理事大会)提问:就是说在社区运营的过程中还是有很多细节问题,而且这些细节问题牵扯到一些非常困难的取舍。马涛:对的。现在大家都是在摸索阶段,那其实如果未来有更多不同国家的人参与进来,就会有不一样的理念产生,我觉得这是一个社区走向成熟必然要面对的一些问题。龙蜥社区都是在摸索中前进的。虽然我参与 Linux 上游社区这么多年,但在中国运作的社区,包括自己运作的社区,其实还有很多不一样的点需要去尝试的。包括我之前就是一个开发者,没做过运营,也没做过构建社区基础设施这整套东西,都是在不断的运营,不断的学习,不断的进步。