哦，不！Fedora 正在放弃对流行的视频编解码器的支持

ubuntu为什么没有这个问题？

所以说开源的vaapi加速闭源算法解码也有法律问题？那为什么现在才禁用，是因为Mesa才刚刚支持禁用？不管怎么说Fedora也太没骨气了

一般来说，损坏用户体验是因为 ---- 收钱了

ubuntu背后是公司，fedora基本上就是社区，红帽又不靠这个恰饭

放弃的是硬解吗

>
> Fedora 37（和 36）可能不再允许你使用一些流行的编解码器来方便地使用视频的图形加速功能。
>
>
>

![哦，不！?Fedora正在放弃对流行视频编解码器的支持[这里有原因！]](/data/attachment/album/202210/07/091549e2zymcpycczhmcpp.png)

Fedora 是一个流行的 Linux 发行版，迎合了那些希望在他们的工作站（和服务器）上使用最先进技术的用户。

它没有搭载任何专有组件，默认情况下坚持使用完全开源的软件库。

虽然这对一些人来说已经很不方便了，但现在看来，另一个变化可能会困扰期待 Fedora 37 的用户。

[最近在 Fedora 上的一个 Mesa 的提交](https://src.fedoraproject.org/rpms/mesa/c/94ef544b3f2125912dfbff4c6ef373fe49806b52?branch=rawhide) 告诉我们，由于法律问题，**H.264、H.265 和 VC-1** 编解码器的视频加速 API（VAAPI）的支持已经被禁用。

这一变化可能也会被回传到 Fedora 36。

>
> ? H.264 是大多数视频行业使用的主流视频编解码器。
>
>
> 例如，苹果公司广泛使用 H.264 编解码器，用于 iPhone 手机拍摄的照片和视频。你可以阅读此 [文档](https://support.apple.com/en-us/HT207022) 来了解更多。
>
>
>

Fedora 项目论坛的一位成员 [首先发现](https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/PYUYUCM3RGTTN4Q3QZIB4VUQFI77GE5X/) 了 Fedora 中的这一变化，他将其描述为 “*F36 的一大退步*”。

### 这对 Fedora 用户来说是坏消息吗？

是的，基本上是的。

**主要是，它将影响使用开源驱动程序的 AMD GPU 用户**，阻止他们使用 **GPU 加速** 来播放需要使用这些编解码器的视频内容。

此外，它还会影响到 **任何使用开源图形驱动的用户**，即使他们在英特尔芯片上运行 iGPU。Fedora 开发者还没有对此提供任何澄清，但你可以自己测试一下。

如果你在英伟达显卡上使用专有驱动程序，你就没有什么可担心的。

运行旧硬件的用户也可能有问题，他们的系统可能不支持这些编解码器。

这些编解码器最常用在你从 BT 或各种服务中下载的视频中，这些视频还没有转移到更新一代的编解码器（如 **AV1** 和 **VP9**）。

我相信，这是互联网上的**大部分**视频的情况。

一些流媒体平台也使用这些编解码器在其各自的平台上提供内容，这可能导致用户在试图通过其服务访问内容时面临问题。

### 这是否影响到每个人？

如果你是那些观看 YouTube 视频的人，不使用任何需要这些编解码器的视频的平台或下载它们，你就不会有任何问题。

### Fedora 正在避免法律上的麻烦

还没有人起诉 Fedora 或强迫他们这样做。然而，正如 [Phoronix](https://www.phoronix.com/news/Mesa-Optional-Video-Codecs) 所指出的，Mesa 的一个变化最近允许开发者选择性地禁用编解码器，以帮助避免法律纠纷和软件专利冲突。

因此，为了避免法律上的混乱，Fedora 进行了这一改变。

H.264 和 H.265 的专利属于一家名为 [MPEG LA](https://en.wikipedia.org/wiki/MPEG_LA) 的公司，该公司专门用于持有视频编解码器和显示标准领域的专利。

而 VC-1 的专利属于 [SMPTE](https://en.wikipedia.org/wiki/Society_of_Motion_Picture_and_Television_Engineers)，这是一个由媒体和娱乐机构的专业人士管理的团体。

考虑到用户在购买显卡时已经支付了使用这些编解码器的许可，我们仍然不确定为什么会这样。你可以在 [Fedora 的法律列表会话](https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/thread/M4LTGLHY5JX42IHC45WNWB5FH2JIFMAS/) 中阅读更多相关信息。

### 可能的解决方法是什么？

**显然**，你必须依赖基于 CPU 的解码了。当然，你也可以使用官方或第三方的 Mesa 构建版本。

Flatpak 应用程序可能允许你观看图形加速的视频内容而没有问题。但是，这要取决于软件的维护者。

但是，对于大多数用户来说，这可能是一个不方便的解决方案。

另一个解决方法可能是在旨在包含第三方应用程序的 RPM Fusion 仓库中单独包含支持 VAAPI 的编解码器。

然而，负责 Fedora RPM Fusion 仓库的开发者对维护 Fedora Mesa 3D 的复刻版本不感兴趣。该开发者提到：

>
> rpmfusion 基本上没有兴趣去打包和维护它，而且保持仓库与 Fedora 同步对我来说也不是一个优先事项。
>
>
>

![](/data/attachment/album/202210/07/091550f6mz3369dqz6u8od.jpg)

*? 你对 Fedora 的这一变化有什么看法？请在下面的评论中告诉我们你的想法。*

---

via: <https://news.itsfoss.com/fedora-drops-vaapi-codec/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


一个适用于苹果芯片的原生 Linux GPU 驱动程序几乎就绪！

Summary: 苹果 M1 上的原生 Linux GPU 驱动？它就快来了！

怎么还是皮套主播啊草，这也太二刺螈了

支持的设备不好好研究优化，不支持的设备啥几把搞，<br />
美名其曰极客精神，实际上就是Linux 桌面起不来的病症。

感觉像是美国二次元的样子

你出钱优化啊

M1难道就是苹果送的，你键盘真的是响

二次元真恶心（不是）

苹果 M1 上的原生 Linux GPU 驱动？它就快来了！

>
> 苹果 M1 上的原生 Linux GPU 驱动？它就快来了！
>
>
>

![一个适用于苹果芯片的原生 Linux GPU 驱动程序几乎就绪！](/data/attachment/album/202210/07/102939bxovjxf2f3xkk48j.png)

让 Linux 在 <ruby> 苹果芯片 <rt>  Apple Silicon </rt></ruby> 设备上工作是我们很多人的愿望!

感谢 [Asahi Linux 项目](https://news.itsfoss.com/asahi-linux-announcement/)，它现在对测试者来说已经成为现实。当然，它还没有准备好进入最佳时期，但如果你是一个资深 Linux 用户，你现在就可以在苹果 M1/M2 设备上尝试 Linux。

现在，Linux 开发者 **Asahi Lina** 的一个令人兴奋的进展引起了我们所有人的注意。

**我们可能会比预期更早地拥有一个用 Rust 编写的原生 GPU 驱动程序。**

### 所以，这意味着什么？

几个月前，Asahi Lina 加入了 Asahi Linux 项目，并开始 [开发一个驱动程序原型](https://asahilinux.org/2022/07/july-2022-release/) 以在 Linux 上运行图形应用程序。

现在，通过更多的调整和一些来自 Asahi Lina 对 M1 GPU 硬件接口的逆向工程的惊人的贡献，她已经成功地在苹果 M1 芯片上运行了 GNOME、KDE 应用程序，做到了在 Firefox 上播放 YouTube 等事情！

以下是她 [推特](https://twitter.com/LinaAsahi/status/1575343067892051968) 的内容：

>
> GNOME 运行了！！Firefox 浏览器可以运行！你可以看 YouTube，玩 Neverball，运行 KDE 应用程序，以及更多！! 没有崩溃！！！
>
>
> 在苹果 M1 的原生 Linux GPU 驱动上！!
>
>
>

需要注意的是，这还没有在苹果 M2 上测试过。

这里还有个视频，你可以看到它运行的情况：

她还解释说：

>
> 我使用了一个糟糕的黑科技来解决一个稳定性问题，这影响了性能，但它证明了这是唯一剩下的主要问题！一旦我把它修复好了，我们就会有完整的性能和稳定性！然后就只剩下 Mesa 驱动程序的修复了！！！
>
>
>

当然，这还只是处于早期的开发，我们甚至没有在 Linux 内核中拥有 Rust 实现。所以，当 Rust 开始进入主线版本时，也就是 Linux 内核 6.1 或更新版本时，你可能会看到它越来越接近现实。

尽管如此，这对 Asahi Linux 来说是一个不可思议的里程碑。随着一些发展，用户一定急于在苹果芯片设备上尝试 Linux。

---

via: <https://news.itsfoss.com/linux-gpu-driver-apple/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lkxed](https://github.com/lkxed) 译者：[KevinZonda](https://github.com/KevinZonda) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #782 谷歌十年处理了 60 亿个“盗版”链接

Summary: • 谷歌十年处理了 60 亿个“盗版”链接 • 19% 的钓鱼邮件绕过微软 Defender • 波士顿动力公司承诺不将其机器人武器化

![](/data/attachment/album/202210/07/183144zqb7qzz5abz5fwes.jpg)

![](/data/attachment/album/202210/07/183153g4xiochjxzirhodj.jpg)

### 谷歌十年处理了 60 亿个“盗版”链接

来自 32 万个版权所有者的撤销请求已经提交了 60 亿个 URL，谷歌已经批准了大多数请求。最活跃的十个组织总共报告了近 25 亿个 URL，而其中 40% 的删除请求涉及到 400 个域名。谷歌正在跟内容所有者合作，以在其索引之前将侵权网站列入黑名单。谷歌曾积极反对任何第三方限制网络索引的努力。现在，谷歌正在自愿跟这些第三方合作，并接受那些尚未被搜索引擎索引的链接的删除请求。

>
> **[消息来源：Tech Spot](https://www.techspot.com/news/96215-google-delisted-six-billion-alleged-pirate-links-ten.html)**
>
>
>

>
> 老王点评：反盗版当然是对的，但是这种撤销请求越来越有被滥用的迹象。
>
>
>

![](/data/attachment/album/202210/07/183203zl9w03qiqu7kzlb7.jpg)

### 19% 的钓鱼邮件绕过微软 Defender

Avanan 的新研究表明，微软 Defender 的钓鱼邮件漏报率为 18.8%，而在 2020 年，这一比例是 10.8%。专门设计的金融类钓鱼邮件的漏报率甚至高达 42%。同时，Defender 将 7% 的钓鱼邮件当做垃圾邮件而没有识别为钓鱼邮件。不过，Defender 可以捕捉到 90% 的未知恶意软件，也能过滤 98% 的大宗商业邮件。

>
> **[消息来源：avanan](https://www.avanan.com/blog/evaluating-microsoft-and-other-email-security-services)**
>
>
>

>
> 老王点评：这个漏报率还是挺高的，我使用 gmail 的体验看似乎漏报更低。
>
>
>

![](/data/attachment/album/202210/07/183216mkn6r4dfm6gcenks.jpg)

### 波士顿动力公司承诺不将其机器人武器化

包括波士顿动力公司在内的六家机器人公司发表公开信，承诺不支持其产品的武器化，并呼吁该行业的其他公司也这样做。他们说，在可能的情况下，他们将审查客户的计划，希望避免那些将机器人变成武器的人，此外还将探索可以防止这种使用的技术特征。

>
> **[消息来源：axios](https://www.axios.com/2022/10/06/boston-dynamics-pledges-weaponize-robots)**
>
>
>

>
> 老王点评：这似乎不是道德约束能解决的问题，机器人武器化是早晚的事。
>
>
>


System 76 将不会发布 Pop!_OS 22.10 Linux 发行版

Summary: Pop!_OS 22.10 将不会发布。所以，你将无法使用 GNOME 43…… 这里是原因。

是将要完工时，系统不小心把桌面环境删了吧

看上面的效果截图，应该也是基于gtk3或gtk4构建的ui，强调rust无非是通过rust去调用gtk的c api。如果这么喜欢为rust构建生态，不如尝试让rust直接从底层构建ui toolkit，不过底层无论是直接基于x11还是类似skia这样的，也都还是c，同样要调用大量c api

现在已经说不基于 GTK3 / 4 了，而是要基于 Rust 原生的 GUI 库 iced

来自223.104.39.91的 Firefox 105.0|GNU/Linux 用户

>
> Pop!\_OS 22.10 将不会发布。所以，你将无法使用 GNOME 43…… 这里是原因。
>
>
>

![System 76 将不会发布 Pop!_OS 22.10 Linux 发行版：这就是为什么！](/data/attachment/album/202210/08/143915vpfvlqmqfumvqqvb.png)

Pop!\_OS 是一个基于 Ubuntu 的 Linux 发行版，它提供了一个精心设计的用户体验以及强大的软件套件。

考虑到它带来的最新技术和桌面环境带来的有用的调整，Pop!\_OS 发行版通常值得等待。

但是，你将无法获得 Pop!\_OS 22.10 发行版。

[System76](https://system76.com/) 希望专注于开发其自己的基于 Rust 的 COSMIC 桌面环境，并在未来的版本中放弃 GNOME。?

**如果你不知道的话**，这是我们对 Pop!\_OS 的 COSMIC 桌面环境的旧报道，以供说明：

![](/data/attachment/album/202210/08/143916muu4u54z5ut8rtut.png)

>
> **[哦，哇哦！Pop!\_OS Linux 开发人员正在创建一个基于 Rust 的新桌面环境](https://news.itsfoss.com/pop-os-cosmic-rust/)**
>
>
>

### Pop!\_OS 22.10 发行版将不会发布

一般在 Ubuntu 发布新的 LTS 和非 LTS 版本之后，Pop!\_OS 发行版就会发布。

没有 Pop!\_OS 22.10，一些用户可能会失望，因为他们无法在 Pop!\_OS 上体验 GNOME 43。

感谢 [OMG!Ubuntu!](https://www.omgubuntu.co.uk/2022/09/excited-for-pop_os-22-10-dont-be) 发现了 Pop!\_OS 开发人员 **Michael Murphy** 的这个 [Reddit 评论](https://www.reddit.com/r/pop_os/comments/xifwt6/comment/ip3l425/)。

Michael 提到：

>
> 我们将会把开发时间集中到 COSMIC 的 Rust 实现上，而不是 22.10。支持多个 Ubuntu 版本需要很大的努力，而 6 个月的发布周期真的会吃掉开发时间和产品的稳定性。
>
>
>

? 我相信这是一个很好的决定。去年，当他们宣布了基于 Rust 从头开始构建桌面环境的计划时，我总是想知道他们如何做到的。

从头开始做一件事并达到用户的期望是一项艰巨的任务，这些用户已经在基于 GNOME 的 Pop!\_OS 上拥有了很好的体验。

### COSMIC 桌面环境

![pop os cosmic 桌面环境早期构建](/data/attachment/album/202210/08/143916rszfuk78p636m1sf.png)

看到 COSMIC 桌面环境的更多发展会很有趣。上次我们尝试它（或看到演示）时，用户会对它感到兴奋，即使它们只是刚刚开始。

从技术上讲，它自 2021 年以来就一直在开发中，2023 年的 Pop!\_OS 发行版将会带来它。

它使用 [Rust](https://www.rust-lang.org/) 编程语言编写，遵循 freedesktop [互操作性规范](https://www.freedesktop.org/wiki/Specifications/)，并完全移除了对 GNOME 和其 shell 扩展的依赖。

我们曾经介绍过 COSMIC 桌面环境的早期预览构建，你可以在这里查看：

![](/data/attachment/album/202210/08/143917z66zezmmesxe4q6v.png)

>
> **[我尝试了 System76 新的基于 Rust 的 COSMIC 桌面！](https://news.itsfoss.com/system76-rust-cosmic-desktop/)**
>
>
>

### 为什么这是件好事？

Pop!\_OS 的 LTS 版本已经收到了比 Ubuntu 更多的包更新和内核升级，所以你不必担心没有发布 22.10 版本。

相反，我们应该期待 Pop!\_OS 的下一个主要升级，那时他们会正式介绍 Rust-COSMIC 桌面环境。

*? 你对这个决定怎么看？你对未来的 Pop!\_OS 发行版有什么期待吗？*

---

via: <https://news.itsfoss.com/no-pop-os-21-10/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed) 译者：[Cubik65536](https://github.com/Cubik65536) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


DevOps 将去向何方？

![](/data/attachment/album/202210/08/150944u0z7yfrmezycu9ur.jpg)

>
> 微软、谷歌、亚马逊、IBM 和甲骨文如今都在关注云上的 DevOps。这些大公司正在给企业提供 IT 自动化的服务。然而，DevOps 仍然在持续的演进中。DevSecOps、AIOps 和 NoOps 正在成为下一个流行词。
>
>
>

随着开发和管理人员看到及时交付高质量软件的商业价值，<ruby> 敏捷 <rt>  Agile </rt></ruby>方法论和 DevOps 也变得流行起来。拥有灵活的发布周期，并且交付具有<ruby> 可扩展 <rt>  scalable </rt></ruby>和<ruby> 可定制 <rt>  customizable </rt></ruby>的软件，是世界上每个企业的目标。通过将 CI/CD 工具和<ruby> 管道 <rt>  pipeline </rt></ruby>部署到云端，DevOps 使发布过程变得更加流畅。融合了 DevOps 的 Polyglot 微服务架构正在帮助企业降低总拥有成本（TCO）。他们现在有能力用渐进式网络应用程序和最新的 UI 框架升级他们的技术栈。总的来说，团队正在以更好的效率执行任务，并且正在开发高质量的软件模块。

### 自治 DevOps

容器和 DevOps 与云原生应用走到了一起。Kubernetes 和 Docker 正在被用作容器，一个新的名词 NoOps 现在正在流行。对于不同的容器，<ruby> 编排 <rt>  Orchestration </rt></ruby>都是一个重要的功能。为了扩展应用，开发环境中要创建容器集群。有一些新的容器正在进入云原生应用这个领域，比如 Mesos、Swarm、Openshift Rancher 和 Nomad。NoOps 有助于缩短编码周期，从而监控和管理应用程序。缺陷修复和热修复是不同的活动，它们都是 NoOps 的一部分。NoOps 有助于提高技术团队和业务运营人员之间的协同作用。它也有助于更好的监控、管理和流程自动化。NoOps 基础设施能够控制应用程序在云上的部署。企业从中获得的好处包括更好的交付、弹性的服务、更快的发布、良好的质量和 CI/CD 自动化。

### DevSecOps

DevSecOps 算是另一个流行趋势，它与在开发操作中的安全问题有关。最近与<ruby> 漏洞 <rt>  vulnerabilities </rt></ruby>（log4j），<ruby> 安全泄露 <rt>  security breach </rt></ruby>（谷歌、脸书、微软），和安全攻击相关的问题增加了 DevSecOps 在企业中的重要性。<ruby> 左移 <rt>  shift left </rt></ruby>方法强调了在软件生命周期的早期处理安全性和质量的重要性。在架构阶段就需要考虑隐私和<ruby> 遵从性 <rt>  compliances </rt></ruby>（如 GDPR）。这有助于降低成本，并且提升软件交付的速度。审计工具和安全检查列表是 DevOps 工具和系统的一部分，现在我们称为 DevSecOps。

### AIOps

AI DevOps 现在被称为 AIOps。据预测，将来 AI 应用会由 AIOps 来管理。与 AIOps 相关的工具和软件正在开发中，并且将很快发布首个版本。AI/ML 应用部署和模型更新可以由 AIOps 来处理。这将在<ruby> 工业 4.0 <rt>  Industry 4.0 </rt></ruby> 以及数据科学中扮演重要角色。有一种观点认为，NoOps 将会是 AIOps 的最终形态。AIOps 包括数据集管理、模型训练、模型服务、元数据管理、模型更新和服务更新。分布式训练将由 AIOps 来完成，这会提供<ruby> 超参数 <rt>  hyper parameter </rt></ruby>优化，工作流程管理和“<ruby> 假设 <rt>  what if </rt></ruby>”的分析能力。

### 微服务配置管理

当前，DevOps 和微服务正在成为标准部署和<ruby> 架构蓝图 <rt>  architectural blueprints </rt></ruby>来实施。应用可以在模块级别上就进行扩展。微服务可以在简化缺陷修复和问题区域隔离上提供帮助。经过设计，微服务可以通过添加更多<ruby> 计算能力 <rt>  computing power </rt></ruby>的<ruby> 实例 <rt>  instances </rt></ruby>来进行扩展。但是当它们没有被正确实现的时候，数据安全和管理的问题就会突然出现。

### 平台即产品

云上的<ruby> 软件即服务 <rt>  Software as a Service </rt></ruby>和<ruby> 平台即产品 <rt>  Platform as a Product </rt></ruby>最近非常流行。通过加速向平台部署和功能交付，DevOps 使这些变成现实。从编码到上线阶段，CI/CD 管道有助于可视化应用的部署。持续交付、集成和部署都是 DevOps 的一部分。DevOps 生产线模拟工业生产线是未来要关注的。

DevOps 正在慢慢地向 DevSecOps 和 AIOps 转变。对于企业，NoOps 才是未来。现在需要的是减少与安全相关的攻击、事故和破坏发生。对于企业来说，数据安全和隐私的优先级更高，并且这些新技术都将在这方面有所帮助。

---

via: <https://www.opensourceforu.com/2022/09/where-is-devops-headed/>

作者：[Bhagvan Kommadi](https://www.opensourceforu.com/author/bhagvan-kommadi/) 选题：[lkxed](https://github.com/lkxed) 译者：[Yufei-Yan](https://github.com/Yufei-Yan) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #783 英伟达的“虚伪”开源

Summary: • 英伟达的“虚伪”开源 • 去中心化金融先锋将 5 亿美元投入美国国债和公司债券 • 美国人宁愿削减食品支出也不愿意取消订阅服务

曾经以为有东西是必须订阅的，后来因各种原因停了之后发现生活和工作质量都没有下降，然后没了

什么是订阅？

![](/data/attachment/album/202210/08/170638yq9vzjqtqvuzcq29.jpg)

![](/data/attachment/album/202210/08/170651hs0po8p1v9og19wf.jpg)

### 英伟达的“虚伪”开源

今年早些时候，或许是迫于黑客压力，英伟达宣布开源其内核驱动模块。这是否意味着会有更好的开源驱动？内核开发者 Dave Airlie 在 LPC 大会上对此做了解释：英伟达 2018 年发布的图灵系列引入了对系统处理器 GSP 的支持，GSP 是一个基于 RISC-V 的处理器，负责管理 GPU 上的其它处理器。它的固件容量高达 30 或 40MB，而早期的固件容量通常才 256KB。英伟达事实上是把它的部分私有驱动转移到了 GSP。英伟达的开源驱动只是提供了 GSP 的接口而已。

>
> **[消息来源：LWN](https://lwn.net/SubscriberLink/910343/e360e44a7a63b1b7/)**
>
>
>

>
> 老王点评：所以，Torvalds 先生多年前就看穿了英伟达的本质，让我们一起竖起中指。
>
>
>

![](/data/attachment/album/202210/08/170704e0f28t882tgppf2u.jpg)

### 去中心化金融先锋将 5 亿美元投入美国国债和公司债券

2015 年推出的 MakerDAO 是挑战传统银行系统而设立的去中心化金融协议之一，其社区在 6 月底进行了初步投票，同意将 80% 的基金投入短期美国国债，20% 投入投资级企业债券。MakerDAO 周四发表声明，此举旨在使它的资产负债表多样化，价值 5 亿美元的通证将被转移到固定收益债务。

>
> **[消息来源：彭博社](https://www.bloomberg.com/news/articles/2022-10-06/defi-protocol-makerdao-puts-500-million-in-treasuries-corporates)**
>
>
>

>
> 老王点评：颇有讽刺意味，就像以传统金融为假想敌的加密货币，却跟着股市一起涨跌。理想终究不及现实啊。
>
>
>

![](/data/attachment/album/202210/08/170742nzz2d6n8mchomnez.jpg)

### 美国人宁愿削减食品支出也不愿意取消订阅服务

根据最近一份报告，大约三分之二的消费者表示将不得不减少支出；然而，只有大约四分之一的人计划在未来几个月取消流媒体订阅。报告发现，消费者最不可能取消亚马逊 Prime、Netflix 和 Spotify 以及家庭安全系统，甚至超过食品和汽油。一半的人表示，订阅服务现在占了他们每月支出的重要部分。平均而言，美国消费者每月花费约 135 美元的订阅支出，占他们每月预算的 17.8%。

>
> **[消息来源：CNBC](https://www.cnbc.com/2022/10/06/consumers-prioritize-netflix-amazon-prime-over-groceries-and-gas.html)**
>
>
>

>
> 老王点评：不管你乐意不乐意，早晚有一天就像房租、水电费一样得不断付这些订阅账单。你有没有什么订阅是不能停的呢？
>
>
>


准备好在 Debian Linux 上获得 Ubuntu MATE 的体验吧！

看下开发进度，Mate的开发活跃度明显不够了。也是好久没升级版本了，哎

>
> Ubuntu MATE 的体验将在 2023 年进入 Debian 的 MATE 版中？从这里了解更多。
>
>
>

![准备好在 Debian Linux 上获得 Ubuntu MATE 的体验吧！](/data/attachment/album/202210/09/120442obl05b63z5hl6wnh.png)

Ubuntu MATE 的创始人与维护者之一 **Martin Wimpress**，在 Ubuntu MATE 22.10 的测试版发布说明中提到了一些相当有趣的事情。

他的目标是将 Ubuntu MATE 的体验带到 Debian ?。

等等，你不是已经可以在 Debian 上安装 MATE 了吗？

是的，但是怎样使用 Debian 上的所有现代工具获得与 Ubuntu MATE 类似的用户体验呢？

### 将 Ubuntu MATE 的体验带入 Debian 的版本中

![](/data/attachment/album/202210/09/120517jynzcndsytpzpccp.jpg)

以下是 Martin 提到的内容：

>
> 用最近的标准来说，Ubuntu MATE 22.10 是一个适度更新，专注与“提高生活质量”。而这个版本的 Ubuntu MATE 没有采用你通常期望的桶状 ? 变化清单是有原因的，这是因为我一直在帮助将 Ubuntu MATE 的完整体验带到 Debian MATE ?。
>
>
>

这是很吸引人的东西。

**这是否意味着 Ubuntu MATE 未来不会有任何重大更新？**

不，Ubuntu MATE 仍然会收到更新。

另外，Martin 还澄清说，他并没有退出 Ubuntu MATE 的开发，并且将和往常一样进行。

然而，如果你想看看 Ubuntu MATE 的主要功能更新的长列表，你必须要等待一段时间。

他打算在 Debian MATE 和 Ubuntu MATE 之间提供一致的体验。

Debian MATE 在用户中不那么受欢迎并**不足为奇**。主要是因为它不提供 Ubuntu MATE 那样的现代改进。

因此，他们的目标是为 Debian MATE 带来类似的体验，这将使现有用户既可以使用 Debian 也可以使用 Ubuntu。

\*\*此外，\*\*这将使开发变得更容易：

>
> 使 Debian 和 Ubuntu 中的 MATE 体验保持一致，使所有相关人员的维护变得更加容易。
>
>
>

**那么，我们是否可以期待与 Debian 上是否能和 Ubuntu MATE 22.10（Kinetic Kudu）非常相似？**

![ubuntu mate 22.10 hud settings](/data/attachment/album/202210/09/120443vr580tl4vlp0roil.png)

大概是。但这需要时间。

>
> ? 他们希望在 Debian 12 的 Debian MATE 上提供类似的体验。我们已经知道 Debian 12 计划于 2023 年发布。因此，有足够的时间等待它。
>
>
>

你可以期待将 MATE Tweak 和 [Ayatana Indicators](https://ayatanaindicators.github.io/about/) 等应用程序集成到 Debian MATE 中。

这让我认为 Debian MATE 可以成为 Ubuntu MATE 用户寻求改变或想要尝试 Debian 的MATE 风格的绝佳选择。

当然，这并不会让即将到来的 Ubuntu MATE 22.10 变得不那么令人兴奋。它仍将包括许多有价值的好东西；你可能想查看它的 [beta 版本说明](https://ubuntu-mate.org/blog/ubuntu-mate-kinetic-kudu-release-notes/) 以了解更多信息。

? *在了解了这一发展之后，你如何看待 Debian 未来的 MATE 版本？你会为此放弃 Ubuntu MATE 吗？让我知道你的想法！*

---

via: <https://news.itsfoss.com/ubuntu-mate-debian/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed) 译者：[KevinZonda](https://github.com/KevinZonda) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Ubuntu Pro 现在免费为你提供 10 年的安全更新

公司服务器，给啥用啥，能不动就不动。

个人服务器，可以用 Arch Linux 和 Debian Sid。滚动更新，一劳永逸。

不错啊

>
> 好消息：一个免费的 Ubuntu Pro 计划，每个人都可以获得 10 年的安全更新。
>
>
>

![Ubuntu Pro 现在免费为你提供 10 年的安全更新](/data/attachment/album/202210/09/163622tdzzorkfakr41f4g.jpg)

Canonical 为 Ubuntu Pro 引入了一个免费计价层，该层针对个人使用和小规模部署。

**Ubuntu Pro** 订阅（以前称为 “Ubuntu Advantage”）最初是为企业提供的，用于为他们额外提供 5 年的 Ubuntu LTS 版本的扩展安全维护更新。

该免费计价层已在公共测试版中提供。

### 对于个人与数据中心的 Ubuntu Pro

目前作为测试版提供，Ubuntu Pro 的免费计价层可供个人用户或小型数据中心使用，最多可容纳五台机器。

随着此次发布，Canonical 首席执行官 Mark Shuttleworth 表示：

>
> 自从我们首次推出 Ubuntu LTS 以来，并为这个主要的操作系统免费提供五年的安全保障，我们的企业客户要求我们在私人商业协议下覆盖越来越广泛的开源领域。今天，我们很高兴通过免费的个人 Ubuntu Pro 订阅免费向世界上的任何人提供！
>
>
>

与标准发行版相比，Ubuntu Pro 的主要优势在于不断提供安全补丁。

![ubuntu pro 好处](/data/attachment/album/202210/09/163622x0jjaaotj5kqj980.png)

**对于希望系统稳定而又不会丢失安全更新的用户来说，这是一个难以置信的好消息。**

安全维护更新会定期推出，尤其是在发现新的 CVE（常见漏洞和暴露）时。

用户可以利用 [Livepatch](https://ubuntu.com/security/livepatch) 来应用安全补丁，而无需关闭他们的系统。这包含在 Ubuntu Pro 订阅中。

小型企业和个人还可以使用合规管理所需的各种工具，支持 PCI-DSS、HIPAA、FedRAMP 等合规标准，并作为 Ubuntu Pro 订阅的一部分。

**那么，个人和企业使用 Ubuntu 的更多激励措施？**

>
> ? 如果你最多有五台机器要用，Ubuntu Pro 的免费个人层应该是一个不折不扣正确的选择，而不是其他平台。
>
>
>

借助个人 Ubuntu Pro 计划，小规模用户现在可以享受 10 年安全保障（*5 年 LTS 更新 + 5 年扩展安全维护更新*），**其中包括对额外 23,000 个软件包的支持。**

这个免费的 Ubuntu Pro 订阅层的推出可以帮助 [Canonical](https://canonical.com/) 吸引更多用户使用 Ubuntu，这对于计算机用户采用 Linux 来说是一件好事。

你只需在他们的 [官方网站](https://ubuntu.com/pro) 上注册个人 Ubuntu Pro 订阅。

更多详情，请查看[官方公告](https://ubuntu.com//blog/ubuntu-pro-beta-release)。

>
> **[注册 Ubuntu Pro](https://ubuntu.com/pro)**
>
>
>

? *你会考虑选择免费的个人 Ubuntu Pro 订阅吗？ 或者，你认为你会每 5 年升级到新的 LTS 版本吗？*

---

via: <https://news.itsfoss.com/ubuntu-pro-free/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed) 译者：[KevinZonda](https://github.com/KevinZonda) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


负载均衡的初学者指南

Summary: 负载均衡就是将资源分配到某一时刻最需要它的地方。

负载均衡就是将资源分配到某一时刻最需要它的地方。

>
> 负载均衡就是将资源分配到某一时刻最需要它的地方。
>
>
>

![](/data/attachment/album/202210/09/171034wvrqq5qqxkjcv5nv.jpg "eight stones balancing")

当个人电脑刚开始发展的时候，一个家庭可能只有一台（或更少）的电脑。孩子们白天玩电脑游戏，家长们晚上在业务支撑系统上做会计、编程，或者漫游。然而，想象一下今天一个只有一台电脑的家庭，你可以预想到这样会产生什么样的冲突。每个人都想使用电脑，而只有一副键盘和鼠标。

随着计算机变得越来越普遍，IT 行业或多或少也出现了同样的情况。对服务和服务器的需求已经增长到了会因为用量过大而停机的程度。幸运的是，我们现在有了负载均衡的概念来帮助我们处理需求。

### 负载均衡是什么？

负载均衡是一个通用术语，指的是为了确保高效分配所管理的资源而做的事情。对于 Web 服务器的系统管理员来说，负载均衡通常意味着确保 Web 服务器软件（例如 [Nginx](https://opensource.com/business/15/4/nginx-open-source-platform)）配置了足够的工作节点来处理激增的访客。换言之，如果一个网站突然变得非常受欢迎，其访问者在几分钟内增加了四倍，那么运行服务器的软件必须能够响应每个访问者，并不能让任何访问者发现服务质量下降。对于简单的网站，这就像修改一行配置选项一样简单，但对于具有动态内容的复杂站点，每个用户都有多个数据库查询，这可能是一个严重的问题。

这个问题本应随着云计算的发展而解决，但当 Web 应用程序遇到意外激增时，无法扩展也不是不可能。

在进行负载均衡时，需要记住的重要一点是，*高效地*分配资源并不一定意味着*平均地*分配资源。并非所有任务都在任何时候都需要所有的可用资源。一个智能的负载均衡策略仅在需要资源时才为用户和任务提供资源。这通常是应用程序开发人员的领域，而不是 IT 基础架构的责任。异步应用程序对于确保离开计算机休息的用户不占用服务器上的宝贵资源至关重要。

### 负载均衡是怎么工作的？

负载均衡通过在多个计算节点上分配工作负载来避免瓶颈。这些节点可能是数据中心中的物理服务器、云环境中的容器、用于边缘计算而战略性放置的服务器、复杂应用程序框架中的独立 Java 虚拟机（JVM），或在单个 Linux 服务器上运行的守护进程。

这个想法是把一个大问题分成几个小任务，并把每个任务分配给一台专用计算机。例如，对于一个要求用户登录的网站，该网站可能托管在服务器 A 上，而登录页面和所有随附的身份验证查询都托管在服务器 B 上。这样，新用户登录帐户时就不会占用其它使用该站点的用户的资源。

#### 云计算负载均衡

云计算使用 [容器](https://opensource.com/resources/what-are-linux-containers)，因此通常没有单独的物理服务器来处理不同的任务（实际上，有许多单独的服务器，但它们被聚集在一起作为一个计算“大脑”）。相反，“<ruby> 容器荚 <rt>  pod </rt></ruby>” 是由几个容器创建的。当一个容器荚由于其用户或任务负载而开始耗尽资源时，会生成一个相同的容器荚。容器荚共享存储和网络资源，每个容器荚在创建时被分配给一个计算节点。可以根据负载需要创建或销毁容器荚，这样无论有多少用户，用户都可以体验到一致的服务质量。

#### 边缘计算

[边缘计算](https://opensource.com/article/18/5/edge-computing) 在负载均衡时考虑到了现实世界。云计算自然是一个分布式系统，但实际上，云计算的节点通常集中在几个数据中心。用户离运行云计算的数据中心越远，他们为获得最佳服务所必须克服的物理障碍就越多。即使有光纤连接和适当的负载均衡，位于 3000 英里外的服务器的响应时间也可能比仅仅 300 英里外的响应时间长。

边缘计算将计算节点带到云计算的“边缘”，试图弥合地理鸿沟，为云计算形成一种卫星网络，因此它也在良好的负载均衡工作中发挥了作用。

### 什么是负载均衡算法？

有许多负载均衡策略，它们的复杂性取决于所涉及的技术和需求。负载均衡不必复杂，而且从一开始就负载均衡很重要，即使在使用 [Kubernetes](https://opensource.com/resources/what-is-kubernetes) 和 [Keepalived](https://www.redhat.com/sysadmin/keepalived-basics) 这样的专用软件时也是如此。

当你可以设计应用程序，自己为它采取简单的预防措施时，不要依赖容器来均衡负载。如果你从一开始就将应用程序设计为模块化和临时性的，那么你将受益于通过巧妙的网络设计、容器编排和其他未来技术带来的负载均衡机会。

可以指导应用程序开发人员或网络工程师工作的一些流行算法包括：

* 按顺序将任务分配给服务器（这通常被称为轮询调度）。
* 将任务分配给当前最不繁忙的服务器。
* 将任务分配给具有响应最快的服务器。
* 随机分配任务。

举个例子，在分配特别复杂的任务时，可以组合或加权这些原则以分配到组中最强大的服务器。通常使用 [编排](https://opensource.com/article/20/11/orchestration-vs-automation)，这样管理员就不必为负载均衡寻找完美的算法或策略，尽管有时需要由管理员选择使用哪种负载均衡方案组合。

### 预料意料之外

负载均衡实际上并不是要确保在整个网络中均匀使用所有资源。负载均衡实际上是确保即使发生意外情况也能提供可靠的用户体验。良好的基础设施可以承受计算机崩溃、应用程序过载、网络流量冲击和用户错误。思考你的服务如何才能具有弹性，并从头开始相应地设计负载均衡策略。

---

via: <https://opensource.com/article/21/4/load-balancing>

作者：[Seth Kenlon](https://opensource.com/users/seth) 选题：[lujun9972](https://github.com/lujun9972) 译者：[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #784 NTP 协议面临无人维护的境地

Summary: • NTP 协议面临无人维护的境地 • Plasma 5.27 将是 Plasma 5 系列的最后一个功能版本 • Rust 成立新的团队来制定官方编码风格

首页这么大的字体是因为这是老年版？麻烦老王把正常版的地址也发下呢~

哈哈，想测试一下这样的效果如何，如果可以，就修改首页。大家都可以反馈一下。

没有竖版16：9，内容看起来就像记事本打开一部TXT

意思是，文字占满了视觉么？

最近我看一些国外的网站，他们的标题字体都特别大，而此前也有人反馈，首页图太多太多，所以我做了这样的尝试。

目前这个列表中有四种样式：只标题、标题和摘要、带小题图、带大题图，这是依据阅读量、评论量和是否是当天文章来决定的。

没有自适应显示宽度的响应式设计，你把屏幕显示旋转90°看看

还是改回去比较好，大标题看起来太怪异了

看起来是一种混乱美。

来自江苏苏州的 Chrome Mobile 106.0|GNU/Linux 用户

![](/data/attachment/album/202210/09/183427w2obdfsvolzvlq5d.jpg)

![](/data/attachment/album/202210/09/183433qnw9uizk88fgznwi.jpg)

### NTP 协议面临无人维护的境地

NTP 是互联网的关键组成部分，几乎所有设备都运行 NTP 来保持时间一致的因果关系。它是由 David Mills 创造的。几十年来，他是决定 NTP 应该如何工作的人。但他对该协议的维护已经走向终点，他生来患有青光眼，如今已完全失明，生于 1938 年的他如今已经 84 岁高龄。而他的一位最忠实的合作者 Harlan Stenn 如今也有 66 岁了，而且退休储蓄已经耗尽了。Mills 对社区提交的代码要求严格，递交一个修复问题的补丁是不够的，还会要求给出数学分析和证明，这对于绝大多数开源贡献者来说很难。

>
> **[消息来源：纽约客](https://www.newyorker.com/tech/annals-of-technology/the-thorny-problem-of-keeping-the-internets-time)**
>
>
>

>
> 老王点评：互联网的一个并不算不起眼的重要基石，如今看起来需要更多的关注和支持。
>
>
>

![](/data/attachment/album/202210/09/183444zagj24pzgqjupctt.jpg)

### Plasma 5.27 将是 Plasma 5 系列的最后一个功能版本

由于 Qt 6 移植和 KDE 框架 6 的开发正在全速进行，KDE 开发者决定在今年 12 月底冻结 KDE 框架 5 的功能，已经存在了 8 年的 Plasma 5 的最后一个版本将是 5.27。KDE Plasma 5.26 将在下周发布，5.27 应该在明年 2 月发布。因此，KDE Plasma 6.0，如果不出意外将在明年六月发布。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Plasma-5.27-Last-5-Release)**
>
>
>

>
> 老王点评：不知不觉，KDE Plasma 5 居然都 8 年了啊！
>
>
>

![](/data/attachment/album/202210/09/183457d19u9fzgh91hsuht.jpg)

### Rust 成立新的团队来制定官方编码风格

每种语言都有风格指南，如果它们足够流行，可能会有来自主要用户的多种风格指南，比如谷歌有针对 C++ 的指南，Chrome 就是用这种语言风格编写的。Rust 已经有一个官方的风格指南，比如，使用空格而不是制表符，缩进必须是 4 个空格等等。但在 2016 年至 2018 年期间负责编写风格指南的团队已经“按设计”结束了，所以 Rust 现在决定创建新的风格团队。新的团队有三个目标：对新的 Rust 结构的样式进行确定；演化现有的 Rust 风格；定义发展 Rust 风格的机制，同时考虑到向后兼容。

>
> **[消息来源：Rust](https://blog.rust-lang.org/inside-rust/2022/09/29/announcing-the-rust-style-team.html)**
>
>
>

>
> 老王点评：良好的风格指南确实对语言的推广发展很有裨益。
>
>
>


一个全新的用于英伟达显卡的开源 Vulkan 驱动已经准备好测试了！

Summary: 为英伟达显卡开发的一个全新的开源驱动正在开发中！这里有一些好的进展……

能实现，但不长久，最终可能会步入 nouveau 后尘，社区的精力也是有限的。

好久没用双显卡机器了，弱弱的问下，可以实现双显卡自动切换么？

有，但都不完美。参考: wiki.archlinux.org/title/NVIDIA_Optimus

为英伟达显卡开发的一个全新的开源驱动正在开发中！这里有一些好的进展……

>
> 为英伟达显卡开发的一个全新的开源驱动正在开发中！这里有一些好的进展……
>
>
>

![一个全新的用于英伟达显卡的开源 Vulkan 驱动已经准备好测试了！](/data/attachment/album/202210/10/152156oi69fi9zylu9ai9d.png)

**NVK** 是一个全新的用于英伟达显卡的开源 Vulkan 驱动，它的目标是成为新的主流显卡驱动。

这成为可能的部分原因是因为英伟达开源了数据中心 GPU 和消费级 GPU（GTX/RTX）的 GPU 内核模块。

>
> **[英伟达在改善其 GPU 在 Linux 上的体验方面迈出了重要的一步](https://news.itsfoss.com/nvidia-open-source-linux/)**
>
>
>

它使开发人员能够改进开源驱动程序并启用比以前更多的功能。

让我们来看看 NVK 可以提供什么。

### 新的适用于英伟达 GPU 的 NVK 开源驱动程序

**Jason Ekstrand**（Collabora 的工程师）和 Red Hat 的其他人已经在过去几个月里编写了 NVK 的代码。

他们可以利用 Turing 系列显卡提供的统一固件 BLOB，然后在其上构建 Vulkan 支持。

**但是，不是已经有了 nouveau 开源驱动程序了吗？**

NVK 与其他的 nouveau 驱动非常不同，因为它是从头开始编写的。

nouveau 是一个主要的英伟达显卡的开源驱动程序，已经年久失修了，试图在它的基础上构建是一个很多人都无法承担的任务。

当然，它是由有很多才华的工程师开发的，但是缺乏公司的支持和贡献者的影响了它的发展。

**NVK 旨在克服这些问题，同时专注于对 Turing 系列及更高版本 GPU 的支持。**

由于内核的开发方式，对于 Kepler、Maxwell 和 Pascal 等较旧的 GPU 的支持可能不会很容易地加入 NVK。它也许极大地依赖于新内核，从而只支持较新的 GPU。

同时，nouveau 内核接口与 Vulkan 不兼容，阻碍了对较旧 GPU 的支持。

但是，仍然有进一步测试的空间，这可能会让 NVK 可以支持较旧的 GPU。

当然，随着更多的社区贡献，NVK 可以通过增加额外的功能和 GPU 支持来改进。

### 如何尝试它？

NVK 目前处于非常初级的状态，有很多功能缺失，并且正在持续开发中。

**所以，它还不适合让所有类型的用户尝试。**

你还是可以通过拉取 [freedesktop.org](http://freedesktop.org) 上的 [nouveau/mesa 项目](https://gitlab.freedesktop.org/nouveau/mesa) 的 nvk/main 分支并构建它来尝试它。

如果你想的话，你也可以通过贡献到该项目下的 [nvk/main 分支](https://gitlab.freedesktop.org/nouveau/mesa/-/tree/nvk/main/) 来帮助 NVK 的开发。

对于更多的技术信息，你可以参考 [官方公告](https://www.collabora.com/news-and-blog/news-and-events/introducing-nvk.html)。

### 未来潜力

NVK 有很多潜力，尤其是与老化的 [nouveau](https://nouveau.freedesktop.org/) 图形驱动套件相比。

这可以为 nouveau 带来一个合适的继承者，同时为 Linux 提供一个带有很多功能的、主流的开源英伟达图形驱动套件。

? *你对此有什么看法？你认为这最终能够实现 nouveau 驱动程序所未能实现的吗？*

---

via: <https://news.itsfoss.com/nvidia-nvk/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed) 译者：[Cubik65536](https://github.com/Cubik65536) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


当今世界的开源安全问题

Summary: 可能是当今大多数公司最可行的选择，但它也伴随着自己的问题。

什东西都绕不开政治

来自江苏苏州的 Internet Explorer 9.0|Windows 7 用户

可能是当今大多数公司最可行的选择，但它也伴随着自己的问题。

![](/data/attachment/album/202210/10/160918vmfxmsm4bnwi0nb4.jpg)

>
> 开源代码可能是当今大多数公司最可行的选择，但它也伴随着自己的问题。
>
>
>

许多人支持使用 <ruby> 开源软件 <rt>  open source software </rt></ruby>（OSS）。毕竟，我们为什么要不断地尝试构建代码来解决别人已经解决过的问题？为什么不分享信息并逐步和迭代地增强当前的开源解决方案呢？这些<ruby> 平等主义价值观 <rt>  egalitarian values </rt></ruby>，可能是整个文明的根本，更不用说软件了，但还是包含了几千年来一直存在的冲突。

开源软件安全的问题在于，尽管任何人都可以查看源代码，但这并不意味着他们会这么做。有一些广泛使用的开源项目仅由数量有限的工程师维护。这些工程师无法完全自愿地提供时间和精力，因为他们也需要支付他们的账单。

即使对于更复杂的开源项目，这也是一个问题。举个例子，Linux 内核项目由 3000 多万行代码组成，包含数百个需要解决的缺陷，并有近 2000 名活跃的开发者。每个活跃的开发者都写了超过 15000 行的代码。

根据 Linux 基金会最近的一项研究，一个应用程序平均有 5.1 个重大漏洞仍未解决，41% 的企业对其开源软件的安全性缺乏信心。而更糟糕的是，只有 49% 的企业拥有开源安全策略。

即使开源软件有安全漏洞，这也不能保证它能被修复。调查显示，目前修复一个漏洞平均需要 97.8 天，使使用该软件的企业在几个月内容易受到攻击。这就是开源软件安全有时被忽视的地方：就像好人可以寻找代码中的错误和漏洞来修复它们一样，坏人也可以寻找同样的漏洞来利用它们。

仅仅依靠志愿者社区来发现漏洞、报告漏洞和修复漏洞是一个漫长的过程。在你继续受益于开源的广泛优势的同时，花钱请人检查你的开源解决方案的安全性可以帮助弥补这个问题。

由于必须部署开源软件的更新和补丁以保证系统的安全，这一要求会带来独特的困难。如果你的解决方案依赖于某个软件版本，更新你的关键任务软件可能会导致功能损失和/或计划外的停机。当情况对业务至关重要时，聘请专家来回传补丁并维护一个时间更长的版本可能比让大型社区愿意去做更加优雅。

开源社区经常使用的一句话是：“这是开源的，去改变它吧！”它强调了一个关键点：当别人在项目中投入时间、精力或金钱的时候，期望白白得到良好的安全水平是不合理的，也是不可持续的。

要么按原定计划为开源做出贡献，改进代码并为他人发布，要么聘请专业人士管理开源代码并在必要时进行调试，这些都是选择。然而，这个行业无法承担完全不做贡献。

---

via: <https://www.opensourceforu.com/2022/10/security-issues-with-open-source-in-todays-world/>

作者：[Laveesh Kocher](https://www.opensourceforu.com/author/laveesh-kocher/) 选题：[lkxed](https://github.com/lkxed) 译者：[KevinZonda](https://github.com/KevinZonda) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


如何在最小安装的 CentOS、RHEL、Rocky Linux 中设置互联网

都有洁癖要最小化安装了，肯定得避免再装更多不必要的软件啊。iproute2 和 systemd 系统都带吧。

1. 查看网络接口: ip link show。

2. 在 /etc/systemd/network/ 中创建一个名为 default.network 的文件。

3. 写入最后面的内容。

4. 执行 systemctl enable systemd-networkd 命令。

```Text<br />
[Match]<br />
Name=接口<br />
<br />
[Network]<br />
Gateway=网关<br />
Address=IP地址<br />
```

测试

1 packets transmitted, 0 received, 100% packet loss, time 0ms

![](/data/attachment/album/202210/10/162428grhkhtayzt4cdh5k.jpg)

>
> 在最小安装的服务器中设置互联网或网络非常容易。本指南将解释如何在最小安装的 CentOS、RHEL 和 Rocky Linux 中设置互联网或网络。
>
>
>

当你安装了任何服务器发行版的最小安装环境，你将没有任何 GUI 或桌面环境来设置你的网络或互联网。因此，当你只能访问终端时，了解如何设置互联网非常重要。NetworkManager 工具提供了必要的工具，辅以 systemd 服务来完成这项工作。以下是方法。

### 在最小安装的 CentOS、RHEL、Rocky Linux 中设置互联网

在你完成了服务器的安装后，启动进入服务器终端。理想情况下，你会看到一个终端提示符。使用 root 或管理员账户登录。

首先，尝试使用 [nmcli](https://linux.die.net/man/1/nmcli) 检查网络接口的状态和详细信息。`nmcli` 是用于控制 NetworkManager 服务的命令行工具。使用以下命令进行检查。

```
nmcli device status

```

这将显示设备名称、状态等。

![nmcli device status](/data/attachment/album/202210/10/162430gzjmbm9azqqa9mz1.jpg)

运行工具 `nmtui` 来配置网络接口。

`nmtui` 是 NetworkManager 工具的一部分，它为你提供了一个友好的用户界面来配置网络。

这是 `NetworkManager-tui` 包的一部分，在你完成最小服务器安装后默认安装。

```
nmtui

```

单击 nmtui 窗口中的“<ruby> 编辑连接 <rt>  Edit a connection </rt></ruby>”。

![nmtui - 选择选项](/data/attachment/album/202210/10/162532x96yjq63yl66ys90.jpg)

选择接口名称

![选择要编辑的接口](/data/attachment/album/202210/10/162538in59jmcmnbtstznc.jpg)

在“<ruby> 编辑连接 <rt>  Edit Connection </rt></ruby>”窗口中，为 IPv4 和 IPv6 选择“<ruby> 自动 <rt>  Automatic </rt></ruby>”选项。并选择“<ruby> 自动连接 <rt>  Automatically Connect </rt></ruby>”。完成后按 “OK”。

![nmtui - 编辑连接](/data/attachment/album/202210/10/162543dh1k9vjy9jymbmvs.jpg)

使用以下命令通过 [systemd systemctl](https://www.debugpoint.com/2020/12/systemd-systemctl-service/) 重启 NetworkManager 服务。

```
systemctl restart NetworkManager

```

如果一切顺利，你可以在最小安装的 CentOS、RHEL 和 Rocky Linux 服务器中连接到网络和互联网。前提是你的网络有互联网连接。你可以使用 `ping` 来验证它是否正常工作。

![设置最小化服务器互联网 - CentOS Rocky Linux RHEL](/data/attachment/album/202210/10/162550pvs7lrylysvdqxs6.jpg)

### 附加技巧：在最小化服务器中设置静态 IP

当你将网络配置设置为自动时，接口会在你连接到互联网时动态分配 IP。在你设置局域网的某些情况下，你可能希望将静态 IP 分配给你的网络接口。这非常容易。

打开你的网络配置脚本。将 `ens3` 改为为你自己的设备名。

```
vi /etc/sysconfig/network-scripts/ifcfg-ens3

```

在上面的文件中，使用 `IPADDR` 属性添加所需的 IP 地址。保存文件。

```
IPADDR=192.168.0.55

```

在 `/etc/sysconfig/network` 中为你的网络添加网关。

```
NETWORKING=yes
HOSTNAME=debugpoint
GATEWAY=10.1.1.1

```

在 `/etc/resolv.conf` 中添加任意公共 DNS 服务器。

```
nameserver 8.8.8.8
nameserver 8.8.4.4

```

然后重启网络服务。

```
systemctl restart NetworkManager

```

这就完成了静态 IP 的设置。你还可以使用 `ip addr` 命令检查 IP 详细信息。

### 总结

我希望本指南可以帮助你在最小化安装的服务器中设置网络、互联网和静态 IP。如果你有任何问题，请在评论区告诉我。

---

via: <https://www.debugpoint.com/setup-internet-minimal-install-server/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #785 Linux 之父的 PC 挂了，恐影响 Linux 6.1 发布

Summary: • Linux 之父的 PC 挂了，恐影响 Linux 6.1 发布 • 龙架构已初步支持开源鸿蒙操作系统 • 英特尔确认 Alder Lake BIOS 源代码被泄露

Linux 世界应该要众筹Linux Torvalds购买电脑硬件!!花鸡（不知道怎么打表情，用文字代替吧）

好家伙，今天在捣鼓字体，一打开网站，还以为字体配错了呢。

哈哈，Linus 怕是不缺买电脑的钱。

哈哈，不是你的字体的锅~我想改版试试看。

我觉得改版改的挺好的！

![](/data/attachment/album/202210/10/192437pj779nu1h37v7h8j.jpg)

![](/data/attachment/album/202210/10/192444lides9pn2lnpw9ui.jpg)

### Linux 之父的 PC 挂了，恐影响 Linux 6.1 发布

两年前我们 [报道](/article-12261-1.html) 过，Linus Torvalds 攒了一台新电脑，一晃两年半过去了，如今，这台电脑的内存条坏了，频繁出现机器不稳定甚至编译器损坏的情况。当时，Torvalds 本来想买 ECC 内存，但是又嫌太贵，于是买了 4 条便宜的 16GB DDR4-2666 的内存。目前，Torvalds 使用他外出携带的 MacBook Pro 工作，但是拖慢了他的工作进度。他说，“我正在我的笔记本电脑上进行合并（非常缓慢），同时在等待新的 ECC 内存条的到来。”。

>
> **[消息来源：The Register](https://www.theregister.com/2022/10/10/linus_torvalds_ecc_memory_fail/)**
>
>
>

>
> 老王点评：谁能想到，整个 Linux 世界的进步瓶颈就卡在几条内存上。?
>
>
>

![](/data/attachment/album/202210/10/192454issltfflfc8hfps4.jpg)

### 龙架构已初步支持开源鸿蒙操作系统

龙芯中科宣布，开源鸿蒙（OpenHarmony）操作系统与龙芯 2K0500 开发板完成适配验证，龙架构（LoongArch）平台对于开源鸿蒙已形成初步支持。龙芯 2K0500 是基于 64 位 LA264 处理器核设计的高集成度处理器芯片，该芯片主要面向工控互联网应用、打印终端、BMC 等应用场景。

>
> **[消息来源：龙芯中科](https://mp.weixin.qq.com/s/VVqItr7wWf6SZLydtKI4Ag)**
>
>
>

>
> 老王点评：这对于龙芯和鸿蒙都是一小步，但是或许会带来更多想象空间。
>
>
>

![](/data/attachment/album/202210/10/192507knuhyddddddnlmdk.jpg)

### 英特尔确认 Alder Lake BIOS 源代码被泄露

英特尔 Alder Lake BIOS 源代码被泄露到 4chan 和 Github，这个 6GB 的文件包含用于构建和优化 BIOS/UEFI 镜像的工具和代码。但英特尔“不认为这暴露了任何新的安全漏洞”，英特尔称，“这段代码属于我们的‘断路器项目’中的漏洞赏金计划，我们鼓励任何可能发现潜在漏洞的研究人员通过该计划告知我们。”

>
> **[消息来源：Tom's Hardware](https://www.tomshardware.com/news/intel-confirms-6gb-alder-lake-bios-source-code-leak-new-details-emerge)**
>
>
>

>
> 老王点评：这件事或许没有英特尔说的那么轻描淡写，如果真的无关紧要，何不开源呢？
>
>
>


谷歌 AI 推出新的数组存储开源库

Summary: 谷歌 AI 引入了一个用于数组存储的高性能开源库 TensorStore。

谷歌 AI 引入了一个用于数组存储的高性能开源库 TensorStore。

![](/data/attachment/album/202210/11/101916slcfkc1mcdi69ao6.jpg)

>
> 谷歌 AI 引入了一个用于数组存储的高性能开源库 TensorStore。
>
>
>

谷歌开发的开源 C++ 和 Python 框架 TensorStore 旨在加速大型多维数组的读写设计。覆盖单一大型坐标系的多维数据集通常用于当代计算机科学和机器学习应用程序中。使用这些数据集具有挑战性，因为客户经常希望进行涉及多个工作站并行操作的调查，并且可能会以不可预测的间隔和不同的规模接收和输出数据。

谷歌研究院开发了 TensorStore，该库为用户提供了一个可以管理巨大数据集的 API，而无需复杂的硬件，以解决数据存储和操作问题。该库支持许多存储系统，包括本地和网络文件系统、谷歌云存储等。

为了加载和处理大量数据，TensorStore 提供了一个简单的 Python API。任何任意大小的基础数据集都可以加载和更新，而无需将数据集完整存储在内存中，因为在需要精确切片之前不需要在内存中读取或保存实际数据。

这是通过索引和操作语法实现的，它与 NumPy 操作的语法非常相似。除了虚拟视图、广播、对齐和其他复杂的索引功能，TensorStore 还支持如数据类型转换、降低取样和随意创建的数组这些功能。

此外，TensorStore 包含一个异步 API，可以并发进行读取或写入操作。在执行其他工作时，软件可以进行内存缓存处理（可配置），从而减少在访问常用数据时处理较慢存储系统的需要。

大型数值数据集需要大量的处理能力来检查和分析。实现这一点的常用方法是在分散在许多设备上的大量 CPU 或加速器内核之间并行化任务。在保持出色速度的同时并行分析单个数据集的能力一直是 TensorStore 的关键目标。 PaLM、脑图和其他复杂的大规模机器学习模型是 TensorStore 应用案例的一些例子。

---

via: <https://www.opensourceforu.com/2022/10/google-ai-unveils-a-new-open-source-library-for-array-storage/>

作者：[Laveesh Kocher](https://www.opensourceforu.com/author/laveesh-kocher/) 选题：[lkxed](https://github.com/lkxed) 译者：[KevinZonda](https://github.com/KevinZonda) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


用这个开源工具从任何网站获取变化提醒

Summary: 使用 changedetection.io 在网站发生变化或更新时获得提醒。

访问不了...

使用 changedetection.io 在网站发生变化或更新时获得提醒。

>
> 使用 changedetection.io 在网站发生变化或更新时获得提醒。
>
>
>

![](/data/attachment/album/202210/11/153605ikpi81s1mz8wak2z.jpg)

那一年是 2020 年，关于大流行病的消息迅速涌来，每个人都感到完全被类似的新闻文章所淹没，提供了不同程度的更新。

但我需要知道的是，我们的官方准则何时改变。最后，这就是对我来说最重要的事情。

无论关注的是大流行病还是最新的科技新闻，提前了解网站内容的变化都至关重要。

changedetection.io 项目为网站变更检测和通知提供了一个简单但强大的开源解决方案。它很容易设置，而且可以通知 70 多个（还在不断增加）不同的通知系统，如 Matrix、Mattermost、[Nextcloud](https://opensource.com/tags/nextcloud)、[Signal](https://opensource.com/article/19/10/secure-private-messaging)、[Zulip](https://opensource.com/article/22/3/open-source-chat-zulip)、[Home Assistant](https://opensource.com/article/20/11/home-assistant)、电子邮件等等。它还能通知专有应用，如 Discord、Office365、Reddit、Telegram 和许多其他应用。

但 changedetection.io 并不只是局限于观察网页内容。你也可以监视 XML 和 JSON 源，它将建立一个 RSS 馈送，记录变化的网站。

由于其内置的 JSON 简单存储系统，不需要设置复杂的数据库来接收和存储信息。你可以 [使用 Docker 镜像运行](https://github.com/dgtlmoon/changedetection.io#docker) 或用 `pip` 安装它。该项目有一个 [全面的维基帮助页](https://github.com/dgtlmoon/changedetection.io/wiki)，大多数常见的问题都有涵盖。

对于使用复杂 JavaScript 的网站，你可以用内置的 [Playwright 内容获取器](https://github.com/dgtlmoon/changedetection.io/wiki/Playwright-content-fetcher) 将你的 changedetection.io 连接到 Chromium 或 Chrome 浏览器。

运行后，在你的浏览器（默认情况下是 `http://localhost:5000`）中访问该应用。如果你的电脑可以从外部网络访问，你可以在 <ruby> 设置 <rt>  Settings </rt></ruby>中设置一个密码。

![change detection watch list](/data/attachment/album/202210/11/153652i5pttskcmttapn6a.png)

提交你想监控的页面的 URL。有几个与如何过滤该网页有关的设置。例如，你很可能不想知道一家公司在其网站页脚列出的股票价格何时发生变化，但你可能想知道他们在其博客上发布的新闻文章。

### 监控一个网站

想象一下，你想添加你最喜欢的网站 [Opensource.com](http://Opensource.com) 进行监控。你只想知道主要标注文章何时包含 “python” 一词，并且通过 Matrix 收到通知。

要做到这点，首先要使用“<ruby> 视觉选择器 <rt>  Visual Filter Selector </rt></ruby>”工具。（这需要连接 **playwright** 浏览器界面）。

![Find an element to monitor](/data/attachment/album/202210/11/153652hgln3fb3l84d2kg8.png)

该工具会自动计算出针对内容的最佳 Xpath 或 CSS 过滤器。否则，你会从每天的页面更新中得到大量的噪音。

接下来，访问“<ruby> 过滤器和触发器 <rt>  Filters & Triggers </rt></ruby>”标签。

![Filters and triggers](/data/attachment/album/202210/11/153730txr5eyyyder733da.jpg)

在 “<ruby> CSS/JSON/XPATH 过滤器 <rt>  CSS/JSON/XPATH Filter </rt></ruby>”区域（蓝色圆圈），你可以看到上一步自动生成的 CSS 过滤器。

有几个有用的过滤器，比如“<ruby> 移除元素 <rt>  Remove elements </rt></ruby>”（适合移除嘈杂的元素）、“<ruby> 忽略文本 <rt>  Ignore text </rt></ruby>”、“<ruby> 触发/等待文本 <rt>  Trigger/wait for text </rt></ruby>”，和“<ruby> 如果文本匹配则阻止变化检测 <rt>  Block change-detection if text matches </rt></ruby>”（用于等待一些文本消失，如“售罄”）。

在“<ruby> 触发/等待文本 <rt>  Trigger/wait for text </rt></ruby>”（红色圆圈）中，输入你想监测的关键词。（在这个例子中是 “python”）。

最后一步是在“<ruby> 通知 <rt>  Notifications </rt></ruby>”选项卡中，你要在那里配置你想收到的通知。下面我使用 Matrix API 添加了一个 Matrix 房间作为通知目标。

![Notifications tab](/data/attachment/album/202210/11/153652ub355n575ayyb17t.png)

通知的 URL 的格式是 `matrixs://username:password@matrix.org/#/room/#room-name:matrix.org`。

然而，[t2Bot](https://t2bot.io/) 格式也支持。这里有更多的 [Matrix 通知选项](https://github.com/caronc/apprise/wiki/Notify_matrix)。

就是这些了! 现在只要内容有变化，你就会通过 Matrix 收到信息。

### 还有更多

changedetection.io 还有很多东西。如果你喜欢调用一个自定义的 JSON API，你不需要使用通知的 API（使用 `jsons://` ）。你还可以创建一个自定义的 HTTP 请求（POST 和 GET），在检查前执行 JavaScript（也许是为了预先填充一个用户名和密码的登录字段），以及更多有趣的功能，更多的功能将陆续推出。

不要再浏览网站，而是开始监测网络吧！

*图片提供：(Leigh Morresi, CC BY-SA 4.0)*

---

via: <https://opensource.com/article/22/9/changedetection-io-open-source-website-changes>

作者：[Leigh Morresi](https://opensource.com/users/dgtlmoon) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


我在 Linux 中使用的 5 个 Git 配置

Summary: 这份简要指南能够帮助你快速开始使用 Git，以及配置一些选项。

首页是一种混乱美。

没有进行代理设置我不是很认可，当然人家不需要代理（笑）

这份简要指南能够帮助你快速开始使用 Git，以及配置一些选项。

>
> 这份简要指南能够帮助你快速开始使用 Git，以及配置一些选项。
>
>
>

![](/data/attachment/album/202210/11/162338c314ls57bg51hd45.jpg)

在 Linux 中设置 Git 十分简单，但为了获得完美的配置，我做了以下五件事：

1. 创建全局配置
2. 设置默认名称
3. 设置默认邮箱地址
4. 设置默认分支名称
5. 设置默认编辑器

我使用 Git 管理我的代码、命令行脚本以及文档版本。这意味着每次我开始一项新的任务，首先我需要创建一个文件目录并将其添加到 Git 库中：

```
$ mkdir newproject
$ cd newproject
$ git init

```

有一些我一直想要的常规设置。不多，但可以避免我每次都进行配置。我喜欢利用 Git 的 *全局* 配置功能。

Git 提供了进行手动配置的 `git config` 命令，但这有一些注意事项。例如，通常你会设置邮箱地址。你可以通过运行 `git config user.email 你的邮件地址` 命令进行设置。然而，这只会在你当前所在的 Git 目录下起作用。

```
$ git config user.email alan@opensource.com
fatal: not in a git directory

```

此外，当这个命令在 Git 仓库中运行时，它只会配置特定的一个仓库。在新的仓库中，你不得不重复这个步骤。我可以通过全局配置来避免重复。选项 `--global` 会指示 Git 将邮箱地址写入全局配置 `~/.gitconfig` 文件中，甚至在必要时会创建它：

>
> 请记住，波浪线（`~`）代表你的主文件夹。在我的电脑中它是 `/home/alan`。
>
>
>

```
$ git config --global user.email alan@opensource.com
$ cat ~/.gitconfig
[user]
        email = alan@opensource.com

```

这里的缺点是，如果你有大量偏好设置，需要输入很多命令，这将花费大量时间并且很容易出错。Git 提供了更加快捷有效的方式，可以直接编辑你的全局配置文件——这是我列表中的第一项！

### 1、创建全局配置

如果你刚开始使用 Git，或许你还没有该文件。不用担心，让我们直接开始。只需要用 `--edit` 选项：

```
$ git config --global --edit

```

如果没有该文件，Git 将会创建一个包含以下内容的新文件，并使用你终端的默认编辑器打开它：

```
# This is Git's per-user configuration file.
[user]
# Please adapt and uncomment the following lines:
#       name = Alan
#       email = alan@hopper
~
~
~
"~/.gitconfig" 5L, 155B                                     1,1           All

```

现在我们已经打开了编辑器，并且 Git 已经在后台创建了全局配置文件，我们可以继续接下来的设置。

### 2、设置默认名称

名字是该文件中的首要条目，让我们先从它开始。用命令行设置我的名称是 `git config --global user.name "Alan Formy-Duval"`。不用在命令行中运行该命令，只需要在配置文件中编辑 `name` 条目就行：

```
name = Alan Formy-Duval

```

### 3、设置默认邮箱地址

邮箱地址是第二个条目，让我们添加它。默认情况下，Git 使用你的系统提供的名称和邮箱地址。如果不正确或者你想要更改，你可以在配置文件中具体说明。事实上，如果你没有配置这些，Git 在你第一次提交时会友好的提示你：

```
Committer: Alan <alan@hopper>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate....

```

在命令行中运行 `git config --global user.email "alan@opensource.com"` 会设置好我的邮箱。同样，我们在配置文件中编辑 `email` 条目，提供你的邮箱地址：

```
email = alan@opensource.com

```

我喜欢设置的最后两个设置是默认分支名称和默认编辑器。当你仍在编辑器中时，需要添加这些指令。

### 4、设置默认分支名称

目前有一种趋势，即不再使用 `master` 作为默认分支名称。事实上，在新存储库初始化时，Git 将通过友好的消息提示更改默认分支名称：

```
$ git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint:   git config --global init.defaultBranch <name>

```

这个名为 `defaultBranch` 的指令需要位于一个名为 `init` 的新部分中。现在普遍接受的是，许多程序员使用 `main` 这个词作为他们的默认分支。这是我喜欢使用的。将此部分后跟指令添加到配置中：

```
[init]
            defaultBranch = main

```

### 5、设置默认编辑器

第五个设置是设置默认的编辑器。这是指 Git 将使用的编辑器，用于在你每次将更改提交到存储库时输入你的提交消息。不论是 [nano](https://opensource.com/article/20/12/gnu-nano)、[emacs](https://opensource.com/resources/what-emacs)、[vi](https://opensource.com/article/19/3/getting-started-vim) 还是其他编辑器，每个人都有他喜欢的。我喜欢用 vi。添加 `core` 部分，并设置 `editor` 指令为你喜欢的编辑器。

```
[core]
            editor = vi

```

这是最后一项。退出编辑器。Git 在主目录下保存全局配置文件。如果你再次运行编辑命令，将会看到所有内容。注意配置文件是明文存储的文本文件，因此它可以很容易使用文本工具查看，如 [cat](https://opensource.com/article/19/2/getting-started-cat-command) 命令。这是我的配置文件内容：

```
$ cat ~/.gitconfig
[user]
        email = alan@opensource.com
        name = Alan Formy-Duval
[core]
        editor = vi
[init]
        defaultBranch = main

```

这是一个简单的指南，可以让你快速开始使用 Git 和它的一些配置选项。

---

via: <https://opensource.com/article/22/9/git-configuration-linux>

作者：[Alan Formy-Duval](https://opensource.com/users/alanfdoss) 选题：[lkxed](https://github.com/lkxed) 译者：[Donkey-Hao](https://github.com/Donkey-Hao) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #786 ISC DHCP 服务器停止维护

Summary:
• ISC DHCP 服务器停止维护 • VirtualBox 7.0 正式发布 •
 超过四成的电脑仍然无法升级到 Windows 11

![](/data/attachment/album/202210/11/182837yzkvsc3k1gygzgzg.jpg)

![](/data/attachment/album/202210/11/182845djr66drjvopqpvmm.jpg)

### ISC DHCP 服务器停止维护

上周，ISC 发布了其 DHCP 服务器（dhcpd）的最后的维护版本，并宣布该服务器项目将在今年年底结束。除非发现非常严重的安全漏洞，ISC 没有计划继续发布更新，也同时停止了其代码的维护。发布于 1997 年的 ISC DHCP 是一个动态主机设置协议（DHCP）的服务器程序。ISC 结束这个项目是因为它不是为可测试性设计的，修改代码的风险性非常高，因此过去几年已经很少修改代码了。ISC 也发布了新的名为 Kea 的 DHCP 服务器作为替代。

>
> **[消息来源：ISC](https://www.isc.org/blogs/isc-dhcp-eol/)**
>
>
>

>
> 老王点评：除了 dhcpd，我从未注意过任何其它 DHCP 服务器，这么流行的一个默认级的开源软件就停止维护了，感觉还是很可惜。另外一个 ISC 的知名软件就是 DNS 服务器 BIND 了，不知道以后的下场如何。
>
>
>

![](/data/attachment/album/202210/11/182855hb3xd3zyv3zwgzvg.jpg)

### VirtualBox 7.0 正式发布

甲骨文今天推出了 VirtualBox 7.0 版本，引入了诸多改进。最值得关注的改进是支持虚拟机完全加密运行，包括加密配置文件以及已保存的状态。不过加密仅支持通过命令行界面解开。此外还支持管理云端虚拟机；支持 DirectX 11 3D 加速；支持安全启动，等等。上一个大版本 VirtualBox 6.0 是 2018 年推出的。

>
> **[消息来源：VirtualBox](https://www.virtualbox.org/wiki/Changelog-7.0)**
>
>
>

>
> 老王点评：我觉得甲骨文还值得称道的开源贡献之一就是 VirtualBox 了，还好还在继续推出大版本更新。
>
>
>

![](/data/attachment/album/202210/11/182910yjlv56md417rj9sl.jpg)

### 超过四成的电脑仍然无法升级到 Windows 11

资产管理供应商 Lansweeper 称，在其测试的 6 万个组织的约 2700 万台 PC 中，有 42.76% 未能通过 CPU 测试，有 71.5% 没有通过内存测试，14.66% 没有通过 TPM 测试。研究还发现，Windows 11 采用率正在提高，在 1.44% 的计算机上运行，而在 1 月份只有 0.52%。另外，在被调查的商业设备中，约有 4.82% 的设备运行的是没有完整支持的操作系统，0.91% 的服务器已经报废。

>
> **[消息来源：The Register](https://www.theregister.com/2022/10/10/windows_11_adoption/)**
>
>
>

>
> 老王点评：不如把这些不能升级的电脑装上 Linux 吧~
>
>
>


使用 PostgreSQL 建立你的数据库

Summary: PostgreSQL 是最灵活的数据库之一，并且它是开源的。

PostgreSQL 是最灵活的数据库之一，并且它是开源的。

![](/data/attachment/album/202210/12/100311t4k1k8hfmh4df5hh.jpg)

>
> PostgreSQL 是最灵活的数据库之一，并且它是开源的。
>
>
>

数据库是以一种有组织且灵活的方式存储信息的工具。电子表格在本质上就是一个数据库，但是图形化应用程序这一限制使得大多数的电子表格应用程序对程序员毫无用处。随着 [边缘计算](https://www.redhat.com/en/topics/edge-computing/what-is-edge-computing?intcmp=7013a000002qLH8AAM) 和物联网设备成为重要的平台，开发者们需要更有效且轻量级的方法，来存储、处理、查询大量的数据。我最爱的一种组合是使用 [Lua 连接](https://github.com/arcapos/luapgsql) PostgreSQL 数据库。无论你使用什么编程语言，PostgreSQL 一定是数据库的绝佳选择，但是在使用 PostgreSQL 之前，首先你需要知道一些基本的东西。

### 安装 PostgreSQL

在 Linux 上安装 PostgreSQL，要使用你的软件库。在 Fedora，CentOS，Megeia 等类似的 Linux 版本上使用命令：

```
$ sudo dnf install postgresql postgresql-server

```

在 Debian， Linux Mint， Elementary 等类似的 Linux 版本上使用命令：

```
$ sudo apt install postgresql postgresql-contrib

```

在 macOs 和 Windows 上，可以从官网 [postgresql.org](https://www.postgresql.org/download/) 下载安装包。

### 配置 PostgreSQL

大多数发行版安装 PostgreSQL 数据库时没有启动它，但是为你提供了一个脚本或 [systemd 服务](https://opensource.com/article/21/4/sysadmins-love-systemd)，能够可靠地启动 PostgreSQL。但是，在启动 PostgreSQL 之前，必须创建一个数据库集群。

#### Fedora

在 Fedora，CentOS 等类似的版本上，PostgreSQL 安装包中提供了一个 PostgreSQL 配置脚本。运行这个脚本，可以进行简单地配置：

```
$ sudo /usr/bin/postgresql-setup --initdb
[sudo] password:
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

```

#### Debian

在基于 Debian 的发行版上，在安装 Postgres 的过程中，配置会通过 `apt` 自动完成。

#### 其他版本

最后，如果你是在其他版本上运行的，那么你可以直接使用 PostgreSQL 提供的一些工具。`initdb` 命令会创建一个数据库集群，但是这个命令必须在 `postgres` 用户下运行，你可以使用 `sudo` 来暂时地成为 `postgres` 用户：

```
$ sudo -u postgres \
    "initdb -D /var/lib/pgsql/data \
    --locale en_US.UTF-8 --auth md5 --pwprompt"

```

### 运行 PostgreSQL

现在，数据库集群已经存在了，使用 `initdb` 的输出中提供给你的命令或者使用 systemd 启动 PostgreSQL 服务器：

```
$ sudo systemctl start postgresql

```

### 创建一个数据库用户

使用 `createuser` 命令来创建一个数据库用户。`postgres` 用户是 Postgres 安装的超级用户。

```
$ sudo -u postgres createuser --interactive --password bogus
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
Password:

```

### 创建一个数据库

使用 `createdb` 命令来创建一个新的数据库。在这个例子中，我创建了数据库 `exampledb`，并把该数据库的拥有者分配给用户 `bogus`。

```
$ createdb exampledb --owner bogus

```

### 与 PostgreSQL 交互

你可以使用 `psql` 命令来与 PostgreSQL 中的数据库进行交互。这个命令提供了一个交互界面，所以你可以用它来查看和更新你的数据库。你需要指定要使用的用户和数据库，来连接到一个数据库。

```
$ psql --user bogus exampledb
psql (XX.Y)
Type "help" for help.

exampledb=>

```

#### 创建一个表

数据库包含很多表。这些表可以可视化为表格，有很多行（在数据库中称为 *记录*）和很多列。行和列的交集称为 *字段*。

结构化查询语言（SQL）是以它提供的内容而命名的，它能提供可预测且一致的语法，来查询数据库内容，从而收到有用的结果。

目前，你的数据库是空的，没有任何的表。你可以用 `CREATE` 语句来创建一个表。结合使用 `IF NOT EXISTS` 是很有用的，它可以避免破坏现有的表。

在你创建一个表之前，想想看你希望这个表包含哪一种数据（在 SQL 术语中称为“数据类型”）。在这个例子中，我创建了一个表，包含两列，有唯一标识符的一列和最多九个字符的可变长的一列。

```
exampledb=> CREATE TABLE IF NOT EXISTS my_sample_table(
exampledb(> id SERIAL,
exampledb(> wordlist VARCHAR(9) NOT NULL
);

```

关键字 `SERIAL` 并不是一个数据类型。`SERIAL` 是 [PostgreSQL 中的一个特殊的标记](https://www.postgresql.org/docs/current/datatype-numeric.html#DATATYPE-SERIAL)，它可以创建一个自动递增的整数字段。关键字 `VARCHAR` 是一个数据类型，表示限制内字符数的可变字符。在此例中，我指定了最多 9 个字符。PostgreSQL 中有很多数据类型，因此请参阅项目文档以获取选项列表。

#### 插入数据

你可以使用 `INSERT` 语句来给你的新表插入一些样本数据：

```
exampledb=> INSERT INTO my_sample_table (wordlist) VALUES ('Alice');
INSERT 0 1

```

如果你尝试在 `wordlist` 域中输入超过 9 个字符，则数据输入将会失败：

```
exampledb=> INSERT INTO my_sample_table (WORDLIST) VALUES ('Alexandria');
ERROR:  VALUE too long FOR TYPE CHARACTER VARYING(9)

```

#### 改变表或者列

当你需要改变一个域的定义时，你可以使用 `ALTER` 这一 SQL 关键字。例如，如果你想改变 `wordlist` 域中最多只能有 9 个字符的限制，你可以重新设置这个数据类型。

```
exampledb=> ALTER TABLE my_sample_table
ALTER COLUMN wordlist SET DATA TYPE VARCHAR(10);
ALTER TABLE
exampledb=> INSERT INTO my_sample_table (WORDLIST) VALUES ('Alexandria');
INSERT 0 1

```

#### 查询表中的内容

SQL 是一种查询语言，因此你可以通过查询来查看数据库的内容。查询可以是很简单的，也可以涉及连接多个不同表之间的复杂关系。要查看表中的所有内容，请使用 `SELECT` 关键字和 `*`（`*` 是通配符）：

```
exampledb=> SELECT * FROM my_sample_table;
 id |  wordlist
----+------------
  1 | Alice
  2 | Bob
  3 | Alexandria
(3 ROWS)

```

### 更多数据

PostgreSQL 可以处理很多数据，但是对于任何数据库来说，关键之处在于你是如何设计你的数据库的，以及数据存储下来之后你是怎么查询数据的。在 [OECD.org](https://stats.oecd.org/Index.aspx?DataSetCode=LAND_COVER) 上可以找到一个相对较大的公共数据集，你可以使用它来尝试一些先进的数据库技术。

首先，将数据下载为逗号分隔值格式（CSV）的文件，并将文件另存为 `Downloads` 文件夹中的 `land-cover.csv`。

在文本编辑器或电子表格应用程序中浏览数据，来了解有哪些列，以及每列包含哪些类型的数据。仔细查看数据，并留意错误情况。例如，`COU` 列指的是国家代码，例如 `AUS` 表示澳大利亚和 `GRC` 表示希腊，在奇怪的 `BRIICS` 之前，这一列的值通常是 3 个字符。

在你理解了这些数据项后，你就可以准备一个 PostgreSQL 数据库了。

```
$ createdb landcoverdb --owner bogus
$ psql --user bogus landcoverdb
landcoverdb=> create table land_cover(
country_code varchar(6),
country_name varchar(76),
small_subnational_region_code varchar(5),
small_subnational_region_name varchar(14),
large_subnational_region_code varchar(17),
large_subnational_region_name varchar(44),
measure_code varchar(13),
measure_name varchar(29),
land_cover_class_code varchar(17),
land_cover_class_name varchar(19),
year_code integer,
year_value integer,
unit_code varchar(3),
unit_name varchar(17),
power_code integer,
power_name varchar(9),
reference_period_code varchar(1),
reference_period_name varchar(1),
value float(8),
flag_codes varchar(1),
flag_names varchar(1));

```

#### 引入数据

Postgres 可以使用特殊的元命令 `\copy` 来直接引入 CSV 数据：

```
landcoverdb=> \copy land_cover from '~/land-cover.csv' with csv header delimiter ','
COPY 22113

```

插入了 22113 条记录。这是一个很好的开始！

#### 查询数据

用 `SELECT` 语句可以查询这 22113 条记录的所有列，此外 PostgreSQL 将输出通过管道传输到屏幕上，因此你可以轻松地滚动鼠标来查看输出的结果。更进一步，你可以使用高级 SQL 语句，来获得一些有用的视图。

```
landcoverdb=> SELECT
    lcm.country_name,
    lcm.year_value,
    SUM(lcm.value) sum_value
FROM land_cover lcm
JOIN (
    SELECT
        country_name,
        large_subnational_region_name,
        small_subnational_region_name,
        MAX(year_value) max_year_value
    FROM land_cover
    GROUP BY country_name,
        large_subnational_region_name,
        small_subnational_region_name
) AS lcmyv
ON
    lcm.country_name = lcmyv.country_name AND
    lcm.large_subnational_region_name = lcmyv.large_subnational_region_name AND
    lcm.small_subnational_region_name = lcmyv.small_subnational_region_name AND
    lcm.year_value = lcmyv.max_year_value
GROUP BY lcm.country_name,
    lcm.large_subnational_region_name,
    lcm.small_subnational_region_name,
    lcm.year_value
ORDER BY country_name,
    year_value;

```

下面是样例的一些输出：

```
---------------+------------+------------
 Afghanistan    |       2019 |  743.48425
 Albania        |       2019 |  128.82532
 Algeria        |       2019 |  2417.3281
 American Samoa |       2019 |   100.2007
 Andorra        |       2019 |  100.45613
 Angola         |       2019 |  1354.2192
 Anguilla       |       2019 | 100.078514
 Antarctica     |       2019 |  12561.907
[...]

```

SQL 是一种很丰富的语言，超出了本文的讨论范围。通读 SQL 的内容，看看你是否可以对上面的查询语句进行修改，以提供不同的数据集。

### 拓展数据库

PostgreSQL 是伟大的开源数据库之一。有了它，你可以为结构化数据设计存储库，然后使用 SQL 以不同的方式查询它，以便能够获得有关该数据的新视角。PostgreSQL 也能与许多语言集成，包括 Python、Lua、Groovy、Java 等，因此无论你使用什么工具集，你都可以充分利用好这个出色的数据库。

---

via: <https://opensource.com/article/22/9/drop-your-database-for-postgresql>

作者：[Seth Kenlon](https://opensource.com/users/seth) 选题：[lkxed](https://github.com/lkxed) 译者：[chai001125](https://github.com/chai001125) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


了解开放组织的新途径

Summary: 通过参与两个令人兴奋的新项目来庆祝开放组织社区的六周年。

通过参与两个令人兴奋的新项目来庆祝开放组织社区的六周年。

>
> 通过参与两个令人兴奋的新项目来庆祝开放组织社区的六周年。
>
>
>

![](/data/attachment/album/202210/12/143419tx8nrr51v8x6r515.jpg)

2021 年 6 月 2 日，<ruby> 开放组织 <rt>  Open Organization </rt></ruby>社区庆祝其成立六周年。这是六年来（[上百篇的](https://opensource.com/open-organization)）文章、（[一系列的](https://theopenorganization.org/books)）书籍、（[具有启发性的](https://www.theopenorganization.community/)）对话、（我们所 [喜欢的](https://www.youtube.com/watch?v=Snf6vICDbzw&list=PLLIYDJHuxOkaPEH76mIJe-HHplsiSAVej)）教学和学习。我们非常自豪地成为一个充满活力的开放专家和领导者的社区，致力于将 [开放原则](https://theopenorganization.org/definition) 带到大大小小的组织。事实上，许多 <ruby>   开放组织大使  <rt>  Open Organization Ambassadors </rt></ruby> 以帮助他人变得更加开放为职业，我们的社区仍然致力于帮助各行业的领导者以开放的心态和行为融入他们的社区和环境中。

[去年](https://opensource.com/open-organization/20/6/scaling-energetic-community) 是开放组织项目的一个 [成长](https://opensource.com/open-organization/20/7/evolving-project-governance) 和 [发展](https://opensource.com/open-organization/20/8/open-community-rebrands) 时期。今年，我们将在这一势头的基础上继续努力。今天，我们很自豪地介绍两项新的倡议——当然，也邀请你的参加。

### 开启，调整，开放

首先，我们很高兴地宣布：我们社区的工作有了一个全新的场所。[OpenOrgTV](http://theopenorganization.tv)。这不仅仅是一个新的平台。它也是另一种媒介的实验：视频。

在我们的频道上，我们将举办各种对话 —— 从深层次的书评到社区圆桌会议。首先，请查看“<ruby>   开放领导力对话  <rt>  Open Leadership Conversations </rt></ruby>”系列，其中包括对某些富有洞察力的领导者的采访，提供他们对根据开放原则进行领导的意义的观点。或者观看我们的 Q&A 式写作节目 “<ruby>   问大使  <rt>  Ask the Ambassadors </rt></ruby>”，由社区专家回答你关于组织文化和设计的问题。也想参与这个节目吗？在我们的 [新的专门的论坛](https://www.theopenorganization.community/c/ask-community/19) 中向社区成员提交你的问题。

整个月，我们都会介绍 <ruby>   开放组织大使  <rt>  Open Organization Ambassadors </rt></ruby>，让你终于可以看到他们的面孔，并听到你多年来阅读的故事、案例研究和采访背后的声音。

### 定义开放领导力

自从我们几年前发布它以来，<ruby>   开放组织定义  <rt>  Open Organization Definition </rt></ruby> 已成为更好地理解开放组织文化和设计本质的组织指导框架（并且我们已经做了很多工作来 [教导其他人](https://youtu.be/NYngFYGgxro)）。随着时间的推移，我们甚至开发了 [一个成熟度模型](https://github.com/open-organization/open-org-maturity-model) 来操作该定义，因此组织可以评估自己的开放程度并制定具体计划以变得 *更加* 开放。

现在，我们认为是时候将这项工作更进一步了。

但是，开放组织社区不仅仅是平台、工具或项目的任何组合。它是所有人都热情地一起工作，以帮助传播开放原则和实践。

受我们自己经验、[红帽](https://github.com/red-hat-people-team/red-hat-multiplier) 和 [Mozilla](https://mozilla.github.io/open-leadership-framework/framework/#the-open-leadership-framework) 等开放组织已有的框架、多年研究和采访该领域的开放领袖的启发，以及我们对更好地理解开放领导力如何 *真正* 发挥作用的渴望，我们很高兴公布一份全新文件的早期草案：<ruby> 开放领导力定义 <rt>  Open Leadership Definition </rt></ruby>。

本文档概述了建立开放型组织，并使其成为思想开放的人能够成长和茁壮成长的地方的各类领导者所特有的心态和行为。它建立在<ruby> 开放领导力定义 <rt>  Open Leadership Definition </rt></ruby>的基础上，解释了开放型领导者如何体现和倡导开放型组织的特征，如透明度、包容性、适应性、协作性和社区性。

而且我们渴望与世界分享。

从今天开始（在接下来的两周内），我们将收集你对我们文件草案的见解和意见。我们渴望听到你的想法，并将接受你的意见的 *整体* 或片段。你可以对文件的个别部分或整个文件提出意见。请查看下面的链接。我们期待着听到你的意见。

![Open Leadership Definition word cloud](/data/attachment/album/202210/12/143422z1ayxjjb1a6uydmu.png "Open Leadership Definition word cloud")

*Laura Hiliger 提供的开放领导力定义词云 (CC BY-SA)*

#### 开放领导力定义

* [开放领导力定义：简介](https://docs.google.com/document/d/1blmf94ED_p4BHGv0luU_XrU26aF7tCzV6WTmh_v-PDY/edit?usp=sharing)
* [开放领导力定义：透明度](https://docs.google.com/document/d/14ssBBL0h2vxU0WZoMnWs6eo_8oRfJhnAr5yr-fAiLGU/edit?usp=sharing)
* [开放领导力定义：包容性](https://docs.google.com/document/d/1lRutADes5E0mcwtc6GR_Qw06PuJLc9-wUK5W1Gcf_BA/edit?usp=sharing)
* [开放领导力定义：适应性](https://docs.google.com/document/d/1RcwWTpkT42bgkf6EPiECt8LyAJ1XZjNGhzk0cQuBB7c/edit?usp=sharing)
* [开放领导力定义：协作](https://docs.google.com/document/d/1hTvnpqQkOc76-0UJbV6tAvRxOE--bdt96mqGmAKGqiI/edit?usp=sharing)
* [开放领导力定义：社区](https://docs.google.com/document/d/1Zl1smi-4jDZNNWd0oNY8qRH-GDi9q5VfvgyZ7YLkvm4/edit?usp=sharing)

在我们的共享文件夹中 [阅读全文](https://drive.google.com/drive/folders/1e1N_0p5lJEwAo_s6hQ3OK0KaJIfc7fgF?usp=sharing)。

### 联系我们

当然，你仍然可以在所有常见的地方找到我们的社区，如：

* [我们的项目网站](http://theopenorganization.org/)，你通往整个开放组织项目和社区的门户。
* [我们的对话中心](https://www.theopenorganization.community/)，在这里你可以与社区成员互动，提出问题，了解新项目，寻找资源，并帮助他人。
* [我们的 GitHub 组织](https://github.com/open-organization)，我们一直在公开研究新项目，并邀请你加入我们
* [我们在 Opensource.com 的发表频道](https://opensource.com/open-organization)，我们在这里为各地区和各行业的从业人员发布最新的分析、案例研究、访谈和资源。
* 我们的 [Twitter](https://twitter.com/openorgproject) 和 [LinkedIn](https://www.linkedin.com/company/the-open-organization/) 平台，我们将在这里分享我们的最新进展，并促进新的对话。

但开放组织社区不仅仅是平台、工具或项目的任何组合。 是 *人*，所有人都热情地一起工作以帮助传播开放的原则和实践。正是这些人使我们的社区如此伟大。

六年来一直如此，并将永远保持下去。

### 从数字上看

![](/data/attachment/album/202210/12/143423aknj3b381wbznqfb.png)

*Jen Kelchner 提供的信息图*

---

via: <https://opensource.com/open-organization/21/6/celebrate-sixth-anniversary>

作者：[Laura Hilliger](https://opensource.com/users/laurahilliger) 选题：[lujun9972](https://github.com/lujun9972) 译者：[MareDevi](https://github.com/MareDevi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


使用 Topgrade 一次升级 Linux 中的各种软件包

![](/data/attachment/album/202210/12/152118mo5r6pohnn4o5h56.jpg)

更新 Linux 系统并没有那么复杂，不是吗？毕竟，要更新 Ubuntu 之类的发行版，你只需要使用 `apt update` 和 `apt upgrade` 就行。

如果所有的包都是通过一个包管理器安装的，就会是这样。

但现在情况不再如此。你有经典的 apt/dnf/pacman，还有 Snap、Flatpak、Appimages。不止于此，你还可以使用 PIP（用于 Python）和 Cargo（用于 Rust）安装应用。

使用 Node？ NPM 包需要单独更新。Oh My Zsh？需要单独更新。[Vim 中的插件](https://linuxhandbook.com/install-vim-plugins/)、Atom 等也可能不被 apt/dnf/pacman 覆盖。

你现在看到问题了吗？这就是名为 Topgrade 的新工具旨在解决的问题。

### Topgrade：处理各种更新的单一程序

[Topgrade](https://github.com/r-darwish/topgrade) 是一个 CLI 程序，它会检测你使用的工具，然后运行适当的命令来更新它们。

![Topgrade disable system](/data/attachment/album/202210/12/152120q9kktzhly9tgjmb2.png)

除了通常的 Linux 包管理器，它还可以检测和更新 Brew、Cargo、PIP、Pihole、Vim 和 Emacs 插件、R 软件包等。你可以在 [维基页面](https://github.com/r-darwish/topgrade/wiki/Step-list) 上查看支持的包列表。

##### Topgrade 的主要特点：

* 能够更新来自不同的包管理器的软件包，**包括固件**！
* 你可以如何控制更新包。
* 高度可定制。
* 甚至能够在更新包之前进行概览。

所以不要浪费任何时间，让我们跳到安装。

### 使用 Cargo 在 Linux 中安装 Topgrade

安装过程非常简单，因为我将使用 Cargo 包管理器。

我们已经有了 [详细指南，其中包含设置 Cargo 包管理器的多种方法](https://itsfoss.com/install-rust-cargo-ubuntu-linux/)。所以我将在我的示例中使用 Ubuntu 来快速完成。

因此，让我们以最少方式安装依赖项以及 Cargo：

```
sudo apt install cargo libssl-dev pkg-config

```

安装 Cargo 后，使用给定的命令安装 Topgrade：

```
cargo install topgrade

```

它会抛出一个警告：

![cargo error](/data/attachment/album/202210/12/152120naa5q222rrp29n7p.png)

你只需添加 `cargo` 路径即可运行二进制文件。这可以通过给定的命令来完成，你需要使用你的用户名替换 `sagar`：

```
echo 'export PATH=$PATH:/home/sagar/.cargo/bin' >> /home/sagar/.bashrc

```

现在，重启系统，Topgrade 就可以使用了。但是等等，我们需要安装另一个包来更新 Cargo 以获取最新的包。

```
cargo install cargo-update

```

这样我们完成了安装。

### 使用 Topgrade

使用 Topgrade 非常简单。使用一个命令，就是这样：

```
topgrade

```

但这不会给你除了系统包之外的任何控制，但正如我所提到的，你可以将不想更新的仓库列入黑名单。

#### 从 Topgrade 中排除包管理器和仓库

假设我想排除 Snap 和从默认包管理器下载的包，所以我的命令是：

```
topgrade --disable snap system

```

![Topgrade disable snap system](/data/attachment/album/202210/12/152121t3ivtpj5z3p8w3w5.png)

要进行永久更改，你必须在其配置文件中进行一些更改，这些更改可以通过给定的命令访问：

```
topgrade --edit-config

```

对于此示例，我排除了 Snap 和默认系统仓库：

![configuring Topgrade](/data/attachment/album/202210/12/152121hbh8wv114eekm0k4.png)

#### 试运行 Topgrade

评估将要更新的过时软件包总是一个好主意，我从 Topgrade 的整个目录中找到了这个最有用的选项。

你只需使用带有 `-n` 选项的 `topgrade` 命令，它就会生成过期软件包的摘要。

```
topgrade -n

```

![summery of Topgrade](/data/attachment/album/202210/12/152121m29c42zm7y77721h.png)

检查需要更新的软件包的一种简洁方法。

### 总结

在使用 Topgrade 几周后，它成为了我的 Linux 武器库中不可或缺的一部分。 像大多数其他 Linux 用户一样，我只是通过我的默认包管理器更新包。 Python 和 Rust 包被完全忽略了。 感谢 Topgrade，我的系统现在完全更新了。

我知道这不是每个人都想使用的工具。那你呢？愿意试一试吗？

---

via: <https://itsfoss.com/topgrade/>

作者：[Sagar Sharma](https://itsfoss.com/author/sagar/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #787 微软与 Meta 合作，将 Teams、Office、Windows 和 Xbox 带到 VR

Summary: • 微软与 Meta 合作，将 Teams、Office、Windows 和 Xbox 带到 VR • 美国能源科学网络 ESnet6 带宽升至 46Tbps • 新西兰计划对农场动物打嗝、撒尿征税

元宇宙中办公，这是黑客帝国既视感

牛肉涨价喽。

![](/data/attachment/album/202210/12/164519ezzpk5733ralufsa.jpg)

![](/data/attachment/album/202210/12/164511jtrtogt1bpwhzf0c.jpg)

### 微软与 Meta 合作，将 Teams、Office、Windows 和 Xbox 带到 VR

在今天的 Meta Connect 会议上，微软 CEO 萨提亚·纳德拉表示，该公司正在与 Meta 合作，将其最大的服务，Teams、Office、Windows，甚至 Xbox 云游戏，带到 Meta 的 Quest VR 头盔上。人们将能够直接从 Meta 的 Horizon 工作间加入 Teams 会议，也可以在 Quest VR 头盔里面使用 Windows 365，获得 Windows 的完整体验，包括所有个性化的应用程序、内容和设置。此外，微软还通过 PWA 技术将 Office 应用的 2D 版本带到 Quest VR 头盔。甚至，Xbox 云游戏也将进入 Quest VR 头盔，虽然不会像 Xbox 原生 VR 体验那样令人沉浸，但你将能够拿起 Xbox 控制器，在头盔内的巨大屏幕上玩这些游戏。

>
> **[消息来源：The Verge](https://www.theverge.com/2022/10/11/23397251/meta-microsoft-partnership-quest-teams-office-windows-features-vr)**
>
>
>

>
> 老王点评：微软的这一合作，对 Meta 的元宇宙愿景来说可谓一剂强心针。
>
>
>

![](/data/attachment/album/202210/12/164531d15z9dz2qfff39uf.jpg)

### 美国能源科学网络 ESnet6 带宽升至 46Tbps

成立于 1986 年的美国能源科学网络 ESnet，旨在帮助美国能源部的科学家们打通旗下各个实验室，使之能够快速共享大量原始数据。它由横跨全美的 2.4 万公里的专用光缆组成。随着该网络完成 ESnet6 更新，美国最快的互联网带宽也飙升到了 46 Tbps。2021 年的时候，通过 ESnet 网络传输的数据量，就已经达到了惊人的 1.1 EB。不过，在实验性网络中的最高传输速度的记录是日本创造的 1 Pbps，即 1000 Tbps。

>
> **[消息来源：伯克利实验室](https://newscenter.lbl.gov/2022/10/11/esnet-launches-next-generation-network/)**
>
>
>

>
> 老王点评：这要是传个小电影得多快啊~
>
>
>

![](/data/attachment/album/202210/12/164544yuug0c2rga5g5ou8.jpg)

### 新西兰计划对农场动物打嗝、撒尿征税

据央视新闻，新西兰政府 11 日提议对农场动物打嗝、撒尿排放的温室气体征税，以应对气候变化。新西兰政府表示，该项税收是世界首创，将从 2025 年开始征收，税价未定。新西兰约一半的温室气体排放来自农场，包括牛打嗝产生的甲烷和尿液中所含的一氧化二氮。此前，新西兰政府 2003 年提出征收农场动物的“放屁税”计划，遭到农场主反对，最终告吹。

>
> **[消息来源：每经报](http://www.nbd.com.cn/articles/2022-10-11/2495245.html)**
>
>
>

>
> 老王点评：不是没有道理，但是为什么我觉得这么搞笑。
>
>
>


使用 Linux 的优势和劣势

Summary: 你想知道 Linux 的优势是什么，以及它是否值得去学习。

只用说劣势就行了。①如果你熟悉了Windows操作，你还得重新熟悉另外一种系统；②Linux依然是小众化的操作系统，尽管有不少跨平台软件、Windows替代软件、Wine模拟软件，但仍然有不少软件无法在Linux上运行或找到合适的替代品；③不少硬件产品，特别是外设类硬件，由于缺乏驱动程序而无法使用。

你想知道 Linux 的优势是什么，以及它是否值得去学习。

![](/data/attachment/album/202210/13/000526wn58kyntpp0ynt0z.jpg)

*开源朗读者：淮晋阳*

Linux 是一个流行词，你到处都能听到与 Linux 相关的内容。人们在技术论坛上讨论它、Linux 是课程中的一部分；你最喜欢的 YouTube 技术主播在兴奋地展示构建他们的 Linux 内核；你在 Twitter 上关注的 <ruby> 10 倍效率开发者 <rt>  10x developers </rt></ruby>都是 Linux 粉丝。

基本上，Linux 无处不在，每个人都在谈论它，因此你可能会不自主地陷入到对错失了 “学习 Linux” 的不安中。

所以，你想知道 Linux 的优势是什么，以及它是否值得去学习。

在这篇文章中，我总结了很多 Linux 的优势和劣势。

如果你在选择 Linux 还是你喜欢的操作系统上犹豫不决，我们愿意为你提供一些帮助。

>
> 在开始之前，我们要指出的是，“Linux” 本身并不是一个操作系统，它的操作系统被称为 [Linux 发行版](https://itsfoss.com/what-is-linux/)，而且 Linux 的发行版有数百种。为简单起见，我将其称为 Linux 操作系统，而不是某个特定的 Linux 发行版。可以参考 [这篇文章](https://itsfoss.com/what-is-linux/)，来更好地理解这些东西。
>
>
>

### 使用 Linux 的优势

如果你想使用 Linux 替代现在的操作系统，那么只有当你了解 Linux 的优势，才会有意义。

如果 Linux 在你想要它做的事情上表现出色，你将永远都不会后悔你的决定。

#### 不用购买许可证

![open source proprietary illustration](/data/attachment/album/202210/13/000546snyk45cyy3ww64q2.jpg)

你需要拥有苹果公司的设备，才能使用 macOS 作为日常使用；你需要拥有 Windows 许可证，才能使用微软的 Windows。

因此，你需要对这些东西进行一定的投资。但是，对于 Linux 呢？它是完全免费的！

与 Windows 和 macOS 相比，不仅仅是操作系统上的不同，Linux 上还有许多免费的软件包。

你无需支付许可证费用，就可以使用所有主流的 Linux 发行版。当然，你可以选择捐赠来支持该项目，但这完全取决于你自己的意愿。

**此外**，Linux 是完全开源的，这意味着所有人都能检查源代码的透明度。

#### 能以最小的系统资源运行

![linux mint 21 resource usage](/data/attachment/album/202210/13/000546ukvnyaaekzvvjj2k.jpg)

通常，用户考虑尝试另一个操作系统，是因为他们对现有系统的性能感到沮丧。

这也是我的个人经历。我受朋友的委托，使用 Linux 来更新他们的旧笔记本电脑或经常滞后的系统。

而且，Linux 发行版能够在普通的硬件配置上运行，你不需要拥有最新最好的硬件。此外，还有专门的 [轻量级 Linux 发行版](https://itsfoss.com/lightweight-linux-beginners/) 可以在较旧的硬件上运行而不会出现问题。

因此，如果你立即使用 Linux，你有更多的机会恢复你的旧系统，或在短时间内获得一个快速的计算机。

#### 更少地受到恶意软件的威胁

![malware illustration](/data/attachment/album/202210/13/000547z4fnvjvjj0g0sini.jpg)

没有操作系统可以免受恶意文件或脚本的侵害。如果你从未知来源下载并运行某些内容，则无法保证其安全性。

然而，对于 Linux，情况会更好一些。诚然，研究人员已经发现了针对 Linux 物联网设备的攻击者。但是，对于桌面 Linux，还无须担心。

恶意攻击者攻击的目标是更受家庭欢迎的平台，而 Linux 在桌面领域并没有很大的市场份额来吸引到这种关注。在某种程度上，这可能是一件好事。

你要做的就是坚持使用官方软件包，并在执行任何操作之前阅读指导说明。

另外，在 Linux 上，你也不用安装防病毒程序，来保护本机免受恶意软件的威胁。

#### 可个性化定制

![Pop!_OS 22.04 LTS](/data/attachment/album/202210/13/000548v0h35tc5uth4p5cp.png)

有了开源的代码，你就可以根据需要自由定制你的 Linux 体验。

当然，你需要具备一些专业知识，才能充分地定制你的 Linux。但是与 macOS 和 Windows 相比，即使你没有任何经验，也可以在 Linux 操作系统中获得更多自定义功能。

![Customized Linux experience | Reddit user: u/ZB652](/data/attachment/album/202210/13/000548u75zpswwppiniwnu.jpg)

如果你想要个性化你的体验，并愿意付出额外的努力，那么 Linux 就非常适合你。例如，你可以参考 [KDE 定制指南](https://itsfoss.com/kde-customization/) 和 [停靠区选项](https://itsfoss.com/best-linux-docks/) 以获得基本的自定义方法。

#### 适用于所有人

使用 macOS 或 Windows，你只能在微软或苹果最终确定的设计/偏好选择中，做出你的选择。

但是，对于 Linux，你能发现专注于各种事情的不同的 Linux 发行版。

例如，你可以选择能始终获取最新功能的 Linux 发行版，或者你也可以选择只为你提供安全/维护更新的 Linux 发行版。

你可以使用有开箱即用、外观好看的 Linux 发行版，或提供最大程度的自定义选项的 Linux 发行版。Linux 发行版的选择是多种多样的。

我建议你从 [能提供最佳用户体验的选项](https://itsfoss.com/beautiful-linux-distributions/) 开始。

#### 完整的开发环境

如果你是软件开发人员或学习编程的学生，Linux 绝对是有优势的。许多构建工具都能在 Linux 上使用，并能够集成到 Linux 中。使用容器（Docker），你可以轻松创建专门的测试环境。

微软知道这个价值，因此它创建了 WSL，让开发人员可以在 Windows 内访问 Linux 环境。尽管如此，WSL 并没有接近真正的 Linux 体验，在 Windows 上使用 Docker 也同样如此。

但是这并不适用于网页设计，因为极为好用的 Adobe 工具并不能在 Linux 上使用。但是，如果你的工作不需要 Adobe，Linux 会是一个不错的选择。

#### Linux 是一项必须学习的技能！

使用 Linux 有一个学习曲线，刚开始时掌握的速度最快，之后则逐渐变得平缓，但是它给你提供了对各种事物的洞察力。

你可以通过探索和自由定制 Linux，或者仅仅是通过使用它，来了解操作系统中的事物是如何工作的。

不是每个人都知道如何使用 Linux。

因此，通过学习 Linux 来获得和扩展你对软件和计算机的知识会是一项很棒的技能。

#### Linux 是一个必要的工作技能

![job illustration](/data/attachment/album/202210/13/000549h6zunvgao7nanuap.jpg)

正如我之前提及的，学习 Linux 是一个很好的技能，这不仅仅能增长你的知识，它在职业方面也很有用。

通过学习 Linux 的基础知识，你可以成为 Linux 系统管理员或安全专家，并且能胜任很多其他的工作。

因此，学习 Linux 开辟了一系列机会！

#### 保护隐私

如果你没有微软账号，那么你就不能使用 Windows。当你启动 Windows 时，你会发现它会在很多的服务和应用中记录你的数据。

![privacy windows](/data/attachment/album/202210/13/000622ioyay4coyamadacx.png)

虽然你可以找到此类设置并禁用它们，但很明显，Windows 的默认配置不会考虑你的隐私。

而在 Linux 中，并非如此。虽然某些应用程序/发行版会有一个可选功能，让你可以与他们分享有用的东西，但这并不是什么大问题。Linux 上的大多数东西都是经过定制的，默认情况下可以为你提供最大的隐私，从而无需配置任何东西。

但是，苹果和微软会采用巧妙的策略从你的计算机收集匿名的使用数据。偶尔，他们会记录你在他们的应用商店的活动，以及当你通过你的账户登录时的信息。

#### 自定义项目和自托管

你是一个喜欢捣鼓小发明的人吗？如果你喜欢制作电子或软件项目，Linux 会是你的发明天堂。

你可以在 [诸如树莓派这样的单板机](https://itsfoss.com/raspberry-pi-alternatives/) 上使用 Linux，开发出一些很酷的东西，例如复古游戏机、家庭自动化系统等等。

你也能在你自己的服务器上部署开源的软件，并维护他们。这称为自托管，它有以下的优点：

* 减少托管费用
* 掌控你的数据
* 对于你的每个需求，定制应用/服务

你能直接使用 Linux 或者使用基于 Linux 的工具，来做这所有的事情。

### 使用 Linux 的劣势

Linux 并不是一个没有缺点的选择。任何事都具有两面性，Linux 也有一些不好的地方，包括：

#### 不容易快速上手

![too much learn illustration](/data/attachment/album/202210/13/000549kaw3no0ow40awo1m.jpg)

学习的目的通常不在于掌握一项新技能，更重要的是尽可能快地适应。

如果用户使用某一个东西，却无法完成任务，那么它并不适合他们。对于每个操作系统也是如此。例如，使用 Windows/macOS 的用户可能不会很快适应 Linux。

你可以阅读我们的比较文章以了解 [macOS 和 Linux 之间的区别](https://itsfoss.com/mac-linux-difference/)。

我同意一些人会比其他人学习速度更快。但是，总体而言，当你踏入 Linux 世界时，你需要付出一点努力，去学习那些不明显的东西。

#### 多样性

虽然我们建议使用 [为初学者量身定制的最佳 Linux 发行版](https://itsfoss.com/best-linux-beginners/)，但一开始就选择你喜欢的版本，可能会让人不知所措。

你可能会想尝试其中多个版本，以查看最适合你的 Linux 发行版，但是这既耗时又令人十分困惑。

最好选择其中一种 Linux 发行版。但是，如果你仍然感到困惑，你可以仍旧使用 Windows/macOS。

#### 在桌面领域的市场份额相对较低

![linux desktop market share](/data/attachment/album/202210/13/000549tob2npvtttjdlgct.jpg)

Linux 不是流行的桌面操作系统。

这不应该是用户关心的问题。但是，如果没有大的市场占有率，就不能指望应用程序开发人员为 Linux 开发/维护工具。

当然，现在 Linux 有很多重要且流行的工具，比以往任何时候都多。但是，这仍然是一个因素，意味着并非所有好的工具/服务都可以在 Linux 上运行。

请参阅我们定期更新的关于 [Linux 的市场份额](https://itsfoss.com/linux-market-share/) 的文章，了解相关内容。

#### 缺少专有软件

正如我上面提到的，并不是开发者都对将他们的工具/应用程序引入 Linux 感兴趣。

因此，你可能在 Linux 上找不到适用于 Windows/macOS 的所有优质专有产品。诚然，你可以使用兼容层在 Linux 上运行 Windows/macOS 程序。

但这并不总是有效。例如，你没有支持 Linux 的官方微软 365 和像 Wallpaper Engine 这样的工具。

#### 不是游戏优先的操作系统

![gaming illustration](/data/attachment/album/202210/13/000549udaszp95p5fuq18z.jpg)

如果你想在电脑上玩游戏，Windows 仍然是支持最新硬件和技术的最佳选择。

谈到 Linux，有很多 “如果和但是” 需要一个明确的答案。

请注意，你可以在 Linux 上玩很多现代游戏，但在各种不同的硬件上可能不会有一致的体验。正如我们的一位读者在评论中建议的那样，你可以使用 Steam Play 在 Linux 上尝试许多 Windows 独占的游戏，而不会出现潜在的障碍。

Steam Deck 正在鼓励更多的游戏开发者使他们的游戏在 Linux 上运行得更好。而且，这在不久的将来只会得到改善。因此，如果你能花点功夫在 Linux 上尝试你最喜欢的游戏，可能不会让人失望。

话虽如此，在 Linux 上玩游戏并不方便。如果你有兴趣，可以参考我们的 [Linux 游戏指南](https://itsfoss.com/linux-gaming-guide/) 以了解更多信息。

#### 缺少专业的技术支持

我知道不是每个人都需要技术支持。但是，一些技术支持选项能够在他们的笔记本电脑或计算机上远程指导用户/修复问题。

使用 Linux，你可以向社区寻求帮助，但它可能不像某些专业技术支持服务那样好用。

你仍然需要自己完成大部分努力，并自己尝试一些东西，并不是每个人都喜欢这样做的。

### 总结

我主要是 Linux 用户，但我在玩游戏时使用 Windows。虽然我偏好 Linux，但我尽力在这篇文章中对 Linux 保持中立态度，并给你足够的指导，以便你可以决定 Linux 是否适合你。

如果你打算使用 Linux，并且从未使用过它，请迈出你的第一步吧，可以参考 [在虚拟机中使用 Linux 的第一步](https://itsfoss.com/why-linux-virtual-machine/)。如果你有 Windows 11，你也可以使用 WSL2。

我非常乐意收到你的评价和建议。

---

via: <https://itsfoss.com/advantages-linux/>

作者：[Ankush Das](https://itsfoss.com/author/ankush/) 选题：[lkxed](https://github.com/lkxed) 译者：[chai001125](https://github.com/chai001125) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


如何在 Brave 浏览器中使用画中画模式

Summary: Brave 是一款出色的类似于 Chrome，但可 替代 Chrome 的网络浏览器。

感谢告知，方法1开启了。

![](/data/attachment/album/202210/13/003034agqsflug771cl3uj.jpg)

>
> Brave 是一款出色的类似于 Chrome，但可 [替代 Chrome 的网络浏览器](https://itsfoss.com/open-source-browsers-linux/)。
>
>
>

[Firefox 和 Brave](https://itsfoss.com/brave-vs-firefox/) 是我喜欢在 Linux 系统上使用的两种浏览器。两者都有不同的优势。

Firefox 比 Brave 做得更好的一件事就是画中画（PIP）模式，它适用于 YouTube、Netflix 和大多数流媒体网站。

Brave 也有画中画模式，但它是如此隐藏，以至于你觉得它根本没有 PIP 支持。

内置画中画适用于某些网站（如 YouTube），但可能不适用于其他网站（如 Prime Video）。不用担心！你可以为此使用专用扩展。

让我在本教程中展示这两种方法。

### 方法 1：在视频上双击右键

**技巧是依次单击两次右键，你应该会看到画中画模式选项。**

让我通过一个例子来说明这一点。在 Brave 中播放 YouTube 视频。现在右键单击视频。

![第一次右键单击后将光标从上下文菜单稍微移开](/data/attachment/album/202210/13/003141kkjnkq0nh0o822h8.jpg)

再次右键单击。它应该在视频上，但不在上一个上下文菜单上，而在视频的其他地方。

现在你应该看到另一个带有画中画选项的上下文菜单。

![你应该在第二次右键单击中看到画中画选项](/data/attachment/album/202210/13/003147ftmekicetmmt6rep.jpg)

选择画中画，视频将从窗口中弹出。你可以将其移动到浏览器中的任何位置。

![Brave 浏览器画中画模式](/data/attachment/album/202210/13/003153lce1nsnt6kt6sifl.jpg)

当你使用其他应用时，你还可以让它在屏幕上的任何位置播放。

![Brave 在画中画模式中播放影片](/data/attachment/album/202210/13/003200ea3axabrxz38ddd4.jpg)

在最近的 Brave 版本中，你可以根据自己的喜好调整弹出窗口的大小。

我不明白为什么 Brave 把它隐藏成这样。为什么不突出它？

无论如何，这适用于 YouTube 等网站，但可能不适用于 Prime 视频。如果你愿意，你可以安装一个扩展。

### 方法 2：使用画中画扩展

谷歌提供了一个官方插件，可让你在谷歌 Chrome 中获得画中画功能。由于 Brave 基于 Chromium，你可以在 Brave 中使用相同的扩展。

>
> **[画中画扩展](https://chrome.google.com/webstore/detail/picture-in-picture-extens/hkgfoiooedgoejojocmhlaklaeopbecg/related?hl=en-US)**
>
>
>

进入扩展页面并点击 “<ruby> 添加到 Brave <rt>  Add to Brave </rt></ruby>” 按钮。

![为 Brave 添加画中画扩展](/data/attachment/album/202210/13/003038jij6jip6m47edjo0.png)

当你单击它时，它会提示添加扩展的选项。

![添加扩展](/data/attachment/album/202210/13/003213sv0bi9e5b2bfheh4.jpg)

添加扩展后，你应该会在浏览器的右上角看到它。

![使用画中画扩展](/data/attachment/album/202210/13/003038brohn6n55j56neeb.png)

播放视频时，单击该扩展图标，视频应该会弹出。

### 你能在 Brave 中启用 PIP 模式吗？

画中画模式已成为休闲流媒体消费的必备功能。我觉得奇怪的是，Brave 和其他浏览器没有足够重视它。 Firefox 处理得很好。

我希望这个快速的小技巧可以帮助你在 Brave 浏览器中获得 PIP 体验。你更喜欢这两种方法中的哪一种？右键单击还是扩展？

---

via: <https://itsfoss.com/picture-in-picture-brave/>

作者：[Abhishek Prakash](https://itsfoss.com/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #788 Firefox OS 复活

Summary: • Firefox OS 复活 • 国产编译器项目 LambdaChip 捐赠给 HardenedLinux • Linux 内核 6.1 放弃火线串口驱动，删除了 4000 行代码

这个版面太爽了，以后就用这一版！

![](/data/attachment/album/202210/13/175626hrb7bhhqbdrd0bsz.jpg)

![](/data/attachment/album/202210/13/175632fo79ywwmmoo7agch.jpg)

### Firefox OS 复活

Firefox OS 是 Mozilla 在 2013 年创建的安卓替代品，并于 2016 年放弃了它。2018 年，在 Firefox OS 基础上曾出现了一个令人失望的 KaiOS，主要针对功能机市场的商业操作系统，但它是封闭的，还会跟踪用户并且有广告。现在，Capyloon 项目决定复活 Firefox OS，将其带到现代 Linux 智能手机上。该项目还处于早期阶段。它能运行旧的 Firefox OS 应用。目前可以在安卓设备上通过启动谷歌通用系统镜像（GSI）测试其 UI。

>
> **[消息来源：Tux Phones](https://tuxphones.com/capyloon-firefox-os-b2gos-linux/)**
>
>
>

>
> 老王点评：本来可能成为 Mozilla 的一个基石型项目，非常可惜被放弃了，我认为放弃 Firefox OS 是 Mozilla 的一大败笔。不过，新的复活计划是否能真正复活 Firefox OS，还需要拭目以待，毕竟，时代不同了。
>
>
>

![](/data/attachment/album/202210/13/175648frk0ue8ri9su8urs.jpg)

### 国产编译器项目 LambdaChip 捐赠给 HardenedLinux

开放硬件整体方案 LambdaChip 是为数不多的国产编译器项目，其背后的公司正式破产清算，将其项目改名为 Animula，并正式捐赠给 HardenedLinux 社区。LambdaChip 是一个野心勃勃的国产项目，试图在 10KB 内存的单片机上同时支持 Scheme、Lua 5.2 和 Python3 等语言，已经有了一些不错的进展。HardenedLinux 自嘲其“是否成为商业失败的开源项目的集散地的结论为时尚早”，并对此类项目表示了欢迎。

>
> **[消息来源：Solidot](https://www.solidot.org/story?sid=73029)**
>
>
>

>
> 老王点评：看来 HardenedLinux 成为了一个孤儿项目摇篮。不过，确实需要一些组织来负责照料这些因为种种原因被放弃的项目。
>
>
>

![](/data/attachment/album/202210/13/175705n2y2pp2y0yyy13zb.jpg)

### Linux 内核 6.1 放弃火线串口驱动，删除了 4000 行代码

Linux 的 fwserial 驱动程序允许通过 IEEE-1394（火线接口）连接 TTY，以实现对等体之间的有线高速串行连接。但自从该驱动程序在 2012 年被合并以来，没有人负责维护该驱动程序。而且，现在有更好的连接方式，苹果的火线接口越来越没有人使用了。因此，它在 Linux 内核 6.1 中被删除，为内核减少了约 4000 行代码。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Linux-6.1-Staging)**
>
>
>

>
> 老王点评：作为一个发展了 30 年的软件项目，其中肯定充斥着大量过时或无用的驱动和代码，因此时不时清理一下也是好的。不过，我觉得或许应该有更明确的规则对内核的各个组成部分设置不同的生命周期。
>
>
>


ARPANET 的真正创新之处

这篇文章选的可比“如何在 pop!_OS 中安装 OBS Studio”之类的水货教程好得多

但是这种曲高和寡的文章，一方面不多，另外一方面，翻译和校对太难了，产出很少，而贡献者也很少会选择这么高难度的。

![](/data/attachment/album/202210/14/180115j5hae51hv1a1ohp5.jpg)

如果你在搜索引擎中输入“ARPANET”，搜索相关图片，你会看到许多地图的图片，上面是这个上世纪六十年代末七十年代初 [美国政府创建的研究网络](https://en.wikipedia.org/wiki/ARPANET)，该网络不断延伸扩展，横跨了整个美国。我猜很多人第一次了解到 ARPANET 的时候都看过这种地图。

可以说，这些地图很有意思，毕竟我们很难想象过去连接网络的计算机是那么少，就连如此低保真的图片都可以表示出美国全部机器的所在位置（这里的<ruby> 低保真 <rt>  lo-fi </rt></ruby>指的是高射投影仪成像技术，而不是大家熟知的 lo-fi 氛围音乐）。不过，这些地图是有问题的。地图上用加粗的线条连接着大陆各地，强化了人们的一种观念：ARPANET 最大的贡献就是首次将横跨美国东西两地的电脑连接了起来。

今天，即便是在病毒肆虐、人们困居家中的情况下，网络也能把我们联系起来，可谓是我们的生命线。所以，如果认为 ARPANET 是最早的互联网，那么在那之前世界必然相互隔绝，毕竟那时还没有今天的互联网，对吧？ARPANET 首次通过计算机将人们连接起来，一定是一件惊天动地的大事。

但是，这一观点却与历史事实不符，而且它也没有进一步解释 ARPANET 的重要性。

### 初露锋芒

华盛顿希尔顿酒店坐落于<ruby> 国家广场 <rt>  National Mall </rt></ruby>东北方向约 2.4 千米处的一座小山丘山顶附近。酒店左右两侧白色的现代化立面分别向外延展出半个圆形，活像一只飞鸟的双翼。1965 年，酒店竣工之后，《纽约时报》报道称这座建筑物就像“一只栖息在山顶巢穴上的海鸥”    [1] 。

不过，这家酒店最有名的特点却深藏在地下。在车道交汇处下方，有着一个巨大的蛋形活动场地，这就是人们熟知的<ruby> 国际宴会厅 <rt>  International Ballroom </rt></ruby>，多年来一直是华盛顿特区最大的无柱宴会厅。1967 年，大门乐队在此举办了一场音乐会。1968 年，“吉他之神”吉米·亨德里克斯也在此举办了一场音乐会。到了 1972 年，国际宴会厅隐去了以往的喧嚣，举办了首届<ruby> 国际计算机通信会议 <rt>  International Conference on Computing Communication </rt></ruby>（ICCC）。在这场大会上，研究项目 ARPANET 首次公开亮相。

这场会议举办时间为 10 月 24-26 日，与会人数约八百人    [2] 。在这场大会上，计算机网络这一新兴领域的领袖人物齐聚一堂。<ruby> 因特网 <rt>  internet </rt></ruby>的先驱<ruby> 鲍勃·卡恩 <rt>  Bob Kahn </rt></ruby>称，“如果有人在华盛顿希尔顿酒店上方丢了一颗炸弹，那么美国的整个网络研究领域将会毁于一旦”    [3] 。

当然，不是所有的与会人员都是计算机科学家。根据当时的宣传广告，这场大会将“以用户为中心”，面向“律师、医务人员、经济学家、政府工作者、工程师以及通信员等从业人员”   [4] 。虽然大会的部分议题非常专业，比如《数据网络设计问题（一）》与《数据网络设计问题（二）》，但是正如宣传广告所承诺的，大部分会议的主要关注点还是计算机网络给经济社会带来的潜在影响。其中甚至有一场会议以惊人的先见之明探讨了如何积极利用法律制度“保护计算机数据库中的隐私权益”    [5] 。

展示 ARPANET 的目的是作为与会者的一个附带景点。在国际宴会厅或酒店更下一层的其他地方举行的会议间歇，与会者可以自由进入<ruby> 乔治敦宴会厅 <rt>  Georgetown Ballroom </rt></ruby>（在国际宴会厅走廊尽头的一个较小的宴会厅，也可以说是会议室）   [6] ，那里放置着用以访问 ARPANET 的 40 台由不同制造商生产的终端    [7] 。这些终端属于<ruby> 哑终端 <rt>  dumb terminal </rt></ruby>，也就是说，只能用来输入命令、输出结果，本身无法进行计算。事实上，在 1972 年，所以这些终端可能都是<ruby> 硬拷贝终端 <rt>  hardcopy terminal </rt></ruby>，即<ruby> 电传打字机 <rt>  teletype machine </rt></ruby>。哑终端与一台被称为“<ruby> 终端接口信息处理机 <rt>  Terminal Interface Message Processor </rt></ruby>”（TIP）的计算机相连接，后者放置在宴会厅中间的一个高台上。TIP 是早期的一种路由器，哑终端可通过 TIP 连接到 ARPANET。有了终端和 TIP，ICCC 与会者可以尝试登录和访问组成 ARPANET 的 29 个主机站的计算机    [8] 。

为了展示网络的性能，美国全国各主机站的研究员们通力合作，准备了 19 个简易的“情景”，供用户测试使用。他们还出了 [一份小册子](https://archive.computerhistory.org/resources/access/text/2019/07/102784024-05-001-acc.pdf)，将这些情景收录其中。如果与会人员打算进入这个满是电线与哑终端的房间，就会得到这样一本小册子    [9] 。通过这些情景，研究员不仅要证明网络这项新技术的可行性，还要证明其实用性，因为 ARPANET 那时还只是“一条没有汽车驶过的公路”。此外，来自国防部的投资者们也希望，公开展示 ARPANET 可以进一步激发人们对网络的兴趣    [10] 。

因此，这些情景充分展示了在 ARPANET 网络上可以使用的软件的丰富性：有程序语言解释器，其中一个用于麻省理工学院（MIT）的 Lisp 语言，另一个用于加州大学洛杉矶分校的数值计算环境 Speakeasy；还有一些游戏，包括国际象棋和 <ruby> 康威生命游戏 <rt>  Conway's Game of Life </rt></ruby>；以及几个也许最受与会者欢迎的人工智能聊天程序，包括由 MIT 的计算机科学家<ruby> 约瑟夫·魏泽堡 <rt>  Joseph Weizenbaum </rt></ruby>开发的著名聊天程序<ruby> 伊莉莎 <rt>  ELIZA </rt></ruby>。

设置这些情景的研究人员小心翼翼地列出了他们想让用户在终端机上输入的每一条命令。这点很重要，因为用于连接 ARPANET 主机的命令序列可能会因为主机的不同而发生变化。比如，为了能在 MIT 人工智能实验室的 PDP-10 微型电脑上测试人工智能国际象棋程序，与会者需要按照指示输入以下命令：

>
> 在下方代码块中，`[LF]`、`[SP]` 以及 `[CR]` 分别代表换行、空格以及回车键。我在每行的 `//` 符号后面都解释了当前一行命令的含义，不过当时的小册子本来是没有使用这一符号的。
>
>
>

```
@r [LF]                   // 重置 TIP
@e [SP] r [LF]            // “远程回显”设置, 主机回显字符，TIP 不回显
@L [SP] 134 [LF]          // 连接 134 号主机
:login [SP] iccXXX [CR]   // 登录 MIT 人工智能实验室的系统，“XXX”代表用户名首字母缩写
:chess [CR]               // 启动国际象棋程序

```

如果与会者输入了上述命令，那么他就可以体验当时最先进的国际象棋程序，其棋盘布局如下：

```
BR BN BB BQ BK BB BN BR
BP BP BP BP ** BP BP BP
-- ** -- ** -- ** -- **
** -- ** -- BP -- ** --
-- ** -- ** WP ** -- **
** -- ** -- ** -- ** --
WP WP WP WP -- WP WP WP
WR WN WB WQ WK WB WN WR

```

与之不同的是，如果要连接加州大学洛杉矶分校的 IBM System/360 机器，运行 Speakeasy 数值计算环境，与会者需要输入以下命令：

```
@r [LF]                   // 重置 TIP
@t [SP] o [SP] L [LF]     // “传递换行”设置
@i [SP] L [LF]            // “插入换行”设置，即回车时发送换行符。
@L [SP] 65 [LF]           // 连接 65 号主机
tso                       // 连接 IBM 分时可选软件系统
logon [SP] icX [CR]       // 输入用户名，进行登录，“X”可为任意数字
iccc [CR]                 // 输入密码（够安全！）
speakez [CR]              // 启动 Speakeasy

```

输入上述命令后，与会者可以在终端中对矩阵进行乘法、转置以及其他运算，如下所示：

```
:+! a=m*transpose(m);a [CR]
:+! eigenvals(a) [CR]

```

当时，这场演示给许多人都留下了深刻的印象，但原因并不是我们所想的那样，毕竟我们有的只是后见之明。今天的人们总是记不住，在 1972 年，即便身处两个不同的城市，远程登录使用计算机也已经不是一件新鲜事儿了。在那之前的数十年，电传打字机就已经用于与相隔很远的计算机传递信息了。在 ICCC 第一届大会之前，差不多整整五年前，在西雅图的一所高中，<ruby> 比尔·盖茨 <rt>  Bill Gates </rt></ruby>使用电传打字机，在该市其他地方的<ruby> 通用电气 <rt>  General Electric </rt></ruby>（GE）计算机上运行了他的第一个 BASIC 程序。在当时，登录远程计算机，运行几行命令或者玩一些文字游戏，只不过是家常便饭。因此，虽说上文提到的软件的确很不错，但是即便没有 ARPANET，我刚刚介绍的两个情景勉强也是可以实现的。

当然，ARPANET 一定带来了新的东西。参加本次大会的律师、政治家与经济学家可能被国际象棋游戏与聊天机器人所吸引，但是网络专家们可能对另外两个情景更感兴趣，因为它们将 ARPANET 的作用更好地展示了出来。

在其中一个情景下，MIT <ruby> 非兼容分时系统 <rt>  Incompatible Timesharing System </rt></ruby>（ITS）上运行了一个名为 `NETWRK` 的程序。`NETWRK` 命令下有若干个子命令，输入这些子命令就能得到 ARPANET 各方面的运行状态。`SURVEY` 子命令可以列出 ARPANET 上哪些主机正在运行和可用（它们都在一个列表中）；`SUMMARY.OF.SURVEY` 子命令汇总了过去 `SURVEY` 子命令过去的运行结果，得出每台主机的“正常运行比率”，以及每台主机响应消息的平均时间。`SUMMARY.OF.SURVEY` 子命令以表格的形式输出结果，如下所示：

```
--HOST--  -#-  -%-UP-  -RESP-
UCLA-NMC  001  097%    00.80
SRI-ARC   002  068%    01.23
UCSB-75   003  059%    00.63
...

```

可以看到，主机编号的占位不超过三个数字（哈！）。其他 `NETWRK` 子命令能够查看较长时间内查询结果的概要，或者检查单个主机查询结果的日志。

第二个情景用到了斯坦福大学开发的一款软件 —— SRI-ARC 联机系统。这款软件功能齐全，非常优秀。美国发明家<ruby> 道格拉斯·恩格尔巴特 <rt>  Douglas Engelbart </rt></ruby>在 “<ruby> 所有演示之母 <rt>  Mother of All Demos </rt></ruby>” 上演示的正是 SRI-ARC 联机系统。这款软件可以在加州大学圣芭芭拉分校的主机上运行本质上属于文件托管的服务。使用华盛顿希尔顿酒店的终端，用户可以将斯坦福大学主机上创建的文件复制到加州大学圣芭芭拉分校的主机上。操作也很简单，只需执行 `copy` 命令，然后回答计算机的下列问题：

>
> 在下方的代码块中，`[ESC]`、`[SP]` 与 `[CR]` 分别代表退出、空格与回车键；圆括号中的文字是计算机打印出的提示信息；第三行中的退出键用于自动补全文件名。此处复制的文件是 `<system>sample.txt;1`，其中文件名末尾的数字 1 代表文件的版本号，`<system>` 表示文件路径。这种文件名是 TENEX 操作系统上面的惯用写法。   [11]
>
>
>

```
@copy
(TO/FROM UCSB) to
(FILE) <system>sample [ESC] .TXT;1 [CR]
(CREATE/REPLACE) create

```

这两个情景看起来好像和最初提及的两个情景没有太大区别，但是此二者却意义非凡。因为它们证明了，在 ARPANET 上面，不仅人们可以与计算机进行交流，计算机与计算机也可以 *相互* 交流。MIT 主机上的 `SURVEY` 命令的结果并非由人类定期登录并检查每台机器的运行状态收集而来，而是由一款能在网络上与其他机器进行交流的软件收集得到的。同样的道理，在斯坦福大学与加州大学圣芭芭拉分校之间传输文件的情景下，也没有人守在两所大学的终端旁边，华盛顿特区的终端用户仅仅使用了一款软件，就能让其他两地的计算机相互对话。更重要的是，这一点无关乎你使用的是宴会厅里的哪一台电脑，因为只要输入同样的命令序列，就能在任意一台电脑上浏览 MIT 的网络监视数据，或者在加州大学圣芭芭拉分校的计算机上储存文件。

这才是 ARPANET 的全新之处。本次国际计算机通信会议演示的不仅仅是人与远程电脑之间的交互，也不仅仅是远程输入输出的操作，更是一个软件与其他软件之间的远程通讯，这一点才是史无前例的。

为什么这一点才是最重要的，而不是地图上画着的那些贯穿整个美国、实际连接起来的电线呢（这些线是租赁的电话线，而且它们以前就在那了！）？要知道，早在 1966 年 ARPANET 项目启动之前，美国国防部的高级研究计划署（ARPA）打造了一间终端室，里面有三台终端。三台终端分别连接着位于 MIT、加州大学伯克利分校以及圣塔莫尼卡三地的计算机    [12] 。对于 ARPA 的工作人员来说，即便他们身处华盛顿特区，使用这三台计算机也非常方便。不过，这其中也有不便之处：工作人员必须购买和维护来自三家不同制造商的终端，牢记三种不同的登录步骤，熟悉三种不同的计算环境。虽然这三台终端机可能就放在一起，但是它们只是电线另一端主机系统的延申，而且操作也和那些计算机一样各不相同。所以说，在 ARPANET 项目诞生之前，远程连接计算机进行通讯就已经实现了，但问题是不同的计算系统阻碍了通讯朝着更加先进复杂的方向发展。

### 集合起来，就在此刻

因此，我想说的是，说法一（ARPANET 首次通过计算机将不同地方的人们连接了起来）与说法二（ARPANET 首次将多个计算机系统彼此连接了起来）之间有着云泥之别。听起来似乎有些吹毛求疵，咬文嚼字，但是相较于说法二，说法一忽略了一些重要的历史发展阶段。

首先，历史学家<ruby> 乔伊·利西·兰金 <rt>  Joy Lisi Rankin </rt></ruby>指出，早在 ARPANET 诞生之前，人们就已经在网络空间中进行交流了。在《<ruby> 美国计算机的人民历史 <rt>  A People’s History of Computing in the United States </rt></ruby>》一书中，兰金介绍了几个覆盖全美的数字社区，这些社区运行在早于 ARPANET 的<ruby> 分时网络 <rt>  time-sharing network </rt></ruby>上面。从技术层面讲，分时网络并不是计算机网络，因为它仅仅由一台大型主机构成。这种计算机放置在地下室中，为多台哑终端提供计算，颇像一只又黑又胖的奇怪生物，触手向外伸展着，遍及整个美国。不过，在分时网络时代，被后社交媒体时代称为“网络”的大部分社会行为应有尽有。例如，Kiewit 网络是<ruby> 达特茅斯分时系统 <rt>  Dartmouth Time-Sharing System </rt></ruby>的延伸应用，服务于美国东北部的各个大学和高中。在 Kiewit 网络上，高中生们共同维护着一个“<ruby> 八卦档案 <rt>  gossip file </rt></ruby>”，用来记录其他学校发生的趣闻趣事，“在康涅狄格州和缅因州之间建立起了社交联系”    [13] 。同时，曼荷莲女子学院的女生通过网络与达特茅斯学院的男生进行交流，或者是安排约会，或者是与男朋友保持联系    [14] 。这些事实都发生在上世纪六十年代。兰金认为，如果忽视了早期的分时网络，我们对美国过去 50 年数字文化发展的认识必然是贫瘠的：我们眼里可能只有所谓的“<ruby> 硅谷神话 <rt>  Silicon Valley mythology </rt></ruby>”，认为计算机领域的所有发展都要归功于少数的几位天才，或者说互联网科技巨头的创始人。

回到 ARPANET，如果我们能意识到真正的困难是计算机 *系统* 的联通，而非机器本身的物理连接，那么在探讨 ARPANET 的创新点时，我们就会更加倾向于第二种说法。ARPANET 是有史以来第一个<ruby> 分组交换网络 <rt>  packet-switched network </rt></ruby>，涉及到许多重要的技术应用。但是如果仅仅因为这项优势，就说它是一项突破，我觉得这种说法本身就是错的。ARPANET 旨在促进全美计算机科学家之间的合作，目的是要弄明白不同的操作系统、不同语言编写的软件如何配合使用，而非如何在麻省和加州之间实现高效的数据传输。因此，ARPANET 不仅是第一个分组交换网络，它还是一项非常成功且优秀的标准。在我看来，后者更有意思，毕竟我在博客上曾经写过许多颇有失败的标准：[语义网](https://twobithistory.org/2018/05/27/semantic-web.html)、[RSS](https://twobithistory.org/2018/12/18/rss.html) 与 [FOAF](https://twobithistory.org/2020/01/05/foaf.html)。

ARPANET 项目初期没有考虑到网络协议，协议的制定是后来的事情了。因此，这项工作自然落到了主要由研究生组成的组织 —— <ruby> 网络工作组 <rt>  Network Working Group </rt></ruby>（NWG）身上。该组织的首次会议于 1968 年在加州大学圣芭芭拉分校举办    [15] 。当时只有 12 人参会，大部分都是来自上述四所大学的代表    [16] 。来自加州大学洛杉矶分校的研究生<ruby> 史蒂夫·克罗克 <rt>  Steve Crocker </rt></ruby>参加了这场会议。他告诉我，工作组首次会议的参会者清一色都是年轻人，最年长的可能要数会议主席<ruby> 埃尔默·夏皮罗 <rt>  Elmer Shapiro </rt></ruby>了，他当年 38 岁左右。ARPA 没有派人负责研究计算机连接之后如何进行通信，但是很明显它需要提供一定的协助。随着工作组会议的陆续开展，克罗克一直期望着更有经验与威望的“法定成年人”从东海岸飞过来接手这项工作，但是期望终究还是落空了。在 ARPA 的默许之下，工作组举办了多场会议，其中包括很多长途旅行，差旅费由 ARPA 报销，这些就是它给与工作组的全部协助了    [17] 。

当时，网络工作组面临着巨大的挑战。从没有人有过使用通用方式连接计算机系统的经验，而且这本来就与上世纪六十年代末计算机领域盛行的全部观点相悖：

>
> 那个时候典型的主机表现得就像是它是全宇宙唯一的计算机。即便是最简短的交流会话，两台主机也无法轻易做到。并不是说机器没办法相互连接，只是连接之后，两台计算机又能做些什么呢？当时，计算机和与其相连的其他设备之间的通讯，就像帝王与群臣之间的对话一般。连接到主机的设备各自执行着自己的任务，每台外围设备都保持着常备不懈的状态，等待着上司的命令。当时的计算机就是严格按照这类互动需求设计出来的；它们向读卡器、终端与磁带机等下属设备发号施令，发起所有会话。但是，如果一台计算机拍了拍另一台计算机的肩膀，说道，“你好，我也是一台计算机”，那么另一台计算机可就傻眼了，什么也回答不上来    [18] 。
>
>
>

于是，工作组的最初进展很缓慢    [19] 。直到 1970 年 6 月，也就是首次会议将近两年之后，工作组才为网络协议选定了一套“正式”规范    [20] 。

不过，到了 1972 年，在国际计算机通信会议上展示 ARPANET 的时候，所有的协议已经准备就绪了。会议期间，这些协议运用到了国际象棋等情景之中。用户运行 `@e r` 命令（`@echo remote` 命令的缩写形式），可以指示 TIP 使用新 TELNET 虚拟终端协议提供的服务，通知远程主机它应该回显用户输入的内容。接着，用户运行 `@L 134` 命令（`@login 134` 命令的缩写形式），让 TIP 在 134 号主机上调用<ruby> 初始连接协议 <rt>  Initial Connection Protocol </rt></ruby>，该协议指示远程主机分配出连接所需的全部必要资源，并将用户带入 TELNET 会话中。上述文件传输的情景也许用到了 <ruby> 文件传输协议 <rt>  File Transfer Protocol </rt></ruby>（FTP），而该协议恰好是在大会举办前夕才刚刚完成的    [21] 。所有这些协议都是“三层”协议，其下的第二层是主机到主机的协议，定义了主机之间可以相互发送和接收的信息的基本格式；第一层是主机到接口通信处理机（IMP）的协议，定义了主机如何与连接的远程设备进行通信。令人感到不可思议的是，这些协议都能正常运行。

在我看来，网络工作组之所以能够在大会举办之前做好万全的准备，顺利且出色地完成任务，在于他们采用了开放且非正式的标准化方法，其中一个典型的例子就是著名的 <ruby> 征求意见 <rt>  Request for Comments </rt></ruby>（RFC）系列文档。RFC 文档最初通过<ruby> 传统信件 <rt>  snail mail </rt></ruby>在工作组成员之间进行传阅，让成员们在没有举办会议的时候也能保持联系，同时收集成员反馈，汇集各方智慧。RFC 框架是克罗克提出的，他写出了第一篇 RFC 文档，并在早期负责管理 RFC 的邮寄列表。他这样做是为了强调工作组开放协作的活动本质。有了这套框架以及触手可及的文档，ARPANET 的协议设计过程成了一个大熔炉，每个人都可以贡献出自己的力量，步步推进，精益求精，让最棒的想法脱颖而出，而没有人失去面子。总而言之，RFC 获得了巨大成功，并且直至今天，长达半个世纪之后，它依旧是网络标准的“说明书”。

因此，说起 ARPANET 的影响力，我认为不得不强调的一点正是工作组留下的这一成果。今天，互联网可以把世界各地的人们连接起来，这也是它最神奇的属性之一。不过如果说这项技术到了上世纪才开始使用，那可就有些滑稽可笑了。要知道，在 ARPANET 出现之前，人们就已经通过电报打破了现实距离的限制。而 ARPANET 打破的应该是各个主机站因使用不同的操作系统、字符编码、程序语言以及组织策略而在逻辑层面产生的差异限制。当然，将第一个分组交换网络投入使用在技术方面绝对是一大壮举，这肯定值得一提，不过，制定统一的标准并用以连接原本无法相互协作的计算机，是建立 ARPANET 网络过程中遇到的这两大难题中更为复杂的一个。而这一难题的解决方案，也成了 ARPANET 整个建立与发展历史中最为神奇的一个章节。

1981 年，高级研究计划署发表了一份“完工报告”，回顾了 ARPANET 项目的第一个十年。在《付出收获了回报的技术方面以及付出未能实现最初设想的技术方面》这一冗长的小标题下，作者们写道：

>
> 或许，在 ARPANET 的开发过程中，最艰难的一项任务就是，尽管主机制造商各不相同，或者同一制造商下操作系统各不相同，我们仍需在众多的独立主机系统之间实现通讯交流。好在这项任务后来取得了成功    [22] 。
>
>
>

你可以从美国联邦政府获得相关信息。

*如果你喜欢这篇文章，欢迎关注推特 [@TwoBitHistory](https://twitter.com/TwoBitHistory)，也可通过 [RSS 馈送](https://twobithistory.org/feed.xml) 订阅，获取最新文章。*

---

1. “Hilton Hotel Opens in Capital Today.” *The New York Times*, 20 March 1965, <https://www.nytimes.com/1965/03/20/archives/hilton-hotel-opens-in-capital-today.html?searchResultPosition=1>. Accessed 7 Feb. 2021. [↩](#fnref1)
2. James Pelkey. *Entrepreneurial Capitalism and Innovation: A History of Computer Communications 1968-1988,* Chapter 4, Section 12, 2007, [http://www.historyofcomputercommunications.info/Book/4/4.12-ICCC Demonstration71-72.html](http://www.historyofcomputercommunications.info/Book/4/4.12-ICCC%20Demonstration71-72.html). Accessed 7 Feb. 2021. [↩](#fnref2)
3. Katie Hafner and Matthew Lyon. *Where Wizards Stay Up Late: The Origins of the Internet*. New York, Simon & Schuster, 1996, p. 178. [↩](#fnref3)
4. “International Conference on Computer Communication.” *Computer*, vol. 5, no. 4, 1972, p. c2, <https://www.computer.org/csdl/magazine/co/1972/04/01641562/13rRUxNmPIA>. Accessed 7 Feb. 2021. [↩](#fnref4)
5. “Program for the International Conference on Computer Communication.” *The Papers of Clay T. Whitehead*, Box 42, <https://d3so5znv45ku4h.cloudfront.net/Box+042/013_Speech-International+Conference+on+Computer+Communications,+Washington,+DC,+October+24,+1972.pdf>. Accessed 7 Feb. 2021. [↩](#fnref5)
6. 我其实并不清楚 ARPANET 是在哪个房间展示的。很多地方都提到了“宴会厅”，但是华盛顿希尔顿酒店更习惯于叫它“乔治敦”，而不是把它当成一间会议室。因此，或许这场展示是在国际宴会厅举办的。但是 RFC 372 号文件又提到了预定“乔治敦”作为展示场地一事。华盛顿希尔顿酒店的楼层平面图可以点击 [此处](https://www3.hilton.com/resources/media/hi/DCAWHHH/en_US/pdf/DCAWH.Floorplans.Apr25.pdf) 查看。 [↩](#fnref6)
7. Hafner, p. 179. [↩](#fnref7)
8. ibid., p. 178. [↩](#fnref8)
9. Bob Metcalfe. “Scenarios for Using the ARPANET.” *Collections-Computer History Museum*, <https://www.computerhistory.org/collections/catalog/102784024>. Accessed 7 Feb. 2021. [↩](#fnref9)
10. Hafner, p. 176. [↩](#fnref10)
11. Robert H. Thomas. “Planning for ACCAT Remote Site Operations.” BBN Report No. 3677, October 1977, <https://apps.dtic.mil/sti/pdfs/ADA046366.pdf>. Accessed 7 Feb. 2021. [↩](#fnref11)
12. Hafner, p. 12. [↩](#fnref12)
13. Joy Lisi Rankin. *A People’s History of Computing in the United States*. Cambridge, MA, Harvard University Press, 2018, p. 84. [↩](#fnref13)
14. Rankin, p. 93. [↩](#fnref14)
15. Steve Crocker. Personal interview. 17 Dec. 2020. [↩](#fnref15)
16. 克罗克将会议记录文件发给了我，文件列出了所有的参会者。 [↩](#fnref16)
17. Steve Crocker. Personal interview. [↩](#fnref17)
18. Hafner, p. 146. [↩](#fnref18)
19. “Completion Report / A History of the ARPANET: The First Decade.” BBN Report No. 4799, April 1981, <https://walden-family.com/bbn/arpanet-completion-report.pdf>, p. II-13. [↩](#fnref19)
20. 这里我指的是 RFC 54 号文件中的“正式协议”。 [↩](#fnref20)
21. Hafner, p. 175. [↩](#fnref21)
22. “Completion Report / A History of the ARPANET: The First Decade,” p. II-29. [↩](#fnref22)

---

via: <https://twobithistory.org/2021/02/07/arpanet.html>

作者：[Two-Bit History](https://twobithistory.org) 选题：[lujun9972](https://github.com/lujun9972) 译者：[aREversez](https://github.com/aREversez) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #789 微软发布免费的 AI 图像合成软件

Summary: • 微软发布免费的 AI 图像合成软件 • GNU 工具链考虑将其基础设施转移到 Linux 基金会 • Debian GNU/Linux 14 代号已确定为“Forky”

“微软 365 个人”容易引发歧义

哈哈是的

![](/data/attachment/album/202210/14/185849cb8e8nvkwncj42kc.jpg)

![](/data/attachment/album/202210/14/185901g8hemhyhj6fv7hh6.jpg)

### 微软发布免费的 AI 图像合成软件

微软宣布了基于 OpenAI 的 DALL-E 2 模型的应用 Designer。用户可通过输入文字提示生成一系列图像。Designer 有免费版和付费版，将提供给微软 365 个人和家庭订阅用户。目前 Designer 作为一个免费的 Web 应用供公众测试和获取反馈，类似的技术将整合到 Edge 浏览器和 Bing 搜索引擎中。

>
> **[消息来源：ARS Technica](https://arstechnica.com/information-technology/2022/10/microsoft-integrates-ai-image-generator-into-edge-bing-and-a-new-app/)**
>
>
>

>
> 老王点评：AI 图像生成已经势不可挡，虽然目前还有一些道德瑕疵，但是这总是能解决的。
>
>
>

![](/data/attachment/album/202210/14/185918spgfhr4mzvhginie.jpg)

### GNU 工具链考虑将其基础设施转移到 Linux 基金会

GNU 工具链是 GNU/Linux 生态系统、云和嵌入式环境的基石。红帽公司资助的 [SourceWare.org](http://sourceware.org/) 多年来一直在托管 GNU 工具链的大部分基础设施，但最近有提议将其基础设施转移到 Linux 基金会提供的 IT 服务下。Linux 基金会的 IT 服务将管理 Git 存储库、邮件列表、错误跟踪器、网站、CI/CD 以及相关的基础设施。GNU 工具链的领导层已经正式表态支持这一提议。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/GNU-Toolchain-Leaders-LF-IT)**
>
>
>

>
> 老王点评：这件事 Linux 基金会做的不错，毕竟有专门的组织来负责维护，总比红帽员工兼职维护更可靠些。毕竟，现在这种基础软件的安全一旦动摇，影响的范围已经不仅仅是个人爱好者了。
>
>
>

![](/data/attachment/album/202210/14/185934kk9d5ee4e44nwpko.jpg)

### Debian GNU/Linux 14 代号已确定为“Forky”

Debian 方面今天宣布，计划 2027 年发布的 Debian 14 将被称为 “Forky”。Debian 的代号是以《玩具总动员》系列中的玩具命名的。即将在 2023 年发布的 Debian 12 代号为“Bookworm”，而 2025 年发布的 Debian 13 的代号是 “Trixie”。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Debian-14-Forky)**
>
>
>

>
> 老王点评：不知道《玩具总动员》中有多少个的有名字的玩具，要是用完了怎么办。
>
>
>


VirtualBox 7.0 发布，支持安全启动和全加密虚拟机

>
> VirtualBox 7.0 是自其上次大版本更新以来的一次重大升级。有一些不错的进步！
>
>
>

![伴随着 VirtualBox 7.0 的发布，支持安全启动和全加密虚拟机](/data/attachment/album/202210/15/101045ouzlt08pnt8lyt8n.jpg)

对 VirtualBox 来说，这是一次大的升级。这个版本值得关注，因为我们在最近几年没有看到过它的大版本更新。

对于那些不熟悉 VirtualBox 的人来说，它是一个由 [甲骨文公司](https://www.oracle.com/in/) 开发的虚拟化软件。

随着 VirtualBox 7.0 的推出，增加了许多新功能。

让我们来看看其中最关键的一些。

### VirtualBox 7.0 的新内容

![virtualbox 7.0](/data/attachment/album/202210/15/101046a395mwuhwccmot5t.png)

VirtualBox 7.0 是一次有益的升级。有图标更新、主题改进，以及一些关键的亮点，包括：

* 一个显示运行中的<ruby> 客体 <rt>  Guest </rt></ruby>的性能统计的新工具。
* 支持安全启动。
* 支持<ruby> 全加密虚拟机 <rt>  Full VM Encryption </rt></ruby>（通过 CLI）。
* 重新设计的新建虚拟机向导。

#### 通过命令行管理的全加密虚拟机

虚拟机（VM）现在可以完全加密了，但只能通过命令行界面。

这也包括加密的配置日志和暂存状态。

截至目前，用户只能通过命令行界面对机器进行加密，未来将增加不同的方式。

#### 新的资源监控工具

![VirtualBox 7.0 的资源监控](/data/attachment/album/202210/15/101046vfm4f99141s49kss.png)

新的实用程序可以让你监控性能统计，如 CPU、内存使用、磁盘 I/O 等。它将列出所有正在运行的客体的性能统计。

这不是最吸引人的补充，但很有用。

#### 改进的主题支持

对主题的支持在所有平台上都得到了改进。在 Linux 和 macOS 上使用原生引擎，而在 Windows 上，有一个单独的实现。

#### 对安全启动的支持

VirtualBox 现在支持安全启动，增强了对恶意软件、病毒和间谍软件的安全性。

它还将防止虚拟机使用损坏的驱动程序启动，这对企业应用非常重要。

使用那些需要安全启动才能运行的操作系统的用户现在应该能够轻松创建虚拟机了。

#### 其他变化

VirtualBox 7.0 是一次重大的升级。因此，有几个功能的增加和全面的完善。

例如，新件虚拟机向导现在已经重新设计，以整合无人值守的客体操作系统安装。

![virtualbox 7.0 无人值守的发行版安装](/data/attachment/album/202210/15/101047vd85b97e2lj79lxl.png)

其他改进包括：

* 云端虚拟机现在可以被添加到 VirtualBox，并作为本地虚拟机进行控制。
* VirtualBox 的图标在此版本中得到了更新。
* 引入了一个新的 3D 栈，支持 DirectX 11。它使用 [DXVK](https://github.com/doitsujin/dxvk) 来为非 Windows 主机提供同样的支持。
* 支持虚拟 TPM 1.2/2.0。
* 改进了多显示器设置中的鼠标处理。
* Vorbis 是音频录制的默认音频编解码器。

你可以查看 [发行说明](https://www.virtualbox.org/wiki/Changelog-7.0) 以了解更多信息。

如果你正在寻找增强的功能，如更好的主题支持、加密功能、安全启动支持和类似的功能添加，VirtualBox 7.0 是一个不错的升级。

? *你对这次升级有什么看法？你会使用较新的版本还是暂时坚持使用旧版本的虚拟机？*

---

via: <https://news.itsfoss.com/virtualbox-7-0-release/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


服务器支持 IPv6 的原因

![](/data/attachment/album/202210/15/155046v94vbmo5imykfkxz.jpg)

我一直在努力学习关于 IPv6 的相关知识。一方面，IPv6 的基础概念是很简单的（没有足够的 IPv4 地址可以满足互联网上的所有设备，所以人们发明了 IPv6！每个人都能有足够的 IPv6 地址！）

但是当我试图进一步理解它时，我遇到了很多问题。其中一个问题是：为什么 [twitter.com](http://twitter.com) 不支持 IPv6。假设，网站不支持 IPv6 并不会造成很多困难，那么为什么网站需要支持 IPv6 呢？

我在 Twitter 上询问了很多人 [为什么他们的服务器支持 IPv6](https://twitter.com/b0rk/status/1487156306884636672)，我得到了很多很好的答案，我将在这里总结一下。事先说明一下，因为我对 IPv6 基本上毫无经验，所以下面所总结的理由中可能会有写得不准确的地方，请大家多多包涵。

首先，我想解释一下为什么 [twitter.com](http://twitter.com) 可以不支持 IPv6，因为这是最先让我困惑的地方。

### 怎么知道 [twitter.com](http://twitter.com) 不支持 IPv6 呢？

你可以使用 `dig` 命令以 `AAAA` 的选项查询某一个域名的 IPv6 地址记录，如果没有记录，则表明该域名不支持 IPv6。除了 [twitter.com](http://twitter.com)，还有一些大型网站，如 [github.com](http://github.com) 和 [stripe.com](http://stripe.com) 也不支持 IPv6。

```
$ dig AAAA twitter.com
(empty response)
$ dig AAAA github.com
(empty response)
$ dig AAAA stripe.com
(empty response)

```

### 为什么 [twitter.com](http://twitter.com) 仍然适用于 IPv6 用户？

我发现这真的很令人困惑。我一直听说因为 IPv4 地址已经用完了，从而很多互联网用户被迫要使用 IPv6 地址。但如果这是真的，[twitter.com](http://twitter.com) 怎么能继续为那些没有 IPv6 支持的人提供服务呢？以下内容是我昨天从 Twitter 会话中学习到的。

互联网服务提供商（ISP）有两种：

1. 能为所有用户拥有足够 IPv4 地址的 ISP
2. 不能为所有用户拥有足够 IPv4 地址的 ISP

我的互联网服务提供商属于第 1 类，因此我的计算机有自己的 IPv4 地址，实际上我的互联网服务提供商甚至根本不支持 IPv6。

但是很多互联网服务提供商（尤其是北美以外的）都属于第 2 类：他们没有足够的 IPv4 地址供所有用户使用。这些互联网服务提供商通过以下方式处理问题：

* 为所有用户提供唯一的 IPv6 地址，以便他们可以直接访问 IPv6 网站
* 让用户 *共享* IPv4 地址，这可以使用 CGNAT（“<ruby> <a href="https://en.wikipedia.org/wiki/Carrier-grade_NAT">  运营商级 NAT </a> <rt>  carrier-grade NAT </rt></ruby>”）或者“464XLAT”或其他方式。

所有互联网服务提供商都需要 *一些* IPv4 地址，否则他们的用户将无法访问 [twitter.com](http://twitter.com) 等只能使用 IPv4 的网站。

### 为什么网站要支持 IPv6？

现在，我们已经解释了为什么可以 *不支持* IPv6。那为什么要支持 IPv6 呢？有下面这些原因。

#### 原因一：CGNAT 是一个性能瓶颈

对我而言，支持 IPv6 最有说服力的论点是：CGNAT 是一个瓶颈，它会导致性能问题，并且随着对 IPv4 地址的访问变得越来越受限，它的性能会变得更糟。

有人也提到：因为 CGNAT 是一个性能瓶颈，因此它成为了一个有吸引力的拒绝服务攻击（DDoS）的目标，因为你可以通过攻击一台服务器，影响其他用户对该服务器的网站的可用性。

支持 IPv6 的服务器减少了对 CGNAT 的需求（IPv6 用户可以直接连接！），这使得互联网对每个人的响应速度都更快了。

我认为这个论点很有趣，因为它需要各方的努力——仅仅你的网站支持 IPv6，并不会让你的网站更好地运行，而更重要的是如果 *几乎每个网站* 都支持 IPv6，那么它将使每个人的互联网体验更好，尤其对于那些无法轻松访问 IPv4 地址的国家/地区。

实际上，我不知道这在实践中会有多大的关系。

不过，使用 IPv6 还有很多更自私的论点，所以让我们继续探讨吧。

#### 原因二：只能使用 IPv6 的服务器也能够访问你的网站

我之前说过，大多数 IPv6 用户仍然可以通过 NAT 方式访问 IPv4 的网站。但是有些 IPv6 用户是不能访问 IPv4 网站的，因为他们发现他们运行的服务器只有 IPv6 地址，并且不能使用 NAT。因此，这些服务器完全无法访问只能使用 IPv4 的网站。

我想这些服务器并没有连接很多主机，也许它们只需要连接到一些支持 IPv6 的主机。

但对我来说，即使没有 IPv4 地址，一台主机也应该能够访问我的站点。

#### 原因三：更好的性能

对于同时使用 IPv4 和 IPv6（即具有专用 IPv6 地址和共享 IPv4 地址）的用户，IPv6 通常更快，因为它不需要经过额外的 NAT 地址转换。

因此，有时支持 IPv6 的网站可以为用户提供更快的响应。

在实际应用中，客户端使用一种称为“Happy Eyeballs”的算法，该算法能够从 IPv4 和 IPv6 中为用户选择一个最快的链接。

以下是网站支持 IPv6 的一些其他性能优势:

* 使用 IPv6 可以提高搜索引擎优化（SEO），因为 IPv6 具有更好的性能。
* 使用 IPv6 可能会使你的数据包通过更好（更快）的网络硬件，因为相较于 IPv4，IPv6 是一个更新的协议。

#### 原因四：能够恢复 IPv4 互联网中断

有人说他碰到过由于意外的 BGP 中毒，而导致仅影响 IPv4 流量的互联网中断问题。

因此，支持 IPv6 的网站意味着在中断期间，网站仍然可以保持部分在线。

#### 原因五：避免家庭服务器的 NAT 问题

将 IPv6 与家庭服务器一起使用，会变得简单很多，因为数据包不必通过路由器进行端口转发，因此只需为每台服务器分配一个唯一的 IPv6 地址，然后直接访问服务器的 IPv6 地址即可。

当然，要实现这一点，客户端需要支持 IPv6，但如今越来越多的客户端也能支持 IPv6 了。

#### 原因六：为了拥有自己的 IP 地址

你也可以自己购买 IPv6 地址，并将它们用于家庭网络的服务器上。如果你更换了互联网服务提供商，可以继续使用相同的 IP 地址。

我不太明白这是如何工作的，是如何让互联网上的计算机将这些 IP 地址路由转发给你的？我猜测你需要运行自己的自治系统（AS）或其他东西。

#### 原因七：为了学习 IPv6

有人说他们在安全领域中工作，为保证信息安全，了解互联网协议的工作原理非常重要（攻击者正在使用互联网协议进行攻击！）。因此，运行 IPv6 服务器有助于他们了解其工作原理。

#### 原因八：为了推进 IPv6

有人说因为 IPv6 是当前的标准，因此他们希望通过支持 IPv6 来为 IPv6 的成功做出贡献。

很多人还说他们的服务器支持 IPv6，是因为他们认为只能使用 IPv4 的网站已经太“落后”了。

#### 原因九：IPv6 很简单

我还得到了一堆“使用 IPv6 很容易，为什么不用呢”的答案。在所有情况下添加 IPv6 支持并不容易，但在某些情况下添加 IPv6 支持会是很容易的，有以下的几个原因：

* 你可以从托管公司自动地获得 IPv6 地址，因此你只需要做的就是添加指向该地址的 `AAAA` 记录
* 你的网站是基于支持 IPv6 的内容分发网络（CDN），因此你无需做任何额外的事情

#### 原因十：为了实施更安全的网络实验

因为 IPv6 的地址空间很大，所以如果你想在网络中尝试某些东西的时候，你可以使用 IPv6 子网进行实验，基本上你之后不会再用到这个子网了。

#### 原因十一：为了运行自己的自治系统（AS）

也有人说他们为了运行自己的自治系统（我在这篇 [BGP 帖子](https://jvns.ca/blog/2021/10/05/tools-to-look-at-bgp-routes/) 中谈到了什么是 AS），因此在服务器中提供 IPv6。IPv4 地址太贵了，所以他们为运行自治系统而购买了 IPv6 地址。

#### 原因十二：IPv6 更加安全

如果你的服务器 *只* 有公共的 IPv6 地址，那么攻击者扫描整个网络，也不能轻易地找出你的服务器地址，这是因为 IPv6 地址空间太大了以至于不能扫描出来！

这显然不能是你仅有的安全策略，但是这是安全上的一个大大的福利。每次我运行 IPv4 服务器时，我都会惊讶于 IPv4 地址一直能够被扫描出来的脆弱性，就像是老版本的 WordPress 博客系统那样。

#### 一个很傻的理由：你可以在你的 IPv6 地址中放个小彩蛋

IPv6 地址中有很多额外的位，你可以用它们做一些不重要的事情。例如，Facebook 的 IPv6 地址之一是“2a03:2880:f10e:83:face:b00c:0:25de”（其中包含 `face:b00c`）。

### 理由还有很多

这就是到目前为止我所了解的“为什么支持 IPv6？”的理由。

在我理解这些原因后，相较于以前，我在我的（非常小的）服务器上支持 IPv6 更有动力了。但那是因为我觉得支持 IPv6，对我来说只需要很少的努力。（现在我使用的是支持 IPv6 的 CDN，所以我基本上不用做什么额外的事情）

我仍然对 IPv6 知之甚少，但是在我的印象中，支持 IPv6 并不是不需要花费精力的，实际上可能需要大量工作。例如，我不知道 Twitter 在其边缘服务器上添加 IPv6 支持需要做多少繁杂的工作。

### 其它关于 IPv6 的问题

这里还有一些关于 IPv6 的问题，也许我之后再会探讨：

* 支持 IPv6 的缺点是什么？什么会出错呢？
* 对于拥有了足够 IPv4 地址的 ISP 来说，有什么让他们提供 IPv6 的激励措施？（另一种问法是：我的 ISP 是否有可能在未来几年内转为支持 IPv6？或者他们可能不会支持 IPv6？）
* [Digital Ocean](https://docs.digitalocean.com/products/networking/floating-ips/) （LCTT 译注：一家建立于美国的云基础架构提供商，面向软件开发人员提供虚拟专用服务器（VPS））只提供 IPv4 的浮动地址，不提供 IPv6 的浮动地址。为什么不提供呢？有更多 IPv6 地址，那提供 IPv6 的浮动地址不是变得更 *便捷* 吗？
* 当我尝试 ping IPv6 地址时（例如 [example.com](http://example.com) 的 IP 地址`2606:2800:220:1:248:1893:25c8:1946`），我得到一个报错信息 `ping: connect: Network is unreachable`。这是为什么呢？（回答：因为我的 ISP 不支持 IPv6，所以我的电脑没有公共 IPv6 地址）

这篇 [来自 Tailscale 的 IPv4 与 IPv6 文章](https://tailscale.com/kb/1134/ipv6-faq/) 非常有意思，并回答了上述的一些问题。

---

via: <https://jvns.ca/blog/2022/01/29/reasons-for-servers-to-support-ipv6/>

作者：[Julia Evans](https://jvns.ca/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[chai001125](https://github.com/chai001125) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #790 Canonical 在 apt 命令中为其 Ubuntu Pro 打广告

Summary: • Canonical 在 apt 命令中为其 Ubuntu Pro 打广告 • 黑客利用无人机，通过 Wi-Fi 远程渗透了金融公司内网 • PostgreSQL 15 发布

Canonical 净干些恶心人的事，可惜了ubuntu。现在已经转到debian了。

![](/data/attachment/album/202210/15/185110hg00ssie3ihey9g0.jpg)

![](/data/attachment/album/202210/15/185118xeokk5qx0prp0oco.jpg)

### Canonical 在 apt 命令中为其 Ubuntu Pro 打广告

之前我们 [报道](/article-15120-1.html) 过，Canonical 公司提供的 Ubuntu Pro 支持现在可供多达五台机器免费使用，为这些机器提供十年的支持服务。这本来是一件好事，但如果你从命令行用 `apt` 命令更新时，你就会看到 Canonical 发布的宣传这项免费服务的广告。这让一些用户非常恼火。Canonical 在自作主张向 Ubuntu 用户显示广告方面“劣迹斑斑”。上一次在服务器的登录屏幕中显示了促销信息，而在十年前，它还在桌面搜索结果中显示了亚马逊的广告。

>
> **[消息来源：The Register](https://www.theregister.com/2022/10/13/canonical_ubuntu_ad/)**
>
>
>

>
> 老王点评：我觉得，可能 Canonical 的初衷或许是好的，但是这种侵入式广告的方式太糟糕。或许，Ubuntu 应该在其桌面版和服务器版中专门提供一个通告服务，以使关注 Ubuntu 相关信息的人可以主动订阅。
>
>
>

![](/data/attachment/album/202210/15/185129jwrira0v3i0x343a.jpg)

### 黑客利用无人机，通过 Wi-Fi 远程渗透了金融公司内网

安保人员在美国东海岸一家专注于私人投资的金融公司的大楼顶层发现了两架 DJI 无人机，一架虽然炸机但仍在运行，而另一架实现了安全着陆。两架无人机上被加装了渗透套件，包含一台树莓派、GPD 迷你笔记本电脑、4G 调制解调器、Wi-Fi 设备、几块电池，以及一套网络渗透测试设备。攻击者利用该装置拦截了该公司员工的凭据，利用员工 MAC 地址和访问凭据、从屋顶侵入了该公司的内网。

>
> **[消息来源：The Register](https://www.theregister.com/2022/10/12/drone-roof-attack/)**
>
>
>

>
> 老王点评：这真是无孔不入，之前曾经有黑客靠近办公室渗透 Wi-Fi 的，现在居然连无人机都用上了。
>
>
>

![](/data/attachment/album/202210/15/185142j73dprboyugtomdo.jpg)

### PostgreSQL 15 发布

新版本进一步改进了性能，主要新特性包括：支持 SQL MERGE 命令；改进内存中和磁盘上的排序性能，最高提升 400%；启用了 Zstd 和 LZ4 压缩支持，并支持写前日志文件；支持 pg\_basebackup 期间执行服务器端压缩；等等。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/PostgreSQL-15-Released)**
>
>
>

>
> 老王点评：我当时学习的第一个开源数据库就是 PG，可惜后来它的风头被 MySQL 抢走了，但是实际上 PG 更优秀。
>
>
>


PyLint 的优点、缺点和危险

Summary: 充分利用 PyLint。

![](/data/attachment/album/202210/16/093840z9pnzfv9ykfccoq9.jpg)

>
> 充分利用 PyLint。
>
>
>

敲黑板：PyLint 实际上很好！

“PyLint 可以拯救你的生命”，这是一句夸张的描述，但没有你想象的那么夸张。PyLint 可以让你远离非常难找到的和复杂的缺陷。最差的情况下，它只可以节省测试运行的时间。最好的情况下，它可以帮你避免生产环境中复杂的错误。

### 优点

我不好意思说这种情况是多么普遍。测试的命名总是*那么奇怪*：没有人关心这个名称，而且通常也找不到一个自然的名称。例如以下代码：

```
def test_add_small():
    # Math, am I right?
    assert 1 + 1 == 3

def test_add_large():
    assert 5 + 6 == 11

def test_add_small():
    assert 1 + 10 == 11

```

测试生效：

```
collected 2 items
test.py ..
2 passed

```

但问题是：如果你覆盖了一个测试的名称，测试框架将愉快地跳过这个测试！

实际上，这些文件可能有数百行，而添加新测试的人可能并不知道所有的名称。除非有人仔细查看测试输出，否则一切看起来都很好。

最糟糕的是，*被覆盖测试的添加*、*被覆盖测试造成的破坏*，以及*连锁反应的问题*可能要几天、几月甚至几年才能发现。

### PyLint 会找到它

就像一个好朋友一样，PyLint 可以帮助你。

```
test.py:8:0: E0102: function already defined line 1
     (function-redefined)

```

### 缺点

就像 90 年代的情景喜剧一样，你对 PyLint 了解的越多，问题就越多。以下是一个库存建模程序的常规代码：

```
"""Inventory abstractions"""

import attrs

@attrs.define
class Laptop:
    """A laptop"""
    ident: str
    cpu: str

```

但 PyLint 似乎有自己的观点（可能形成于 90 年代），并且不怕把它们作为事实陈述出来：

```
$ pylint laptop.py | sed -n '/^laptop/s/[^ ]*: //p'
R0903: Too few public methods (0/2) (too-few-public-methods)

```

### 危险

有没有想过在一个数百万人使用的工具中加入自己未证实的观点？PyLint 每月有 1200 万次下载。

>
> “如果太挑剔，人们会取消检查” — 这是 PyLint GitHub 的 6987 号议题，于 2022 年 7 月 3 号提出
>
>
>

对于添加一个可能有许多误报的测试，它的态度是 ... “*嗯*”。

### 让它为你工作

PyLint 很好，但你需要小心地与它配合。为了让 PyLint 为你工作，以下是我推荐的三件事：

#### 1、固定版本

固定你使用的 PyLint 版本，避免任何惊喜！

在你的 `.toml` 文件中定义:

```
[project.optional-dependencies]
pylint = ["pylint"]

```

在代码中定义：

```
from unittest import mock

```

这与以下代码对应：

```
# noxfile.py
...
@nox.session(python=VERSIONS[-1])
def refresh_deps(session):
    """Refresh the requirements-*.txt files"""
    session.install("pip-tools")
    for deps in [..., "pylint"]:
        session.run(
            "pip-compile",
            "--extra",
            deps,
            "pyproject.toml",
            "--output-file",
            f"requirements-{deps}.txt",
        )

```

#### 2、默认禁止

禁用所有检查，然后启用那些你认为误报比率高的。（不仅仅是漏报/误报的比率！）

```
# noxfile.py
...
@nox.session(python="3.10")
def lint(session):
    files = ["src/", "noxfile.py"]
    session.install("-r", "requirements-pylint.txt")
    session.install("-e", ".")
    session.run(
        "pylint",
        "--disable=all",
        *(f"--enable={checker}" for checker in checkers)
        "src",
    )

```

#### 3、检查器

以下是我喜欢的检查器。加强项目的一致性，避免一些明显的错误。

```
checkers = [
    "missing-class-docstring",
    "missing-function-docstring",
    "missing-module-docstring",
    "function-redefined",
]

```

### 使用 PyLint

你可以只使用 PyLint 好的部分。在 CI 中运行它以保持一致性，并使用常用检查器。

放弃不好的部分：默认禁止检查器。

避免危险的部分：固定版本以避免意外。

---

via: <https://opensource.com/article/22/9/pylint-good-bad-ugly>

作者：[Moshe Zadka](https://opensource.com/users/moshez) 选题：[lkxed](https://github.com/lkxed) 译者：[MjSeven](https://github.com/MjSeven) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出