分类 观点 下的文章

云原生时代的华为,不但打造了迅猛发展的云服务业务,也为自己的云服务打造了新“引擎”。

云原生时代的容器引擎的变化

随着“云原生”逐渐从一个流行词变成了一个不那么新鲜的技术基座。以 Kubernetes 为代表的容器编排技术、以 Docker、Containerd 占据主要份额的容器引擎,云原生技术也在不断的迭代升级中日益发展成熟。

Sysdig 2019 年的容器使用报告统计,全球整体容器市场规模以高达 30% 的速度增长,容器的规模、密度愈加扩大。在企业内部的容器规模方面,9% 的企业用户容器规模已经达到 5000 以上;在容器密度方面,与 2018 年相比,每台主机中的容器密度提高了 100%,从 15 个增加到了 30 个,其中最大节点密度已经达到 250 个。

而在这一切的背后,容器技术在某些场景中也呈现了一些不足,比如:

  • 在资源敏感环境,或需要部署高密度容器节点时,容器对基础设施的资源占用会急剧升高;
  • 当大规模应用拉起或遇到突发流量时,并发速度可能成为了瓶颈。

因此,主流的 Docker 等容器引擎在特定用例下,看起来有一些力不从心,因此一些针对某种用例进行过专门优化的容器引擎技术这些年纷纷入场。比如说,以 Kata Container 为代表的专门针对容器隔离性不够严格而设计的安全容器技术;以 Container Linux 为代表的专门针对重型应用而设计的系统容器;以 iSula 为代表的专门针对资源受限的边缘计算和 IoT 环境设计的轻量级容器技术。

这里,让我们来看一个源自于摄像头场景中的轻量级容器引擎。

来自摄像头的容器引擎

说起来你可能不信,一个摄像头里面居然还能有容器引擎。

起初,华为为了在智能摄像头上达到快速、简单切换算法应用部署的功能,经过技术研究,他们决定使用容器来实现所需的功能。

一开始,技术团队考虑对开源容器引擎 Docker 进行轻量化改造,对其裁剪和精简化、去除不需要的功能、优化组件结构等,甚至还对 Go 语言环境的编译进行了优化。但是,由于要运行在端侧的嵌入式设备上,这种裁剪和压榨资源的做法所能取得的效果有限。

在这种情况下,针对端侧和 IoT 环境,华为的 iSula 容器团队做了一个大胆的决定,使用 C/C++ 来量身打造一套轻量级的容器引擎!这真是一个大胆而充满勇气的决定。要知道,随着容器技术时代被 Docker 的出现而引爆,开发 Docker 所使用的 Go 语言就成为容器技术领域的首选,几乎所有的容器技术的组件和框架,都是采用 Go 语言开发的。而要使用 C/C++ 语言全新开发一个容器引擎,面临着所有基础组件,甚至一些开发语言缺乏的特性都需要另行解决。比如说,在 C 语言中要解析容器技术中普遍使用 JSON 数据,而 C 语言并没有 Go 语言等现代编程语言内置的反射机制,这就需要自行实现一个合理的 JSON 数据解析引擎。

2017 年,iSula 容器团队开始了重新开发一个容器引擎的计划。

旁白:iSula 是中南美洲亚马逊丛林中的一种非常强大的蚂蚁,被称为“子弹蚁”,因为被它咬一口,犹如被子弹打到那般疼痛,它是世界上最强大的昆虫之一。

所幸的是,虽然拦路虎众多,但是这些付出是有丰厚回报的,采用 C/C++ 开发的容器引擎,也因此具有了 Docker 所不具有的一些优势。相比 Golang 编写的 Docker,使用 C/C++ 实现的 iSula 容器引擎,具有轻、灵、巧、快等特点,不受硬件规格和架构的限制,底噪开销更小,可应用领域更为广泛。在严苛的资源要求环境下,轻量模式下的 iSulad 本身占用资源极低(< 15M),再结合上特殊的轻量化镜像,可以达成极致的资源占用效果。

2018 年,iSula 开始在华为内部的部分产品上使用。2019 年,华为决定将 iSula 开源出来,让开源社区和 iSula 共同发展,因此针对 CRI 接口进行了一次大范围的重构和补全后,与 openEuler 操作系统一并开源发布。

新造的轮子野心大

以 2019 年的统计数据看,容器引擎领域中,Docker 占据了 80% 左右的份额,但是随着 Docker 引擎自身的发展不明朗,以及容器引擎规范的标准化,出现了更多的容器引擎竞争者。这其中,iSula 作为一个悄悄发展了 3 年的轻量级容器引擎,已经迭代到了 2.0 版本,并凭借其“轻快易灵”的优势,逐渐显露出了更大的“野心”。

在智能摄像头资源的端侧大显身手之后,iSula 容器团队决定将它更进一步。得益于 iSula 所打下的良好基础,iSula 团队认为这个引擎具备更大的潜力,可以发展为通用的端、边、云平台一体的容器引擎,提供统一的架构设计来满足云、IoT、边缘计算等多个场景的应用。

虽然由于发展时间较短,加之其起源于端侧场景,目前 iSula 还没有大规模地应用在云计算集群方面,但是从与 iSula 团队沟通了解到,他们对下一步将其推广至更广泛的云计算集群领域充满信心。按照他们的说法,鉴于华为优质的软件开发质量品控,以及社区对 iSula 特有优势的青睐,它的发展值得期许。

当然,事物总是具有两面性,iSula 在取得“轻快易灵”的独特优势的同时,其使用 C/C++ 作为开发语言,也对 iSula 的快速发展带来了一些影响。因为我们知道,合格甚至优秀的 C/C++ 程序员是有多么的难得,这也造成了 iSula 项目开源后,社区贡献者数量和参与的贡献难以取得大的突破。

鉴于此,据 iSula 团队内部消息,他们正在计划将 iSula 逐渐迁移到 Rust 语言来实现,目前已经有部分模块采用 Rust 开发。Rust 作为近些年来一个明星级的系统编程语言,已经在系统编程语言方面显露出来取代 C/C++ 的潜力。如果能够顺利地平滑过渡到 Rust 语言,想必对 iSula 的开发进展、软件质量和社区参与程度,有着积极的作用。

何以轻快易灵?

iSula 是全量的容器软件栈,包括了引擎、网络、存储、工具集与容器操作系统;而 iSulad 作为其中轻量化的容器引擎,可以为多种场景提供灵活、稳定、安全的底层支撑。

根据 iSulad 的设计目标和实现情况,它具有轻、快、易、灵等优势。

iSulad 之轻

iSulad 的第一个使用场景是在端侧设备上,这自然要求这个容器引擎具有轻量级资源占用的特性。再结合为端侧设备特殊定制的轻量化镜像,它可以达成极致的资源占用的效果。

除了在端侧环境,在通用场景下,iSulad 也具有不错的轻量化表现。利用轻量化的 LXC 运行时以及极其轻量的 monitor 进程,这简化了整个调用链路。

iSulad 之快

顺理成章的,采用 C/C++ 语言实现的 iSulad,自然具备运行速度快、底噪低等特性。再加上 iSulad 独特的架构设计,除了启动容器部分需要通过 fork/exec 的方式,其他部分均使用调用函数库的方式加快执行速度。

iSulad 之易

在对 CRI 接口进行了大范围的重构和补全后,iSulad 已经能在相当程度上兼容标准化的容器规范和工具,让使用者的使用习惯和应用迁移变得轻松。

为了使开发者迁移方便,iSulad 在开发一系列迁移工具,以帮助开发者将自己的应用平滑迁移到 iSulad 上来。甚至据透露,iSulad 还会支持热迁移,能更便捷的迁移开发者的应用。

iSulad 之灵

iSulad 还针对不同的使用场景提供了不同的模式,可以根据需要灵活配置切换注重性能的性能模式和注重资源占用的轻模式。

另外,作为一个具有支持全场景容器环境的引擎,iSulad 也支持了多种不同的容器形态,它内置了支持系统容器、安全容器和普通容器以及轻量化容器的支持。

iSula 和 openEuler

iSula 是华为的 openEuler 开源社区旗下的项目之一,因此这个项目也是根植于 openEuler 系统的。这对于推动 openEuler 在企业级应用的发展具有积极意义。

不过,作为一个野心勃勃的容器引擎来说,必然不会将自己局限在某个特定操作系统之上。根据 iSula 团队的信息,目前 iSula 在 openEuler 系统上具有一些独特的优势,但是该团队也在做将 iSula 向其它 Linux 系统迁移的工作,这涉及到内核的一些特殊特性和补丁,需要得到 Linux 主线内核的支持和与内核开发者社区的沟通。

推动云原生的新引擎

毋庸置疑,容器计算已经成为云计算领域的主流。无论你是否愿意,考虑将企业的传统计算环境和古典虚拟机环境迁移到以容器计算为代表的现代云计算平台,已经是大部分 CTO 和架构师们需要迫切考虑的工作了。

而华为开源的 iSula 容器引擎,相比 Docker,是一种新的容器解决方案,它提供了统一的架构设计来满足 CT 和 IT 领域的不同需求。这匹崭露头角的新黑马,是华为攻略云原生领域的新引擎之一。

无需去历数华为在云原生领域做了多少事情,这个崭露头角的 iSula 容器引擎只是华为云这辆快车上的一枚新引擎,它将会同其它开源组件将华为云带到什么高度,让我们拭目以待。

创造出区块链安全性和可靠性的原因:是开放,而非监管。

当人们发现以安全性而闻名的区块链技术居然是建立在开源软件代码之上时,通常会感到非常惊讶。事实上,正是这种开放性才赋予了区块链技术的安全性和可靠性。

以开源方式构建的任何事物,其核心价值之一就是为了提高效率。建立起一个有着不同观点和技能的开发人员社区,这些开发人员工作在同一个代码库的时候,可以成倍增加构建出来的应用程序数量以及复杂性。

开源比人们想象中的要更加普遍

开源的 Linux,就是一种比较流行的操作系统。Linux 为服务器提供了许多服务,这些服务让我们可以轻松地共享个人信息。其中包括 Google、Facebook 和数千个主要网站。当我们使用这些服务时,就是在和这些在网络上运行着 Linux 系统的计算机进行交互。Chromebook 也使用 Linux,Android 手机使用的操作系统也是基于 Linux 的。

Linux 不属于任何一家公司,人们可以免费使用并且可以共同协作来完善创造它。自 2005 年推出以来,已经有来自 1,700 多家公司的 20,000 多名开发人员 为其中的代码做出了贡献

这就是开源软件的运作方式。大量的人为此贡献,并不断添加、修改或构建开源代码库来创建新的应用程序和平台。区块链和加密货币的大部分代码都是使用开源软件开发的。开源软件是由充满热情的用户构建的,这些用户对错误、故障或缺陷时刻保持警惕。当发现问题时,开源社区中的开发人员将一起努力来解决问题。

区块链和开源

整个开源区块链开发者社区都在不断地添加和完善代码库。

以下是区块链的基本表现方式:

  • 区块链平台具有一个交易数据库,该交易数据库允许对等方在任何时候彼此进行交易。
  • 附有用户识别标签,以方便交易。
  • 平台一定有一种安全的方式来在交易批准前对交易进行验证。
  • 无法被验证的交易不会进行。

开源软件允许开发者在 去中心化应用程序(Dapp)中创建这些平台,这是区块链中交易的安全、保障和可变性的关键。

这种去中心化的方式意味着没有中央权威机构来调解交易,没有人能控制发生的事情。直接的点对点的交易可以更快速、安全的进行。由于交易被记录在分类账簿中,它们也会分发到整个生态系统中。

区块链使用密码学来保证安全。每一笔交易都携带着与前一笔交易相关联的信息,以验证其真实性。这可以防止威胁者篡改数据,因为一旦数据被添加到公共分类账中,其他用户就不能更改。

区块链是开源的吗?

虽然区块链本身在技术上可以是不开源的,但区块链系统通常是使用开源软件实现的,因为没有政府机构对其进行监管,所以这些开源软件使用的概念体现了一种开放文化。私人公司开发的用于处理金融交易的专有软件很可能受到 政府机构 的监管。在美国,这可能包括美国证券交易委员会(SEC)、联邦储备委员会和联邦存款保险公司(FDIC)。区块链技术在开放环境下使用不需要政府监管,实际上,用来验证交易的是用户社区。

你可以称它为一种极端的众包形式,既用于开发构建区块链平台的开源软件,也用于验证交易。这就是区块链得到如此多关注的原因之一:它有可能颠覆整个行业,因为它可以作为处理和验证交易的权威中介。

比特币,以太坊和其他加密货币

截至 2020 年 6 月,超过 5000 万人拥有区块链钱包 。他们大多数用于金融交易,例如交易比特币、以太坊和其他加密货币。对许多人来说,像交易员观察股票价格一样,查看加密货币价格 已成为主流。

加密货币平台也使用开源软件。以太坊项目 开发出了任何人都可以免费使用的开源软件,社区中大量的开发者都为此贡献了代码。比特币客户端的参考实现版是由 450 多个开发人员和工程师进行开发的,他们已经贡献了超过 150,000 个贡献。

加密货币区块链是一个持续增长的记录。每个被称作为块的记录按顺序链接在一起,它们互相链接形成一条链。每个块都有其自己的唯一标记,这个标记称为 哈希 。一个块包含自身的哈希值和前一个块的加密计算出的哈希值。从本质上讲,每个块都链接到前一个块,形成了无法中断的长链,每个块都包含其它区块的信息,用于验证交易。

在金融或是加密货币的区块链中没有中央银行。这些分布在整个互联网中的区块,建立了一个性能强大的审计跟踪系统。任何人都能够通过区块链来验证交易,但却不能更改上面的记录。

牢不可破的区块链

尽管区块链不受任何政府或机构的监管,但分布式的网络保证了它们的安全。随着链的增长,每一笔交易都会增加伪造的难度。区块分布在世界各地的网络中,它们使用的信任标记不可被改变,这条链条几乎变得牢不可破。

这种去中心化的网络,其背后的代码是开源的,这也是用户在交易中不必使用诸如银行或经纪人之类的中介就可以相互信任的原因之一。支撑加密货币平台的软件是由相互独立的开发者组建的联盟创建的,并且任何人都可以免费使用。这创造了世界上最大的制衡体系之一。


via: https://opensource.com/article/20/10/open-source-blockchain

作者:Matt Shealy 选题:lujun9972 译者:xiao-song-123 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

对于 Linux 用户来说,当我们想到微软 Office 的开源替代品时,Apache OpenOffice 仍然是一个相关的推荐,这是不言而喻的。然而,在过去的几年里,OpenOffice 的发展几乎是停滞的。

当然,考虑到 Abhishek 早在 2016 年就写过 Apache OpenOffice 关闭的可能性,这并不令人震惊。

现在,在一封文档基金会的公开信中,他们呼吁 Apache OpenOffice 推荐用户开始使用更好的替代品,比如 LibreOffice。在本文中,我将提到文档基金会的博文中的一些重点,以及它对 Apache OpenOffice 的意义。

Apache OpenOffice 是历史,LibreOffice 是未来?

尽管我当年没有使用过 OpenOffice,但可以肯定地说,它绝对不是微软 Office 的现代开源替代品。至少现在不是了。

是的,Apache OpenOffice 对于传统用户来说仍然是很重要的东西,在几年前是一个很好的替代品。

以下是 OpenOffice 和 LibreOffice 的主要发布时间线:

现在 OpenOffice 已经没有重大的开发了,Apache OpenOffice 的未来是什么?一个相当活跃的项目,这个最大的开源基金会会不发布重大版本?

这听起来并不乐观,而这正是文档基金会在他们的公开信中所强调的:

OpenOffice(.org),是 LibreOffice 的”父项目“,它是一个伟大的办公套件,它改变了世界。它有着引人入胜的历史,但自从 2014 年以来,Apache OpenOffice (它现在的家)还没有一个重大的版本。没错,六年多来,没有重大的新功能或重大更新到来,也很少发布次要版本,而且在及时的安全更新方面也存在问题。

对于一个普通用户来说,如果他们不知道 LibreOffice,我肯定希望他们知道。但是,Apache 基金会是否应该建议 OpenOffice 用户尝试使用 LibreOffice 来体验更好或更高级的办公套件呢?

我不知道,也许是,或者不是?

...很多用户不知道 LibreOffice 的存在。OpenOffice 的品牌仍然如此强大,尽管该软件已经有六年多没有重大的版本发布,而且几乎没有人开发或支持它。

正如在公开信中提到的,文档基金会强调了 LibreOffice 相对于 OpenOffice的 优势/改进,并呼吁 Apache OpenOffice 开始推荐他们的用户尝试更好的东西(即 LibreOffice):

我们呼吁 Apache OpenOffice 做正确的事情。我们的目标应该是把强大的、最新的、维护良好的生产力工具送到尽可能多的人手中。让我们一起努力吧!

Apache OpenOffice 应该做什么?

如果 OpenOffice 能完成工作,用户可能不需要努力寻找替代品。那么,因为他们的缓慢开发而呼唤另一个项目,建议用户采用未来工具并推荐它是一个好主意么?

在争论中,有人可能会说,如果你已经完成了你的目标,并且对改进 OpenOffice 没有兴趣,那么推广你的竞争对手才是公平的。而且,这并没有错,开源社区应该一直合作,以确保新用户得到最好的选择。

从另一个侧面来看,我们可以说,文档基金会对于 OpenOffice 到了 2020 年即使没有任何重大改进却仍然有重要意义感到沮丧。

我不会去评判,但当我看了这封公开信时,这些矛盾的想法就浮现在我的脑海里。

你认为是时候把 OpenOffice 搁置起来,依靠 LibreOffice 了吗?

即使 LibreOffice 似乎是一个更优越的选择,并且绝对值得关注,你认为应该怎么做?Apache 是否应该停止 OpenOffice,并将用户重定向到 LibreOffice?

欢迎你的意见。


via: https://itsfoss.com/libreoffice-letter-openoffice/

作者:Ankush Das 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

代码英雄讲述了开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。

什么是《代码英雄》

代码英雄 Command Line Heroes 是世界领先的企业开源软件解决方案供应商红帽(Red Hat)精心制作的原创音频播客,讲述开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。该音频博客邀请到了谷歌、NASA 等重量级企业的众多技术大牛共同讲述开源、操作系统、容器、DevOps、混合云等发展过程中的动人故事。

本文是《代码英雄》系列播客第二季(9):特别篇 - 开发人员拥护者圆桌会议音频脚本。

导语: 开发者推广大使 developer advocate 在开源社区中起到的作用是举足轻重的。我们邀请了几位这样的推广大使来到本期节目中,以向我们揭示他们的工作方式,并阐述这份工作背后的意义。

来自 Mozilla 的 Sandra Persing、Twilio 的 Ricky Robinett 与 红帽的 Robyn Bergerron 将在此接受 Saron 的采访,分享他们的工作内容、他们支持社区的方式,以及他们对 2019 年的展望。

00:00:06 - Saron Yitbarek

大家好,我是 Saron Yitbarek,这里是红帽的原创播客节目《 代码英雄 Command Line Heroes 》的特别篇。我们的节目在第 2 季去了很多地方。我们探索了编程语言数据大爆炸安全危机以及无服务器时代的到来,我们甚至去了火星

00:00:28

但是在结束了第 2 季之后,我们还有一个地方要去。我们要走进推广大使和思想领袖们的认识当中,他们帮着塑造了开发人员所做的全部工作。有时,他们被称为 开发者推广大使 developer advocate ,或者说他们担任开发者关系的职位,或开发者布道师。

00:00:50

从开发人员的角度来看,无论他们的具体头衔是什么,他们似乎都做着许多相同的事情。你在会议上见过他们发表主题演讲。你在播客上听过他们接受采访,就像在本期节目中一样。你可能还阅读过他们的博文。但是他们是谁呢?他们到底在用自己的声音做了些什么?

00:01:10

为了迎接 2019 年的到来,我们为大家召集了一个优秀人物的圆桌会议。尽管他们的头衔各不相同,但他们的目的是一致的。他们来到这里,是为了帮助开发人员,并确保其声音和需求能被大众听到。这些人都是典型的代码英雄。

00:01:29

来自 湾区 Bay Area 的 Sandra Persing 是 Mozilla 的 全球策略师 Global Strategist ,也是 DevRel 峰会的创始人。

00:01:38 - Sandra Persing

嗨, Saron。

00:01:39 - Saron Yitbarek

你好。还有同样来自旧金山的 Ricky Robinett。他是 Twilio 的开发人员网络总监。

00:01:47 - Ricky Robinett

你好。

00:01:49 - Saron Yitbarek

从凤凰城外和我一起来的是 Robyn Bergeron,Red Hat 的社区架构师。

00:01:55 - Robyn Bergeron

嗨!你好吗?

00:01:56 - Saron Yitbarek

我很好。

00:01:57 - Robyn Bergeron

看到你真高兴。

00:01:57 - Saron Yitbarek

在不同的地方,这份工作的践行者被冠以不同的头衔。有 开发者推广大使 Developer Advocate 开发者布道师 Developer Evangelist 开发者关系 Developer Relations ;对于新事物来说,基本定义非常重要。因此,我认为一个好的起点是来定义这些东西是什么,尤其是定义你可以在这个领域做什么。所以,你能告诉我你的头衔以及这个头衔实质上的含义吗? Ricky,让我们从你开始吧。

00:02:22 - Ricky Robinett

好的,听起来很棒。我的头衔是 开发者网络总监 Director of the Developer Network 。我有幸供职于一个开发者关系专家团队。我们有一个布道师团队、一个教育团队和一个社区团队。因此,这绝对是一个大杂烩,有你听说过的各种不同的头衔,我们将其汇集在这个团队之中。

00:02:43 - Saron Yitbarek

厉害啊。Sandra,你呢?

00:02:45 - Sandra Persing

我在 Mozilla 担任活动和赞助的 全球策略师 Global Strategist ,并与 Mozilla 新兴技术小组的开发者拓展团队合作。我通常会将我的日常活动解释为大量的研究、交流和探索,而这都将最终影响我们评估与决策应当如何投资我们的资源:我们的时间、金钱、纪念品、演说者等等,以回馈开发者社区,同时也从开发者社区得到反馈。这份工作既有布道的一面,也有倡导的一面。

00:03:24 - Saron Yitbarek

很棒。 Robyn,该你了。

00:03:26 - Robyn Bergeron

你好。好吧,我的正式头衔是 社区架构师 Community Architect 。人们就我这个头衔有过很多问题。我曾被称为 社区经理 Community Manager ,也曾被称为 开发者推广大使 Developer Advocate ,甚至还在过去的一份工作中做过 运维推广大使 Operations Advocate 。但是我想我所做的是……嗯,你知道,像是“社区经理”之类头衔所暗示的“你在管理着社区中发自内心为项目做出贡献的人”的这种想法,其实相当愚蠢,因此,我喜欢把我所做的事情看作是构建一个框架,人们可以真正顺利地参与其中,确保过程中没有障碍,并确保他们可以完成所有他们想要做的事情。

00:04:02 - Saron Yitbarek

Ricky,由于你基本上是负责整个开发者网络的总监,你不仅仅是置身于推广大使团队、布道团队,也是社区团队之中,这有点儿像是你在运行着整个项目。你是怎样理解的这个的,是向开发者推广还是推广开发者?

00:04:20 - Ricky Robinett

是的,这是个很棒的问题。 Phil Nash 是我们团队中的一名布道师,他对此有一个很好的认识,而我要将它剽窃过来。我们可以从很多不同的角度来解释这份工作,但说到底,我们的工作其实大体上就是帮助他人。

00:04:33 - Saron Yitbarek

我喜欢这一点。是的。

00:04:35 - Ricky Robinett

我们帮助开发人员,有时候这些帮助看起来就像是在 Stack Overflow 上回答问题,有时看起来像是构建一款新工具,有时看起来像组织一个活动,有时看起来又像是发起一次产品的内部改动。因此,我认为这就是我所听说过的最好的认识 —— 我们的责任是帮助。

00:04:57 - Saron Yitbarek

的确。Sandra,你的职位让我感兴趣的一点是,你不光是策略师,还是全球策略师。让世界各地的开发人员组织起来,并且帮助他们,这是你在 Mozilla 的工作的一部分。在全球范围内的推广倡导会是什么样的呢?在不同的国家、不同的大洲之间,这份工作的含义会有所不同吗?

00:05:20 - Sandra Persing

对,确实存在一些不同。我们今年刚刚在新加坡举办了第三届 DevRel 年度峰会。在过去的两年间,我们在西雅图主办了这项活动,而到了新加坡,我们看到了不同的视角。当我们走出湾区时,就连某些最基本的组织方式都需要做出改变。比如,如何确保一切都能在线下运转,因为连接性是一个大问题;再比如,我们该怎样使一名工作于印尼的开发人员能在峰会过程中与社区充分互动,无论他是在线上参加聚会,还是来到现场。

00:05:59 - Sandra Persing

我们总会发现,所谓的“基础”,一些对我们来说如此寻常的事,比如在湾区举办一次简单的聚会——这再常见不过了,对吧?你高呼一声“我要参会”,就会发现到处都有聚会可以参加。然而对于,比如,越南的开发者来说,此事可以是具有特殊意义,且对他们而言相当重要的。这种聚会很宝贵,丰富了他们的开发者生活。

00:06:27 - Saron Yitbarek

我注意到的一件事是,大家都以某种方式提到了社区。而我自己也运营着一个社区,Code Newbie,而且我经常被一些公司聘用为他们的布道师或社区经理。有一件事我一直都有点儿担心,也许有点畏惧;我在想,在过去的三四年里,我一直在尽我所能,尽心尽力地负责着这个社区。

00:06:55

但如果我为一家公司工作,我就必须要牺牲这些吗?我是不是必须要将公司置于社区的需求之上?我该如何平衡这种关系呢?

00:07:06

所以我在想,Robyn,或许我们可以问问你这个 社区架构师 Community Architect ,你是如何区分这两者的呢?或者说,你是如何平衡这两者的?

00:07:16 - Robyn Bergeron

好吧,这当然是一个有趣的平衡。我的意思是,我以前的一个工作实际上是担任 Fedora 项目负责人。而你知道,Fedora 是 Red Enterprise Linux 的上游,在这里,你角色的一部分确实是某种找寻平衡的行为,对吧?两者之间的平衡是让社区里的人们开心,让公司对社区所做的事情高兴,同时要确保每个人都是快乐大家庭的一员。

00:07:41

而且,你知道,我想当你在这个职位上做得最好的时候,你肯定会时不时地激怒公司决策层的某些人。但是你知道的,最终还是要用结果来证明,对吧?

00:07:59

人们总是问我,你是如何平衡 Ansible 和红帽之间的关系的,你知道,当 Ansible 被红帽收购时,就像是 —— 哦我的天哪,红帽会接管它,然后对它做些糟糕的事情,并摆脱 Ubuntu 的支持吗?

00:08:12

而这就像是,拥有整个项目的全部目的就是为了破坏它,就像是为了不要吸引 4000 名贡献者而故意变得糟糕一样。

00:08:22

确保你的管理层信任你,并始终与人们保持清晰的沟通以了解实际发生的事情,并确保沟通通道的两侧都不会出现意外,这是成功与否的部分原因,也许并不总是会成功,但肯定会让人感到惊讶。

00:08:41 - Saron Yitbarek

嗯嗯。确实。Ricky,你呢?当你在做这么多不同事情的时候,你是如何看待这种关系中的平衡的?

00:08:49 - Ricky Robinett

我认为你必须相信公司和技术。你必须相信,你所带给开发人员的东西将会对他们的生活、职业生涯以及公司产生影响。

00:09:03

另一方面,你必须让高管们相信这种方法。因此,我们非常幸运的一点是我们的 CEO 是一名开发人员,而且在很多方面,他是我们和开发者社区打交道的原动力。我们的布道师们的使命是激励并装备开发人员。因此,有时候我们会说这能激励并装备他们吗?因为如果不能的话,我们就不应该这么做,因为这超出了我们的职权限范围。

00:09:36 - Saron Yitbarek

嗯嗯。Sandra,我觉得你有点儿优势,因为 Mozilla 是一个非营利性组织,对吧?所以我觉得或许 ——

00:09:44 - Sandra Persing

我刚想说。

00:09:46 - Saron Yitbarek

跟我讲讲这个吧。

00:09:47 - Sandra Persing

Mozilla 的历史就是我们是一家叛逆的公司。我们一直在反抗企业家,对吗?出走 Netscape ,并与我们的创始人之一 Mitchell Baker 一起走过的整段历史,确保了 Web ——

00:10:01

—— 乃至互联网是面向所有人的开放而自由的资源。我的意思是,我们仍然,我们每个人,每一个 Mozilla 人,都信奉这一口号,我们对此深信不疑。因此,这绝对是一家令人惊叹的、100% 拥抱了社区的公司。

00:10:22 - Saron Yitbarek

确实。所以,Ricky,我还清楚地记得那件红色的运动夹克,我还记得你亲自出马做的那些很棒的演示,感觉那种联系并帮助开发人员的方式非常新颖。这个想法是怎么在 Twilio 上产生的?

00:10:41 - Ricky Robinett

嗯,你这么说真是太好了。我们确实相信我们是站在巨人的肩膀之上。你会想到 Apple 公司的 Guy Kawasaki,有人在我们之前就采用了这种营销方式。我认为我们很幸运能在正确的时间把它带给开发人员。

00:11:03

而且有这么多的人进来,带着我们如何能够做到这一点以及如何能够不断提高方法水平的想法。但是我实际上不知道是谁发明了红色运动夹克,因此现在我需要去探寻历史 ——

00:11:19 - Saron Yitbarek

你一定得找到答案。

00:11:19 - Ricky Robinett

—— 有关这是何时开始的历史。

00:11:20 - Saron Yitbarek

这是件很棒的夹克。

00:11:21 - Ricky Robinett

知道了,我今天下午就去找。

00:11:25 - Saron Yitbarek

而我想知道的是,布道和推广的想法在 Twilio 是如何随着时间而发生变化的。你知道,曾经你们只是一家小小的初创公司,一家叛逆的初创公司,然后现如今成了一家大公司。随着公司本身的变化,布道的形式又是如何变化的呢?

00:11:46 - Ricky Robinett

是的,开始时,我觉得我本可以一年 365 天都在 黑客马拉松 hackathon 上渡过,而在纽约,每个周末你都要从五到六个黑客马拉松之中抉择一个。我们在布道方面所做的许多事情都是黑客马拉松场景,而现在,场景不同了。确实,最大的变化在于公司外部而不是内部。

00:12:11

因此,我谈到了布道师的激励和装备。所以令人高兴的是,这些年来这个任务并没有发生任何变化,他们激励和装备的方式一直在变化,但任务本身并没有什么改变。

00:12:26 - Saron Yitbarek

那么 Robyn,随着 DevOps 和 DevSecOps 的兴起,推广大使在你和社区架构师看来如何呢?会有运维推广大使吗?

00:12:39 - Robyn Bergeron

嗯,实际上那是 …… 我的意思是说,孩子们,那是我辍学后的第一份工作。我不建议这样做,不要在家做这个事情。

00:12:47 - Saron Yitbarek

留在学校里继续上学。

00:12:48 - Robyn Bergeron

听着。你看,小姑娘,我的第一份工作实际上是在 Motorola 担任 系统管理员 SysAdmin 多年,而当我从担任 Fedora 负责人跳槽时,我在 Elastic Search 工作了一段时间,你知道,那个头衔是开发者推广大使,因此我花了几个学期在大学里攻读 C。但是我的心一直都在运维这边。我开始对自己真的是一名开发者推广大使感到疑惑?我觉得我只是在推广运维人员而已。我开始自称是一名运维推广大使,每个人都为之注目。

00:13:22

每个人都说,嗯,这真的是一个很酷的头衔。我的意思是,你知道,我基本上只是在公司内部倡导其他人在做什么。

00:13:33 - Saron Yitbarek

所以,Sandra,我们谈到了推广大使和布道师在世界不同地区看起来如何不同,但是我想知道,随着我们变得越来越全球化,联系越来越紧密,更大范围和形式的布道对你来说是不是也在随着时间流逝而变化?

00:13:52 - Sandra Persing

你知道什么是开发者关系吗?我们是在推销我们的产品吗?你知道,而我注意到的是,即使是大公司也正在远离这种策略。要明白的是,做一个真实的人,真正留心倾听并回应开发人员的需求是最为重要的,而不是去推销产品。

00:14:17

我总是回过头来和我在 Mozilla 的团队分享一个理念,开发者们实际上是我们所合作过的最聪明、最具有创造力的客户群体之一。他们可以大老远就闻到商业销售的气味。因此,我们必须对于如何共享信息保持精明,就像它必须是一群有着才华和智慧的人聚集在一起,成为我们与开发者社区进行沟通的创新方式。

00:14:48 - Saron Yitbarek

嗯,真的,我很喜欢这样的想法,需要将不同的技能,我想,还有不同的背景,集合在一起,才能很好地服务于开发者,也能帮助开发者自助。

00:15:01

当我想到开发者推广大使的兴起时,在我看来,它与开源的兴起息息相关。这感觉几乎就像是开源贡献者越多,开源就变得越重要,重视它的大公司也越多,他们几乎必须与这些开源贡献者、这些开发人员建立起更好的关系,并且我感觉这二者真的是紧密相关的。

00:15:27

因此我很好奇你的想法。那么 Robyn,让我们从你开始吧。是这样的吗?推广大使的这个想法与开源的兴起有所联系吗?

00:15:37 - Robyn Bergeron

如果你是一家销售软件或是销售许可证和长期支持的公司,你知道,无论你的开源公司的业务模型是什么,如果你没有这种反馈回路,或者你没有真正关注人们在说什么,那你最终会犯下一个众所周知的错误。我认为,真正能在全世界范围内每天都做到这一点,就是成功和失败之间的区别,没有人愿意花时间去做错误的事情。那是个坏主意。

00:16:10 - Saron Yitbarek

是的,这通常是个坏主意。很好。因此,我想知道你们每个人各自都在关注什么,都真正在思考什么。因此,Ricky,让我们从你开始吧。在你的 Twilio 角色中,你试图为开发者文化带来什么样的改进呢?

00:16:27 - Ricky Robinett

如果我要说的我与开发者交谈时听到过最多的一个短语,那就是“我不是开发者,但是 …… ”,而这可能是一直萦绕在我脑海中的最大的事情之一 —— 开发者定义的扩大化。

00:16:45:

对我们很多人来说,“冒牌综合症”是一个非常真实的现象。令人惊讶的是,即使是你所认识的一些最好的开发者也在为此努力。而对我来说,我们所有人能在我们的文化中做的最重要的事情之一,就是让人们说,“你知道吗?我是一名开发者。我用代码解决问题。”

00:17:08

因此,我最喜欢的故事之一是,我们社区有一个名为 Doug McKenziethat 的成员,他是个魔术师。他自学了 PHP,以便在魔术中使用技术。

00:17:23 - Saron Yitbarek

噢,很棒。

00:17:23 - Ricky Robinett

Doug 之所以如此之酷,是因为他超级谦虚,就像是:“哦,我不是一名开发者。”而突然之间你发现,他正在编写比许多人所见过的更为复杂的代码,可以完成令人震惊的事情。因此,我感觉世界上有许多 Doug McKenzies 这样的人,他们都在用代码做着伟大的事情,我们有机会让他们成为社区的一份子,并且在这项工作中拥有自己的身份。

00:17:51 - Saron Yitbarek

我喜欢这个故事,因为它让我想起了我曾经为 Code Newbie 播客采访过的一个人,她是一名作家而且有很多写作任务,必须学习 Git 才能撰写有关 Git 的文章,她写了很多这方面的文章,又逐渐转向了其他的编程主题,最终,你知道,几年过去之后,她实际上已经成为了一名开发者却不自知。

00:18:13

在我采访她的时候,我说:“嘿,你知道自己是一名开发者吗?”她说:“不,我是个作家。”而我说:“你可以二者兼备。它们并不互相排斥。”但是,是的,这种说法换个角度说,“嘿,我实际上是在编程和创造,因此现在我可以自称为一名码农了”,这种认识对人们来说很难,要做到这样需要一段时间。

00:18:32 - Ricky Robinett

是的,当然是这样。

00:18:33 - Saron Yitbarek

是的。因此,Robyn,对你来说,最近几年来你一直在努力推动的最积极的变化是什么?

00:18:41 - Robyn Bergeron

只是确保在我们的成长过程中,我们不会失去对大局观的把握。我们的主要目标是使人们易于使用、易于贡献、易于实际完成生活中的事情,确保我们不会偏离这个目标,或者在实际项目的某些结构层面获得更多的工程帮助,并确保我们保持所有这些东西都井井有条。我们在这方面做得很好,我不知道是不是,但我认为这很重要。我不知道自己会不会因此而获得诺贝尔和平奖,但我知道这对许多贡献者都非常重要。

00:19:19 - Saron Yitbarek

这对我来说很有用。Sandra,你呢?作为全球策略师,你近些年来所推动的最积极的变化是什么?

00:19:26 - Sandra Persing

在我脑海中真正突出的两件事是扩展开发者角色这个定义,这一点非常重要。我们想要发展我们的社区,对吗?那么为什么要限制开发者的定义和描述呢?

00:19:43

当我们在 Sundance 与 Reggie Watts 和 Chris Milk 等著名人物进行座谈时,我们给电影制作人、制片人、决策者一个机会,让他们说:“哦,我们也能做到。我们不需要受限于作为创意电影制作人能做些什么。”

00:20:00

我们可以采纳技术,也可以成为开发者,而这相当令人耳目一新。我们在 Mozilla 经历的另一个时刻是让一位芝加哥的灯光艺术家 Ian Brill 与我们合作进行一个项目,我们把这个项目标记为 Arch,我们为今年两个重要的 JavaScript 开发者活动带来了这种巨型的塑料灯,LED 灯,带着七个可编程的树莓派结构。这是为了邀请更多的程序员(无论他们是否自称为开发者)来尝试 Mozilla 今年大力倡导的两种语言: WebAssembly 和 Rust。

00:20:49

因此,我们创建了两个简单的模板,说,“尝试一下吧”,但这不是我们所想要推动的编程。这不是编程,而是“是的,有几行代码。它是编程语言,但你要做的是创建几行代码,现在可以将它们转化为艺术”,而这让许许多多的新人进入到了我们的群体之中,也就是把他们带到我们的桌子旁边,然后他们会编写他们的代码行,在 Arch 之下走过,去查看目前正在结构中循环着的灯光表现。这真是太神奇了。

00:21:22 - Saron Yitbarek

哇。这听上去很美,确实美。因此,我想知道的是,当我们谈论到为开发者做推广大使时,我们谈论了很多有关社区的话题,也谈论了那个最终的想法,无论我们的职业头衔是什么,我们真的只是想要帮助人们,开发者需要什么方面的帮助? Ricky,让我们从你开始吧。开发者们说他们需要从你这里得到什么呢?

00:21:44 - Ricky Robinett

哇。是的,这是个好问题。我认为,我们所发现的其中一件事是,科技变化如此之快,我们被问到的很多问题都是,“我从哪里开始?我首先要做什么?我怎么知道我走的路是正确的呢?”对我们来说,这可能是我们投入最多的领域之一,我们称之为帮助人们发现他们用代码改变世界的能力。

00:22:16 - Saron Yitbarek

噢,这很美妙。我赞成。

00:22:18 - Ricky Robinett

嗯,谢谢你。是的,这令人兴奋。因此我们构建了一款名为 TwilioQuest 的工具,以帮助人们发现这种力量,帮助他们知道从何处开始。但我只是感觉,你知道,人们一直在寻找自己的身份或获得允许使用该身份的方式,而对每个人而言这就已经是写代码,是用代码或软件解决问题。有许多人想这么做,然而却不知道从哪里开始。所以这是我们经常思考的一件事。

00:22:51 - Saron Yitbarek

是的。因此,Robyn,对于你们红帽来说,红帽的开发者所寻求的是什么呢?

00:23:00 - Robyn Bergeron

很多时候,是有人来找你,他们遇到了一些障碍,也许是“不知怎么的,我的公关人员被机器人遗漏了”,但是很多时候,也有人会说,“嘿,我有一个很酷的想法。或许它不太适合这里,但是我认为它可能会改善社区的运行方式,或者可能会是其它我们正在研究的东西的不错的辅助工具。我该怎么办呢?”这就像是,“好吧,我该如何帮你入门呢?”你知道吗?“我能怎么做呢?比如说,你只是需要有人同意吗?因为我在这儿整天都基本上是对任何事情点头,让人们知道,这行得通,你当然有权力这样做”,所以这是我所认为最好的事情是,你可以做。至少在我看来,就是确保人们在自己的前进道路上没有阻碍,或者如果阻碍他们前进的一件事是正等着某人说可以,我一直在重申,你不需要别人的许可,但是如果有人需要,那么看在上帝的份上,请给他们许可。

00:23:58 - Saron Yitbarek

所以,最后一个问题,我们需要总结一下,我将向你们逐一询问。你在 2019 年将要倡导的最重要的事情是什么呢?如果你有魔杖,那么你想要改变的下一件大事是什么呢? Sandra,让我们从你开始吧。

00:24:15 - Sandra Persing

嘿,我就知道你会这么做。好吧,我们将在 2019 年进行的最大挑战和最为激动人心的项目是真正兑现我们的承诺,使 Web 成为最棒、最大、最易于访问的平台之一。我们总是告诉开发者这是你应当为之构建并部署的地方,但是我们知道 Web 本身非常复杂,而且有着多个浏览器供应商,有时候这并不是一个正确的说法,这对我们而言是一个长期的挑战,尤其是在 Mozilla,在这里我们想要保持 Web 开放、自由,并且能被所有人访问。我们想要继续确保能够兑现对开发人员的承诺,确保网络确实是开放的、可访问的,对所有人都开放。

00:25:10 - Saron Yitbarek

嗯,爱了。Ricky,你呢?

00:25:13 - Ricky Robinett

只需要确保我们为开发人员提供服务,使得他们能够在全世界范围内进行线上或是线下的聚会。更容易专注于你所看到的内容,并且无需记得开发人员是在何处,即使你没有看到他们。因此,我会挥舞我的魔杖,并在全世界更多的地方,找出我们如何能够帮助那里的开发人员。

00:25:36 - Sandra Persing

我只想说,我喜欢 Jarod 有关 暗物质开发者 dark matter developer 的演讲。实在是太棒了。

00:25:42 - Ricky Robinett

当你第一次听到它的时候,感觉像是一个了不起的概念,就像是,“哇,真的是一回事儿。”

00:25:50 - Saron Yitbarek

那就给我们讲讲吧,什么是暗物质开发者呢?

00:25:52 - Sandra Persing

本质上,有一些开发者,他们不参与你的聚会,不参与 GitHub 和在线社区,不为 Stack Overflow 做贡献。这些开发者仍在努力工作并作出贡献,但我们不知道。我们知道他们就在那里,但我们看不到他们。我们无法认出他们,而这些人实际上是开发者社区中非常重要的一部分,我们往往会忽略他们,但不能这样。忽略那些不愿发表意见的社区将损害我们与开发者的关系,我们需要更加积极主动地寻找宇宙中那些暗物质开发者。

00:26:34 - Saron Yitbarek

哦,我喜欢。这很酷。是的,Jarod 实际上在 Twilio 工作,对吗?

00:26:38 - Sandra Persing

是的。是的,他负责运营亚太区的 DevRel。

00:26:42 - Robyn Bergeron

我从前在红帽的同事之一 Chris Grams,现在在一家名为 Tidelift 的公司里工作,他曾经有一个名为 暗物质很重要 Dark Matter Matters 的博客,因为它有点儿像是 ——

00:26:52 - Saron Yitbarek

嗯嗯。

00:26:54 - Robyn Bergeron

你知道,你所看不到的东西实际上仍然很重要,所以 ——

00:26:58 - Saron Yitbarek

确实是这样。 Robyn,你呢?你会用你的魔杖做什么呢?

00:27:03 - Robyn Bergeron

哦,用我的魔杖,有很多事情,但是根据这次谈话,我想我会更好地管理彼此之间的依赖关系,而且也许并不令人惊讶,尤其是当我们之中有许多人在 OpenStack、 OPNFV、 Ansible 以及所有这些建立在彼此之上的东西工作时。只是确保我们项目之间的关系比你筋疲力尽时所能看到的关系更加明显。因此,我非常期待来年的事情,因为我们在事物上越来越受关注。现在这非常令人兴奋。

00:27:39 - Saron Yitbarek

吸引力总是那么好。它是如此令人兴奋。好吧,我想感谢你们所有人,非常感谢你们今天加入我们并分享你们的思维、想法和故事。非常感谢大家。那么现在说再见?

00:27:51 - Robyn Bergeron

再见,各位。

00:27:54 - Sandra Persing

很好。非常感谢你, Saron。能上这期节目很荣幸。

00:27:58 - Ricky Robinett

它已经开始了,游戏工作室对于开源的态度已经开始转变。

00:27:59 - Saron Yitbarek

确实。今天的圆桌会议包括红帽的社区架构师 Robyn Bergeron、 Mozilla 的全球策略师 Sandra Persing 以及 Twilio 的开发者网络总监 Ricky Robinet。我认为自己很幸运,能有这样的平台让我分享对于我们社区将何去何从的愿景,无论是这档播客节目还是在其他地方,但我想要指出的是,你无需拥有自己的播客就能够成为推广大使。成为推广大使只是意味着睁大眼睛并代表他人大声疾呼。这确实可以是每个人的工作。因此,我希望 Robyn、 Sandra 和 Ricky 给了你一点儿有关倡导你觉得重要的事情的启发。

00:28:50 - Saron Yitbarek

同时,《代码英雄》第 3 季已经在制作中了。当新剧集在今年春天推出时,你可以成为最早了解新剧集的人之一。如果你尚未注册,请在 Apple Podcasts、 Google Podcasts 或任何你获得播客节目的地方进行订阅。只需点击一下,100% 免费。我是 Saron Yitbarek。非常感谢你的收听,在第 3 季到来之前,继续编程。

什么是 LCTT SIG 和 LCTT LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。

欢迎加入 LCRH SIG 一同参与贡献,并领取红帽(Red Hat)和我们联合颁发的专属贡献者证书。


via: https://www.redhat.com/en/command-line-heroes/season-2/developer-advocacy-roundtable

作者:Red Hat 选题:bestony 译者:JonnieWayy 校对:windgeek, Northurland, wxy

本文由 LCRH 原创编译,Linux中国 荣誉推出

一位新的开源贡献者告诉你如何加入到开源项目中。

先前,我把我的第一次开源贡献的拖延归咎于冒牌综合症。但还有一个我无法忽视的因素:我做出决定太艰难了。在成千上百万的开源项目中选择时,选择一个要做贡献的项目是难以抉择的。如此重负,以至于我常常不得不关掉我的笔记本去思考:“或许我改天再做吧”。

错误之二是让我对做出决定的恐惧妨碍了我做出第一次贡献。在理想世界里,也许开始我的开源之旅时,心中就已经有了一个真正关心和想去做的具体项目,但我有的只是总得为开源项目做出贡献的模糊目标。对于那些处于同一处境的人来说,这儿有一些帮助我挑选出合适的项目(或者至少是一个好的项目)来做贡献的策略。

经常使用的工具

一开始,我不认为有必要将自己局限于已经熟悉的工具或项目。有一些项目我之前从未使用过,但由于它们的社区很活跃,或者它们解决的问题很有趣,因此看起来很有吸引力。

但是,考虑我投入到这个项目中的时间有限,我决定继续投入到我了解的工具上去。要了解工具需求,你需要熟悉它的工作方式。如果你想为自己不熟悉的项目做贡献,则需要完成一个额外的步骤来了解代码的功能和目标。这个额外的工作量可能是有趣且值得的,但也会使你的工作时间加倍。因为我的目标主要是贡献,投入到我了解的工具上是缩小范围的很好方式。回馈一个你认为有用的项目也是有意义的。

活跃而友好的社区

在选择项目的时候,我希望在那里有人会审查我写的代码才会觉得有信心。当然,我也希望审核我代码的人是个和善的人。毕竟,把你的作品放在那里接受公众监督是很可怕的。虽然我对建设性的反馈持开放态度,但开发者社区中的一些有毒角落是我希望避免的。

为了评估我将要加入的社区,我查看了我正在考虑加入的仓库的 议题 issue 部分。我要查看核心团队中是否有人定期回复。更重要的是,我试着确保没有人在评论中互相诋毁(这在议题讨论中是很常见的)。我还留意了那些有行为准则的项目,概述了什么是适当的和不适当的在线互动行为。

明确的贡献准则

因为这是我第一次为开源项目做出贡献,在此过程中我有很多问题。一些项目社区在流程的文档记录方面做的很好,可以用来指导挑选其中的议题并发起拉取请求。 Gatsby 是这种做法的典范,尽管那时我没有选择它们,因为在此之前我从未使用过该产品。

这种清晰的文档帮助我们缓解了一些不知如何去做的不安全感。它也给了我希望:项目对新的贡献者是开放的,并且会花时间来查看我的工作。除了贡献准则外,我还查看了议题部分,看看这个项目是否使用了“ 第一个好议题 good first issue ”标志。这是该项目对初学者开放的另一个迹象(并可以帮助你学会要做什么)。

总结

如果你还没有计划好选择一个项目,那么选择合适的领域进行你的第一个开源贡献更加可行。列出一系列标准可以帮助自己缩减选择范围,并为自己的第一个拉取请求找到一个好的项目。


via: https://opensource.com/article/19/11/my-first-open-source-contribution-mistake-decisions

作者:Galen Corey 选题:lujun9972 译者:chenmu-kk 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

多年来,set\_fs() 一直是众所周知的麻烦,现在它终于消失了。

Linus Torvalds 开启了 Linux 内核的又一个开发周期,宣布 5.10-rc1 发布了,而且这一次还有一个历史性的转折:新内核标志着一个几十年前的函数的落幕,这个函数在被发现会导致安全漏洞后早已成为多余的函数。

随着长达两周的,每一次新的 Linux 内核迭代发布前的合并窗口的关闭,Torvalds 在 Linux 内核邮件列表上分享了他的感想,他认为“事情似乎相当顺利”。

“合并窗口”是 Linux 新内核发布过程中的一个关键部分,在此窗口期间,每天有多达 1000 个由开发者社区提交的补丁被合并到 Torvalds 管理的主线仓库中。而审查过程会确保每个补丁都能实现理想的变化。

这一次,Torvalds 提请大家注意移除了一个叫 set_fs() 的寻址函数,这个函数可以追溯到 Linux 的最初版本。“对我来说,这是最有趣的变化,set_fs() 被移除了,”他写道,“这不是一个巨大的变化,但很有趣,因为 set_fs() 指定用户空间副本是否真正进入用户空间或内核空间的这个模式,几乎可以追溯到 Linux 的最初版本。”

正如 Torvalds 所解释的那样,set_fs() 函数可以通过取消用户空间和内核空间之间的分界来覆盖地址空间。该函数在管理英特尔早期 x86 处理器时被广泛使用,以控制非特权代码可以访问的虚拟地址范围。

然而,2010 年,“常见漏洞和暴露”(CVE)详细披露了 set_fs() 带来的安全问题。通过绕过某些访问限制,证实该函数能够“覆盖任意内核内存位置”和“获得特权” —— 在某些情况下,这可以让用户空间覆盖内核数据。

鉴于该工具的安全缺陷,包括 x86、PowerPC、s390 和 RISC-V 在内的一些架构已经取消了地址空间覆盖功能。但是,正如 Torvalds 写道:“我们仍然留着 set_fs(),因为并不是每个架构都已经转换为新的世界秩序。”

除了这个久违的历史补救之外,5.10-rc1 版本和大多数内核版本一样,还伴随着无数的变化。Torvalds 统计了近 1700 人的近 1.4 万次提交,改动范围从支持自动驾驶汽车和机器人的 Nvidia SOC 芯片到支持任天堂 Switch 控制器。

统计结果表明。大约新增了 70.4 万行代码和删除了 41.9 万行代码,这使得 5.10-rc1 的大小与 Linux 有史以来最大的内核 5.8 相当。“这看起来是一个比我预期的更大的版本,虽然合并窗口比 5.8 的窗口小,但也小不了多少,”Torvalds 说,“而 5.8 是我们有史以来最大的版本。”

按照 Linux 典型的时间表,5.10-rc1 之后将有几个星期时间来提交修复问题的补丁,在预计 12 月发布稳定内核之前,将发布几个候选版本。


via: https://www.zdnet.com/article/linux-5-10-finally-ditches-decades-old-tool-that-caused-security-bugs/

作者:Daphne Leprince-ringuet 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出