为什么 DNS 仍然难以学习？

Summary: 以下是关于为什么学习排除 DNS 问题很困难的几点思考。

以下是关于为什么学习排除 DNS 问题很困难的几点思考。

# 为什么 DNS 仍然难以学习？

<img src="content_image/album_202308_13_121642b6b2b4b4p2pgiydb.jpg" alt="" title="">

我经常写关于我发现难以学习的技术的文章。不久前，我的朋友 Sumana 向我提出了一个有趣的问题 - 为什么这些东西学起来那么难？为什么它们看起来如此神秘？

以 DNS 为例。我们从 [80 年代](https://www.ietf.org/rfc/rfc1034.txt) 开始使用 DNS（已经超过 35 年了！）。它在互联网上的每个网站中都使用。而且它相当稳定 - 在很多方面，它的工作方式与 30 年前完全相同。

但是我花了好几年的时间才弄清楚如何自信地调试 DNS 问题，我也见过很多其他程序员在调试 DNS 问题上苦苦挣扎。那么到底发生了什么呢？

以下是关于为什么学习排除 DNS 问题很困难的几点思考。

（我不会在这篇文章中详细解释 DNS，更多关于 DNS 如何工作的信息，请参阅 《[用一个周末实现一个 DNS](https://implement-dns.wizardzines.com/)》 或 [我的 DNS 方面的博文](https://jvns.ca/categories/dns/)）

### 并不是因为 DNS 非常难

当我最终学会如何排除 DNS 问题时，我的反应是“什么，就这样吗？？？这并不难！”我感觉有点被骗了！我可以在 [几个小时](https://wizardzines.com/zines/dns) 内向你解释关于 DNS 令我感到困惑的一切事情。

那么 - 如果 DNS 并不是那么复杂，为什么我花了这么多年的时间才弄清楚如何排除相当基本的 DNS 问题（比如“即使我已经正确设置了，我的域名仍无法解析”或者“`dig` 命令和我的浏览器的 DNS 结果不一致，为什么？”）？

而且，在发现 DNS 学习困难方面，我并不孤单！我与许多经验丰富的程序员朋友讨论过多年来的 DNS 问题，其中很多人要么：

* 不敢轻易对其网站进行简单的 DNS 更改
* 或对 DNS 工作原理的基本事实感到困惑（比如记录是 [拉取的而非推送的](https://jvns.ca/blog/2021/12/06/dns-doesn-t-propagate/)）
* 或对 DNS 基础知识了解得很好，但却和我一样存在一些知识盲点（负缓存和 `dig` 命令及浏览器如何以不同方式进行 DNS 查询的细节）

因此，如果我们都面临着 DNS 的相同困扰，到底发生了什么？为什么对许多人来说学习 DNS 如此困难？

以下是我的一些看法。

### 很多系统是隐藏的

当你在计算机上发起 DNS 请求时，基本的过程如下：

1. 你的计算机向一个名为“解析器”的服务器发起请求。
2. 解析器检查其缓存，并向一些称为“权威名称服务器”的其它服务器发起请求。

以下是你看不到的一些内容：

* 解析器的**缓存**。里面有什么内容？
* 在你的计算机上进行 DNS 请求的**库代码**是哪个（是否是 libc 的 `getaddrinfo` 函数？如果是，它是来自 glibc、musl 还是苹果？是你的浏览器的 DNS 代码吗？还是其他自定义的 DNS 实现？）所有这些选项的行为略有不同，并且有不同的配置、缓存方法、可用功能等等。例如，musl DNS 直到 [2023 年初](https://www.theregister.com/2023/05/16/alpine_linux_318/) 才支持 TCP。
* 解析器与权威名称服务器之间的**对话**。如果你能够神奇地获得一个准确记录你的请求期间向下游查询的每个权威名称服务器以及它们的响应的追踪，我认为很多 DNS 问题将变得非常简单。（比如，如果你能运行 `dig +debug google.com` 并获得一些额外的调试信息会怎么样？）

### 如何和隐藏系统打交道

以下是几个处理隐藏系统的方法：

* 向人们传授隐藏系统的知识会产生重大影响。很长一段时间里，我不知道我的计算机有多个不同的 DNS 库，它们在不同情况下使用，我对此感到困惑了好几年。这是我的重要排错方法。
* 通过 [Mess With DNS](https://messwithdns.net/)，我们尝试了一种“鱼缸”的方法，展示了通常隐藏的系统（与解析器和权威名称服务器的对话）的一些部分。
* 我觉得将 DNS 扩展以包括一个“调试信息”部分会非常酷。（注：似乎这已经有了！它被称为“[扩展 DNS 错误](https://blog.nlnetlabs.nl/extended-dns-error-support-for-unbound/)”，即 EDE，各种工具正在逐渐添加对它的支持。）

### 扩展 DNS 错误看起来不错

扩展 DNS 错误是 DNS 服务器提供额外调试信息的一种新方式。以下是一个示例：

```
$ dig @8.8.8.8 xjwudh.com
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 39830
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
; EDE: 12 (NSEC Missing): (Invalid denial of existence of xjwudh.com/a)
;; QUESTION SECTION:
;xjwudh.com.			IN	A

;; AUTHORITY SECTION:
com.			900	IN	SOA	a.gtld-servers.net. nstld.verisign-grs.com. 1690634120 1800 900 604800 86400

;; Query time: 92 msec
;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP)
;; WHEN: Sat Jul 29 08:35:45 EDT 2023
;; MSG SIZE  rcvd: 161

```

这里我请求了一个不存在的域名，并收到了扩展错误信息 `EDE: 12 (NSEC Missing): (Invalid denial of existence of xjwudh.com/a)`。我不太确定这是什么意思（它与 DNSSEC 有关），但能看到这样额外的调试信息真的很酷。

为了能看到上述内容，我确实需要安装更新版本的 `dig`。

### 令人困惑的工具

尽管很多 DNS 的细节被隐藏起来，但你可以通过使用 `dig` 工具来找出发生了什么事情。

例如，你可以使用 `dig +norecurse` 来确定给定的 DNS 解析器是否在其缓存中具有特定的记录。如果响应没有被缓存，`8.8.8.8` 看起来会返回 `SERVFAIL` 响应。

以下是对 `google.com` 进行该操作的示例：

```
$ dig +norecurse  @8.8.8.8 google.com
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11653
;; flags: qr ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;google.com.            IN  A

;; ANSWER SECTION:
google.com.     21  IN  A   172.217.4.206

;; Query time: 57 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Jul 28 10:50:45 EDT 2023
;; MSG SIZE  rcvd: 55

```

这是对 `homestarrunner.com` 的示例：

```
$ dig +norecurse  @8.8.8.8 homestarrunner.com
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 55777
;; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;homestarrunner.com.		IN	A

;; Query time: 52 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Jul 28 10:51:01 EDT 2023
;; MSG SIZE  rcvd: 47

```

在这里，你可以看到我们对于 `google.com` 得到了一个正常的 `NOERROR` 响应（`8.8.8.8` 的缓存中有该记录），但对于 `homestarrunner.com` 得到了 `SERVFAIL` 响应（没有缓存）。这并不意味着 `homestarrunner.com` 没有 DNS 记录（实际上有！），它只是没有被缓存。

但如果你不熟悉这样的输出，它确实很难阅读！以下是我认为其中一些奇怪的地方：

1. 标题很奇怪（有 `->>HEADER<<-`、`flags:`、`OPT PSEUDOSECTION:`、`QUESTION SECTION:`、`ANSWER SECTION:`）。
2. 空格排版很奇怪（`OPT PSEUDOSECTION` 和 `QUESTION SECTION` 之间为什么没有换行符？）。
3. `MSG SIZE rcvd: 47` 很奇怪（`MSG SIZE` 中是否还有其他字段，而不仅仅是 `rcvd`？它们是什么？）。
4. 它说有 1 个记录在 `ADDITIONAL` 部分，但没有显示它，你必须以某种方式神奇地知道`OPT PSEUDOSECTION` 记录实际上在 `ADDITIONAL` 部分。

总的来说，`dig` 的输出给人的感觉是一个以临时方式编写并随着时间的推移逐渐发展起来的脚本，而不是经过有意设计的东西。

### 处理令人困惑的工具的一些想法：

* **解释输出结果**。例如，我写了一篇 [如何使用 dig](https://jvns.ca/blog/2021/12/04/how-to-use-dig/) 的文章，解释了 `dig` 的输出结果以及如何配置它以默认给出更简短的输出。
* **创建新的、更友好的工具**。例如，在 DNS 方面，有 [dog](https://github.com/ogham/dog)、[doggo](https://github.com/mr-karan/doggo) 和 [我的 DNS 查询工具](https://dns-lookup.jvns.ca/)。我认为这些工具非常酷，但我个人不使用它们，因为有时我想做一些稍微高级一点的操作（比如使用 `+norecurse`），据我所知，无论是 `dog` 还是 `doggo` 都不支持 `+norecurse`。我更愿意使用一个工具来完成所有任务，所以我坚持使用 `dig`。要替换 `dig`，其功能广度是一项庞大的工作。
* **使 dig 的输出更加友好**。如果我在 C 编程方面更好一些，我可能会尝试编写一个 `dig` 的拉取请求，添加一个 `+human` 标志以以更结构化和易读的方式格式化长格式的输出，可能类似于以下形式：

```
$ dig +human +norecurse  @8.8.8.8 google.com
HEADER:
  opcode: QUERY
  status: NOERROR
  id: 11653
  flags: qr ra
  records: QUESTION: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

QUESTION SECTION:
  google.com.			IN	A

ANSWER SECTION:
  google.com.		21	IN	A	172.217.4.206

ADDITIONAL SECTION:
  EDNS: version: 0, flags:; udp: 512

EXTRA INFO:
  Time: Fri Jul 28 10:51:01 EDT 2023
  Elapsed: 52 msec
  Server: 8.8.8.8:53
  Protocol: UDP
  Response size: 47 bytes

```

这样可以更清晰地呈现 DNS 响应的结构-包括标题、问题、答案和附加部分。

而且它并不是“简化”了什么！它是完全相同的信息，只是以更结构化的方式进行了格式化。我对替代的 DNS 工具最大的不满是它们经常为了清晰起见而删除信息。虽然这些工具肯定有其用武之地，但我想要看到所有的信息！我只是希望它能够以清晰明了的方式呈现。

在过去的 40 年中，我们已经学到了很多关于如何设计更用户友好的命令行工具的知识，我认为将其中一些知识应用到我们那些有些陈旧的工具中将会很棒。

### dig +yaml

关于 `dig` 的一个简单备注：较新版本的 `dig` 支持 `+yaml` 输出格式，对我来说更加清晰，但有些冗长（一个相当简单的 DNS 响应都无法在屏幕上完整显示）。

### 一些奇怪的陷阱

DNS 存在一些相对常见但很难通过自学了解到的奇怪问题。以下是一些例子（有更多可在 [导致 DNS 中断的一些方式](https://jvns.ca/blog/2022/01/15/some-ways-dns-can-break/) 中找到）：

* 负缓存：我在 [这篇演讲](https://jvns.ca/blog/2023/05/08/new-talk-learning-dns-in-10-years/) 中提到过，我大约花了 5 年时间才意识到不应该访问没有 DNS 记录的域名，因为该记录的 **不存在** 信息将被缓存，并且该缓存在几个小时内不会被更新，这真的很烦人。
* `getaddrinfo` 实现的差异：直到 [2023 年初](https://www.theregister.com/2023/05/16/alpine_linux_318/)，`musl` 不支持 TCP DNS。
* 忽略 TTL 的解析器：如果你在 DNS 记录上设置了 TTL（比如“5 分钟”），一些解析器完全会忽略这些 TTL 设置，并将记录缓存更长时间，比如可能是 24 小时。
* 如果你错误地配置了 Nginx（[像这样](https://jvns.ca/blog/2022/01/15/some-ways-dns-can-break/#problem-nginx-caching-dns-records-forever)），它将永久缓存 DNS 记录。
* [ndots](https://pracucci.com/kubernetes-dns-resolution-ndots-options-and-why-it-may-affect-application-performances.html) 如何导致 Kubernetes DNS 缓慢。

### 如何应对奇怪的陷阱

对此，我没有像我希望的那样完美的答案。对奇怪陷阱的了解非常难以获得（再次强调，我花了多年的时间才弄清楚负缓存！），对我而言，人们不得不一次又一次地自己重新发现它们感觉很愚蠢。

以下是一些想法：

* 当有人在解释一个主题时提到了一些棘手的问题，这是非常有帮助的。例如（离开 DNS 一下），Josh Comeau 的 Flexbox 入门解释了这个 [最小尺寸的陷阱](https://www.joshwcomeau.com/css/interactive-guide-to-flexbox/#the-minimum-size-gotcha-11)，在找到解释之前，我多年来遇到过很多次这个问题。
* 我希望看到更多的社区整理的常见陷阱。比如说，对于 Bash，[shellcheck](https://www.shellcheck.net/) 是一个非常不错的常见陷阱集合。

关于记录 DNS 陷阱的一个棘手问题是，不同的人会遇到不同的陷阱。如果你只是每三年为个人域名配置一次 DNS，你可能会遇到不同的问题，而那些管理高流量域名的人则可能会遇到其他问题。

还有一些更简单的原因：

### 不经常接触

很多人非常少接触 DNS。如果你只在每三年才处理一次 DNS，学习起来就会更加困难！

我认为备忘单（比如“这是更改你的名称服务器的步骤”）可以在这方面起到很大的帮助。

### 难以进行实验

DNS 在进行实验时可能会让人感到害怕，因为你不想搞砸自己的域名。我们建立了 [Mess With DNS](https://messwithdns.net/) 来使这个过程变得更容易一些。

### 目前就这些

我很想听听其他关于什么让 DNS（或你最喜欢的神秘技术）难以学习的想法。

*（题图：MJ/96c5d8fb-f4a5-4710-8f91-c71617120675）*

---

via: <https://jvns.ca/blog/2023/07/28/why-is-dns-still-hard-to-learn/>

作者：[Julia Evans](https://jvns.ca/) 选题：[lujun9972](https://github.com/lujun9972) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1092 时隔 15 年，几名学生再次黑进波士顿地铁

Summary:
? 时隔 15 年，几名学生再次黑进波士顿地铁
? ChatGPT 回答代码问题的正确率还不如抛硬币
? 《雷神之锤 2》游戏代码开源
»
»

# 硬核观察 #1092 时隔 15 年，几名学生再次黑进波士顿地铁

### 时隔 15 年，几名学生再次黑进波士顿地铁

在 2008 年的 DefCon 上，几名 MIT 学生准备演讲他们如何找到方法免费搭乘波士顿的地铁，但该演讲被波士顿地铁管理部门申请了禁令而取消。不过，演讲稿已经在与会者之间传开，并发布到了网上。2021 年，两名高中生在搭乘波士顿地铁时谈论了此事，他们好奇是否能重复当年的做法，实现免费搭乘地铁。他们一开始认为不可能，波士顿地铁应该早就修复了该问题。但他们发现，该问题并没有被修复。他们对原有方案进行了扩展，以适应新的 RFID 智能卡。他们将在今年举行的 DefCon 上谈论他们的研究结果，但这一次波士顿地铁没有起诉他们，而是邀请他们前往其总部，并礼貌的请求他们隐藏部分技术细节，以增加其他黑客复制的难度。

>
> **[消息来源：Wired](https://www.wired.com/story/mtba-charliecard-hack-defcon-2023/)**
>
>
>

>
> 老王点评：这一次，波士顿地铁部门最大的问题是没有升级系统，而最大的进步是没有起诉这几位未来的“黑客”。顺便说一句，这件事不要随便尝试，除非你在波士顿。
>
>
>

### ChatGPT 回答代码问题的正确率还不如抛硬币

普渡大学团队分析了 ChatGPT 对 517 个 Stack Overflow 问题的回答，分析表明，52% 的 ChatGPT 答案是错误的，77% 的答案是冗长的。但有趣是，“由于其全面性和清晰的语言风格，ChatGPT 答案在 39.34% 的情况下仍然会被测试者选择。”而这些被选择的答案中有 77% 是错误的。其主要原因之一是 ChatGPT 的答案非常详细。在很多情况下，如果参与者能够从冗长而详细的答案中获得有用的信息，他们并不介意长度。研究发现，只有当 ChatGPT 答案中的错误很明显时，用户才能识别出错误。当错误不易验证或需要 IDE 或文档时，用户通常无法识别错误或低估答案中的错误程度。

>
> **[消息来源：The Register](https://www.theregister.com/2023/08/07/chatgpt_stack_overflow_ai/)**
>
>
>

>
> 老王点评：ChatGPT 看来不合适在数学、编程等严谨的场合工作，感觉更适合文科生的工作。另外一方面，对于 Stack Overflow 这样流量逐月下降的技术问答网站来说，这可能是个好消息，程序员们在发现 ChatGPT 不靠谱后还会回来的。
>
>
>

### 《雷神之锤 2》游戏代码开源

《雷神之锤 2》是 id Software 于 1997 年发布的一款第一人称射击游戏作品，成为了当时 FPS 游戏的划时代之作，其整体游戏画面、玩法都超越了前作。id Software 日前推出了《雷神之锤 2》增强版游戏，与此同时，官方开源了这款游戏，代码包含了《雷神之锤 2》2023 年重新发行的游戏代码和原版代码，供希望修改游戏的用户使用。

>
> **[消息来源：GitHub](https://github.com/id-Software/quake2-rerelease-dll)**
>
>
>

>
> 老王点评：经典之作！雷神 2 的开源想必会对 Linux 上的游戏开发有帮助。
>
>
>


在 Fedora Linux 上使用 FIDO U2F 安全密钥

# 在 Fedora Linux 上使用 FIDO U2F 安全密钥

<img src="content_image/album_202308_13_233953yhs6626j866q2iqw.jpg" alt="" title="">

FIDO U2F 安全密钥是一种小型的基于 USB/NFC 的设备。它是一种硬件安全令牌，具有多个安全相关的用途模块。FIDO U2F 标准兼容的密钥品牌有多种，包括 NitroKey、SoloKey v2 和 YubiKey。与类似 Yubico OTP 的专有协议相比，FIDO 协议是不依赖特定硬件令牌的，并且使用的工具也不依赖特定制造商。

本文介绍了 FIDO 协议，并展示了如何安装和启用 FIDO U2F 安全密钥作为替代身份验证因素，以用于登录终端、GDM 或进行 sudo 认证。

对于 YubiKey，特别是其不支持 FIDO2/U2F 的旧版设备，请参阅之前的文章：

>
> **[如何在 Fedora Linux 上使用 YubiKey](https://fedoramagazine.org/how-to-use-a-yubikey-with-fedora-linux/)**
>
>
>

本文不涵盖存储 OpenPGP 密钥或 X.509 证书的操作，因为这些功能与硬件相关，不属于 FIDO U2F 标准的一部分。

### 保留备用安全密钥

一旦你开始使用安全令牌，就必须考虑到自己可能会被锁定在与这些令牌相关联的账户之外的情况。由于硬件安全令牌是独特的，并且被设计为非常难以复制，你不能像在使用 KeePass 或 AndOTP 等软件保险库时那样制作备份。因此，你使用主要密钥进行的所有注册都应立即使用第二个备份密钥重复进行，并将其存储在安全的位置，甚至可能是保险箱中。

在实践中，这意味着你需要将两个硬件令牌注册到你的 Linux 和 Web 账户中，并生成两份 OpenSSH 私钥，并将这两份 OpenSSH 公钥上传到你使用的服务器和服务（例如 GitHub）中。

如果你丢失了一个密钥，你将需要使用第二个密钥登录与密钥注册的每个服务，删除丢失的密钥，并注册一个新密钥。对于使用 FIDO2 协议的无密码登录尤其如此。

### FIDO2、U2F 和 FIDO 联盟

FIDO2 是由 [FIDO 联盟](https://fidoalliance.org) 维护的一系列标准。FIDO 联盟希望最终完全摒弃密码，并提供通过多个因素安全验证用户身份的过程，而无需使用密码。

该标准包括万维网联盟（W3C）的 <ruby> 网页认证 <rt>  Web Authentication </rt></ruby>（WebAuthn）和 FIDO 联盟的 <ruby> 客户端到认证器协议 <rt>  Client-to-Authenticator Protocol </rt></ruby>（CTAP）。WebAuthn 是一种用于请求和处理公钥挑战进行认证的标准 API。通过这个标准，浏览器会向客户端发送一个 <ruby> 挑战 <rt>  challenge </rt></ruby>，然后客户端使用私钥生成一个 <ruby> 响应 <rt>  response </rt></ruby>，挑战者再使用之前交换的公钥进行验证。如何生成挑战答案对于服务来说是不可知的，而是由 CTAP 控制。用户可能会被要求使用多种验证方法，如生物识别、PIN 或存在性检查（或这些方法的组合）。这些验证方式在认证时与注册密钥时的方式相同。

为了保护与硬件令牌的任何交互，可以选择设置一个访问 PIN，并且默认情况下未设置。大多数密钥在连续八次输入访问 PIN 失败后将自动失效。恢复失效的密钥并设置新 PIN 的唯一方法是重置密钥。然而，当密钥重置时，所有其服务注册将丢失！

FIDO2 密钥还支持 FIDO U2F 协议（现已更名为 CTAP1）。该协议旨在提供第二或多因素（但非无密码）认证。Linux 的 PAM 认证系统也可以配置为使用 U2F 协议。虽然 FIDO U2F 不是为无密码认证设计的，但 U2F PAM 模块允许无密码认证。

### 安全影响

FIDO2 / U2F 通过将安全密钥与用户账户绑定来工作。大多数密钥默认启用/使用基本的存在性检查。它们通常通过点亮并提示你触摸密钥来进行存在性检查。FIDO2 PIN 是可选的，默认情况下未设置。当密钥用于登录 Linux 帐户或用于使用 sudo 时，只需确保设备和密钥物理上存在即可。FIDO2 PIN 是一个重要的附加验证步骤，用于确保只有你才能使用密钥进行身份验证。

>
> 等一下！现在我还要记住额外的 PIN 吗？这不就是一个更短的密码吗？
>
>
> —— 担心的读者
>
>
>

FIDO2 PIN 不是密码，它是一个简短、容易记住的短语。这并不是一个问题，因为：

1. 你需要物理访问密钥 *且* 需要知道 PIN。
2. 输入 PIN 错误达到八次会使密钥失效，这使得暴力破解变得困难。

相反地，现在你可以使用存储在密码管理器中的安全密码，而无需记住它。

谷歌在 2016 年进行的一项案例研究，题为 《安全密钥：现代网络的实用密码学第二因素》，显示了安全密钥有效地保护用户免受密码重用、钓鱼和中间人攻击的影响。

### 使用 PAM 进行用户认证

本地系统认证使用 [可插拔认证模块（PAM）](https://www.redhat.com/sysadmin/pluggable-authentication-modules-pam)。U2F 设备的 PAM 模块（因此进行认证）是 `pam_u2f`。你的密钥是否支持 FIDO2 或 FIDO U2F 取决于其固件版本和硬件型号。

设置如下：

1. 安装 PAM 模块。
2. 将密钥注册到你的用户账户上。
3. 使用 `authselect` 在 PAM 中激活智能卡支持。

[authselect](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_authentication_and_authorization_in_rhel/configuring-user-authentication-using-authselect_configuring-authentication-and-authorization-in-rhel) 是一个用于配置带有可重现配置文件的 PAM 的工具。使用 `authselect` 的配置文件可以避免手动修改 `/etc/pam.d` 目录下的配置文件。

### 依赖项

所需的软件包可在官方仓库中获取。

```
[…]$ sudo dnf install pam-u2f pamu2fcfg fido2-tools

```

#### 在密钥上设置 FIDO2 PIN

FIDO2 标准定义了一种用于访问保护的可选 PIN。如果 PIN 丢失或失效，没有 PUK 或其他恢复方式，请确保你有一种备用的身份验证方法。如果通过连续输入无效的 PIN 使 PIN 失效，恢复的唯一方法是重置密钥。然而，重置密钥会删除其所有凭据，并将其与以前注册的所有服务断开连接。

`fido2-tools` 包含一个用于设置密钥的 FIDO2 PIN 的工具： `fido2-token`。使用 `fido2-token -L` 获取当前连接的 FIDO2 设备列表，并使用 `fido2-token -C </path/to/device>` 设置一个新的 PIN：

```
[…]$ fido2-token -L
/dev/hidraw1: vendor=0x1050, product=0x0407 (Yubico YubiKey OTP+FIDO+CCID)
[…]$ fido2-token -C /dev/hidraw1
Enter current PIN for /dev/hidraw1:
Enter new PIN for /dev/hidraw1:

```

#### 将安全密钥注册到本地账户

使用工具 `pamu2fcfg` 检索一个配置行，该行将放入 `~/.config/Yubico/u2f_keys` 中。`pam_u2f` 是由 Yubico 提供的通用 U2F 密钥模块，因此使用 Yubico 特定的默认配置路径。该文件中的每个配置行由用户名和密钥特定的凭据/配置部分以冒号分隔。确保每个用户仅使用一行。

```
fedora-user:owBYtPIH2yzjlSQaRrVcxB...Pg==,es256,+presence+pin[:该用户另外的密钥]

```

如果密钥受 PIN 保护，你将被要求输入 PIN 来进行此操作。对于第一个密钥的初始注册，请使用以下命令：

```
[…]$ mkdir -p ~/.config/Yubico
[…]$ pamu2fcfg --pin-verification > ~/.config/Yubico/u2f_keys

```

要将另一个密钥（例如备份密钥）添加到此单用户配置中，请使用以下命令：

```
[…]$ pamu2fcfg --nouser --pin-verification >> ~/.config/Yubico/u2f_keys

```

`pam_u2f` 还支持使用一个中心身份验证文件。在这种情况下，请确保每个用户使用一行，并将给定用户的所有密钥保持在同一行上。如果两行引用相同的用户名，那么只有最后一行将被使用！请参阅 [pam\_u2f 手册页](https://manpages.org/pam_u2f/8) 获取所有可用选项的详细信息。

### 使用 authselect 配置 PAM

[authselect](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_authentication_and_authorization_in_rhel/configuring-user-authentication-using-authselect_configuring-authentication-and-authorization-in-rhel) 是一个用于控制系统 PAM 配置的工具。它引入了配置文件作为额外的抽象层。一个 `authselect` 配置文件可以更改多个 PAM 配置文件。配置文件具有控制附加功能和行为的参数，例如启用 FIDO U2F 安全密钥。有关 `authselect` 的详细介绍计划在未来的文章中进行。

显示当前活动的 `authselect` 配置文件。如果选择了 SSSD（系统安全服务守护程序）配置文件并启用了 U2F 支持，则输出可能类似于以下内容：

```
[…]$ authselect current
Profile ID: sssd
Enabled features:
- with-pam-u2f

```

使用 `authselect` 和 `with-pam-u2f` 标志，在 PAM 中激活 FIDO U2F 支持：

```
[…]$ sudo authselect select sssd with-pam-u2f

```

如果你还想使用指纹读取器，必须同时启用这两个功能：

```
[…]$ sudo authselect select sssd with-pam-u2f with-fingerprint

```

这会在 PAM 中激活具有 `pam_u2f` 和指纹读取器支持的 SSSD 配置文件。例如，当使用上述 `authselect` 配置文件在终端上使用 sudo 时，首先会要求你提供指纹，如果指纹识别失败，则使用 U2F 密钥。然而，GDM 将首先使用 U2F 密钥。

### 解锁 GNOME 钥匙环守护程序

当使用生物识别、U2F 密钥或任何其他不需要密码短语登录 GNOME 的方法时，无法自动解锁“登录”钥匙环。这是因为，默认情况下，钥匙环的密码短语设置为与你的登录密码短语相同。通常，PAM 将你的登录密码短语传递给钥匙环守护程序。由于你在通过生物识别或 U2F 密钥进行身份验证时不需要输入密码短语，因此 PAM 没有密码短语可以传递给钥匙环守护程序。这个问题没有简单直接的解决方法。

如果你为家目录使用 LUKS 加密并且操作的是单用户系统，你可以从钥匙环中移除密码短语。这将使你的 GNOME 钥匙环在文件级别上保持未加密。但它仍然在块级别上由 LUKS 加密，因为 LUKS 加密与单用户系统上的默认基于文件的钥匙环加密等效。由于钥匙环的加密仅旨在保护其内容免受离线访问，钥匙环在登录后将被解密/解锁，任何运行时应用程序或恶意软件在解锁后都有可能访问钥匙环的内容。由于 LUKS 也是一种离线保护机制，因此可以认为它是钥匙环正常基于文件的加密的替代选择。

如果你的系统被多个用户使用，则 LUKS 加密和钥匙环的正常基于文件的加密不是等效的。在具有只由 LUKS 保护的钥匙环的多用户系统中，具有解密磁盘和引导系统授权的任何用户都能够访问同一系统上的任何其他用户的钥匙环。

移除 GNOME “登录”钥匙环密码短语非常简单。只需设置一个新的空密码，钥匙环将被解锁，并且其内容将以未加密的方式存储在文件级别上。可以使用图形实用程序 Seahorse（也称为“密码和密钥”）来在 GNOME “登录”钥匙环上设置一个空密码。

### 警惕和其他用例

即将发布的文章将探讨如何使用 U2F Dracut 插件使用 FIDO2/U2F 密钥解锁 LUKS 加密的磁盘。

OpenSSH 8.2+ 支持使用 `ed25519-sk` 安全密钥。这个主题已经在之前的文章《[如何在 Fedora Linux 上使用 YubiKey](https://fedoramagazine.org/how-to-use-a-yubikey-with-fedora-linux/)》中涉及到。

需要注意的是，FIDO2/U2F 是一种认证标准。还有其他用于安全令牌的用例（主要由 Yubico 建立），例如 (T)OTP、PIV（用于 x509 密钥管理）或 OpenPGP，这些用例不是一般性的，而是具体硬件上的用例。

*（题图：MJ/4bd195dc-130b-4ef2-af6c-9a6ef5d54223）*

---

via: <https://fedoramagazine.org/use-fido-u2f-security-keys-with-fedora-linux/>

作者：[Alexander Wellbrock](https://fedoramagazine.org/author/w4tsn/) 选题：[lujun9972](https://github.com/lujun9972) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)

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


我的 Linux 团队使用 Penpot 的 3 个原因

Summary: Penpot 是一个设计师和开发人员使用的开源设计工作空间。

Penpot 是一个设计师和开发人员使用的开源设计工作空间。

# 我的 Linux 团队使用 Penpot 的 3 个原因

>
> Penpot 是一个设计师和开发人员使用的开源设计工作空间。
>
>
>

使用 Fedora 会让你接触到许多不同的开源软件。Fedora 网站的重大改造始于一年多前，目标是提高设计美感、创建风格指南、规划网站策略以及选择用于交付 Fedora Linux 产品网站的技术栈。从设计的角度来看，团队需要一个创建模型的工具、一个保存资源库的地方，以及完成后适合移交给开发人员的东西。

### 选择 Penpot

Figma 是许多人推荐的流行界面设计工具，但由于该公司最近对其免费计划施加了限制，因此被认为不合适。这种担忧在 Adobe 收购 Figma 之前就已经出现，所以现在回想起来，不使用它的决定更加重要！

团队研究了 Penpot，发现它符合每个人的要求。Penpot 是第一个面向跨领域团队的开源设计和原型平台。Kaleidos 内的一个团队创建了 Penpot。Kaleidos 是一家成立于 2011 年的科技公司，完全专注于开源项目。

Fedora 网站和应用程序团队通过三种方式使用 Penpot：

* 线框图和模型
* UX 测试和反馈
* 协作

我将在下面详细介绍这些用途。虽然示例讨论了 Fedora 项目，但 Penpot 可以为任何开源社区带来好处。

### 1、线框和模型

设计网页草图是我们团队使用 Penpot 的主要方式。草图可以实现快速协作并减少贡献者之间的沟通问题。开发人员和设计师可以在同一空间自由协作。

社区反馈很重要。正确地共享模型可能有点困难。Penpot 基于网络，可在任何平台上轻松访问。当在原型上进入 <ruby> 查看模式 <rt>  View Mode </rt></ruby> 时，该工具会生成一个可共享的链接。如果你不再希望共享链接，还可以修改权限或销毁链接。

### 2、UX 测试和反馈

此次改造与 Fedora 社区密切合作。通过对原型进行可用性测试并共享设计进度，我们使用 Penpot 让社区参与每一步。

### 3、协作

在改造过程中，我们的开发和设计团队使用 Penpot 来产生想法、组织会议并直观地测试新概念。

我们的团队在早期规划会议中将 Penpot 用作白板，让开发人员在参与讨论的同时以异步方式贡献想法。这种方法减轻了压力，确保每个人的想法都能被听到，帮助我们看到模式，并调解分歧，达成良好的妥协。Penpot 有助于在每个人之间建立一种理解感。

团队使用 Penpot 作为素材来源。用户可以将元素和其他内容存储在资源库中，以便可以重复使用它们。Penpot 可以存储组件、图形、版式、调色板等。

共享这些库使整个团队都可以访问它们。当与定期访问相同源文件的团队合作时，这会很有帮助。如果新成员加入，他们开始为项目构建模型所需的所有素材都将随时可用。用户可以直接从 Penpot 文件导出这些素材。

开发人员可以在任何浏览器上查看原型的全部内容。这种功能让网站建设变得更容易，因为你可以与原型同时进行编码。如果设计人员同时在处理文件，他们所做的更改可以通过**查看模式**刷新查看，如果是在实际文件中，则可以实时查看。

### 开源价值观

Penpot 符合 Fedora 项目的“四大基础”：自由、朋友、功能和第一。在回顾这些价值观时，请考虑该工具如何与你自己的开源计划保持一致。

#### 自由

我们选择开源和自由来替代专有的代码和内容，并限制专有代码对项目和项目内的影响。Penpot 是第一个开源设计和原型平台。Penpot 基于网络，独立于操作系统，并采用开放网络标准。这确保了与 Web 浏览器和 Inkscape 等外部应用的兼容性。

#### 朋友

我的社区由各行各业的人们组成，他们共同努力推进自由软件的发展。Penpot 的使命是相似的。其目标是提供开源和开放标准工具，将设计人员和开发人员之间的协作提升到新的水平。使用 Penpot 可以顺利地向开发人员移交，并使我们能够高效地合作。无需来回寻找文件或素材，因为他们需要的一切都在 Penpot 文件中。

#### 功能

Fedora 关注优秀的软件。它的功能开发总是公开透明地进行，并鼓励参与。任何人都可以在任何问题上开始工作，也可以加入任何他们感兴趣的团队。Penpot 赞同这一理念。任何人都可以合作！代码和贡献者指南可从项目的 Git 仓库获取。

#### 第一

Fedora 采用的策略是通过持续的前进动力来推动自由软件的发展。这种方法通常遵循“早发布、勤发布”的工作流程。Penpot 也经常更新。它向社区发布每日开发博客，重点介绍已完成的工作。它在网站上写道：“我们也有这种紧迫感，我们需要快速行动，这关系到太多的事情”。

### 总结

该项目即将完成，第一个截止日期与 Fedora Linux 38 的发布日期一致。事实证明，Penpot 是一个非常有价值的工具，它为开源设计爱好者提供了更多的资源。最近，该平台庆祝了它的正式发布，下一步的发展令人兴奋。

Penpot 改变了我们团队的工作方式。它能为你的组织和社区做些什么？

本文改编自 Ashlyn Knox 和 Emma Kidney 在创意自由峰会上的演讲：《模型和动作 - Fedora 设计团队如何使用 Penpot》。该演讲的录音可 [在 PeerTube 上观看](https://peertube.linuxrocks.online/w/5H22PH66kYwiTKcKR1p2kJ)。

*（题图：MJ/fc248c3c-08e9-4e35-a389-8c88009a7110）*

---

via: <https://opensource.com/article/23/3/linux-penpot>

作者：[Emma Kidney](https://opensource.com/users/ekidney) 选题：[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/) 荣誉推出


硬核观察 #1093 Firefox 在意 Linux 桌面用户吗？

Summary:
? Firefox 在意 Linux 桌面用户吗？
? Stack Overflow 拥抱人工智能
? OpenAI 每天花掉 70 万美元
»
»

firefox和xorg現在都半死不活的原因是它們都沒有成功商業化，都沒有靠譜大企業站台，linux/bsd有一大堆買網絡設備，買服務器的企業支持。

来自海南海口的 Chrome Mobile 111.0|Android 13 用户

即便火狐不将 Linux 作为一级平台，它的使用体验依旧比 Chromium 系的浏览器好。

# 硬核观察 #1093 Firefox 在意 Linux 桌面用户吗？

### Firefox 在意 Linux 桌面用户吗？

Firefox 是 “最重要的桌面 Linux 应用程序”，如果不是之一的话。大多数发行版都默认配备了 Firefox，即便有些用户会在安装后下载 Chrome 浏览器。但 Firefox 并不把 Linux 视为一级平台。Firefox 浏览器首先是一款 Windows 浏览器，其次是 macOS，第三才是 Linux。Linux 界对 Firefox 的喜爱并没有得到 Mozilla 的回应。这表现在很多地方，在 Windows 上解决的问题在 Linux 上被忽视了数年甚至更久。最好、最明显的例子就是硬件视频加速功能，直到 2023 年 7 月初发布的 Firefox 115 才在 Linux 上默认启用了该功能，而且只支持英特尔显卡，AMD 和英伟达用户直到现在也不支持。这是导致 Linux 笔记本电脑的电池续航时间比 Windows 笔记本电脑严重缩短的一个主要因素。

>
> **[消息来源：OS News](https://www.osnews.com/story/136653/desktop-linux-has-a-firefox-problem/)**
>
>
>

>
> 老王点评：还真是，连同是传统开源阵营的 Mozilla 都不和 Linux 桌面报团取暖。那么 Linux 桌面应该拥抱 Chrome 么，还是支持一个 Linux 优先的浏览器呢？
>
>
>

### Stack Overflow 拥抱人工智能

虽然 ChatGPT 在回答编程问题上的表现还不如抛硬币，但是 Stack Overflow 的访问量也在不断下降，该编程网站保守地承认，今年的平均流量要比去年低了 5%。Stack Overflow 上个月宣布了其人工智能产品 OverflowAI，作为一个 VSCode 插件，它将从公共平台和 Stack Overflow for Teams 实例中提取经过验证的内容，提供给程序员们。但据 Stack Overflow 对 9 万名程序员进行的年度开发人员调查发现，77% 的开发人员对人工智能工具持支持态度，但只有 42% 的开发人员相信这些工具的准确性。

>
> **[消息来源：ZDNet](https://www.zdnet.com/article/stack-overflow-uses-ai-to-give-programmers-new-access-to-community-knowledge/)**
>
>
>

>
> 老王点评：或许，AI 给 Stack Overflow 或程序员带来的帮助不是替你写代码，而是作为一个配合得更好的编程伙伴。
>
>
>

### OpenAI 每天花掉 70 万美元

据报道，ChatGPT 每天的运营成本高达 70 万美元。今年 5 月，自从开始开发 ChatGPT 以来，它的亏损额翻了一番，达到了 5.4 亿美元。OpenAI 预计 2023 年的年收入为 2 亿美元，预计 2024 年将达到 10 亿美元，而亏损会越来越多。此外，ChatGPT 网站的流量也在下降，与 6 月份的 17 亿用户相比，7 月份的用户数量为 15 亿，环比下降了 12%，当然，这有可能是很多公司禁止员工在工作中使用 ChatGPT，但允许他们在不同的工作流程中使用 API 来利用大语言模型。该公司也受困于 GPU 短缺，它已经申请了 GPT-5 商标，很明显，希望对其进行训练，但这反过来又导致了 ChatGPT 输出质量的大幅下降。

>
> **[消息来源：Analytics India](https://analyticsindiamag.com/openai-might-go-bankrupt-by-the-end-of-2024/)**
>
>
>

>
> 老王点评：现在就看钱烧完之前，OpenAI 能取得多大的成绩了。
>
>
>


Linux 桌面上的 Firefox 面临着大问题

Summary: 这就是桌面 Linux 的 Firefox 所面临的问题。这个最重要的桌面 Linux 应用程序已经处于非常困难的境地，而且似乎不可避免的是，事态只会逐渐变得更糟。

优胜劣汰 人家mozilla都不在意 用户又何必着急呢

复刻Chromium，建立专为linux定制的分支，兼容插件...

正在用ThunderBird看这篇文章

我是firefox用户，不能想像Linux如果没了firefox会是什么样的

说得很有道理

konqueror？

自己搭个Linux看看，Linux桌面对Firefox到底有什么依赖？仅仅是少量的JS相关包依赖gecko。至于Mozllia倒了后怎么办，建议参考mysql、ffmpeg、xfree86。事实上，Mozllia已经倒过一次了：Netscape

开源依靠商业等于羊找狼认爸爸

rust 优化的 fx 引擎究竟如何了？感觉没声音了

Konqueror也是KDE的浏览器，但底层也是基于QtWebEngine的

来自111.55.10.207的 Chrome Mobile 115.0|Android 10 用户

幸好有Waterfox、Iceraven这些积极开发的、基于Firefox的第三方开源版本，起码多一种选择，还比官方Firefox更流畅

假设mozilla的结局是被收购，那么最终是被哪家企业收购？SUSE？甲骨文？我不知道。

来自江西赣州的 Chrome Mobile 116.0|Android 10 用户

# Linux 桌面上的 Firefox 面临着大问题

<img src="content_image/album_202308_15_113626l4oa08c0j4jj5z0b.jpg" alt="" title="">

毫无疑问，无论是在桌面、笔记本电脑还是移动设备上，**浏览器都是任何操作系统中最重要的应用之一**。如果没有一个功能强大、快速且稳定的浏览器，操作系统的实用性将大幅度降低，以至于我相当确定，**如果一个操作系统没有浏览器，几乎没有人会将其用于常规、正常的使用**。拥有一个起码可用的浏览器是将操作系统从娱乐玩具升级到你可以使用超过 10 分钟的有趣新奇物品的关键。

但问题在于，开发一个功能强大的浏览器实际上非常困难，因为浏览器本身已经成为一个功能丰富的平台。承担起从零开始构建浏览器的巨大任务并不是很多人感兴趣的事情——[除了那些疯狂的人](https://www.ladybird.dev/)——而这一切被恶化的原因是，由于市场的合并和垄断，与剩下来的三个浏览器引擎竞争基本上是无济于事的。Chrome 和其各种衍生产品的[占据统治地位](https://gs.statcounter.com/browser-market-share)，其次是 iOS 上的 Safari，原因仅仅是因为你在 iOS 上不能使用任何其他浏览器（引擎）。然后就是 Firefox，作为一个**远远落后的第三名**而存在——且份额还在下滑。

这就是 Linux 桌面发行版所处的环境。长期以来，**Linux 桌面几乎完全依赖于 Firefox**（和之前的 Mozilla 套件）作为它们的浏览器，一些用户选择在安装后下载 Chrome。尽管 GNOME 和 KDE 名义上都有自己的两个浏览器，[GNOME Web](https://wiki.gnome.org/Apps/Web) 和 [Falkon](https://www.falkon.org/)，但其用户数量有限，发布的版本也寥寥无几。例如，没有一个主要的 Linux 发行版会将 GNOME Web 作为其默认浏览器，并且它缺少用户对浏览器期待的许多功能。相比之下，Falkon 只会偶尔更新，往往几年才发布一个新版本。更糟糕的是，Falkon 通过 [QtWebEngine](https://wiki.qt.io/QtWebEngine) 使用的是 Chromium 引擎，而 GNOME Web 使用的是 WebKit（它们独立于浏览器更新，所以浏览器版本并不总是一个可靠的指标！），所以**两者都依赖于世界上最无情的两个公司——谷歌和苹果的善意**。

即使是 Firefox 本身，尽管它显然是 Linux 发行版和 Linux 用户的首选浏览器，也并**不将 Linux 视为一线平台**。**Firefox 首先是一个 Windows 浏览器，然后是 macOS，最后是 Linux。**Linux 世界对 Firefox 的热爱并没有得到 Mozilla 同样的回应，这种情况在许多地方表现出来，**那些在 Windows 端修复和解决的问题在 Linux 端被忽视了好几年甚至更久。**

**这种情况最好、最明显的例子就是硬件视频加速。**这个功能从一开始就是 Windows 版本的默认部分，但是直到 2023 年 7 月初发布的 [Firefox 115](https://www.omgubuntu.co.uk/2023/07/firefox-115-intel-gpu-video-decoding-on-linux)，才在 Linux 上默认启用。即使是这样，这个功能也只是默认为英特尔显卡用户开启，并没有 AMD 和英伟达用户什么事。这种视频加速功能的缺失（对于 AMD 和英伟达用户来说，仍旧如此），是 **Linux 笔记本电脑在电池寿命上与 Windows 对手差距严重的一个主要因素。**

然后，要走上这条路一直都是漫长、艰巨、且充满颠簸。长久以来，要让硬件视频加速在 Linux 的 Firefox 上工作一直复杂而不稳定，每一个浏览器版本可能都会改变你需要设置的标志。有时候无论你怎么做，它可能都会在连续几个版本中停止工作。论坛消息、博客帖子和网站文章中充满了过时的指令和像 [Hail Mary](https://en.wikipedia.org/wiki/Hail_Mary) 一样的建议，供那些试图让它运行的用户参考。你以往的成功经验会随着每个版本的发布而变化，而跟踪所有这些都是一种**噩梦**。

不仅仅是硬件加速视频解码。手势支持在 Linux 版本上的推出比在 Windows 版本上要晚得多——比如使用滑动来前进和后退，或者在图片上捏合来进行缩放。同样，触摸屏支持也在 Linux 版本的 Firefox 上晚了一段时间才出现。通常，此类功能可能在默认启用之前几年就可以通过 `about:config` 指令启用，但这远非理想情况。

桌面 Linux 的普及率落后于 Windows 和 macOS，**这并不是什么意想不到的情况，或出于恶意的结果。**前几段的重点并不是抱怨 Linux 版 Firefox 的状态，或者建议 Mozilla 将 Windows 和 macOS 版本的宝贵资源转移到 Linux 版本。虽然如果他们这么做的话，我显然不会抱怨这些，但这并没有多大意义。我强调这些问题的真正原因是，如果今天在 Mozilla 现有的财力和资源下，Linux 版的 Firefox 已经被视为第三级平台，那么**如果 Mozilla 的财力和资源急剧减少，将会发生什么？**

Firefox 的状况并不太好。它的市场份额在这些年里急剧下滑，现在在桌面和笔记本电脑上仅占有微薄的 3%，而在移动设备上更是微不足道的 0.5%。Chrome 和稍少的 Safari 已经完全压倒了这个曾经威猛的浏览器，以至于它对于 Linux/BSD 用户和其他平台上的更多极客来说，基本上就是一个附带的产品。我说这个并不是为了贬低那些使用 Firefox 的人——我就是其中之一——而是为了强调 Firefox 当前市场位置的糟糕程度。**这种市场份额的缩小已经对 Firefox 的开发和未来前景构成了伤害**，尤其是如果这种滑坡还在继续的话。

然而，市场份额的下滑远非最大的问题。摆在 Firefox 头顶的达摩克利斯之剑是 **Mozilla 非常奇怪且失衡的收入来源**。大多数人可能都知道，Mozilla 的大部分收入来自与谷歌的搜索合作。大约 80% 的 Mozilla 的收入 [来自谷歌](https://www.bloomberg.com/news/newsletters/2023-05-05/why-google-keeps-paying-mozilla-s-firefox-even-as-chrome-dominates)，后者支付给这个浏览器制造商费用，以将谷歌搜索设为默认搜索引擎。

这份协议还会持续多久？无论 Firefox 陷入多么糟糕的情况，它还会一直续约吗？合作的规模会缩小，还是会完全结束？什么时候，谷歌会觉得每年在本质上是对竞争对手的慈善上投入数亿美元已经不再值得，或者根本不需要？谷歌与苹果的类似搜索交易已经面临 [法律审查](https://www.businessinsider.com/google-apple-search-deal-doj-antitrust-suit-2020-10?op=1&r=US&IR=T)；那么这种审查会对与 Mozilla 的交易产生影响吗？

只需问自己这个问题：如果由于 Firefox 的市场份额进一步下滑，与谷歌的交易泡汤，两者结合起来，或甚至这里未提到的其他因素，导致 **Mozilla 的资金短缺，哪个版本的 Firefox 将首先感受到削减？**Mozilla 会采取什么措施来缓解困境？当 Mozilla 日益绝望时，我们是否会看到与其他公司的肮脏交易？不靠谱的加密货币概念？允许广告以换取收入？更多的推荐的网站和扩展，需要付费？还是 Linux 版本将被全部削减，让社区接管？

**这就是 [Thunderbird](https://www.osnews.com/story/26159/mozilla-to-cease-development-on-thunderbird/) 所经历的。**Thunderbird 花了近十年的时间才完全恢复。这也可能发生在 Linux 的 Firefox 上。

这就是桌面 Linux 的 Firefox 所面临的问题。这个最重要的桌面 Linux 应用程序已经处于**非常困难的境地**，而且似乎不可避免的是，事态只会逐渐变得更糟。然而，我并**没有看到有人在谈论这个问题**，或者考虑 Firefox 最终可能的消亡，这对 Linux 桌面意味着什么，以及如何避免或减轻这种情况。

在理想的世界里，Linux 桌面的主要利益相关者 —— KDE、GNOME，各种主要的发行版 —— 会聚在一起，严肃地考虑一项行动计划。在我看来，最好的可能解决方案是复刻一个主要的浏览器引擎（或选择一个并大幅投入），并修改这个引擎，并专门为 Linux 桌面进行定制。**停止生活在 Windows 和 macOS 浏览器制造商的残羹冷炙中**，完全专注于制作一个完全为 Linux 及其图形堆栈和桌面优化的浏览器引擎。让主要的利益相关者共同在一个 Linux 首选—— 或甚至仅限于 Linux —— 的浏览器引擎上共同努力，而将图形前端留给各种工具箱和桌面环境。

显然，这并不容易，需要在时间、资源和人员方面进行重大投资。然而，通过仅专注于 Linux，你不会真正与 Blink 和 WebKit 竞争，因为他们完全不重视桌面 Linux（Chrome 在 Linux 上仍然没有硬件视频加速）。让其他引擎去为各种专有平台争夺——Linux 需要一个独立于谷歌（和苹果）的浏览器引擎，并且**认真将 Linux 作为一个平台对待。**

我真的很担心 Linux 上浏览器的状态，特别是 Firefox 在 Linux 上的未来。我认为桌面 Linux 社区的各种主要参与者，从 GNOME 到 KDE，从 Ubuntu 到 Fedora，**显然对于 Firefox 出问题或死亡完全没有应急计划**，尽管我们都知道当前的浏览器市场状态、Mozilla 的财务状况和两者的未来前景。这种行为实在是太不负责任了。

**Linux 桌面的 Firefox 面临着大问题，但似乎没有人愿意承认它。**

*（题图：MJ/0c6cebcc-3c94-4ac1-86cc-ecfa828d33e7）*

---

via: <https://www.osnews.com/story/136653/desktop-linux-has-a-firefox-problem/>

作者：[Thom Holwerda](https://www.osnews.com/story/author/thom-holwerda/) 选题：[wxy](https://github.com/wxy) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](/article-16092-1.html) 荣誉推出


Linux 窗口管理器 Compiz 简史

太帅了，果然linux世界是win和macos所无法企及的。

第一次接触到还是ubuntu10的时候，太好看了

# Linux 窗口管理器 Compiz 简史

>
> 你会在 Linux 讨论中听到 Compiz 这个词。在此简要介绍一下 Compiz。
>
>
>

今天，我们听到人们谈论 “[发行版快闪](/article-15949-1.html)”。我们中的一些人可能对此深有感触。尝试具有新功能的新 Linux 发行版是很难抗拒的。即使我也不能幸免，我有几台笔记本电脑，我经常在上面尝试新的操作系统（如果我怀旧的话，可以尝试旧的操作系统）。

但曾经有一段时间，发行版快闪并不常见，因为在 Linux 诞生之初，发行版较少。我们许多早期用户所做的就是使用不同的窗口管理器。

[Compiz](https://code.launchpad.net/compiz) 是这些窗口管理器之一，于 2006 年发布。它是 [X Window 系统](https://en.wikipedia.org/wiki/X_Window_System) 最古老的合成窗口管理器之一，在当时相当先进。窗口管理器不再像以前那样流行，但 Compiz 仍然在维护中，仍然具有出色的性能和大量的功能。

### Compiz 是什么？

Compiz 是一个开源 [X 窗口管理器](https://en.wikipedia.org/wiki/X_window_manager)，可实现高级视觉效果和桌面增强。它提供了广泛的功能，包括窗口管理、窗口装饰、桌面效果、动画等等，并以可加载插件的形式实现。Compiz 可以用作大多数其他桌面的默认窗口管理器和合成器的直接替代品。

### Compiz 的历史

在其早期阶段，Compiz 专门与 [Xgl](https://en.wikipedia.org/wiki/Xgl) 支持的 3D 硬件一起运行。与 Xgl 一起使用时，大多数 [英伟达](https://en.wikipedia.org/wiki/NVIDIA) 和 [ATI](https://en.wikipedia.org/wiki/ATI_(brand)) 显卡与 Compiz 兼容。从 2006 年 5 月 22 日开始，Compiz 通过利用 [AIGLX](https://en.wikipedia.org/wiki/AIGLX) 与标准 [X.Org 服务器](https://en.wikipedia.org/wiki/X.Org_Server) 兼容。

在 2000 年代初期，[ATI](https://en.wikipedia.org/wiki/ATI_Technologies) 和 [英伟达](https://en.wikipedia.org/wiki/Nvidia) 驱动程序在 Linux 上变得越来越流行，这使得先进的 [OpenGL](https://en.wikipedia.org/wiki/OpenGL) 开发能够扩展到昂贵的 UNIX 工作站之外。大约在同一时间，Xgl、Xegl 和 AIGLX 使 Xorg 能够利用 OpenGL 进行窗口转换和效果。

Compiz 于 2006 年 2 月由 [Novell](https://en.wikipedia.org/wiki/Novell)（[SUSE](https://en.wikipedia.org/wiki/SUSE)）作为自由软件推出，成为 X 的早期合成窗口管理器之一。到 2006 年 3 月，[红帽](https://en.wikipedia.org/wiki/Red_Hat) 将 Compiz 移植到了 AIGLX。

对 Compiz 的早期评论大多是正面的，称赞其性能、视觉吸引力和创新性。同时开发的还有 Metisse 和 Project Looking Glass 等项目，但没有一个项目获得了与 Compiz 相同的认可或广泛采用。后来，合成效果也被集成到窗口管理器中，例如 [GNOME Shell](https://en.wikipedia.org/wiki/GNOME_Shell) 和 [KWin](https://en.wikipedia.org/wiki/KWin)。

Wayland 于 2010 年左右出现，将合成器和图形服务器的功能合并到一个程序中，从而使单独的窗口管理器和合成器变得过时。因此，Compiz 不再被广泛使用，但这并不意味着它的时代已经结束。继续包含 Compiz 的发行版通常只启用一些实用的插件，同时禁用更多视觉上奢侈的插件。此外，发行版越来越多地将 [KDE](https://en.wikipedia.org/wiki/KDE) 和 [GNOME](https://en.wikipedia.org/wiki/GNOME) 与其默认窗口管理器结合在一起。最后一个以 Compiz 作为 Unity 桌面管理器的 Ubuntu 版本是 Ubuntu 16.04，此后其开发基本陷入停滞。

Compiz 仍然得到维护，有两个现有版本：Compiz 0.9 和 Compiz 0.8。Compiz 0.9 是用 C++ 重写的，而 Compiz 0.8 继续使用原始 C 版本。Ubuntu 维护和开发 Compiz 0.9，而 Debian 中的软件包是 Compiz 0.8 “Reloaded”。两个版本都很相似，但区别在于插件支持的级别，因为 0.9 重写版不得不排除了某些功能。Compiz 0.8 被认为更快、更稳定。

### 总结

我在使用时，Compiz 的所有功能和效果确实让我付出了很多时间。我记得我花费了大量的时间以独特的方式改造我的工作空间。然而，随着时间的推移，我发现自己花越来越多的时间在 Compiz 上修修补补，而不是专注于我的工作。虽然其视觉奇观的吸引力是不可否认的，但它也成为了分散注意力的来源：我摆弄 Compiz 的次数越多，我未完成的任务就越长。最终，我不得不更换窗口管理器才能完成工作。

对我来说，Compiz 在桌面环境的历史上占有特殊的地位。这证明了其开发人员和社区的独创性，将技术推向了极限。

如果你想了解 Compiz 的一些功能，请观看以下视频：[Compiz Fusion：快速演示](https://youtu.be/E4Fbk52Mk1w)。对于“旧代码”来说，它确实可以做很多事情并且有点领先。

顺便说一句，如果你对复古的东西感兴趣，我写了几篇文章来带你回忆起来。

我想你会喜欢它们的。

>
> **[怀旧 Coherent 操作系统](https://itsfoss.com/coherent-operating-system/)**
>
>
>

>
> **[在现代 Linux 发行版上体验 CDE](https://itsfoss.com/common-desktop-environment/)**
>
>
>

---

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

作者：[Bill Dyer](https://itsfoss.com/author/bill/) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[校对者ID](https://github.com/%E6%A0%A1%E5%AF%B9%E8%80%85ID)

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


硬核观察 #1094 “Go 2 永远不会出现”

Summary:
? “Go 2 永远不会出现”
? “诈弹” 毁了 DEF CON 派对之夜
? 微软发现可关闭发电厂的安全漏洞
»
»

# 硬核观察 #1094 “Go 2 永远不会出现”

### “Go 2 永远不会出现”

谷歌的 Russ Cox 称现在还没有 Go 2 的计划，这就提出了一个显而易见的问题：我们什么时候才能看到会破坏旧版 Go 1 程序的 Go 2 规范呢？在今天的博文中他写道：“答案是永远不会。从与过去决裂、不再编译旧程序的意义上讲，Go 2 永远不会出现。从 2017 年开始对 Go 1 进行重大修订的意义上来说，Go 2 已经出现了。” Go 语言的开发者认为，“优先考虑兼容性是我们为 Go 1 所做的最重要的设计决定。”

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Go-Language-Roadmap-No-2)**
>
>
>

>
> 老王点评：编程语言的大版本换代中，Python、Perl 都遭遇过严重的问题，而 Go 很好地绕开了这些前辈们遇到的陷阱，显然会让 Go 的发展更加顺畅。
>
>
>

### “诈弹” 毁了 DEF CON 派对之夜

本次 DEF CON 黑客大会于 8 月 10 日在拉斯维加斯召开，并于 8 月 13 日结束，今年据称有超过 3 万人参加了大会。在周六傍晚，主会场受到炸弹威胁，导致主会场大厅被清空，消防人员和警察对大楼进行了搜查，但没有找到可疑物品。炸弹威胁被认为是一次恶作剧，但恶作剧者毁掉了所有人的夜晚。受此影响，大会主办方取消了当晚在主会场的庆祝活动，令数千人倍感失望。这个恶作剧者还导致四号轨道大厅欣赏《2001：太空漫游》的观众被迫错过了电影最后十分钟的关键时刻。

>
> **[消息来源：The Register](https://www.theregister.com/2023/08/14/def_con_roundup)**
>
>
>

>
> 老王点评：本来 DEF CON 是欢迎恶作剧的，但是这个蠢蛋的恶作剧太过分了，毁掉了大家的狂欢夜。
>
>
>

### 微软发现可关闭发电厂的安全漏洞

微软披露了一个广泛使用的工具集合中的 15 个高严重性漏洞，这些工具用于开发可编程逻辑控制器，这种面包大小的设备用于打开和关闭阀门、转动转子以及控制全球工业设施中的各种其他物理设备。微软警告说，虽然利用代码执行和拒绝服务漏洞很困难，但它能使威胁行为者 “对目标造成巨大损害”，如关闭发电厂，而远程代码执行可为设备创建后门，让攻击者篡改操作，导致 PLC 以异常方式运行，或窃取关键信息。

>
> **[消息来源：Ars Technica](https://arstechnica.com/security/2023/08/microsoft-finds-vulnerabilities-it-says-could-be-used-to-shut-down-power-plants/)**
>
>
>

>
> 老王点评：这种工业控制领域的安全风险，不出则已，一旦被利用，造成的危害可远不止数据丢失那么简单。
>
>
>


安装和使用额外的 Gedit 颜色主题

# 安装和使用额外的 Gedit 颜色主题

>
> 不喜欢 Gedit 文本编辑器的默认外观？当然可以尝试更改颜色主题。以下是更改方法。
>
>
>

Gedit 是 Linux 世界中最流行的文本编辑器之一。它主要是一个文本编辑器，但 [经过一些调整](https://itsfoss.com/gedit-tweaks/)，你也可以使用它进行编写程序。

现在，程序员通常更喜欢较暗的主题，Gedit 对此并不陌生。它有很多主题可供选择。

但是，如果你对它们不满意，你也可以安装第三方配色方案。如果需要，你甚至可以创建自己的配色方案，使其完全独一无二。

首先让我向你展示如何更改默认的 Gedit 主题，然后我将分享如何安装其他第三方主题。

### 更改默认的 Gedit 主题

正如我之前提到的，Gedit 带有一些自己的配色方案。你可以轻松切换到它们。

转到右上角的菜单并选择 “<ruby> 首选项 <rt>  Preferences </rt></ruby>”。

现在，转到字体和颜色选项卡。

在这里，你可以更改配色方案。你可以在下面的截图中看到所有配色方案的外观。

不喜欢你所看到的？ 让我们探索一下第三方 Gedit 主题。

### 安装第三方配色方案

你需要先从互联网下载所需的配色方案文件，然后从首选项将它们添加到 Gedit 或将它们放在 `.local/share/gedit/styles` 文件夹中。

#### 步骤 1：下载配色方案文件

第三方 Gedit 主题可在各种 GitHub 仓库中找到。为了你的方便，我列出了一些仓库，你可以在其中找到很多方案文件。

* [Mig 的方案](https://github.com:443/mig/gedit-themes)（更好看）
* [gmate 的方案](https://github.com:443/gmate/gmate/tree/master/styles)
* [GNOME Wiki](https://wiki.gnome.org:443/Projects/GtkSourceView/StyleSchemes)
* [其他仓库](https://github.com:443/topics/gedit-theme)
* [Gnome 外观](https://www.gnome-look.org:443/browse?cat=279&ord=latest)

在上面的仓库中，你可以找到 XML 文件。打开主题 XML 文件并使用 *将文件另存为原始数据* 选项下载它们，如下所示。

#### 步骤 2：安装单独的主题文件

如果你精心挑选了一些主题文件，你可以使用 Gedit 添加方案功能一一安装它们。为此，请打开 “<ruby> 首选项 <rt>  Preferences </rt></ruby> > <ruby> 字体和颜色 <rt>  Fonts & Colors </rt></ruby>” 选项卡。现在，单击左下角的 “+” 符号：

从文件浏览器中，选择下载的主题文件，然后单击“<ruby> 确定 <rt>  OK </rt></ruby>”。

该主题现在将在同一“字体和颜色”选项卡上可见，你可以通过单击它进行切换。

#### 步骤 2 替代：批量安装主题

你是否下载了整个 GitHub 主题仓库？ 那么一一安装主题就不方便了。不用担心，Gedit 有可用于批量安装的颜色主题目录。

你必须将所有 XML 文件复制并粘贴到 `.local/share/gedit/styles`。

之后，你将在“字体和颜色”选项卡上获得所有主题的缩略图。

如果没有 `styles` 目录，请创建一个。现在，主题将可供该特定用户使用。

>
> ? 在 Linux Mint 上，你可以将 XML 文件复制到 `/usr/share/gtksourceview-3.0` 目录，Gedit 和 Xed 编辑器都可以访问该目录。
>
>
>

### 删除 Gedit 主题

如果你不喜欢某些主题，可以从该位置删除这些文件。或者，转到字体和颜色部分。现在选择你要删除的主题，然后按左下角的 “-” 号。

这将删除该特定的配色方案。

### 一些好看的 Gedit 主题

下面的截图给出了我的一些建议。

Blackboard：

[Catppuccin](https://github.com:443/catppuccin/gedit) 是一个深色的 Gedit，如果你使用任何类似的 GTK 主题，那就太合适了：

Lowlight：

Midnight：

Monakai：

Neopro：

Plastic Code Wrap：

Slate：

Vibrant Fun：

你可以通过搜索 [GitHub 话题](https://github.com:443/topics/gedit-theme) 和仓库来获取更多主题。

### 更多 Gedit 调整

这只是众多 [调整 Gedit 的方法](https://itsfoss.com/gedit-tweaks/) 之一。这里还有更多内容供你探索。

享受更多颜色的 Gedit ?

*（题图：MJ/3a36db2e-6da6-4bdc-bf80-0aa0e6481f8e）*

---

via: <https://itsfoss.com/gedit-themes/>

作者：[Sreenath](https://itsfoss.com/author/sreenath/) 选题：[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/) 荣誉推出


Fedora Linux 的家族（四）：替代下载

Summary: 本文将深入探讨 Fedora 替代下载的多样化选择。

本文将深入探讨 Fedora 替代下载的多样化选择。

# Fedora Linux 的家族（四）：替代下载

<img src="content_image/album_202308_16_171749ip2lzzx4747u232t.jpg" alt="" title="">

Fedora 替代下载是 Fedora 项目提供的一项非常出色的资源，为寻求特定需求或独特用例的用户提供了替代的发行选项。本文将深入探讨 Fedora 替代下载的多样化选择，重点介绍它们的重要性以及它们如何满足 Fedora 社区中的不同需求。你可以在我之前的文章 [介绍不同的 Fedora Linux 版本](https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/) 中找到所有 Fedora Linux 变种的概述。

### 网络安装器

Fedora 网络安装器是一个安装 Fedora Linux 的高效灵活的工具。这是 Fedora 的在线安装器。与主版本使用的封装在立付镜像中的方式不同，该安装器允许你在安装时自定义哪些软件包将被安装。然而，由于要安装的软件包并未封装在此安装器镜像中，因此在安装时需要网络访问以下载选定的软件包。

不要将这个与网络启动混淆，后者是从小型的 [预启动执行环境](https://en.wikipedia.org/wiki/Preboot_Execution_Environment) 启动操作系统或操作系统安装器的一种方法。（尽管这种 [引导程序](https://en.wikipedia.org/wiki/Bootloader) 有可能 [链式加载](https://en.wikipedia.org/wiki/Chain_loading) Fedora 的网络安装器。）

### Torrent 下载

Fedora Torrent 下载利用了 BitTorrent 协议，这是一种点对点的文件共享协议。BitTorrent 使用户可以同时从多个来源下载 Fedora Linux 镜像，而不是依赖于中央服务器进行下载。这种去中心化的方式提高了下载速度，减轻了单个服务器的负担，从而带来了更快、更可靠的下载体验。Fedora Torrent 下载提供了一种快速、可靠、由社区驱动的获取 Fedora Linux 镜像的方式。通过利用 BitTorrent 协议的力量，Fedora 利用了全球用户的集体带宽和资源，从而实现了更快的下载和提高了可靠性。

详细信息可在此链接查看：

>
> **[Torrent 下载](https://torrent.fedoraproject.org/)**
>
>
>

### 替代架构

Fedora 替代架构是 Fedora 项目的一项倡议，旨在通过提供一系列架构选项，扩大 Fedora Linux 操作系统的兼容性。除了标准的 x86\_64 架构外，Fedora 替代架构还为其他架构提供支持，包括 ARM AArch64，Power 和 s390x。该倡议使你可以根据硬件需求选择最适合的架构，使 Fedora Linux 能在多种设备和系统上运行。无论你是拥有树莓派、配备 Power 处理器的服务器，还是其他专用硬件，Fedora 替代架构都确保你能获得满足特定需求的定制 Fedora Linux 体验。

详细信息可在此链接查看：

>
> **[替代架构](https://alt.fedoraproject.org/alt/)**
>
>
>

### Fedora Cloud

在我写完介绍主要 Fedora Linux 版本的这个系列的初始帖子后，[Fedora Cloud 镜像已恢复为完整版状态](https://fedoraproject.org/wiki/Changes/RestoreCloudEdition)。Fedora 替代下载页面上仍有一些指向 Fedora Cloud 镜像的链接。但是它们将很快被移除。现在获取最新的 Fedora Cloud 镜像的正确地点是：

>
> **[Fedora Cloud 镜像](https://fedoraproject.org/cloud/download/)**
>
>
>

Fedora Cloud 镜像是 Fedora 项目为云环境使用提供的镜像集合。Fedora Cloud 镜像特别设计用于在云中以高效和最佳性能运行应用程序。使用 Fedora Cloud 镜像，你可以快速部署并在云中运行应用程序，而无需花费时间从头开始配置操作系统。Fedora Cloud 镜像也在可扩展性方面提供了灵活性，允许你根据应用程序的需求轻松调整资源的大小和容量。

### 测试镜像

Fedora 测试镜像是一系列专为测试和贡献 Fedora Linux 开发而设计的专用系统镜像。这些镜像允许你测试最新的特性，探索 Fedora Linux 的最近更改，并报告遇到的任何问题。使用 Fedora 测试镜像，你可以通过提供有价值的反馈和贡献，积极参与 Fedora Linux 的开发。

你参与测试和贡献 Fedora 测试镜像在维护和提高 Fedora Linux 的质量和可靠性方面起着至关重要的作用。通过汇报问题，测试软件和提供反馈，你可以帮助 Fedora 开发者修复漏洞，增强性能，确定需要进一步改进和开发的领域。Fedora 测试镜像为你提供了一个方便且安全的方式直接参与 Fedora Linux 的开发，从而加强社区，为所有 Fedora 用户带来更好、更可靠的操作系统。

### Rawhide

Fedora Rawhide 是 Fedora Linux 操作系统的开发分支。它提供了一个持续演进和尖端的 Fedora Linux OS 版本。它作为新特性、增强和软件更新的测试场地，这些更新都是针对包含在未来 Fedora Linux 稳定版本中的。Fedora Rawhide 提供了对最新软件包的早期访问，让用户能够走在技术的前沿，并参与到 Fedora Linux 的测试和完善中。

使用 Fedora Rawhide 既有好处也有考量因素。一方面，它为早期采用者、开发者和贡献者提供了一个平台，他们可以在此测试和对即将到来的特性和变更提供反馈。这有助于在将它们包含在稳定版本之前识别和解决问题。另一方面，由于 Fedora Rawhide 持续处于开发中，可能会遇到 bugs、不稳定和兼容性问题。因此，只推荐给熟悉排错并积极为 Fedora 社区贡献的经验用户。

详细信息可在此链接查看：

>
> **[Fedora Rawhide](https://docs.fedoraproject.org/en-US/releases/rawhide/)**
>
>
>

### 结论

Fedora 替代下载提供了一系列令人印象深刻的替代发行版，满足了 Fedora 社区内多样化的需求。无论是通过 Fedora 定制版、Fedora 实验室、Fedora 重混版、Fedora Silverblue 还是 ARM 版本，用户可以找到满足他们需求、偏好和用例的专门分发。这种灵活性和社区驱动的方式使 Fedora 替代下载成为 Fedora Linux 爱好者的宝贵资源，促进了 Fedora 生态系统内的创新和定制。你可以在下面找到关于 Fedora 替代下载的完整信息：

>
> **[Fedora 替代下载](https://alt.fedoraproject.org/)**
>
>
>

*（题图：MJ/c93c33ec-79e4-4815-ac65-d78b422b854f）*

---

via: <https://fedoramagazine.org/fedora-linux-editions-part-4-alt-downloads/>

作者：[Arman Arisman](https://fedoramagazine.org/author/armanwu/) 选题：[lkxed](https://github.com/lkxed/) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)


Summary:
? Firefox 庆祝在过时的 JavaScript 基准中超越 Chrome
? LoongArch Loong64 加入新的 Debian Port
? OpenAI 希望 GPT-4 解决大规模内容审核问题
»
»

# 硬核观察 #1095 Firefox 庆祝在过时的 JavaScript 基准中超越 Chrome

### Firefox 庆祝在过时的 JavaScript 基准中超越 Chrome

上周发布的 Firefox 晚间新闻说，“我们现在显然在 SunSpider JavaScript 基准测试中击败了 Chrome 浏览器！” SunSpider 测试已有十年之久，已经被 JetStream 基准测试所取代。而在更新、要求更高的 JetStream 2.0 基准测试中，谷歌的 Chrome 浏览器继续轻松地战胜了 Firefox 浏览器。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Firefox-Faster-SunSpider)**
>
>
>

>
> 老王点评：终于在一个废弃的基准中战胜了对手，也稍微值得一点点高兴吧。
>
>
>

### LoongArch Loong64 加入新的 Debian Port

在新开发的 Debian 13 周期中，除了将 RISC-V 提升为官方 CPU 架构之外，另一个 CPU 架构方面的变化是将 LoongArch Loong64 添加为新的 Debian Port。最初的 Debian LoongArch 引导包约有 200 个，而使其成为自托管软件的工作仍在进行中。一旦达到自托管的里程碑，Debian 计划开始在龙芯托管的实际 LoongArch CPU 硬件上运行 Debian 软件包构建。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Debian-Ports-LoongArch)**
>
>
>

>
> 老王点评：是否有望在 Debian 13 中，Loong64 也成为官方架构呢？
>
>
>

### OpenAI 希望 GPT-4 解决大规模内容审核问题

OpenAI 声称，GPT-4 可以取代数以万计的人工审核员，而且几乎同样准确、更加一致。OpenAI 认为有三大好处。首先，它声称人们对政策的解释是不同的，而机器的判断是一致的。其次，据称 GPT-4 可以在数小时内帮助制定新政策，而不像传统的数周或数月。最后，他们认为这将帮助那些人工审核人员免受心理伤害。

>
> **[消息来源：The Verge](https://www.theverge.com/2023/8/15/23833406/openai-gpt-4-content-moderation-ai-meta)**
>
>
>

>
> 老王点评：人工智能加剧了有害内容的出现，然后它要自己解决这个问题么？
>
>
>


近乎零边际成本的社会及其对我们为何工作的影响

共产主义宣言

来自36.129.58.163的 Firefox 115.0|GNU/Linux 用户

# 近乎零边际成本的社会及其对我们为何工作的影响

>
> 随着我们的工作与生活环境已经物联网化，能源消耗将会接近于零，而社区协作将成为关键。
>
>
>

我拜读了 <ruby> 杰里米·里夫金 <rt>  Jeremy Rifkin </rt></ruby> 的书籍《<ruby>   零边际成本社会——一个物联网、合作共赢的新经济时代  <rt>  The Zero Marginal Cost Society: The Internet of Things, the Collaborative Commons, and the Eclipse of Capitalism </rt></ruby>》（LCTT 译注：中文出版信息可以在 [此处](https://www.bkpcn.com/Book/Bk_OneBook.aspx?id=2014000629) 获取），该书主要讨论开放组织原则，尤其是社区创建。里夫金还在书中讨论了绿色能源时代的未来以及能源在物流中的使用。本文是三篇系列文章中的第二篇。在我先前的文章中，我讨论了 <ruby> 协作共享 <rt>  Collaborative Commons </rt></ruby>。本文，我将讨论它对能源生产与供给的影响。

里夫金相信，接下来的 25 年间，家庭供暖、电气设备、电力行业、车辆驾驶、整体经济运行等各行各业中的大部分都将采用近乎免费的在地太阳能、风能与地热能。这一过程已经在个人及微型电站领域开始了，估计会在 2 - 8 年后收回投资。

管理几乎免费的绿色能源的最优组织架构是什么样的呢？此外，通过智能化的通讯与能源系统，组织可以在世界各地发展自己的业务，并且通过洲际能源互联网共享能源。最重要的是，可以仅以目前全球制造业巨头的一点儿零头生产和销售产品。

### 物联网已近

如里夫金所言，物联网（IoT）能够连接每一台设备、每一项业务、每一幢住处、每一辆交通工具，将所有这些连接在一张智能网络中，这一网络不仅包括目前所见的通讯网络，还包括未来的能源网络以及物流网络。所有这些网络将集成在单一的运行系统中。能源利用将被完全监控。里夫金相信 10 年内（到 2025 年）大量的智能化的能源测量设备将投入使用。所有这些投资将至少能够降低当前工业系统中 10% 的浪费。

由于设备集成的传感器与制动器的成本的降低，所有这些都将成为可能。射频识别（RFID）芯片的价格在 2012-2013 年间已经下降了 40%。微机电系统（MEMS），包括陀螺仪、加速度计、压力传感器等，的价格也在过去的 5 年间（直至 2015 年本书出版时）降低了 80-90%。

这将会使单个个体的个人设备设备连接数量提升到大约 1000 个。这种连接正是现在的年轻人所钟爱的，完全融入一个虚拟的全球公共广场中来分享他们的一切。他们在透明、协作与包容中茁壮成长，并注意保持适当的隐私水平。因此，可以想见，协作共享正当其时。

### 指数曲线增长

问题：你是想一次性拿到 1,000,000 美元还是想拿能够在接下来的 30 天内每一天都翻倍的 1 美元？（30 天后，1 美元将变成 536,870,912 美元，是 1,000,000 美元的 500 倍还多）31 天后，这笔钱将超过十亿美元。指数增长速度惊人。里夫金认为这正是成本如此快速降低的原因。这将导致整个化石能源工业投资都变成搁浅资产。鉴于这一境况将是协作共享的理想场景，我们应当现在就开始计划使用所有的开放组织原则进行协作共享。

### 未来，免费的能源网络

当前，互联网上充满了可供学习的免费信息，只要你尝试寻找它。下一步将是能源免费（太阳能、风能、地热能、生物质能、水能）。里夫金认为，在初始投资（研究、开发与部署）之后，免费能源的单位成本将快速降低。信息互联网与近乎零成本的可再生性也会引入能源互联网，为家庭、办公场所以及厂区等提供电力。理想情况下，能源可以提供给建筑并部分以氢能的形式存储，分布在绿色电网中，并与插电式零排放交通工具相连接。可再生能源的发展建立了一个由五大支柱组成的结构，这有助于让数以亿计的人口在物联网时代的世界中以接近零边际成本的方式共享能源。

### 太阳能

如果你开始收集来自太阳的能量，能量收集设施仅仅需要获取到达地球的太阳能量的 0.1%，就可以提供六倍于目前全球能量消耗的能量。

<ruby>   太阳动力公司  <rt>  SunPower Corporation </rt></ruby> 开展以上业务。它支持家庭能源生产者。太阳能光伏电池的价格随着工业产能的翻番大概会降低 20%。太阳能板的数量正在上升，而单片太阳能板的捕获效率则也在上升。将来也期待会开发出更薄的太阳能板，如纸般纤薄的太阳能片。最终将来将会出现太阳能工厂以及太阳能窗户。

生成超出的能量后，必须将其售出、存储在电池中亦或者是用于制氢。这一技术已经引入市场，并将在不久的将来占据市场的主导地位。仅仅依靠这一技术，零边际成本的电力已经触手可及。

### 风力发电

自上世纪 90 年代始，风力发电经历了指数形增长，目前（截止 2015 年）已经接近化石能源与核能的发电水平。随着风力发电机的生产、安装与维护成本的不断降低，风电容量大约每两年半翻一番。因此随着太阳能与风能资源的增加，政府将不再需要以关税资助风电与太阳能发电行业。

<ruby>   能源观察组  <rt>  Energy Watch Group </rt></ruby> 正在跟踪这一趋势。根据里夫金的说法，地热能、生物质能、波浪与潮汐能将可能在下一个十年里进入它们各自指数增长过程中的陡峭上升阶段。他相信这些都将在 21 世纪上半叶发生。如果到 2028 年，新能源装机容量可以翻八番或者更多，能源生产中的 80% 都将来自可再生资源。

### 协作时代不久即将到来

基于上述能源的发展，社会工作环境与居住环境正在改变。摘引 <ruby>   协作时代  <rt>  collaborative age </rt></ruby> 的说法：

>
> 这一方式可以保证人们之间无障碍的进行任务协作。人员与机器可以无缝协作。而自动化，也即机器之间的协作，也会成为关键。正确地应用这些要素的行业将能够扩大员工的满足感，并吸引最好的人材。由于日常任务的自动化以及更小的办公空间需求，这将降低运营成本。
>
>
>

### 实现转型

这听起来很好，但商业如何才能从信息时代过渡到合作时代？一个途径将是通过3D 打印技术实现的去中心化生产 <ruby>   增材制造  <rt>  additive manufacturing </rt></ruby>，不需要去除材料，造成浪费。

不通过商品输送，未来很多商品都可以实现在地制造，只需要传输相应的软件。这可以完全避免物流成本，而且可以使得产品制造可以在靠近终端市场的地区就地完成。就此而言，新开发的熔融塑料、熔融金属以及其他的打印耗材将可以用于制造。这赋予了 3D 打印机制造成千上万产品的能力（比如珠宝、飞机零部件以及假肢）。

### 中心化制造与分布式制造，里夫金项目的到来

里夫金相信：通过物联网经济以及几乎零边际成本的全球互联网站点，低商业成本是可能的。

1. 在地 3D 生产过程几乎不需要人力参与（基于 “<ruby> 信息制造 <rt>  infofacture </rt></ruby>” 而不是工业制造）。人们收发在地制造所需的信息，就像日常下载音乐一样，你接收的仅仅是代码而已。
2. 3D 打印所需的代码是开源的，人们可以学习并改进设计，在更广泛的程度上成为一名自助生产者（不存在知识产权保护的藩篱）。这在接下来的几十年里将带来指数式的增长，以更低的价格以及近乎为零的边际成本提供更复杂的产品。
3. 减材制造过程（目前的制造过程）存在很大的浪费，在每一道工序中都产生了大量的废料。（仅有 1/10 的材料是所需要的。这些材料可以在地化地在任何地方从基本粒子合成出来，比如再生玻璃、纤维产品、陶瓷以及不锈钢等。复合纤维混凝土挤出后可以自由成型，其强度足以构建承重墙[有望在 20 年内实现]。）
4. 3D 打印工艺需要更少的移动部件，且几乎不需要备件。因此，昂贵的重组与产线转换所占用的时间延迟所带来的影响将会更加有限。
5. 材料将会更加耐用，更加可回收利用，且污染更小。
6. 由于其低物流成本与低能耗的特点，基于物联网的在地化分布式生产将以指数速率在世界范围内传播。

里夫金引用了 [Etsy][<https://www.etsy.com/>] 作为这种模式的一个例子。你可以找到你感兴趣的事物，并利用他们的网络在当地制造它。他们出售相应的代码，而你可以在当地供应这些产品。

里夫金认为未来，中小规模的 3D 公司可以通过信息制造生产更复杂的产品，它们因而可能在在地的技术园区内形成合适供应链规模的产业集群（另一种形式的社区开发）。下面是目前的案例：

1. [RepRap](https://reprap.org/wiki/RepRap): 一种能够制造自身以及自身所有零件的 3D 打印制造设备。
2. [Thingiverse](https://www.thingiverse.com): 最大的 3D 打印社区。基于 GPL 与 CC 许可共享 3D 打印模型。
3. Fab Lab: 开源的制造业点对点学习网站。它已经引入到发展中国家当地的偏远社区。
4. 3D 打印的汽车（[Urbee vehicle](https://www.popularmechanics.com/cars/a9645/urbee-2-the-3d-prinhttps://www.popularmechanics.com/cars/a9645/urbee-2-the-3d-printed-car-that-will-drive-across-the-country-16119485)）已经在测试了。
5. [KOR EcoLogic](https://phys.org/news/2013-02-kor-ecologic-urbee-car-d.html) 有一种城市电动汽车。

### 创客的行动准则

下面是这些生态系统所遵循的原则：

1. 它们使用开源共享软件。
2. 它们推崇合作学习文化。
3. 它们相信可以构建一个自给自足的社区。
4. 它们致力于可持续生产实践。

### 工作与协作共享的未来

当技术取代了工人，资本投入也就取代了劳动投入。2007 年相比 20 年前，商业公司使用的计算机与计算机软件的数量已经增长了 6 倍，单位时间内雇用劳动所使用的资本量也翻了一番。机器人劳动力的应用正在上升。中国、印度、墨西哥以及其他的新兴经济体已经认识到世界上最廉价的劳动力也没有像可以取代它们的信息技术、机器人技术以及人工智能技术那样廉价、高效和具有生产力。

回到里夫金的观点，第一次工业革命结束了奴隶制与农奴制，第二次工业革命造成了农业劳动与手工业劳动的极大萎缩。里夫金认为第三次工业革命将导致制造业、服务业中的大规模雇用劳动力的降低，也会导致大部分知识部门中雇用的专业劳动力的减少。

里夫金相信充沛的零边际成本的经济将会改变我们对经济运行过程的认知。他认为传统的资方与雇方、卖方与买方的范式将会崩溃。消费者将开始自行制造产品（同时也为有限的其他人），从而消除消费者之间的区别。在边际成本逐渐降低到零的共享协作中，这样既是生产者又是消费者的产消者将很快能生产、消费以及互相分享他们自己的商品与服务，从而带来超越传统的资本主义市场模式的组织未来的经济生活的全新方式。

里夫金预测未来，更加重要地是共享协作，并且在市场经济中这将会和努力工作一样重要（一个人的能力在于合作能力，而不仅仅是努力工作）。社交资本的积累将和市场资本的积累同等重要。社区的依赖以及对超越与价值的探索将成为对个人的物质财富的衡量标准。我们以上列明的 [开放组织原则](https://theopenorganization.org/definition/open-organization-definition/) 在未来将指数化的变得愈发重要。

物联网将把人类从资本主义市场经济中解放出来，让人们在共享协作中追求非物质的共享利益。在近乎零边际成本的社会中，虽然不是所有的基础物质需求，但是我们的大量基础物质需求几乎都将可以零成本满足。这个未来社会将会超乎想象的物质丰富。

### 产消者与智能社会的到来

里夫金在文中认为，随着资本主义经济在一些全球性的大宗货物上的没落，在共享协作的社会中，买卖双方将让位于 <ruby> 产消者 <rt>  prosumer </rt></ruby>，所有权将让位于开源共享，使用权将比所有权更加重要，市场将由网络所取代，信息供应、能源生产、产品生产、学生教育的边际成本将几乎为零。

### 能源互联网已经在路上

物联网金融不是来自于富有的资本家或者企业股东，而是来自于成千上万的消费者与纳税人。互联网不为任何人独有。互联网之所以能够运行，仅仅是因为建立了一套商定的协议允许网络中的计算机可以互相通信。这对于每一个已经支付了网络使用费用的人来说就像是一个虚拟的公共广场。接下来的分布式可再生能源也会像类似的方式分布。在入网收费以及其他融资方式下，政府将承担初始的研究费用，但是在这一固定投资之后，大众将能够免费接入并使用它。一旦发生，政府中心化的运营方式将会转向分布式所有。[美国电力科学研究院](https://www.epri.com) 正在研究如何在接下来的 20 年间建立一个国家能源互联网。

这不仅仅是电力供应那样简单。每一幢建筑中的每一台设备都将装备连接到物联网的传感器与软件，提供产消者以及网络上其他人的实时的用电信息。这一能源互联网将能够感知每一台设备任一时刻的用电数据——空调、洗衣机、洗碗机、电视、吹风机、烤箱、烤炉以及冰箱等等。

这不是将会到来的情景，而是正在发生。它不仅仅是正在考虑当中，而且是正在践行当中。[Intwine Energy](https://www.intwineconnect.com) 已经可以提供上述过程。一批年轻的 [社会企业家](https://www.cleanweb.co) 现在正在使用社交媒体来鼓励他们的同龄人创造、运营和使用这个能源互联网。

### 物资充沛超出我们需求的新世界

里夫金认为我们必须开始展望一个完全不同的新世界。想像一下在这个世界里，你可以放弃那些你曾经必须付费购买的或者是必须以一定利润出售的东西。没有人会向我们收取互联网电话费用。他相信这些放弃的商品需要无法像电信、公路、桥梁、公立学校与公立医院那样由政府提供，也不能完全当作私人财产来买卖。这些商品必须由以一定规则、责任以及共同利益（信息、能源、在地生产与在线教育）凝聚的社区来供应。这些商品的交换不应由市场或者政府主导，而应基于 [公地悲剧](https://blogs.pugetsound.edu/econ/2018/03/09/comedy-of-the-commons) 的原因，由网络中的共同体负责，它管理和执行分布式、点对点、横向扩展的经济活动。

里夫金感到共享协作作为管理主体是极其重要的。这正是在地（项目）发挥领导力之处。目标、过程、任务以及责任都必须在同意以及确认后成功执行。进一步而言，“社会资本”也是主要因素，必须要广泛引进并深化质量。社区内部的交换、交互以及贡献远比向遥远的资本市场进军更加重要。如果情况如此，那么我们的 [开组织领导力](https://github.com/open-organization/open-org-leaders-manual/raw/master/second-edition/open_org_leaders_manual_2_3.pdf) 将会十分重要。

### 公共广场与私有权

“至少在互联网之前，公共广场是我们交流，社交，陶醉于彼此陪伴，建立公共纽带以及创造社会资本与信任的地方。”历史上，日本的乡村就是这样建立的，以应对像台风、地震这样的自然、经济或者政治灾难。他们将公共利益置于个人利益之上。这正是社区的开源组织原则的全部。

被接纳的权利，互相接触的权利，也就是共同参与的权利是所有参与者的基础权利。私有财产，即圈占、拥有和排除的权利，只是对标准规范的一种有限制的偏离。由于一些原因，在当前的现代社会中获取大量的私有财产的权利是重要的，里夫金认为在接下来的时间这将会得到反转。

里夫金在书中写道，世界将在下列领域公共化。

1. 公共广场公共化
2. 土地公共化
3. 虚拟公共化
4. 知识公共化（语言、文化、人类的知识与智慧）
5. 能源公共化
6. 电磁频谱公共化
7. 海洋公共化
8. 淡水公共化
9. 大气公共化
10. 生物圈公共化

过去 200 年的资本主义，市场的封闭化、私有化和商品化必须审视。 在透明、无等级和协作的文化中，他们如何才能最有效？ 归结为两种观点，资本主义（我拥有，属于我的，你不能用）和协作主义（任何人可用，有相应的使用规则与使用指南，因而任何人有享有公平份额）。 今天的合作社在这方面很擅长，比如 [国际合作社联盟（ICA）](https://www.ica.coop/en)。 合作社必须为更大的社区利益生成动力，而且这种动力必须大于任何利润动机。 这是他们面临的挑战，但这并不新鲜，因为现在地球上七分之一的人都在某种合作社中。

正如我在本文中所展示的，物联网将成为我们的工作和生活环境。 此外，能源成本预计将接近于零。 随着这些变化，社区协作与合作将变得比努力工作更加重要。 在本系列的最后一部分中，我将探讨物流和其他经济活动中的协作共享。

*（题图：MJ/00ed9931-0d49-4cbe-82d1-ebd28b758880）*

---

via: <https://opensource.com/open-organization/22/5/near-zero-marginal-cost-societies-and-impact-why-we-work>

作者：[Ron McFarland](https://opensource.com/users/ron-mcfarland) 选题：[lkxed](https://github.com/lkxed) 译者：[CanYellow](https://github.com/CanYellow) 校对：[wxy](https://github.com/wxy)

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


Omnivore：一个类似 Pocket 的开源稍后阅读应用

Summary: 一款具有令人兴奋的功能的，Mozilla 的 Pocket 的开源替代品。

RSS?

一款具有令人兴奋的功能的，Mozilla 的 Pocket 的开源替代品。

# Omnivore：一个类似 Pocket 的开源稍后阅读应用

>
> 一款具有令人兴奋的功能的，Mozilla 的 Pocket 的开源替代品。
>
>
>

如果我告诉你有一个解决你所有稍后阅读需求的一站式解决方案，你会怎么想？

当你遇到了你想看却没时间阅读的有趣文章的时候。

这就是稍后阅读解决方案的作用。在这篇文章中，我们将看看一个名为 “**Omnivore**” 的跨平台，开源稍后阅读平台，它可以实现这样的任务。

让我向你展示它可以提供的东西。

### Omnivore：概览 ⭐

它主要由 **HTML** 和 **TypeScript** 驱动，Omnivore **的目标是成为满足你所有阅读需求的一站式解决方案**。

它听起来像是非常热门的 Mozilla 的 [Pocket](https://getpocket.com/en/) 应用的替代品。

你可以跨很多平台使用它，比如 **Web**、**安卓** 和 **iOS**。

你也可以在服务器上自己托管它，尽管 Omnivore 最初被设计为在 [GCP](https://cloud.google.com/)（谷歌云平台）上部署。幸运的是，开发者正在研发更具包容性的部署系统，这将使它更便携。

那么，让我们先来看看 Omnivore 的一些重要亮点：

* 支持全键盘导航。
* 在长文章中自动保存进度。
* 支持各种插件。
* 提供离线阅读功能。

#### 初次体验 ??

我在免费托管的 Omnivore 版本上进行了测试，这需要创建一个账户。

创建账号后，我将一些稍后阅读的文章添加到了它里面，结果就是这个 **组织良好的主页** 。

它具有一个侧边栏菜单，包括 <ruby> 收件箱 <rt>  Inbox </rt></ruby>、<ruby> 继续阅读 <rt>  Continue Reading </rt></ruby>、<ruby> 稍后阅读 <rt>  Read Later </rt></ruby>、<ruby> 无标签的 <rt>  Unlabeled </rt></ruby> 等分类选项。

主网格布局储存了所有保存的文章；它还有另一种列表式的视图，但我选择了网格视图。

下面，让我告诉你 **如何向 Omnivore 添加文章** 。

在 Omnivore 上保存稍后阅读的文章主要有两种方法。

一种是 **通过用户菜单** ，你需要点击 “<ruby> 添加链接 <rt>  Add Link </rt></ruby>”，然后在你点击它时弹出的文本框中粘贴 URL。

但另一种方法更为直观；它是 **通过浏览器扩展** 完成的。我使用 [Chrome 网上应用店](https://chrome.google.com/webstore/detail/omnivore/blkggjdmcfjdbmmmlfcpplkchpeaiiab/) 的 Omnivore 扩展在 Vivaldi 上进行了测试。

安装后，你只需访问你感兴趣的文章，并点击浏览器扩展栏中显示的 Omnivore 图标。

文章将被添加到你的 Omnivore 账户；你还可以利用可用选项来 **添加注释、标签、编辑标题** 等。

别担心；这不仅仅是 Chromium 的独有方式。你也可以为 [Firefox](https://addons.mozilla.org/en-US/firefox/addon/omnivore/) 和 [Safari](https://apps.apple.com/us/app/omnivore-read-highlight-share/id1564031042) 获取浏览器扩展，这是很好的。

之后，我看了一下 Omnivore 上的 “<ruby> 标签 <rt>  Labels </rt></ruby>” 系统。我创建了两个标签，并相应地将它们分配给了保存的文章。

它允许我按标签对它们进行排序。我只需要点击我想要访问的那个。

要创建新标签，点击侧边栏菜单中 “<ruby> 标签 <rt>  Labels </rt></ruby>” 旁边的三点菜单，然后进行编辑。

接下来，你可以通过添加标签或修改已有的标签来开始，为它们设置一个名称和颜色。

要将它们分配给现有的文章，将鼠标悬停在一个文章卡片上，进入三点菜单，然后选择 “<ruby> 设置标签 <rt>  Set Labels </rt></ruby>”。

然后，我看了一下 **文章阅读的体验** ，我并没有感到失望。文章查看器有一个干净的布局，一个浮动的侧边栏菜单允许各种功能。

第一个选项是设置文章的标签；第二个选项会打开一个笔记本，让你为特定的文章添加注释。

然后有 “<ruby> 编辑信息 <rt>  Edit Info </rt></ruby>” 按钮，该按钮会打开一个编辑窗口，用于编辑已保存文章的关键细节。最后，最后两个按钮用于删除或归档已保存的文章。

然后，我转而去检查了 **在 Omnivore 上** 的插件支持。它支持几种不同的插件，允许你从各个地方导出内容。

你可以将其连接到 [Logseq](https://logseq.com/)、[Obsidian](https://obsidian.md/)、[Readwise](https://readwise.io/)，甚至是 Mozilla 的 [Pocket](https://getpocket.com/en/)。

这种互操作性对我来说总是一个加分项！?

而这最后一点对我来说是一个惊喜。

Omnivore **支持创建电子邮件别名**，然后可以用该别名注册各种新闻简报。官方支持来自 [Substack](https://substack.com/)、[beehiv](https://www.beehiiv.com/)、[Axios](https://www.axios.com/) 等的新闻简报。

但是，结果证明，它也适用于其他新闻简报。我在 **[我们的新闻简报](https://itsfoss.com/newsletter/)** 上进行了测试，它集成得很好！

### ? 获取 Omnivore

如果你像我一样，希望方便地开始使用，我建议你访问 [官方网站](https://omnivore.app/)。

然而，如果你更喜欢自己托管，我建议你看一看 [官方文档](https://docs.omnivore.app/) 和它的 [GitHub 仓库](https://github.com/omnivore-app/omnivore)。

>
> **[Omnivore](https://omnivore.app/)**
>
>
>

**对于他们的定价结构**，目前，Omnivore 是完全免费的。开发者还没有决定一个合适的定价计划，但是他们有一些他们打算追求的主意。

目前，他们完全依赖社区的捐款。

? 你对此有什么看法？你会尝试一下吗？

*（题图：MJ/ed3cc6ff-cc45-4895-9733-3145bef84b48）*

---

via: <https://news.itsfoss.com/omnivore/>

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

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


硬核观察 #1096 Debian Linux 庆祝 30 周年

Summary:
? Debian Linux 庆祝 30 周年
? Twitter 短域名被发现对特定域名延迟跳转
? Windows 的一项功能错误可能导致时钟被重置偏离数月
»
»

祝贺

# 硬核观察 #1096 Debian Linux 庆祝 30 周年

### Debian Linux 庆祝 30 周年

30 年前，已故的 Ian Murdock 在新闻组中公布，他将发布一个全新的 Linux 发行版，并将其命名为 “Debian Linux Release”。一个月后，Debian 正式发布，成为了当今仍然存在的最大、最古老的自由操作系统之一。Debian 社区发起了庆祝 30 周年的 [DebianDay 2023](https://wiki.debian.org/DebianDay/2023) ，全球各地纷纷举办活动响应，不过目前还没看到中国的城市有参加。

>
> **[消息来源：Debian](https://bits.debian.org/2023/08/debian-turns-30.html)**
>
>
>

>
> 老王点评：恭喜 Debian，如果没有 Debian，可以说 Linux 的世界将是另外一个样子。
>
>
>

### Twitter 短域名被发现对特定域名延迟跳转

据用户报告，当用户使用 Twitter/X 公司的短域名 t.co 访问特定域名的网址时，会延迟五秒才会跳转到目标网址。被限制的域名包括纽约时报，Meta 旗下的 Threads、Facebook 和 Instagram，以及 Bluesky 和 Substack。据谷歌 2016 年对移动流量的一项研究发现，如果网站加载时间超过 3 秒，53% 的用户会放弃访问。在媒体曝光这一消息后，t.co 撤销了特定域名的延迟跳转。

>
> **[消息来源：华盛顿邮报](https://www.washingtonpost.com/technology/2023/08/15/twitter-x-links-delayed/)**
>
>
>

>
> 老王点评：口号都是生意，作恶的方法层出不穷。
>
>
>

### Windows 的一项功能错误可能导致时钟被重置偏离数月

几个月前，挪威一个数据中心的一名工程师遇到了一些令人费解的错误，导致 Windows 服务器突然将其系统时钟重置为未来 55 天。这影响了该服务器提供的手机号码迁移服务，很多人无法拨打电话。罪魁祸首是 Windows 中一个鲜为人知的功能，即“安全时间播种”，它依赖于 SSL 数据包的时间戳元数据来维持时钟，这种故障可能是由 SSL 流量问题引起的，归根到底是微软误读了 SSL 相关的实现规范。很多人都遭遇到了这一问题，但微软没有就这一故障给出答复和解决方案，唯一可行的办法就是关闭该功能。

>
> **[消息来源：Ars Technica](https://arstechnica.com/security/2023/08/windows-feature-that-resets-system-clocks-based-on-random-data-is-wreaking-havoc/)**
>
>
>

>
> 老王点评：这对于服务器来说，尤其是那些严重依赖时间准确性的数据库服务器来说，简直是灾难。不过，在 Linux 上运行服务它不香吗？ ?
>
>
>


终端基础：Linux 终端入门

Summary: 想了解 Linux 命令行的基础知识吗？ 这是一个带有实践方法的教程系列。

想了解 Linux 命令行的基础知识吗？ 这是一个带有实践方法的教程系列。

# 终端基础：Linux 终端入门

<img src="content_image/album_202308_18_091651g2hm56ps68k65bhc.jpg" alt="" title="">

>
> 想了解 Linux 命令行的基础知识吗？ 这是一个带有实践方法的教程系列。
>
>
>

Linux 终端可能令人生畏。这块黑色的屏幕只能使用命令。很容易让人感到迷失。

问题是 Linux 命令行是一个很大的话题。你只需使用命令即可管理整个系统。我的意思是，这就是系统管理员、网络工程师和许多其他工作的角色。

**本教程集的目的不是让你做好工作准备。它旨在为你提供 Linux 命令行之旅的起点。** 它将为你提供足够的能力来使用终端并了解一些基本知识，例如读取文件和编辑文件。

由于这只是开始，所以大部分教程都属于“文件操作”类别。这是大多数 Linux 书籍和课程的起点。

>
> ? 最好的学习方法就是自己动手。我以“实践模式”编写了这些教程，以便你可以在 Linux 系统上参照这些示例。本系列的每一章都包含一些示例练习来锻炼。跟着学、多练习，你很快就能熟练掌握 Linux 命令行。
>
>
>

### 第 0 章：熟悉终端和术语

当你对终端完全陌生时，即使在阅读教程时你也会发现自己迷失了方向。那是因为你应该知道至少你得理解最简单的术语。

下面的文章将帮助你解决其中的一些问题。虽然我分享的一些技巧可能对你来说有点超前或不太有用，但你会发现很多有用的东西。

>
> **[19 个基础而重要的 Linux 终端技巧](https://itsfoss.com/basic-terminal-tips-ubuntu/)**
>
>
>

### 第 1 章：更改目录

在第一章中，学习使用绝对路径和相对路径切换目录（文件夹）。这样，你就可以在 Linux 命令行中切换。

>
> **[在 Linux 终端更改目录](https://itsfoss.com/change-directories/)**
>
>
>

### 第 2 章：创建目录

现在你已经了解了如何切换目录，接下来了解如何创建新目录。

>
> **[在 Linux 终端创建目录](/article-15595-1.html)**
>
>
>

### 第 3 章：列出目录中的内容

你已经很好地掌握了目录。学习查看目录内部并查看它们有哪些文件和子目录。

>
> **[在 Linux 终端列出目录](https://itsfoss.com/list-directory-content/)**
>
>
>

### 第 4 章：创建文件

关于目录已经足够了。了解在 Linux 命令行中创建新文件。

>
> **[在 Linux 终端创建文件](/article-15643-1.html)**
>
>
>

### 第 5 章：读取文件

文件里面有什么？在本章中学习阅读文本文件。

>
> **[在 Linux 终端读取文件](https://itsfoss.com/view-file-contents/)**
>
>
>

### 第 6 章：删除文件和目录

现在你已经学会了创建新文件和文件夹，是时候删除它们了。

>
> **[在 Linux 终端删除文件和目录](/article-15809-1.html)**
>
>
>

### 第 7 章：复制文件和目录

在终端基础知识系列的本期中，继续进行文件操作并学习复制文件和目录。

>
> **[在 Linux 终端复制文件和目录](/article-16053-1.html)**
>
>
>

### 第 8 章：移动文件和目录

移动文件操作就像剪切粘贴一样。你也可以使用相同的方法重命名文件和目录。

>
> **[在 Linux 终端移动文件和目录](https://itsfoss.com/move-files-linux/)**
>
>
>

### 第 9 章：编辑文件

作为最后一个主要的文件操作，学习在命令行中编辑文本文件。

>
> **[在 Linux 终端编辑文件](https://itsfoss.com/edit-files-linux/)**
>
>
>

### 第 10 章：获取帮助

现在你已经了解了大量基本的 Linux 命令行操作，是时候了解如何在终端本身中获取帮助了。

>
> **[在 Linux 终端获取帮助](https://itsfoss.com/linux-command-help/)**
>
>
>

### 从这往哪儿走？

现在你已经更熟悉终端并了解命令行中的基本文件操作，你可能想知道接下来要怎么做。

我建议你购买一本 Linux 书籍，例如《How Linux Works》。不过，你可以从你遇到的任何 Linux 书籍开始。这里有一些 [我喜欢的几本 Linux 书籍](https://itsfoss.com/best-linux-books/)。

还不想花钱买书吗？ 不用担心！ 这里有一些 [你可以下载的免费 Linux 电子书](https://itsfoss.com/learn-linux-for-free/)。

Bash 脚本也是 Linux 学习中不可或缺的一部分。即使你不必编写 Shell 脚本，如果你了解基础知识，你也应该能够理解使用 Linux 时遇到的脚本。

>
> **[Bash 基础知识系列](https://itsfoss.com/tag/bash-basics/)**
>
>
>

学无止境。不可能面面俱到。但是，如果你至少了解基础知识，就能帮助你更有效地使用系统。

? 希望你喜欢这个 Linux 终端教程系列。请在评论部分分享你的反馈。

---

via: <https://itsfoss.com/linux-terminal-basics/>

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

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


在 GitLab 上构建 CI 流水线

Summary: 连续集成（CI）是指代码变更会被自动构建和测试。以下是我为自己的 C++ 项目构建 CI 流水线的过程。

软件越来越复杂，内耗严重。

# 在 GitLab 上构建 CI 流水线

>
> <ruby> 连续集成 <rt>  continuous integration </rt></ruby>（CI）是指代码变更会被自动构建和测试。以下是我为自己的 C++ 项目构建 CI 流水线的过程。
>
>
>

本文介绍如何在 [GitLab](https://gitlab.com/) 上配置 CI 流水线。我在前面的文章中介绍了 [基于 CMake 和 VSCodium 的构建系统](/article-14249-1.html) 和 [基于 GoogleTest 和 CTest 的单元测试](/article-16055-1.html)。本文将在此基础上进一步配置 CI 流水线。我会先演示如何布设和运行 CI 流水线，然后再介绍如何配置它。

CI 是指提交到代码仓库的代码变更会被自动构建和测试。在开源领域，GitLab 是一个流行的 CI 流水线平台。除了作为中心 Git 仓库外，GitLab 还提供 CI/CD 流水线、<ruby> 问题跟踪 <rt>  issue tracking </rt></ruby> 和 <ruby> 容器注册表 <rt>  container registry </rt></ruby>功能。

### 相关术语

在进入正题之前，我先介绍在本文和 [GitLab 文档](https://docs.gitlab.com/) 中会遇到的常见术语。

* <ruby> 持续交付 <rt>  continuous delivery </rt></ruby>（CD）：自动化供应软件，以供随时交付
* <ruby> 持续部署 <rt>  continuous deployment </rt></ruby>（CD）：自动化软件发布
* <ruby> 流水线 <rt>  pipeline </rt></ruby>: CI/CD 的直接构件，它由阶段和作业构成
* <ruby> 阶段 <rt>  stage </rt></ruby>：一组作业
* <ruby> 作业 <rt>  job </rt></ruby>：某项需要执行的具体任务，比如编译、单元测试等
* <ruby> 执行器 <rt>  runner </rt></ruby>：实际执行作业的服务

### 布设 CI 流水线

在下面的章节中，我将复用以前的 [示例工程](https://gitlab.com/hANSIc99/cpp_testing_sample)。点击 GitLab 仓库页面右上角的 <ruby> 复刻 <rt>  Fork </rt></ruby> 按钮复刻代码仓库。

#### 设置执行器

为了让你对整个流程有所了解，我们先从在本地安装执行器讲起。

参照执行器服务 [安装指南](https://docs.gitlab.com/runner/install/) 安装好服务，然后注册执行器。

1、选择 GitLab 项目页面左侧的 <ruby> 设置 <rt>  Settings </rt></ruby>，再选择 **CI/CD**。

2、展开 <ruby> 执行器 <rt>  Runners </rt></ruby> 区域，关闭 <ruby> 共享的执行器 <rt>  Shared runners </rt></ruby> 选项（黄框处）。特别注意令牌和 URL（绿框处），下一步会用到它们。

3、在终端中运行 `gitlab-runner register`，根据提示输入以下注册信息：

* GitLab 实例: <https://gitlab.com/> （如上图）
* 注册令牌：从执行器区域中获取 （如上图）
* 描述：按需自由填写
* 标签：可以不填
* 执行环境：选 **Shell**

如果有需要，你可以在 `~/.gitlab-runner/config.toml` 中修改这些配置。

4、用命令 `gitlab-runner run` 启动执行器。你可以在 GitLab 的项目设置界面执行器区域看到执行器的状态：

### 运行流水线

前面已经提过，流水线就是一组由执行器执行的作业。每个推送到 GitLab 的提交都会生成一个附加到该提交的流水线。如果多个提交被一起推送，那么只会为最后一个提交生成流水线。为了演示，我直接在 GitLab 在线编辑器中提交和推送修改。

打开 `README.md` 文件，添加一行数据：

现在提交修改。

这里注意默认的行为是为提交新建一个分支，为了简便起见，我们择提交到主分支。

提交后一会儿后，你就应该改能看到 GitLab 执行器执行的控制台中有输出消息：

```
Checking for jobs... received job=1975932998 repo_url=<https://gitlab.com/hANSIc99/cpp\_testing\_sample.git> runner=Z7MyQsA6

Job succeeded duration_s=3.866619798 job=1975932998 project=32818130 runner=Z7MyQsA6

```

在 GitLab 项目概览界面左侧选择 CI/CD --> <ruby> 管道 <rt>  Pipelines </rt></ruby>，查看最近执行的流水线：

选中流水线可以在详情界面看到哪些作业失败了，并能查看各个作业的输出。

当遇到非零返回值是就认为作业执行失败了。在下面的例子中我通过调用 `exit 1` 强制让作业执行失败：

### CI 配置

阶段、流水线和作业的配置都在仓库根目录的 [.gitlab-ci.yml](https://gitlab.com/hANSIc99/cpp_testing_sample/-/blob/main/.gitlab-ci.yml) 文件中。我建议使用 GitLab 内置的流水线编辑器，它会自动对配置进行检查。

```
stages:
- build
- test

build:
  stage: build
  script:
    - cmake -B build -S .
    - cmake --build build --target Producer
  artifacts:
    paths:
      - build/Producer

RunGTest:
  stage: test
  script:
    - cmake -B build -S .
    - cmake --build build --target GeneratorTest
    - build/Generator/GeneratorTest

RunCTest:
  stage: test
  script:
    - cmake -B build -S .
    - cd build
    - ctest --output-on-failure -j6

```

文件中定义了两个阶段：`build` 和 `test`，以及三个作业：`build`、`RunGTest` 和 `RunCTest`。其中作业 `build` 属于一个同名的阶段，另外两个作业属于阶段 `test`。

`script` 小节下的命令就是一般的 Shell 命令。你可以认为是将它们逐行输入到 Shell 中。

我要特别提及 <ruby> 产物artifact</ruby> 这个特性。在示例中我定义了二进制的 `Producer` 为作业 `build` 的产物。产物会被上传到 GitLab 服务器，并且可以从服务器的这个页面上被下载：

默认情况下，后续阶段的作业会自动下载先前阶段作业生成的所有产物。

你可以在 [docs.gitlab.com](https://docs.gitlab.com/ee/ci/yaml/) 上查看 `gitlab-ci.yml` 参考指南。

### 总结

上面只是一个最基本的例子，让你对持续集成的一般原则有一个了解。再演示中我禁用了共享执行器，然而这才是 GitLab 的优势所在。你可以在一个干净的容器化的环境中构架、测试和部署程序。除了使用 GitLab 提供的免费执行器，你也可以用自己的容器作为执行器。当然还有更高阶的用法：用 Kubernetes 来协调调度执行者容器，让流水线适应大规模使用的使用场景。如需进一步了解，可以查看 [about.gitlab.com](https://about.gitlab.com/solutions/kubernetes/)。

如果你使用的是 Fedora，需要注意的一点是目前 GitLab 执行者还不支持用 Podman 作为容器引擎。（LCTT 译注：Podman 是 Fedora 自带的容器引擎。）根据 <ruby> 议题 <rt>  issue </rt></ruby> [#27119](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27119)，对 Podman 支持已将列上日程。（LCTT 译注：Podman 4.2 及以上版本增加了对于 GitLab 执行器的支持。）

把重复性的操作描述成作业，并将作业合并成流水线和阶段，可以让你跟踪它们的质量而不增加额外工作。。特别是在大型社区项目中，适当配置的 CI 可以告诉你提交的代码是否对项目有改善，为你接受或拒绝合并请求提供依据。

*（题图：MJ/fb711c48-251a-4726-a41c-247370e5df25）*

---

via: <https://opensource.com/article/22/2/setup-ci-pipeline-gitlab>

作者：[Stephan Avenwedde](https://opensource.com/users/hansic99) 选题：[lujun9972](https://github.com/lujun9972) 译者：[toknow-gh](https://github.com/toknow-gh) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1097 SUSE 将退市，被其最大股东私有化

Summary:
? SUSE 将退市，被其最大股东私有化
? 廉价版特斯拉汽车用软件锁定了续航里程
? 《纽约时报》考虑对 OpenAI 采取法律行动
»
»

车要付费才能用，这不就是租车？先给了一大堆钱还要定期或不定期给钱，这不就是各种跑路的租车平台？

由于印度国内Linux公司太不靠谱，搞不好SUSE会被印度收购。

请重读一遍原文再评论。

suse 是不错的 linux 发行版

??，別

不能说没有这种可能。

# 硬核观察 #1097 SUSE 将退市，被其最大股东私有化

### SUSE 将退市，被其最大股东私有化

多年来，SUSE 从成立自己的独立公司，到二十年前被 Novell 收购。在过去的十年里，SUSE 先后在 Attachmate、Micro Focus、EQT Partners 之间易手，然后于 2021 年在法兰克福证券交易所上市。两年后，拥有 SUSE 79% 的股份的 Marcel 公司正计划将该公司私有化，并溢价约 67% 从交易所退市。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/SUSE-Going-Private)**
>
>
>

>
> 老王点评：SUSE，是唯一一个不断转手的大型 Linux 公司，祝愿私有化之后，SUSE 能有更好的发展。
>
>
>

### 廉价版特斯拉汽车用软件锁定了续航里程

特斯拉推出了增加了新的标准内饰的 Model S 和 Model X 的廉价版，价格减少 1 万美元，但单次充电续航里程也减少约 80 英里。不过，廉价版和旧版的 Model S 和 X 车辆都使用相同总容量的电池组，特斯拉只是用软件锁定了续航里程。这些只通过软件的变化使特斯拉能够使汽车具有足够的差异化，而无需对车辆、其装配或安装的零件进行物理修改。

>
> **[消息来源：The Drive](https://www.thedrive.com/news/teslas-10000-cheaper-model-s-x-software-locked-for-less-range-report)**
>
>
>

>
> 老王点评：你买的不是车辆硬件，买的只是软件和服务，硬件不过是商品的“载体”而已。这样的说法是不是很不习惯？
>
>
>

### 《纽约时报》考虑对 OpenAI 采取法律行动

数周以来，《纽约时报》和 OpenAI 一直在就达成一项许可协议进行紧张谈判，根据该协议，OpenAI 将向《纽约时报》支付费用，将其文章纳入这家科技公司的人工智能工具中。但谈判并不顺利，以至于现在该报纸正在考虑采取法律行动。《纽约时报》最担心的是，如果 ChatGPT 通过该报纸的内容来创建回答问题的文本，当人们搜索时得到一个重塑版的答案，从而会成为该报纸的直接竞争对手。昨天，《纽约时报》更新了其服务条款，禁止其内容用于开发“任何软件程序，包括但不限于训练机器学习或人工智能系统”。

>
> **[消息来源：NPR](https://www.npr.org/2023/08/16/1194202562/new-york-times-considers-legal-action-against-openai-as-copyright-tensions-swirl)**
>
>
>

>
> 老王点评：就像工业革命一样，人工智能带来各种生产力进步的同时，也是在破坏既有的模式。
>
>
>


Summary: Ubuntu 正在升级其软件商店以提供顺滑的体验！

Ubuntu 正在升级其软件商店以提供顺滑的体验！

# Ubuntu 23.10 将首次推出基于 Flutter 的新 Ubuntu 商店

>
> Ubuntu 正在升级其软件商店以提供顺滑的体验！
>
>
>

随着不断发展，Canonical 似乎全力以赴，将基于 Flutter 的元素整合到 Ubuntu 中。

在前段时间 [Ubuntu 23.04](https://news.itsfoss.com/ubuntu-23-04-release/) 发布后，**我们见到了基于 Flutter 的安装程序** ，现在，Ubuntu 的另一个重要工具也接受了 Flutter 改造：一款新的软件商店应用。

不过，现有的“软件中心”并不会现在就被取代。相反，Ubuntu 将有一个新的商店，目标是经典的软件中心与由社区构建的 Flutter 商店的进化版。

但是，你看，去年我们第一次看到了由 Canonical 的许多贡献者开发的 [非官方的基于 Flutter 软件中心](https://news.itsfoss.com/unofficial-flutter-ubuntu-software/) 时，就预见到了这一点。

而且，通过 Canonical 的 [Tim Holmes-Mitra](https://github.com/tim-hm?ref=news.itsfoss.com) 最近的更新，我们现在已经可以一窥新商店的风采了。

让我带你瞧瞧这个。

### Ubuntu 商店值得期待的地方？

最初，它被称为 “<ruby> 应用商店 <rt>  App Store </rt></ruby>”，但为了避免与已经注册了该商标的苹果公司产生任何法律问题，这个名字将需要改变。

目前最受欢迎的似乎是 “<ruby> Ubuntu 商店 <rt>  Ubuntu Store </rt></ruby>” ，我个人认为这个名字会很好地融入到该发行版中。不过，这个新的基于 Flutter 的软件中心的名称尚未最终确定，所以我们还必须等待。

Tim 也提到了：

>
> 这个项目仍然在建设中，现在我们的重点在于核心功能。我很乐观的认为到 23.10 的发布时，我们的新的评级功能和对 deb 的支持以及更多的改进将会落地。
>
>
>

这表明，如果事情进展顺利，我们可能会在 Ubuntu 23.10 最终发布的前期就看到 **新的基于 Flutter 的软件中心集成到其中** 。

不仅限于此，你可以在接下来的一两周内在 Ubuntu 23.10（Mantic Minotaur）的每日构建版本中找到作为**默认设置**的新 Ubuntu 商店 。

你可以参考 Tim 的 [公告](https://discourse.ubuntu.com/t/an-update-on-app-store-ubuntu-store/37770?ref=news.itsfoss.com) 获取更详细的细节。

### 但是等等，还有更多！\*\* ?

**我在我的 Ubuntu 22.04 LTS 系统上测试了新的基于 Flutter 的商店** ，我必须说，用户体验远超我们现有的软件中心。

**主页现在被整齐地划分为三个独特的部分**：一个是包含搜索菜单的页头，另一个是包含应用类别和设置菜单的侧边栏菜单，最后是包含应用本身的中心部分。

**搜索功能已经得到了大幅度的提升** ，我在输入搜索查询的过程中就已经开始显示结果了。

**应用视图也得到了大幅度的提升** ，在 Snap 和 Debian 包之间有了明显的源切换器。我很高兴看到这一点，因为并不是很多人喜欢 Snap ?

### 想在你的 Ubuntu 22.04 / 23.04 系统上试试看吗？

在开始之前，记住它仍然在积极开发中，随着开发的进展，事物将会发生改变。

你将需要切换到 Snap 商店的 <ruby> 预览/边缘 <rt>  preview/edge </rt></ruby> 频道才能获得它。运行以下命令：

```
sudo snap refresh snap-store --channel=preview/edge

```

>
> ? 如果它抛出了一个 “snap-store” 有正在运行的应用的错误，那么使用 `sudo kill -9 PID` 杀死它，然后重新运行该命令。
>
>
>

然后，你可以从应用启动器运行 “软件” 应用来测试它。

要恢复到原生软件中心，请运行以下命令：

```
sudo snap refresh snap-store --channel=latest/stable

```

对于新的“软件中心”是如何工作以及查看源代码的更多细节，我建议你去查看它的 [GitHub 仓库](https://github.com/ubuntu/app-store?ref=news.itsfoss.com)。

参考自：[FOSTips](https://fostips.com/ubuntu-23-10-adopt-flutter-software-app/?ref=news.itsfoss.com)

*（题图：MJ/6f701cd5-fe15-4a70-bebc-9087c14af338）*

---

via: <https://news.itsfoss.com/ubuntu-23-10-ubuntu-store/>

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

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


ls 命令输出的颜色：它们意味着什么？

# ls 命令输出的颜色：它们意味着什么？

>
> 想知道 ls 命令输出中的颜色是什么？它们从何而来，又该如何设置？本文将为您一一解答。
>
>
>

相信你一定使用过 `ls` 命令来 [列出目录的内容](https://itsfoss.com/list-directory-content/)。在 Ubuntu 和许多其他发行版中，你将看到不同颜色的 `ls` 命令输出。

如果你没有看到过，你可以这样获得如下所示的彩色输出：

```
ls --color=auto

```

但是你有没有想过这些颜色在 `ls` 命令输出中意味着什么？

我将回答本文中的问题。**如果你的终端默认情况下不显示它，我还将展示如何使用 `ls` 命令获取彩色输出**。

### Ubuntu 中 ls 命令中使用的颜色的含义

>
> ? ls 命令输出的颜色没有固定的标准。不同的终端和发行版使用不同的颜色编码，你也可以根据自己的喜好进行修改。换句话说，不要依赖颜色。
>
>
>

**我在本节中使用默认的 Ubuntu 终端及其颜色配置文件。**

当你 [使用 ls 命令列出文件](https://itsfoss.com/ls-command/) 时，它会使用不同的颜色来指示不同类型的文件。

大多数终端都会以不同的颜色显示可执行文件、链接、常规文件和目录，以便你可以轻松区分它们。

有些终端（例如 Ubuntu 中的默认终端）将其提升到一个新的水平，并为音乐文件、图像和视频添加更多颜色。

为了演示，我列出了来自不同目录的文件，这些文件在 Ubuntu 中用不同的颜色填充了我的终端窗口：

看起来很混乱？ 让我一一为你解密吧！

| 颜色 | 描述 |
| --- | --- |
| **粗体蓝色** | 目录 |
| **无色** | 文件或硬链接 |
| **粗体青色** | 指向文件的符号链接。 |
| **粗体绿色** | 可执行文件（`.sh` 扩展名的脚本） |
| **粗体红色** | 归档文件（主要是 tarball 或 zip 文件） |
| **洋红色** | 表示图像和视频文件 |
| **青色** | 音频文件 |
| **黄色配黑色背景** | 管道文件（称为 FIFO） |
| **粗体红色配黑色背景** | 损坏的符号链接 |
| **无色（白色）配红色背景** | 表示设置用户 ID 文件 |
| **黑色配黄色背景** | 表示设置组 ID 文件 |
| **白色与蓝色背景** | 显示粘滞位目录 |
| **蓝色配绿色背景** | 指向其他可写目录 |
| **黑色配绿色背景** | 当目录同时具有粘滞位和其他可写目录的特征时 |

>
> ? 再次强调，上述颜色数据基于终端的默认设置，如果更改调色板，将不会得到类似的结果。
>
>
>

但是如果你的终端不显示任何颜色怎么办？ 好吧，这是有原因和解决方案的。

### 如果 ls 命令不显示彩色输出怎么办？

事情是这样的。默认情况下，`ls` 命令不应在输出中显示颜色。如果你使用 `--color=auto` 标志，它将显示颜色。

```
ls --color=auto

```

那么为什么 `ls` 命令在 Ubuntu 和其他一些发行版中默认添加颜色呢？ 这是因为你的发行版为 `ls` 命令设置了别名，以便在执行 `ls` 命令时使用 `--color=auto` 标志：

```
alias

```

因此，如果 `ls` 命令未显示彩色输出，则是因为默认情况下没有设置别名。

现在，每当你使用 `ls` 命令时，你都可以使用 `--color=auto` 标志。

但这不太方便。相反，你应该创建别名并将其添加到 `.bashrc` 中，以便 `ls` 命令默认显示颜色。

#### 为 ls 创建一个永久别名来显示颜色

要创建永久别名，首先，使用以下命令打开 `.bashrc` 文件：

```
nano ~/.bashrc

```

使用 `Alt + /` [跳到文件末尾](https://linuxhandbook.com/beginning-end-file-nano/) 并 [粘贴如下行到终端](https://itsfoss.com/copy-paste-linux-terminal/):

```
alias ls='ls --color=auto'

```

完成后，[保存更改并退出 nano](https://linuxhandbook.com/nano-save-exit/) 文本编辑器。

要使你刚刚所做的更改生效，请 <ruby> 源引 <rt>  source </rt></ruby> `.bashrc` 文件：

```
source ~/.bashrc

```

就是这样！ 从现在开始，你可以使用彩色输出。

### ls 命令从哪里获取颜色？

现在有趣的部分来了。`ls` 命令的颜色在哪里定义？ 答案是 `LS_COLORS` 环境变量。

是的。这是名为 `LS_COLORS` 的特殊环境变量，它定义 `ls` 命令使用的颜色。

这很好，但是谁定义了这个变量呢？ 如果你想做出一些改变怎么办？ 我也来回答一下这些问题。

实际上，你有一个专门的 `dircolors` 命令来为 `ls` 命令设置颜色。

不同的 Shell 有不同的颜色配置文件格式。这就是为什么在使用此命令时应指定 Shell。

如你所见，它定义了 `LS_COLORS` 环境变量并将其导出，以便该变量可用于子 Shell。

现在，如果你想使用它，你可以将其复制粘贴到你的 `.bashrc` 文件或像这样重定向输出：

```
dircolors -b >> .bashrc

```

并 <ruby> 源引 <rt>  source </rt></ruby> 该文件，以便效果立即可见。你只需要做一次。

#### 理解颜色配置文件

`LS_COLORS` 包含由冒号（`:`）分隔的键值对数据。如果该值有多个部分，则它们之间用分号（`;`）分隔。

键通常是预定义的。值部分代表颜色。

因此，如果显示 `ln=01;36`，则表示对于符号链接，字体为粗体，颜色（`36`）为青色。

`00` 为正常，`01` 为粗体，`4` 为下划线。`31` 代表红色，32 代表绿色等。颜色代码遵循 [ANSI 转义代码](https://en.wikipedia.org/wiki/ANSI_escape_code)。

另一个例子。`or=40;31;01` 表示链接到不存在的文件（键为 `or`），使用黑色背景（颜色代码 `40`）、红色（`31`）和粗体字体（代码 `01`）。

我认为顺序并不重要，因为代码不重叠。`31` 是前景色红色的代码，`41` 是背景红色的颜色。因此，如果使用 `41`，你就知道它用于背景颜色。

### 使用 ls 命令执行更多操作

`ls` 命令可以做更多的事情，为此，我们制作了有关如何使用 `ls` 命令的详细教程：

>
> **[在 Linux 中使用 ls 命令](https://itsfoss.com/ls-command/)**
>
>
>

Abhishek Prakash 提供资料。

*（题图：MJ/4d0f1f66-259f-4671-a3a8-158f61a38b10）*

---

via: <https://itsfoss.com/ls-color-output/>

作者：[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/) 荣誉推出


硬核观察 #1098 DARPA 正在研究一种修复遗留二进制可执行文件的方法

Summary:
? DARPA 正在研究一种修复遗留二进制可执行文件的方法
? 谷歌发布首个量子弹性 FIDO2 密钥实现
? 硬盘可能比固态硬盘更环保
»
»

DARPA的那个源码工具，是不是能把win的应用移植到linux里呢？

技术进步之后，总是能更环保的——看技术的发展和应用方向。降低能耗的进步很容易被本来没有用的功能成全民标配给抵销，比如二维码被滥用于全民常态核酸阴性证明通行证，就浪费了巨量能源。

来自36.129.58.135的 Firefox 115.0|GNU/Linux 用户

# 硬核观察 #1098 DARPA 正在研究一种修复遗留二进制可执行文件的方法

### DARPA 正在研究一种修复遗留二进制可执行文件的方法

有很多正在使用的二进制可执行文件已经丢失了源代码或者无法重建了，但是如果需要修复其中的错误或者添加功能呢？你可能会说通过反编译和逆向工程工具将它转换为源代码，但是转译出来的代码往往很难阅读。美国国防部高级研究计划局（DARPA）于 2020 年启动了一项“大型遗留软件安全与性能验证（V-SPELLS）”计划，可以将二进制可执行文件解码为人类可读的表示形式（HAR），使可读代码的更改成为可能。参与该项目的佐治亚理工学院团队开发出一种原型管道，这种“管道”可以将二进制文件拆解成带有伪代码的图结构，并以开发人员可以浏览的方式呈现，还可以用 C 和 C++ 替换或添加部分内容。该研究还处于基础研究阶段，计划和美国海军进行测试，并在以后可能推广到民用领域。

>
> **[消息来源：The Register](https://www.theregister.com/2023/08/18/darpa_legacy_binary_patching/)**
>
>
>

>
> 老王点评：确实，现在已经有很多遗留的 IT 设施，全面推倒并不现实，要是能有更好的重建机制，那无疑是挽救它们的好办法。
>
>
>

### 谷歌发布首个量子弹性 FIDO2 密钥实现

FIDO2 是快速身份在线认证标准的第二个主要版本，FIDO2 密钥用于无密码认证和多因素认证（MFA）。谷歌解释说，随着量子计算时代的到来和该领域发展的加速，抗量子的 FIDO2 安全密钥实现是确保安全的关键一步。该方案使用了独特 ECC/Dilithium 混合签名模式。Dilithium 是一种抗量子加密签名方案，NIST 将其纳入了量子加密标准化后的提案中，称赞其安全性强、性能卓越。谷歌的工程师们成功地开发出了基于 Rust 的实现方法，只需要 20KB 内存，使这项工作成为可能，同时他们也注意到了它的高性能潜力。

>
> **[消息来源：Bleeping Computer](https://www.bleepingcomputer.com/news/security/google-released-first-quantum-resilient-fido2-key-implementation/)**
>
>
>

>
> 老王点评：我觉得，如果将搞一两台极其昂贵的专用量子计算机，跑一些实验性的计算称做“矛”的话，这种增强现有加密抗量子能力的“盾”可能更重要，而且这并不需要你真的有一台量子计算机就能进行。
>
>
>

### 硬盘可能比固态硬盘更环保

人们普遍认为，固态硬盘通常比硬盘更具可持续性，因为固态硬盘没有转动部件，更省电。但根据最新的一项研究，硬盘可能比固态硬盘更环保。而最大的碳排放发生在生产过程中，固态硬盘的生产比硬盘产生更多的碳，固态硬盘中使用的闪存的制造成本高出约 8 倍。制造 1MB 的闪存会排放 0.16 千克二氧化碳，这就是固态硬盘的内含碳成本。但也有观点认为，随着技术进步，固态硬盘的使用年限会更长，其碳足迹会接近硬盘。

>
> **[消息来源：Blocks and Files](https://blocksandfiles.com/2023/08/18/hdds-may-be-greener-than-ssds/)**
>
>
>

>
> 老王点评：环保不环保的且不说，技术进步之后，总是能更环保的。固态硬盘的诸多好处之外，最让人担心的是一旦损坏，数据就很难找回了。
>
>
>


一直在期待的基于 Ubuntu 的滚动发布 Rhino Linux 终于来了

Summary: Rhino Linux 绝对值得关注！

期待它能稳定到可以作为测试前沿技术、又易于修复~

# 一直在期待的基于 Ubuntu 的滚动发布 Rhino Linux 终于来了

>
> Rhino Linux 绝对值得关注！
>
>
>

你可能还记得我们 [去年](https://news.itsfoss.com/rhino-linux/) 报道过，Rhino Linux 将会接替现已停止开发的 “[Rolling Rhino Remix](https://github.com/rollingrhinoremix)”。

经过漫长的等待，它的首个稳定版本终于发布了！

现在我们就一起来看看 Rhino Linux 有哪些值得特别关注的地方。

### Rhino Linux 到底是什么？ ?

Rhino Linux 是一个基于 Ubuntu，使用了改版的 XFCE 4.18 以及 Pacstall 作为核心，提供了无忧用户体验的滚动发布版系统。

>
> ? 滚动发布的系统能接收到规律的软件升级，而不只是负责维护修复。
>
>
>

采用 XFCE 4.18 使得 Rhino Linux 能利用各种新优化，比如 Thunar 文件管理器的提升，增强的桌面/面板 等等。

你可以查看我们的相关报道以了解更多。

>
> [Xfce 4.18 版本发布：令人印象深刻](https://news.itsfoss.com/xfce-4-18-release/)
>
>
>

接着我们来说说 [Pacstall](https://pacstall.dev/)，一个受到 AUR 启发的包管理器，它可以处理从内核安装到安装网页浏览器的所有任务。

所有与 Rhino Linux 相关的包都打包成 [pacscript](https://github.com/pacstall/pacstall/wiki/Pacscript-101)，任何操作系统的更新都可以通过 Pacstall 来完成。

**那么，这个发行版的感觉和表现如何？**

首次启动 Rhino Linux 时，你会遇到一个使用 Rust 构建的简洁现代的快速设置向导。

>
> ? 我们的网站上有一份新的 [Rust 基础教程系列](https://itsfoss.com/tag/rust/)。你可以查看，学习一下 Rust 编程语言。
>
>
>

当你进行下一步时，你可以在三种不同的包管理器中进行选择：Flatpak ，Snap，以及 AppImage。

这样的功能得益于他们自创的定制包管理包装器 rhino-pkg，它可以让你从各种支持的仓库中搜索、安装、移除和更新包。

相比于最新的官方 Ubuntu 版本，你可以自由选择从开箱即用的 Flatpak 开始。

然后还有一些额外设置你可以选择启用。

其中一个是启用这个精妙的基于 Python 的 apt 包管理前端，，[Nala](https://itsfoss.com/nala/)。

另一个是 [Apport](https://wiki.ubuntu.com/Apport)，这是一个崩溃报告系统，在系统崩溃的情况下可以让开发者知道你的安装有任何问题。

完成这些设置后，你看见的是一个非常简洁的桌面布局，包括一个干净的壁纸和一个悬浮的程序坞。

他们将自家桌面称为 “<ruby> 独角兽桌面 <rt>  Unicorn Desktop </rt></ruby>”，这是一个基于大幅修改过的 XFCE 构建的桌面。

它的目标是将现代和传统的最佳实践结合在一起，为桌面用户体验提供包含两者优点的体验。

独角兽桌面还包含了一些附加的免费软件解决方案，如 [uLauncher](https://ulauncher.io/)（替代了 spotlight 的搜索工具）、lightpad（作为新的应用启动器）以及许多其他功能。

可以 [在这里](https://rhinolinux.org/unicorn.html) 阅读更多关于他们定制桌面体验的信息。

总的来说，用户体验相对直观，而且 Rhino 主题的壁纸看起来很漂亮。

**还有其他亮点吗？**

当然有！

本次发布还包含了一个我很期待看到的引人注目的版本。

这是一个**用于 PinePhone 设备（原版/Pro 版）的 Rhino Linux 移植版**，基于最新的 **Ubuntu Touch（20.04）**，它是首个基于 XFCE 的移动环境。

正如你可以从负责这个移植的 Oren Klopfer 分享的视频中看到的，它还处在非常初步的状态。

他打算在 XFCE 4.20 发布时就进行切换，以获得 Wayland 的支持并摒弃 X11。

我迫不及待地想看到结果了！

在 [发布博客](https://rhinolinux.org/news-6.html) 上你可以找到更多关于 Rhino Linux 的细节。

### ? 获取 Rhino Linux

有三个不同版本供你选择，一个是通用 ISO，适用于 x86\_64/ARM64 ，提到的PinePhone ISO，还有Raspberry Pi ISO。

你可以在 [此处](https://rhinolinux.org/download.html) 下载对应的 ISO。

>
> **[Rhino Linux](https://rhinolinux.org/download.html)**
>
>
>

你还可以使用其 [GitHub 仓库](https://github.com/rhino-linux) 中的源代码从头构建。

我非常期待看到 Rhino Linux 在未来能做出什么。⭐

*（题图：MJ/c6cb42de-7196-4759-a9a6-10db8adbc058）*

---

via: <https://news.itsfoss.com/rhino-linux-release/>

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

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


使用开源工具监控 Kubernetes 云成本

# 使用开源工具监控 Kubernetes 云成本

>
> OpenCost 是一款与 Kubernetes 无缝集成的云成本监控工具，可让您实时跟踪云支出，从而相应地优化资源。
>
>
>

[Kubernetes](https://www.redhat.com/en/topics/containers/what-is-kubernetes?intcmp=7013a000002qLH8AAM) 是一个强大的平台，用于管理云中的动态容器化应用，但可能很难理解成本发生在哪里。管理 Kubernetes 资源的成本效率可能是一个挑战。这就是 [OpenCost](https://www.opencost.io/) 的用武之地。OpenCost 是一种云成本监控工具，与 Kubernetes 无缝集成，让你可以实时跟踪云支出，以便相应地优化资源。

OpenCost 是一个开源 [CNCF 沙盒项目](https://www.cncf.io/projects/opencost/) 和 [规范](https://github.com/opencost/opencost/blob/develop/spec/opencost-specv01.md)，用于实时监控与 Kubernetes 部署相关的云成本。该规范按服务、部署、命名空间、标签等对当前和历史 Kubernetes 云支出和资源分配进行建模。这些数据对于理解和优化 Kubernetes 从应用到基础设施的成本和性能至关重要。

### 要求和安装

开始使用 OpenCost 是一个相对简单的过程。OpenCost 使用 [Prometheus](https://prometheus.io/) 进行监控和指标存储。你可以从 [Prometheus 社区的 Kubernetes Helm Chart](https://prometheus-community.github.io/helm-charts) 安装它。

#### 安装 Prometheus

首先使用以下命令安装 Prometheus：

```
$ helm install my-prometheus --repo https://prometheus-community.github.io/helm-charts prometheus \
 --namespace prometheus --create-namespace \
 --set pushgateway.enabled=false --set alertmanager.enabled=false -f \
https://raw.githubusercontent.com/opencost/opencost/develop/kubernetes/prometheus/extraScrapeConfigs.yaml

```

#### 安装 OpenCost

接下来，使用 `kubectl` 命令安装 OpenCost：

```
$ kubectl apply --namespace opencost -f \
https://raw.githubusercontent.com/opencost/opencost/develop/kubernetes/opencost.yaml

```

此命令将 OpenCost 部署到你的集群并开始收集数据。这就是大多数安装所需的全部内容。你可以[使用你自己的 Prometheus](https://www.opencost.io/docs/install#providing-your-own-prometheus) 安装或使用 [OpenCost Helm Chart](https://github.com/opencost/opencost-helm-chart/) 自定义部署。

#### 测试和访问

OpenCost 会自动检测它是否在 AWS、Azure 还是 GCP 上运行，你可以将其配置为为本地 Kubernetes 部署提供定价。首先转发 API 和 UI 访问的端口：

```
$ kubectl port-forward --namespace opencost service/opencost 9003 9090

```

大约五分钟内，你可以验证 UI 和服务器是否正在运行，并且你可以通过 **<http://localhost:9090>** 访问 OpenCost UI。

### 监控成本

你已准备好开始使用部署到 Kubernetes 集群的 OpenCost 来监控云成本。OpenCost 仪表板提供对云支出的实时可见性，使你能够识别成本异常并优化云资源。你可以按节点、命名空间、pod、标签等查看云支出。

[kubectl cost](https://github.com/kubecost/kubectl-cost) 插件提供了对 Kubernetes 成本分配指标的简单 CLI 查询。它允许开发人员、运营商和其他人快速确定任何 Kubernetes 工作负载的成本和效率。

```
$ kubectl cost --service-port 9003 \
--service-name opencost --kubecost-namespace opencost \
--allocation-path /allocation/compute pod \
--window 5m --show-efficiency=true

+-------+---------+-------------+----------+---------------+
|CLUSTER|NAMESPACE|POD          |MONTH RATE|COST EFFICIENCY|
+-------+---------+-------------+----------+---------------+
|cl-one |kube-syst|coredns-db...| 1.486732 |      0.033660 |
|       |         |coredns-...dm| 1.486732 |      0.032272 |
|       |         |kube-prox...7| 1.359577 |      0.002200 |
|       |         |kube-prox...x| 1.359577 |      0.002470 |
|       |opencost |opencost...5t| 0.459713 |      0.187180 |
|       |kube-syst|aws-node-cbwl| 0.342340 |      0.134960 |
|       |         |aws-node-gbfh| 0.342340 |      0.133760 |
|       |prometheu|my-prome...pv| 0.000000 |      0.000000 |
|       |         |my-prome...hn| 0.000000 |      0.000000 |
|       |         |my-prome...89| 0.000000 |      0.000000 |
+-------+---------+-------------+----------+---------------+
| SUMMED|         |             | 6.837011 |               |
+-------+---------+-------------+----------+---------------+

```

你还可以集成 API，以编程方式将数据提取到你选择的平台中。

### Kubernetes 优化策略

现在你已经掌握了云成本，是时候优化你的 Kubernetes 环境了。优化是一个迭代过程。从栈的顶部（容器）开始并遍历每一层。每一步的效率都会复合。有很多方法可以优化 Kubernetes 以提高成本效率，例如：

* 查找废弃的工作负载和未申明的卷：不再使用或断开连接的容器荚和存储会继续消耗资源而不提供价值。
* 调整你的工作负载大小：确保你为你的工作负载使用正确大小的容器。调查分配过多和分配不足的容器。
* 自动扩展：自动扩展可以帮助你仅在需要时使用资源来节省成本。
* 调整集群大小：节点过多或过大可能会导致效率低下。在容量、可用性和性能之间找到适当的平衡可能会大大降低成本。
* 研究更便宜的节点类型：CPU、RAM、网络和存储有很多变化。切换到 ARM 架构可能会带来更大的节省。
* 投资 FinOps 团队：组织内的专门团队可以通过协调预留实例、现货实例和节省计划来寻找实现更大节省的方法。

### 从今天开始

监控 Kubernetes 环境中的成本可能具有挑战性，但使用 OpenCost 则不必如此。要开始使用 OpenCost 并控制你的云支出，请访问 [OpenCost](https://opencost.io/) 网站，在 [GitHub](https://github.com/opencost) 中获取代码，查看 [OpenCost 文档](https://www.opencost.io/docs/)，并参与 [CNCF Slack](https://slack.cncf.io/) 中的 **#opencost** 频道。

*（题图：MJ/5de557f1-464c-480c-8698-130748f60b20）*

---

via: <https://opensource.com/article/23/3/kubernetes-cloud-cost-monitoring>

作者：[Matt Ray](https://opensource.com/users/mattray-0) 选题：[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/) 荣誉推出


Summary:
? 开发中的 KDE Plasma 6 默认双击打开文件和文件夹
? 美国法官裁定人工智能制品不受版权保护
? 一些美国学校现在开始讲授 ChatGPT 和人工智能
»
»

把人工智能制品冠名到某人名下就可以受版权保护了。

# 硬核观察 #1099 开发中的 KDE Plasma 6 默认双击打开文件和文件夹

### 开发中的 KDE Plasma 6 默认双击打开文件和文件夹

KDE 开发人员说，正在开发中的 KDE Plasma 6 默认单击选择文件或文件夹，而用双击打开它们。当然，你可以通过设置修改回以前的默认行为单击打开。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/KDE-Plasma-6-Double-Click)**
>
>
>

>
> 老王点评：虽然 KDE 中的这种点击行为由来已久，但是还是得承认双击打开更方便一些。
>
>
>

### 美国法官裁定人工智能制品不受版权保护

据报道，美国联邦法官维持了美国版权局的决定，即拒绝为计算机科学家 Stephen Thaler 仅由人工智能模型创作的图像进行版权登记。法官称，“人类的创作行为，以及如何最好地鼓励人类个体进行创作，从而促进科学和实用艺术，从一开始就是美国版权法的核心。”法官写道：“非人类行为者不需要美国法律所承诺的专有权来激励他们，因此，版权的设计并不是为了惠及他们。”

>
> **[消息来源：BillBoard](https://www.billboard.com/pro/ai-generated-creative-works-cant-be-copyrighted-judge-rules/)**
>
>
>

>
> 老王点评：这一结果并不意外，但是其依据的理由颇为新颖。不过，这样的裁决会如何影响人工智能的发展呢？
>
>
>

### 一些美国学校现在开始讲授 ChatGPT 和人工智能

教授们现在担心，忽视或阻止人工智能的使用 “将是对学生的一种伤害，会让许多人在进入劳动力市场时落伍”。范德堡大学是较早采取坚定立场支持生成式人工智能的领导者之一，该大学的 Jules White 副教授认为人工智能“将在每个行业的需求中带来巨大的变革，因此我们要提供正确的培训。”有超过 9 万名学生选修了他的一门学时为 18 小时的在线的人工智能课程。尽管对作弊的担忧依然存在，但他认为，想要抄袭的学生仍可以寻求其他方法，如维基百科或谷歌搜索。

>
> **[消息来源：CNN](https://www.cnn.com/2023/08/19/tech/schools-teaching-chagpt-students/)**
>
>
>

>
> 老王点评：我还是这样的态度，拥抱新事物而不是躲避。
>
>
>


Fedora Linux Flatpak 八月推荐应用

Summary: 本文介绍了 Flathub 中可用的项目以及安装说明。

用密码管理器相当于雇了一个管家，管家有你所有银行卡+密码+手机+身份证。

本文介绍了 Flathub 中可用的项目以及安装说明。

# Fedora Linux Flatpak 八月推荐应用

<img src="content_image/album_202308_21_093420dsugs5cssmk5vu5w.jpg" alt="" title="">

>
> 本文介绍了 Flathub 中可用的项目以及安装说明。
>
>
>

[Flathub](https://flathub.org) 是获取和分发适用于所有 Linux 的应用的地方。它由 Flatpak 提供支持，允许 Flathub 应用在几乎任何 Linux 发行版上运行。

请阅读 “[Flatpak 入门](https://fedoramagazine.org/getting-started-flatpak/)”。要启用 Flathub 作为你的 Flatpak 提供商，请使用 [Flatpak 站点](https://flatpak.org/setup/Fedora) 上的说明。

### Authenticator

[Authenticator](https://flathub.org/apps/com.belmoussaoui.Authenticator) 是一个简单的应用，可让你生成双因素身份验证代码。它有一个非常简单和优雅的界面，支持很多算法和方法。它的一些特点是：

* 支持基于时间/基于计数器/Steam 方法
* 支持 SHA-1/SHA-256/SHA-512 算法
* 使用相机或截图扫描二维码
* 使用密码锁定应用
* 从已知应用备份/恢复，如 FreeOTP+、Aegis（加密/纯文本）和 OTP、谷歌验证器

你可以通过单击站点上的安装按钮或手动使用以下命令来安装 Authenticator：

```
flatpak install flathub com.belmoussaoui.Authenticator

```

### Secrets

[Secrets](https://flathub.org/apps/org.gnome.World.Secrets) 是一个与 GNOME 集成的密码管理器。它易于使用，并使用 KeyPass 文件格式。它的一些特点是：

* 支持的加密算法：
	+ AES 256 位
	+ Twofish 256 位
	+ ChaCha20 256 位
* 支持的衍生算法：
	+ Argon2 KDBX4
	+ Argon2id KDBX4
	+ AES-KDF KDBX 3.1
* 创建或导入 KeePass safes 数据库
* 将附件添加到你的加密数据库
* 生成高强度加密的密码
* 快速搜索你喜爱的条目
* 不活动时自动锁定数据库
* 支持双因素认证

你可以通过单击站点上的安装按钮或手动使用以下命令来安装 Secrets：

```
flatpak install flathub org.gnome.World.Secrets

```

### Flatsweep

[Flatsweep](https://flathub.org/apps/io.github.giantpinkrobots.flatsweep) 是一个简单的应用，用于在 Flatpak 卸载后删除残留文件。它使用 GTK4 和 Libadwaita 提供一致的用户界面，与 GNOME 很好地集成，但你可以在任何桌面环境中使用它。

你可以通过单击站点上的安装按钮或手动使用以下命令来安装 Flatsweep：

```
flatpak install flathub io.github.giantpinkrobots.flatsweep

```

### Solanum

Solanum 是一款使用 [番茄工作法](https://en.wikipedia.org/wiki/Pomodoro_Technique) 的时间跟踪应用。它使用 GTK4，其界面与 GNOME 很好地集成。

你可以通过单击站点上的安装按钮或手动使用以下命令来安装 Solanum：

```
flatpak install flathub org.gnome.Solanum

```

*（题图：MJ/3e95393e-6dc5-4328-b0f9-27031c8848a2）*

---

via: <https://fedoramagazine.org/fedora-linux-flatpak-cool-apps-to-try-for-august/>

作者：[Eduard Lucena](https://fedoramagazine.org/author/x3mboy/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


Bash 基础知识系列 #8：For、While 和 Until 循环

Summary: 在 Bash 基础知识系列的倒数第二章节，学习 for、while 和 until 循环。

# Bash 基础知识系列 #8：For、While 和 Until 循环

<img src="content_image/album_202308_21_100731qmt2cmxnyub9xm62.jpg" alt="" title="">

>
> 在 Bash 基础知识系列的倒数第二章节，学习 `for`、`while` 和 `until` 循环。
>
>
>

循环是任何编程语言中的一个强大功能。如果你还不知道，循环其实是一种根据某些条件重复代码的方式。

例如，想象一下你需要打印从 1 到 10 的数字。你可以使用 `echo` 命令写十次，但那太原始了。你使用一个循环，在 3 到 4 行代码内，就能完成。

这是我能想到的最简单的例子。我将在讨论 Bash 循环时，分享一些实际有用的例子。

在 Bash 中有三种类型的循环：

* `for`
* `while`
* `until`

我将在教程中展示所有三种类型的循环。让我们从最常见的一种开始。

### Bash 中的 For 循环

以下是 Bash 中的 `for` 循环语法：

```
for arg in LIST; do
    commands
done

```

这里的 `LIST` 可能是一个数组或者一个项目列表。[括号扩展](https://linuxhandbook.com/brace-expansion/?ref=itsfoss.com) 也是进行循环的常用手段。

考虑一下我在开始提到的最简单的场景。让我们使用 `for` 循环打印从 1 到 10 的数字：

```
#!/bin/bash

for num in {1..10}; do
    echo $num
done

```

如果你运行它，你应该会看到像这样的输出：

```
$ ./for-loop.sh
1
2
3
4
5
6
7
8
9
10

```

你也可以使用 `for num in 1 2 3 4 5 6 7 8 9 10; do` ，但是使用括号扩展使得代码看起来更短且更智能。

`{..}` 是用于扩展模式的。你使用 `{d..h}` ，它等同于 `d e f g h` 。关于括号扩展的更多信息，可以在这篇文章中找到。

>
> **[在 Bash 中使用括号扩展](https://linuxhandbook.com/brace-expansion/?ref=itsfoss.com)**
>
>
>

>
> ? 如果你熟悉 C 语言编程，你可能会喜欢在 bash 中使用 C 风格的 for 循环：
>
>
>
> ```
> for ((i = 0 ; i < 10 ; i++)); do
>   echo $i
> done
>
> ```
>
>

让我们看另一个例子，显示 [Bash 数组](https://itsfoss.com/bash-arrays/) 的所有内容：

```
#!/bin/bash

distros=(Ubuntu Fedora Debian Alpine)

for i in "${distros[@]}"; do
    echo $i
done

```

如果你运行脚本，它将显示数组中定义的所有发行版：

```
Ubuntu
Fedora
Debian
Alpine

```

### Bash 中的 While 循环

`while` 循环测试一个条件，然后只要条件为真，就继续循环。

```
while [ condition ]; do
    commands
done

```

如果你考虑前一个例子，它可以使用 `while` 循环进行重写：

```
#!/bin/bash

num=1
while [ $num -le 10 ]; do
    echo $num
    num=$(($num+1))
done

```

如你所见，你首先需要将变量 `num` 定义为 1，然后在循环体内，你增加 `num` 的值。只要 `num` 小于或等于 10，while 循环就会检查条件并运行脚本。

因此，现在运行脚本将会显示出和之前 `for` 循环中看到的完全相同的结果。

```
1
2
3
4
5
6
7
8
9
10

```

让我们看另一个例子。这是一个 [Bash 脚本，它接受一个数字作为参数](https://itsfoss.com/bash-pass-arguments/) 并显示该表。

```
#!/bin/bash

echo "Table for $1 is:"
index=1
while [ $index -le 10 ]; do
    echo $(($1*$index))
    index=$(($index+1))
done

```

如果你对 `$1` 的使用感到困惑，它代表传递给脚本的第一个参数。更多的细节可以参考这个系列的 [第三章](https://itsfoss.com/bash-pass-arguments/)。

如果你运行这个脚本，它应该会显示以下的输出：

```
$ ./table.sh 2
Table for 2 is:
2
4
6
8
10
12
14
16
18
20

```

### Bash 中的 Until 循环

这是一个使用较少的循环格式。它的行为和 `while` 循环类似。这里的区别是，循环运行直到它检查的条件为真为止。意味着为了在循环中执行代码，`[ ]` 中的条件必须为假。

我马上会解释一下。让我们先看一下它的语法。

```
until [ condition ]; do
    commands
done

```

现在，如果我要使用相同的示例，即使用 `until` 循环打印从 1 到 10 的数字，它看起来会是这样：

```
#!/bin/bash

num=1
until [ $num -gt 10 ]; do
    echo $num
    num=$(($num+1))
done

```

区别在于条件；其余部分保持不变。

* 当变量 `num` 小于或等于 10 时，while 循环就会运行。`[ ]` 中的条件必须为真，循环才会执行。
* 知道变量 `num` 变得大于 10 时，until 循环才会运行。`[ ]` 中的条件必须为假，循环才会执行。

这都是做同样事情的两种不同方式。`while` 更受欢迎，因为你会在大多数编程语言中找到类似 `while` 的循环语法。

### ? 练习时间

那是有趣的。现在是做一些练习的时候了。

**练习 1**：编写一个脚本，该脚本接受一个数字作为参数并打印其表格。如果脚本在没有参数的情况下运行，你的脚本还应显示一个消息。

**预期输出**：

```
$: ./table.sh
You forgot to enter a number

$: ./table.sh 3
3
6
9
12
15
18
21
24
27
30

```

**练习 2** : 编写一个脚本，列出目录 `/var` 中的所有文件。

**提示** : 对于循环，使用 `/var/*` 作为 “列表”。

Bash 基础知识系列即将结束。作为该系列的最后一章，你将在下周学习在 Bash 脚本中使用函数。敬请期待。

*（题图：MJ/945241d6-6a73-432c-9bcd-e0948b3fadc0）*

---

via: <https://itsfoss.com/bash-loops/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)

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


Summary:
? AlmaLinux 称红帽封闭 RHEL 源代码对他们是因祸得福
? 去世多年后，著名演员出演一部新电影
? 未来三年 40% 的工人将因人工智能而需要重新掌握技能
»
»

真狮子版的《狮子王》的技术用到了已经去世的人身上了。

来自36.129.58.172的 Firefox 115.0|GNU/Linux 用户

"每天投 5 美元的人数翻了两番多"?

就是那种逐月自动捐款的。

你们的文章要是能看到点击量就好了

# 硬核观察 #1100 AlmaLinux 称红帽封闭 RHEL 源代码对他们是因祸得福

### AlmaLinux 称红帽封闭 RHEL 源代码对他们是因祸得福

面对红帽封闭了其 RHEL 源代码的访问的情况，AlmaLinux OS 基金会主席说，AlmaLinux 在过去一个月中采取的变通方法应该可以解决所有问题，但最离谱的情况除外。他们的策略已经从错误级的兼容转变为应用程序二进制接口（ABI）兼容，这并不能保证永远不会出现问题，但故障应该很少出现，而且通常可以通过重新编译源代码来解决。她说，事实上，红帽公司改变方向对 AlmaLinux 来说是因祸得福，“我们认为这将我们从一对一的束缚中解脱出来”，无需等待红帽公司的提示，就可以打补丁。此外，这件事还给他们带来了一些微薄的资金，“每天投 5 美元的人数翻了两番多”。

>
> **[消息来源：Silicon Angle](https://siliconangle.com/2023/08/18/almalinux-leader-says-red-hat-code-crackdown-isnt-threat/)**
>
>
>

>
> 老王点评：面对红帽的动作，几家下游采取的不同动作颇有意思。AlmaLinux 的这种接受现实、顺应变化的思路或许也是一条可以走通的路，除非红帽会继续设置各种不违反许可证但令人不舒服的障碍。
>
>
>

### 去世多年后，著名演员出演一部新电影

据报道，James Dean 在去世 68 年后，“在一部即将上映的新电影《回到伊甸园》中担任主演”。电影中将使用类似于生成式深度伪造的人工智能技术，复制出一个数字版的 James Dean，他将在电影中行走、说话并与其他演员互动。这项技术远远超越了被动的数字重建或将一个人的脸覆盖在另一个人身体上的深度伪造技术。这是 Dean 的数字克隆人第二次被安排拍摄电影了。2019 年，有消息称他将在一部名为《寻找杰克》的电影中用 CGI 技术复活，但后来被取消了。Dean 的形象是 WRX 及其姊妹授权公司 CMG Worldwide 代理的数百个形象之一。

>
> **[消息来源：BBC](https://www.bbc.com/future/article/20230718-how-ai-is-bringing-film-stars-back-from-the-dead)**
>
>
>

>
> 老王点评：以一个不靠谱“未来学家”的角度来判断，以后的影视作品可能绝大多数都是虚拟演员，可能甚至根本没有原型演员。而真正以真人出演的，可能类似于在工业制品的货架中偶尔会出现的一些手工制品，稀少而猎奇。
>
>
>

### 未来三年 40% 的工人将因人工智能而需要重新掌握技能

IBM 的一项调查研究称，“与六个月前相比，工作世界已经发生了变化”。77% 的高管受访者表示，入门级职位已经感受到了生成式人工智能的影响，但它更有可能增强员工的能力，而不是取代他们。受访的高管说，未来三年内，由于人工智能和自动化的实施，40% 的员工需要重新掌握技能，这意味着全球 34 亿劳动力中有 14 亿人面临此变化。

>
> **[消息来源：IBM](https://www.ibm.com/blog/new-ibm-study-reveals-how-ai-is-changing-work-and-what-hr-leaders-should-do-about-it/)**
>
>
>

>
> 老王点评：那么普通程序员算入门级职位么？
>
>
>


Bash 基础知识系列 #9：Bash 中的函数

Summary: 在 Bash 基础系列的最后一章中学习函数的全部知识。

excellent！it useful!

在 Bash 基础系列的最后一章中学习函数的全部知识。

# Bash 基础知识系列 #9：Bash 中的函数

>
> 在 Bash 基础系列的最后一章中学习函数的全部知识。
>
>
>

大多数编程语言都支持函数的概念。

函数帮助你避免在同一个程序中反复编写同一段代码。你只需将代码写为一个函数，然后在需要特定代码片段的地方使用这个函数。

在 Bash 基础知识系列的最后一章中，你将学习在 Bash 脚本中使用函数。

### Bash 中的函数

下面是声明 Bash 函数的通用语法：

```
function_name() {
    commands
}

```

只有在 “调用函数” 的脚本中，函数内的命令才会被执行。

这里有一个伪代码来演示这个情况：

```
function_name() {
    commands
}

some_other_commands

# 函数调用
function_name argument;

```

>
> ? 函数定义必须在你调用函数之前。
>
>
>

让我们通过一个简单的例子来看看这个：

```
#!/bin/bash

fun() {
    echo "This is a function"
}

echo "This is a script"
fun

```

当你运行脚本时，你应该看到这样的输出：

```
This is a script
This is a function

```

函数是在没有任何参数的情况下被调用的。接下来，让我们看看在 bash 中如何处理函数的参数。

### 向函数传递参数

向函数传递参数和向 Bash 脚本传递参数是一样的。你在调用函数时，可以在函数名旁边写上参数。

```
function_name argument;

```

让我们用一个例子来看看这个：

```
#!/bin/bash

sum() {
    sum=$(($1+$2))
    echo "The sum of $1 and $2 is: $sum"
}

echo "Let's use the sum function"
sum 1 5

```

如果你运行这个脚本，你会看到以下输出：

```
Let's use the sum function
The sum of 1 and 5 is: 6

```

请记住，传递给脚本的参数和传递给函数的参数是不同的。

在下面的例子中，我在调用函数时交换了参数。

```
#!/bin/bash

arg() {
    echo "1st argument to function is $1 and 2nd is $2"
}

echo "1st argument to script is $1 and 2nd is $2"
arg $2 $1

```

当你运行这个脚本时，你会看到这样的交换：

```
$ ./function.sh abhi shek
1st argument to script is abhi and 2nd is shek
1st argument to function is shek and 2nd is abhi

```

### Bash 中的递归函数

一个递归函数会调用它自己。这就是递归的含义。这个梗图可能会帮助你理解它。

递归功能非常强大，可以帮助你编写复杂的程序。

让我们用一个计算阶乘的样本脚本来看看它的应用。如果你忘记了，阶乘的定义是这样的。

n 的阶乘：

```
(n!) = 1 * 2 * 3 * 4 *...  * n

```

所以，5 的阶乘是 1 \* 2 \* 3 \* 4 \* 5，计算结果是 120。

这是我用递归计算给定数字的阶乘的脚本。

```
#!/bin/bash

factorial() {

    if [ $1 -gt 1 ]; then
        echo $(( $1 * $(factorial $(( $1 -1 ))) ))
    else
        echo 1
    fi

}

echo -n "Factorial of $1 is: "
factorial $1

```

注意到 `echo $(( $1 * $(factorial $(( $1 -1 ))) ))`，代码使用比输入值小 1 的值调用了函数自身。这个过程会一直持续到值变为 1。所以，如果你运行脚本并输入参数 5，它最终会返回 5 \* 4 \* 3 \* 2 \*1 的结果。

```
$ ./factorial.sh 5
Factorial of 5 is: 120

```

非常好。现在，让我们来做些练习吧。

### ? 练习时间

以下是一些示例编程挑战，用来帮助你实践你所学。

练习 1：写一个 Bash 脚本，使用一个名为 `is_even` 的函数来检查给定的数字是否是偶数。

练习 2：类似的练习，你需要编写一个脚本，该脚本具有一个名为 `is_prime` 的函数，并检查给定数字是否是质数。如果你还不知道，质数只能被 1 和它自身整除。

练习 3：编写一个生成给定数字的斐波那契序列的脚本。序列从 1 开始，脚本必须接受大于 3 的数字。

所以，如果你运行 `fibonacci.sh 5`，它应该输出 “1 1 2 3 5”。

就这些了，伙计们！这是 Bash 基础系列的最后一节。当然，你在这里学到的只是冰山一角；Bash 编程还有更多需要学习的内容。

但是现在，你应该对 Bash Shell 有了一定的理解。你应该能够理解大多数 Bash 脚本，并能编写简单的脚本，即便不能编写复杂的。

如果你想深入学习，没有什么比阅读 GNU Bash 手册更好的了。

>
> **[GNU Bash 手册](https://www.gnu.org/software/bash/manual/)**
>
>
>

? 希望你喜欢这个 Bash 基础知识系列。我们正在创建更多的教程系列，以给你提供更流畅的学习体验。请提供你的反馈，帮助我们帮助其他人学习 Linux。

*（题图：MJ/f0022a50-85fe-40cc-afdd-285d976ec98c）*

---

via: <https://itsfoss.com/bash-function/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)

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


Warp：一款可跨平台运行的开源安全文件共享应用

Summary: 在 Linux 和 Windows 之间安全共享文件的无缝方式？ 试试这个！

能内网穿透吗？

需要依托每三方集合服务器，而且需要翻才能用，没找到可以私有化部署中转服务器的方法，没法用

可惜不支持Mac

来自广东广州的 Chrome Mobile 116.0|Android 10 用户

在 Linux 和 Windows 之间安全共享文件的无缝方式？ 试试这个！

# Warp：一款可跨平台运行的开源安全文件共享应用

>
> 在 Linux 和 Windows 之间安全共享文件的无缝方式？ 试试这个！
>
>
>

在我们撰写《[First Look](https://news.itsfoss.com/tag/first-look/)》系列文章的过程中，我们找到了一种在 Linux 和 Windows 系统之间传输文件的安全且高效的方法。

一个名为 “**Warp**” 的工具，它是 [GNOME Circle](https://circle.gnome.org/) 的一部分，其中包含扩展 GNOME 生态系统的应用。Warp 有助于通过互联网或本地网络无缝传输文件。

我们来看一下。

### Warp：概述 ⭐

Warp 主要用 **Rust 编程语言** 编写，是一个**基于 GTK** 的文件传输应用，它使用 “[Magic Wormhole](https://github.com/magic-wormhole/magic-wormhole#magic-wormhole)” 协议使通过互联网/本地网络的文件传输成为可能。

所有文件传输均经过加密，接收者必须 **使用基于单词的传输码来访问文件**，以防止任何滥用。

**请允许我向你展示它是如何工作的。**

当你第一次启动该应用时，你会看到欢迎屏幕和关于 Warp 的简短介绍。

继续后，你将进入 “<ruby> 发送 <rt>  Send </rt></ruby>” 菜单，你可以在其中选择要发送的文件或文件夹。

>
> ? 你还可以将文件和文件夹拖放到应用中。
>
>
>

之后，屏幕上将显示文本和二维码形式的传输码。你必须将其安全地发送给接收者，他们才能开始下载文件。

>
> ? 由于 Warp 是一个**跨平台应用**，你可以在 Linux 和 Windows 系统之间发送文件。
>
>
>

**那么，接收方看起来怎么样？**

好吧，他们必须进入 “<ruby> 接收 <rt>  Receive </rt></ruby>” 菜单并将传输码粘贴到文本框中。他们还可以扫描二维码，将准确的文本复制到他们的设备上。

粘贴代码并单击 “<ruby> 接收文件 <rt>  Receive File </rt></ruby>” 后，Warp 将开始连接到发送者的设备。

如果成功，将会显示 “<ruby> 已连接到对等点 <rt>  Connected to Peer </rt></ruby>” 状态。如果不是，则表明发送者或接收者的系统/网络出现问题。

连接成功后，接收者可以选择 “<ruby> 接受 <rt>  Accept </rt></ruby>” 将其保存到系统的“<ruby> 下载 <rt>  Downlaods </rt></ruby>” 文件夹中，也可以选择 “<ruby> 另存为 <rt>  Save As </rt></ruby>” 将其保存在他们选择的位置。

就是这样。文件传输完成后，接收方将显示以下页面：

用户还可以进入菜单图标下的 “<ruby> 首选项 <rt>  Preferences </rt></ruby>” 菜单来访问高级设置，例如设置 “<ruby> 集合点/中转服务器 URL <rt>  Rendezvous/Transit Server URL </rt></ruby>” 或将 “<ruby> 传输码字数 <rt>  Code Word Count </rt></ruby>” 设置为更长的字数来增强安全性。

这就是 Warp 的全部内容。**它简单且工作良好**。

### ? 获取 Warp

Warp 可用于 **Linux** 和 **Windows**。你可以获取你选择的软件包或查看其 [GitLab 页面](https://gitlab.gnome.org/World/warp)上的源代码。

**对于 Linux 用户**，你可以从 [Flathub](https://flathub.org/apps/app.drey.Warp) 获取它。

>
> **[Warp (Flathub)](https://flathub.org/apps/app.drey.Warp)**
>
>
>

---

via: <https://news.itsfoss.com/warp-file-sharing/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[校对者ID](https://github.com/%E6%A0%A1%E5%AF%B9%E8%80%85ID)

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


硬核观察 #1101 韩国 SK 电信称 5G 未能兑现承诺

Summary:
? 韩国 SK 电信称 5G 未能兑现承诺
? 最新的安卓运行时使安卓应用启动速度提高了 30%
? Chrome 会警告用户安装的恶意扩展
»
»

当初宣传5G时就觉得事有蹊跷，宣传的场景其实光纤，2G-4G和WIFI都足以应付，强上5G只是徒增成本，真正需要5G的场景少之又少，不过当时发表的任何异议都会被一群乌合之众攻击，事实证明当初看衰5G是对的。

上面为了保华为强上5g，即使成本高运营商也只能硬着头皮上，我家里上一辈的科技盲劝都劝不听，天天赢麻了，一定要去用5g

对于我来说5G的唯一优势是连接到运营商网络时比4G更低的延迟。100mbps的4G已经足够普通人使用了，可是实际速度根本达不到百兆，因为中国运营商用更高的覆盖率换取了更差的性能。

来自河南郑州的 Chrome Mobile 92.0|Android 10 用户

5G对个人没有用

# 硬核观察 #1101 韩国 SK 电信称 5G 未能兑现承诺

### 韩国 SK 电信称 5G 未能兑现承诺

韩国最大的移动电信公司 SK 电信在最近一份题为《5G 经验教训、6G 关键要求、6G 网络演进和 6G 频谱》的白皮书中说，5G 被过度炒作，交付不足，未能提供杀手级应用。白皮书中说，5G 被当作自动驾驶、无人机、扩展现实和数字孪生的推动者，但由于种种原因，这些应用并未取得成功。该白皮书认为 5G 网络的性能并不是问题所在。虽然如此，5G 还是取得了一些成功，与 LTE 相比，每千兆字节的数据成本降低了 70%，使用 5G 的客户比使用 4G 的客户多使用了 50% 的数据。白皮书认为，预计将于 2030 年推出的 6G 可以避免 5G 所犯的错误。

>
> **[消息来源：The Register](https://www.theregister.com/2023/08/21/sk_telecom_5g_disappointed)**
>
>
>

>
> 老王点评：事实就是，5G 并没有带来什么立竿见影的变化，很多人还觉得 5G 缩水了。
>
>
>

### 最新的安卓运行时使安卓应用启动速度提高了 30%

安卓运行时（ART）负责在安卓系统上实际运行应用程序，Java 和 Kotlin 编写的应用都会编译为由 ART 执行的字节码。ART 自安卓 12 以来一直在更新以提升性能。谷歌表示，最新的 ART 13 可以让安卓应用的启动速度 “在某些设备上提高多达 30%”。此外，将在未来几个月内推出的 ART 14，其新的编译器和运行时优化功能不但又进一步提高了性能，同时减少了代码大小。

>
> **[消息来源：9to5google](https://9to5google.com/2023/08/21/android-runtime-13-14-updates/)**
>
>
>

>
> 老王点评：毋庸置疑，安卓的技术在不断进步，而目前，除了 iOS 之外，所有其它的移动操作系统均无法与之匹敌。
>
>
>

### Chrome 会警告用户安装的恶意扩展

在 Chrome 浏览器网络商店中，有源源不断的不受欢迎的浏览器扩展发布，这些扩展程序会注入广告、跟踪你的搜索历史、将你重定向到联盟网页，或者在更严重的情况下窃取你的 Gmail 电子邮件和 Facebook 账户。当这些扩展程序被谷歌从 Chrome 网上商城删除，通常表明它们要么是开发者未发布的，要么是违反了相关政策或被检测为恶意软件。但这些被谷歌删除的扩展，不会在已经安装了它们的用户的浏览器上自动删除。谷歌宣布，在最新的 Chrome 117 中，它会发出警告通知用户，提醒他们从浏览器中卸载这些扩展程序。

>
> **[消息来源：Bleeping Computer](https://www.bleepingcomputer.com/news/google/google-chrome-to-warn-when-installed-extensions-are-malware/)**
>
>
>

>
> 老王点评：这确实是一种好的机制，唯一不好的只是推出的太晚了。
>
>
>


UbuntuDDE Remix 23.04 登场！

Summary: UbuntuDDE Remix 23.04 带着最新的深度桌面环境登场。

把校对开了吧 deepin直接翻译成深度？

打扰了看错了

# UbuntuDDE Remix 23.04 登场！

>
> UbuntuDDE Remix 23.04 带着最新的深度桌面环境登场。
>
>
>

我们在 [去年](/article-15076-1.html) 介绍过 UbuntuDDE Remix，当时他们发布了一个新的 LTS 版本。现在，大约一年后，我们有了一款新的 **非 LTS 发行版**，名为 **UbuntuDDE Remix 23.04**，**它基于最近发布的 Ubuntu 23.04**。

如果你还不知道，Ubuntu DDE Remix 是一个上面运行 [深度](https://www.deepin.org/index/en?ref=news.itsfoss.com) 桌面环境（DDE）的 Ubuntu 发行版，旨在提供独特的用户体验。

对于那些因为其缓慢的服务器和其源于中国而产生的其他担忧，从而不喜欢深度操作系统（但喜欢他们的桌面体验）的用户来说，UbuntuDDE 是一个不错的替代品。

让我们来看看他们在这个版本中提供了什么。

### ? UbuntuDDE Remix 23.04：都有些什么新东西？

除了配备了 [Linux 内核 6.2](https://news.itsfoss.com/linux-kernel-6-2-release/)，这个版本的 UbuntuDDE Remix 提供了一些不错的改进。

这个版本最明显的亮点包括：

* 深度桌面 23
* 更新的软件套件
* 新的壁纸

### 最新的深度桌面环境

UbuntuDDE Remix 23.04 **采用了最新的深度操作系统 23 的桌面环境（2023 年 5 月更新）**，使其能够利用所有对用户界面、控制中心、设置以及你可能预期的即将发布的 [深度操作系统发行版 23](https://news.itsfoss.com/deepin-23/) 的改进。

如果你有兴趣，UbuntuDDE 与上游和 [深度桌面环境](https://github.com/linuxdeepin/dde?ref=news.itsfoss.com) 的贡献者合作，使你能够完全领略改该桌面。

### 更新的软件套件

然后是更新的软件套件，它 **具有之前安装的，基于 DDE 的原生应用程序的升级版本**，例如：

* 深度音乐
* 深度影院
* 深度计算器
* 深度日志查看器
* 深度文本编辑器
* 等等

### 新的壁纸

最后，我们得到了来自 UbuntuDDE Remix 团队和深度操作系统的 **新壁纸和素材**。这些壁纸看起来非常不错，尤其是在使用浅色显示模式时。

开发者在 [官方公告](https://ubuntudde.com/blog/ubuntudde-remix-23-04-lunar-release-note/?ref=news.itsfoss.com) 博客中也提到，将在不久的将来通过 OTA 更新 **推送更多的软件更新**，进一步增强了整体的包装。

### ? 下载 UbuntuDDE Remix 23.04

你可以去 [官方网站](https://ubuntudde.com/download/?ref=news.itsfoss.com) 下载 UbuntuDDE Remix 23.04。你可以从 **官方仓库**、**SourceForge 镜像**，或以 **种子下载方式** 获取。

>
> **[UbuntuDDE Remix 23.04](https://ubuntudde.com/download/?ref=news.itsfoss.com)**
>
>
>

---

via: <https://news.itsfoss.com/ubuntudde-remix-23-04-release/>

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

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