2020年7月

统一的持续集成与持续交付的流水线的构想是一种梦想吗?

当我加入 WorkSafeBC 负责云端运维和工程流程优化的云端运维团队时,我和大家分享了我的梦想,那就是一个工具化的流水线,每一个产品都可以持续集成和持续交付。

根据 Lukas Klose 的说法, 流程 flow (在软件工程的语境内)是“软件系统以稳定和可预测的速度创造价值的状态”。我认为这是最大的挑战和机遇之一,特别是在复杂的新兴解决方案领域。我力求通过一种持续、高效和优质的解决方案,提供一种持续交付模式,并且能够构建正确的事物让我们的用户感到满意。想办法把我们的系统分解成更小的碎片,这些碎片本身是有价值的,使团队能够渐进式地交付价值。这需要业务和工程部门改变思维方式。

持续集成和持续交付的(CI/CD)流水线

CI/CD 流水线是一种 DevOps 实践,用于更频繁、一致、可靠的地交付代码变更。它可以帮助敏捷开发团队提高部署频率,减少变更准备时间变更失败率和关键绩效指标(KPI)的平均恢复时间,从而提高质量并且实现更快的交付。唯一的先决条件就是坚实的开发流程、对质量的心态和对需求从构想到废弃的责任心,以及一个全面的流水线(如下图所示)。

 title=

它简化了工程流程和产品,以稳定基础架构环境;优化工作流程;并创建一致的、可重复的、自动化的任务。正如 Dave Snowden 的 Cynefin Sensemaking 模型所说的那样,这样就允许我们将复杂不可解决的任务变成了复杂可解决的任务,降低了维护成本,提高了质量和可靠性。

精简流程的一部分是将 浪费实践类型 wasteful practice types Muri(过载)、Mura(变异)和 Muda(浪费)的浪费降低最低。

  • Muri(过载):避免过度工程化,避免与商业价值不相关的功能以及过多的文档。
  • Mura(变异):改善审批和验证流程(比如,安全签批);推动 左移提前 shift-left 策略以推行单元测试、安全漏洞扫描与代码质量检查;并改进风险评定。
  • Muda(浪费):避免技术债、错误或前期的详细文档等浪费。

看起来 80% 的重点都集中在提供一种可以集成和协作的工程产品上,这些系统可以采用一个创意和计划、开发、测试和监控你的解决方案。然而,一个成功的转型和工程系统是由 5% 的产品、15% 的过程和 80% 的开发人员组成的。

我们可以使用的产品有很多。比如,Azure DevOps 为持续集成(CI)、持续交付(CD)和可扩展性提供了丰富支持,并与 Stryker、SonarQube、WhiteSource、Jenkins 和 Octopus 等开源集成和商用成品(COTS)软件即服务(SaaS)进行集成。对于工程师来说,关注产品总是一种诱惑,但请记住,它们只是我们旅程的 5%。

 title=

最大的挑战是打破数十年的规则、规定和已经步入舒适区的流程:“我们一直都是这样做的;为什么需要改变呢?

开发和运维人员之间的摩擦导致了各种支离破碎的、重复的、不间断的集成和交付流水线。开发人员希望能访问所有东西,以便持续迭代,让用户使用起来和持续地快速发布。运维人员希望将所有东西锁起来,保护业务、用户和品质。这些矛盾在不经意间导致了很难做到一种自动化的流程,进而导致发布周期晚于预期。

让我们使用最近的一次白板讨论中的片段来探索流水线。

想要支持流水线的变化是一项困难并且花费巨大的工作;版本和可追溯性的不一致使得这个问题变得更加复杂,因此不断精简开发流程和流水线是一项挑战。

 title=

我主张一些原则使得每个产品都能使用通用流水线:

  • 使一切可自动化的东西都自动化
  • 一次构建
  • 保持持续集成和持续交付
  • 保持持续精简和改进
  • 保持一个构建的定义
  • 保持一个发布流水线的定义
  • 尽早、频繁地扫描漏洞,并且尽快失败
  • 尽早、频繁地进行测试,并且尽快失败
  • 保持已发布版本的可追踪和监控

但是,如果我要打破这些,最重要的原则就是保持简单。如果你不能说明流水线化的原因(是什么、为什么)和过程(如何),你或许是不了解自己的软件过程的。我们大多数人想要的不是最好的、超现代的和具有革命意义的流水线 —— 我们仅仅是需要一个功能强大的、有价值的和能促进工程的流水线。首先需要解决的是那 80% —— 文化、人员和他们的心态。请你的 CI/CD 骑士们穿上闪亮的盔甲,在他们的盾牌上贴上 TLA( 两个/三个字母的缩写 two/three-lettered acronym )符号,加入到实践和经验工程的力量中来。

统一流水线

让我们逐步完成我们的白板会议实践。

 title=

每个应用使用一套构建定义来定义一个 CI/CD 流水线,用来触发拉取请求的预合并验证持续集成的构建。生成一个带有调试信息的发布的构建,并且将其上传到 符号服务器。这使开发人员可以在本地和远程生产环境进行调试,而在不用考虑需要加载哪个构建和符号,符号服务器为我们施展了这样的魔法。

 title=

在构建过程中进行尽可能多的验证(左移提前),这允许开发新特性的团队可以尽快失败,不断的提高整体的产品质量,并在拉取请求中为代码审核人员提供宝贵证据。你喜欢有大量提交的拉取请求吗?还是一个带有少数提交和提供了漏洞检查、测试覆盖率、代码质量检查和 Stryker 突变残余等支持的拉取请求?就我个人而言,我投后者的票。

 title=

不要使用构建转换来生成多个特定环境的构建。通过一个构建实现发布时转换标记化和 XML/JSON 的值替换。换句话说,右移滞后具体环境的配置。

 title=

安全存储发布配置数据,并且根据数据的信任度敏感度,让开发和运维都能使用。使用开源的密钥管理工具、Azure 密钥保险库、AWS 密钥管理服务或者其他产品,记住你的工具箱中有很多方便的工具。

 title=

使用用户组而不是用户,将审批人管理从跨多个流水线的多个阶段移动到简单的组成员。

 title=

创建一条流水线并且对赋予特定的交付阶段的权限,而不是重复流水线让团队进入他们感兴趣的地方。

 title=

最后,但并非最不重要的是,拥抱拉取请求,以帮助提高对代码仓库的洞察力和透明度,增进整体质量、协作,并将预验证构建发布到选定的环境,比如,开发环境。

这是整个白板更正式的视图。

 title=

所以,你对 CI/CD 流水线有什么想法和经验?我的通过一条流水线来管理它们的这个梦想是空想吗?


via: https://opensource.com/article/19/7/cicd-pipeline-rule-them-all

作者:Willy-Peter Schaub 选题:lujun9972 译者:chunibyo-wly 校对:wxy

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

国内电子书厂商文石无视 Linux 内核协议引开源社区指责

国内电子书厂商文石(Onyx)被指拒绝发布其电子书设备源码,违反 GPL v2 开源协议。Onyx 的电子书设备是在 Linux 内核基础上的改版,而 Linux 内核基于 GPL v2 许可证,该许可证有很明显的“传染性”,要求二次分发项目也必须开源。Onyx 官方回应“技术团队表示目前不能把源码开放”,并希望他人谅解。似乎是承认了自己已经违规,但是也没有办法改正。Onyx 的态度激起许多人的不满,甚至把对 Onyx 的批评上升到国家层面。

来源:开源中国

拍一拍:毫无疑问,这是一种应该严厉谴责的行为。一些厂商,不仅不遵守开源许可证,而且对开源许可证非常无知。

国内的开源 PHP 论坛软件“修罗 BBS”停止,官方论坛关闭

PHP 开源论坛“修罗 BBS”(Xiuno BBS)已于 7 月 6 日关闭,其官网称“国内什么时候有真正的开源环境了再见!”。同时,在其 4.0 版本的源码库中看到 18 小时前更新了 README,意指项目的开源之路将暂时停止。

来源:开源中国

拍一拍:没有找到可持续发展模式的开源软件,或者说,不能应对恶劣环境的开源软件,早晚是这个结果。可惜了。

优麒麟 20.04 LTS 发布:优化高清屏支持 上架 6 款新应用

除了功能改进与BUG修复,麒麟软件商店新增应用:Opera 浏览器、Vivaldi 浏览器、亿图图示软件、亿图项目管理软件、MindMaster思维导图软件、TeamViewer远程连接控制软件。

来源:优麒麟

拍一拍:这次发布的时间有点晚了啊。

谜之操作:巴克莱银行把互联网档案馆作为 JS 文件的 CDN

英国金融集团巴克莱银行被发现会从互联网档案馆调用 JS 文件。调用的文件指向的是互联网档案馆时光机器存档的巴克莱银行网址。在引发广泛关注之后,巴克莱银行修改了代码不再把互联网档案馆作为 CDN,但没有解释它之前为什么这么做。

来源:solidot

拍一拍:这家银行连互联网档案馆的油都要揩,也是够了,心疼一下互联网档案馆。

如果你想了解 Linux 服务器在重压之下的运行情况,那么给 Linux 服务器施加压力是个不错的主意。在这篇文章中,我们将看一些工具,可以帮助你增加服务器压力并衡量结果。

为什么你会想给你的 Linux 系统施加压力呢?因为有时你可能想知道当一个系统由于大量运行的进程、繁重的网络流量、过多的内存使用等原因而承受很大的压力时,它的表现如何。这种压力测试可以帮助确保系统已经做好了 “上市” 的准备。

如果你需要预测应用程序可能需要多长时间才能做出反应,以及哪些(如果有的话)进程可能会在重负载下失败或运行缓慢,那么在前期进行压力测试是一个非常好的主意。

幸运的是,对于那些需要能够预测 Linux 系统在压力下的反应的人来说,你可以采用一些有用的技术和工具来使这个过程更容易。在这篇文章中,我们将研究其中的一些。

自己动手做个循环

第一种技术是在命令行上运行一些循环,观察它们对系统的影响。这种方式可以大大增加 CPU 的负荷。使用 uptime 或类似的命令可以很容易地看到结果。

在下面的命令中,我们启动了四个无尽循环。你可以通过添加数字或使用 bash 表达式,如 {1...6} 来代替 1 2 3 4 以增加循环次数:

for i in 1 2 3 4; do while : ; do : ; done & done

在命令行上输入后,将在后台启动四个无尽循环:

$ for i in 1 2 3 4; do while : ; do : ; done & done
[1] 205012
[2] 205013
[3] 205014
[4] 205015

在这种情况下,发起了作业 1-4,作业号和进程号会相应显示出来。

要观察对平均负载的影响,请使用如下所示的命令。在本例中,uptime 命令每 30 秒运行一次:

$ while true; do uptime; sleep 30; done

如果你打算定期运行这样的测试,你可以将循环命令放入脚本 watch-it 中。

#!/bin/bash

while true
do
  uptime
  sleep 30
done

在输出中,你可以看到平均负载是如何增加的,然后在循环结束后又开始下降。

 11:25:34 up 5 days, 17:27,  2 users,  load average: 0.15, 0.14, 0.08
 11:26:04 up 5 days, 17:27,  2 users,  load average: 0.09, 0.12, 0.08
 11:26:34 up 5 days, 17:28,  2 users,  load average: 1.42, 0.43, 0.18
 11:27:04 up 5 days, 17:28,  2 users,  load average: 2.50, 0.79, 0.31
 11:27:34 up 5 days, 17:29,  2 users,  load average: 3.09, 1.10, 0.43
 11:28:04 up 5 days, 17:29,  2 users,  load average: 3.45, 1.38, 0.54
 11:28:34 up 5 days, 17:30,  2 users,  load average: 3.67, 1.63, 0.66
 11:29:04 up 5 days, 17:30,  2 users,  load average: 3.80, 1.86, 0.76
 11:29:34 up 5 days, 17:31,  2 users,  load average: 3.88, 2.06, 0.87
 11:30:04 up 5 days, 17:31,  2 users,  load average: 3.93, 2.25, 0.97
 11:30:34 up 5 days, 17:32,  2 users,  load average: 3.64, 2.35, 1.04 <== 循环停止
 11:31:04 up 5 days, 17:32,  2 users,  load average: 2.20, 2.13, 1.01      11:31:34 up 5 days, 17:33,  2 users,  load average: 1.40, 1.94, 0.98

因为所显示的负载分别代表了 1、5 和 15 分钟的平均值,所以这些值需要一段时间才能恢复到系统接近正常的状态。

要停止循环,请发出像下面这样的 kill 命令 —— 假设作业号是 1-4,就像本篇文章前面显示的那样。如果你不确定,可以使用 jobs 命令来确认作业号。

$ kill %1 %2 %3 %4

增加压力的专用工具

另一种方法是使用专门为你制造系统压力的工具。其中一种叫做 stress(压力),可以以多种方式对系统进行压力测试。stress 工具是一个工作负载生成器,提供 CPU、内存和磁盘 I/O 压力测试。

在使用 --cpu 选项时,stress 命令使用平方根函数强制 CPU 努力工作。指定的 CPU 数量越多,负载上升的速度就越快。

下面第二个脚本(watch-it-2)可以用来衡量对系统内存使用的影响。请注意,它使用 free 命令来查看加压的效果。

$ cat watch-it-2
#!/bin/bash

while true
do
  free
  sleep 30
done

发起任务并观察压力:

$ stress --cpu 2

$ ./watch-it
 13:09:14 up 5 days, 19:10,  2 users,  load average: 0.00, 0.00, 0.00
 13:09:44 up 5 days, 19:11,  2 users,  load average: 0.68, 0.16, 0.05
 13:10:14 up 5 days, 19:11,  2 users,  load average: 1.20, 0.34, 0.12
 13:10:44 up 5 days, 19:12,  2 users,  load average: 1.52, 0.50, 0.18
 13:11:14 up 5 days, 19:12,  2 users,  load average: 1.71, 0.64, 0.24
 13:11:44 up 5 days, 19:13,  2 users,  load average: 1.83, 0.77, 0.30

在命令行中指定的 CPU 越多,负载就增加的越快。

$ stress --cpu 4
$ ./watch-it
 13:47:49 up 5 days, 19:49,  2 users,  load average: 0.00, 0.00, 0.00
 13:48:19 up 5 days, 19:49,  2 users,  load average: 1.58, 0.38, 0.13
 13:48:49 up 5 days, 19:50,  2 users,  load average: 2.61, 0.75, 0.26
 13:49:19 up 5 days, 19:50,  2 users,  load average: 3.16, 1.06, 0.38
 13:49:49 up 5 days, 19:51,  2 users,  load average: 3.49, 1.34, 0.50
 13:50:19 up 5 days, 19:51,  2 users,  load average: 3.69, 1.60, 0.61

stress 命令也可以通过 --io(输入/输出)和 --vm(内存)选项增加 I/O 和内存的负载来给系统施加压力。

在接下来的这个例子中,运行这个增加内存压力的命令,然后启动 watch-it-2 脚本。

$ stress --vm 2

$ watch-it-2
              total        used        free      shared  buff/cache   available
Mem:        6087064      662160     2519164        8868     2905740     5117548
Swap:       2097148           0     2097148
              total        used        free      shared  buff/cache   available
Mem:        6087064      803464     2377832        8864     2905768     4976248
Swap:       2097148           0     2097148
              total        used        free      shared  buff/cache   available
Mem:        6087064      968512     2212772        8864     2905780     4811200
Swap:       2097148           0     2097148

stress 的另一个选项是使用 --io 选项为系统添加输入/输出活动。在这种情况下,你可以使用这样的命令:

$ stress --io 4

然后你可以使用 iotop 观察受压的 I/O。注意,运行 iotop 需要 root 权限。

之前:

$ sudo iotop -o
Total DISK READ:         0.00 B/s | Total DISK WRITE:        19.36 K/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:      27.10 K/s
    TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
 269308 be/4 root        0.00 B/s    0.00 B/s  0.00 %  1.24 % [kworker~fficient]
    283 be/3 root        0.00 B/s   19.36 K/s  0.00 %  0.26 % [jbd2/sda1-8]

之后:

Total DISK READ:         0.00 B/s | Total DISK WRITE:         0.00 B/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       0.00 B/s
    TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
 270983 be/4 shs         0.00 B/s    0.00 B/s  0.00 % 51.45 % stress --io 4
 270984 be/4 shs         0.00 B/s    0.00 B/s  0.00 % 51.36 % stress --io 4
 270985 be/4 shs         0.00 B/s    0.00 B/s  0.00 % 50.95 % stress --io 4
 270982 be/4 shs         0.00 B/s    0.00 B/s  0.00 % 50.80 % stress --io 4
 269308 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.09 % [kworker~fficient]

stress 只是给系统增加压力的若干工具之一。另一个较新的工具,stress-ng,将在以后的文章中介绍。

总结

用于系统压力测试的各种工具可以帮助你预测系统在真实世界的情况下如何响应,在这些情况下,它们受到增加的流量和计算需求。

虽然我们在文章中展示的是创建和测量各种类型的压力的方法,但最终的好处是压力如何帮助确定你的系统或应用程序对它的反应。


via: https://www.networkworld.com/article/3563334/how-to-stress-test-your-linux-system.html

作者:Sandra Henry-Stocker 选题:lujun9972 译者:wxy 校对:wxy

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

无论你是需要帮助来保持专注、保持及时性,还是为了找到避免重复的捷径,这些 Linux 工具能够帮助你。

生产力是一个主观术语,但从本质上讲,它是衡量特定任务完成效率的标准。每个人都有不同的方式来提高他们的生产力:有些人需要帮助专注于任务里、有些人需要特殊的工作环境、有些人需要警报和提醒以避免错过截止日期,还有些人需要协助处理重复的手工活。幸运的是,有多种工具和技术可为你提供所需的特定支持。特别地,如果你是 Linux 用户,有一些调整可以帮助你提高生产力。这是我经常使用的两个。

剪贴板指示器

你是否在日常使用中,在多个文档之间的大量使用复制和粘贴?如果是这样,那么 剪贴板指示器 应该成为你的首选方案之一。将剪贴板指示器作为 GNOME 扩展安装到 Linux 发行版中。以我的经验,它对 GNOME Shell 的性能影响很小,至少比我尝试过的其他方案要小。

该工具添加了一个指示器菜单到顶部面板,并缓存剪贴板历史。你可以设置历史记录大小、要预览的字符数量。它可以在复制时显示通知,并充当保存任意复制内容的临时空间。

 title=

安装扩展程序和连接器的最简单方法是使用发行版的包管理器。

对于 Fedora、CentOS 或 RHEL,请使用:

$ sudo dnf install chrome-gnome-shell

在 Ubuntu 或 Debian 上,请改用 apt install

安装完成后,进入 https://extensions.gnome.org/ 并查看已安装的扩展。

如果你使用的是 Firefox,请使用 Firefox 浏览器附加组件并安装 “GNOME Shell integration”。你将在 Firefox 工具栏中看到一个很小的脚印图标,它将带你进入“扩展”页面。在该页面上,搜索 “Clipboard Indicator” 扩展并启用它。

现在,按照提示下载 GNOME 扩展并激活它。你可以查看 ~/.local/share/gnome-shell/extensions 来浏览你的扩展。

好了!你将在 GNOME 桌面的右上角看到一个新图标。复制任意内容并尝试其设置。

也可以使用以下命令通过 Git 进行快速安装:将仓库克隆到本地的 gnome-shell 扩展目录中:

$ git clone https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator.git ~/.local/share/gnome-shell/extensions/[email protected]

进入 GNOME Tweaks 工具,然后从“扩展”页面激活它。

番茄计时器(Pomodoro)

 title=

Pomodoro 技术是一种时间管理理念,旨在为用户提供最大注意力。每个 25 分钟的工作时间称为“pomodoro”(意大利语的“番茄”);每个番茄之后,你需要休息五分钟。每四个番茄时间,即每 100 分钟,你就要休息 15 至 20 分钟。如果你有大量的待办事项,那么使用 Pomodoro 技术可以通过强迫你遵守严格的时间安排来帮助你更快地完成项目。

可以通过 GNOME Tweaks 网页 (extensions.gnome.org)或通过命令行来管理安装过程。对于后者,请根据你的 Linux 发行版和版本,并使用以下命令进行安装:

$ sudo dnf install gnome-shell-extension-pomodoro

或者,如果你希望从源代码构建:

$ git clone -b gnome-3.34 https://github.com/codito/gnome-pomodoro.git
$ cd gnome-pomodoro

源码有许多依赖关系,其中许多可能已经安装。为了确保这点,请安装以下内容。

$ sudo dnf install autoconf-archive gettext vala vala-tools pkg-config desktop-file-utils glib2-devel gtk3-devel libappstream-glib-devel libappindicator-gtk3-devel libcanberra-devel libpeas-devel sqlite-devel gom-devel gobject-introspection-devel gsettings-desktop-schemas-devel gstreamer1-devel

在源代码的解压目录中,完成构建。

$ ./autogen.sh --prefix=/usr --datadir=/usr/share 
$ make 
$ sudo make install 

不管是怎么安装的,请进入 GNOME Tweaks 并打开番茄计时器。如果你还没有 GNOME Tweaks,请通过包管理器或所选的软件安装程序进行安装。例如,在 Fedora 上:

$ sudo dnf install gnome-tweaks

在 Ubuntu 或 Debian上,请改用 apt install

Pomodoro 桌面集成当前可在 GNOME Shell 中使用,并且它们计划在将来支持更多桌面。 查看 https://gnomepomodoro.org/ 获取有关该项目的最新信息。同时,对于 KDE 用户,还有一个名为 Fokus 的替代品。

Linux 上的生产力

生产力是个人的,但这是我们所有人都在以某种方式追求的东西。这些工具中的每一个要么节省了我的时间,要么使我的工作效率提高了,它们可以与 Linux 快速集成。

你是否有喜欢的生产力工具?请在评论中分享!


via: https://opensource.com/article/20/6/linux-time-management

作者:Sudeshna Sur 选题:lujun9972 译者:geekpi 校对:wxy

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

F5 BIG-IP 设备的严重漏洞被披露后,黑客正试图窃取它的管理员密码

F5 Networks 公司生产的多功能网络设备 BIG-IP 是当今最流行的网络产品之一,它们被用于支撑一些最大的敏感网络。F5 在其网站上宣称,《财富》50 强榜单中有 48 家依靠 BIG-IP 系统。这次披露的漏洞 CVE-2020-5902,可以让攻击者完全控制在互联网上可以访问的未打补丁的系统。危险性为最高的 10 分。而安全专家已经观察到了对该漏洞的利用。

来源:zdnet

拍一拍:话说,我们也要注意这种来自国外的网络设备对国家安全的影响。

Chrome for Android 将正式提供 64 位版本

首个支持 64 位架构 ARM 处理器的 Android 版本是 2014 年 11 月发布的 Android 5.0 Lollipop。今天事实上几乎所有的 Android 设备都支持运行 64 位软件。然而市场占有率最高的 Google Chrome 浏览器至今没有提供 Android 平台的 64 位版本。从 Chrome 85 起,运行 Android 10 或更高版本的手机将会自动更新到 64 位版本,当前的稳定版 Chrome 83 和 beta 版 Chrome 84 仍然是 32 位应用。

来源:solidot

拍一拍:这个非常奇怪,为什么 Chrome 64 位会这么晚?

新的一个月,网络分析公司 NetMarketshare 也再次发布了新的 Linux 市场份额统计,它们显示 Linux 和 Ubuntu 的使用量连续第四个月上升。

该公司的技术监测到的桌面 Linux 的份额已经连续几个月持续不断地增长。2020 年 6 月的数据也没有例外,Linux 从 2020 年 5 月的 3.17% 上升到 6 月的 3.61%。

linux marketshare in july 2020

我想我们可以更有信心地说,现在的增长是一种趋势,而不是数据的畸变或随机错误(这不是第一次)。或者换一种说法,如果它是一个错误,那就是一个一致的错误!

不过,如果对照 NetMarketShare 的桌面 Linux 历史数据来看(虽然只能追溯到 2016 年),这个数据代表了桌面 Linux 的历史最高水平。

和以前一样,这个波动的出现是由 Ubuntu 驱动的。根据这家公司的数据,正是基于 Ubuntu 的系统占据了桌面 Linux 的大部分市场份额。这个橙色的操作系统在所有桌面系统中的比例从 5 月份的 2.11% 上升到 6 月份的 2.57%。

作为参考,Linux Mint 也被单独跟踪。基于同样的统计,其目前的份额是 0.0%。

distro marketshare in july 2020

这是否意味着 Linux 市场占有率在增加,而且是大幅增加?不,它仍然是大海里的一条小鱼(更不是池塘)。但在这家公司的样本群中,Linux 用户的份额显然在增长(该公司称其追踪了数亿次对没有明确定义的但显然很受欢迎的网站的访问,所以这也是一个原因)。

不过,虽然这个趋势令人振奋,但我也必须指出,没有其它公司的报告可以互相印证。

以下是由网络分析公司 StatCounter 提供的数据,显示了 12 个月内桌面 Linux 的市场份额。

more linux marketshare in july 2020

嗯。几乎没有任何动静 —— 当然也没有 4 月后的暴涨。

然而,这并不能“证明”什么都没有发生。分析公司的方法论和样本基础是不同的。他们会有不同的结果也是意料之中。B 公司的统计数据没有飙升,并不意味着 A 公司的统计数据没有飙升。

为什么会有增长(如果有的话)?

很遗憾,这就更难找到原因了!

这可能是因为更多的人在家工作(而他们自己的电脑也运行着 Linux)。也可能是他们的追踪软件现在更擅长识别 Linux。也可能是 {在此插入你最喜欢的理论}

无论是哪种方式,即使没有什么其他的证据,这些统计数据都很有趣,并且即使不是普遍结论性的,也令人鼓舞。

我们永远不会知道 Linux 在桌面上的确切市场份额,但基于其他数据(如 Distrowatch 排名、ISO 下载量、Snap 应用安装量等),大多数人都会基于此有所估计。


via: https://www.omgubuntu.co.uk/2020/07/linux-marketshare-june-2020

作者:Joey Sneddon 译者:wxy 校对:wxy

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