Linux 上的最佳白板应用程序

有没有能完全替代希沃白板的？

LibreOffice

# Linux 上的最佳白板应用程序

>
> 我们将介绍几款可在 Linux 系统中使用的白板应用程序。我相信，这些信息对你将大有帮助。请继续阅读！
>
>
>

一般而言，数字白板是一种大型互动显示面板的工具。比如：平板、大屏手机、触控笔记本和表面显示设备等，就是一些常见的白板设备类型。

假设教师使用了白板，你就可以使用触控笔、手写笔、手指甚至鼠标在设备屏幕上进行绘画、书写或操作元素。这意味着，你可以在白板上进行拖动、点击、删除和绘画，就如同用笔在纸上一样。

但是，要做到这一切，就需要一款软件来支持这些功能，即实现触控和显示之间的精细协调。

现在的市面上，有很多商业应用都能完成这项工作。然而，在这篇文章中，我们将会重点介绍一些自由且开源的、并且可在 Linux 系统中运行的白板应用程序。

### Linux 系统白板应用程序佳选

#### 1、Xournal++

在我们的推荐名单上，第一个就是 [Xournal++](https://xournalpp.github.io/)。我认为，这是此列表中最好的应用程序。它十分稳定，而且已经存在了一段时间。

Xournal++ 允许你进行书写、绘画，以及其他常见的在纸上进行的各种事情。它支持手写、自定义荧光笔、橡皮擦等工具。此外，它还有其他诸多功能，例如：支持图层，支持添加外部图像，支持添加音频，具有多页特性等。

该应用程序兼容几乎所有的压敏输入设备，例如 Wacom、Huion 和 XP-Pen。我曾在触摸板笔记本上进行过测试，经过少量设置修改后，它就可以正常工作了。因此，你可以开始使用任何你手头上的触控设备。

Xournal++ 是使用 C++ 和 GTK3 进行编写的。

对于 Linux 系统，你可以按下述步骤进行安装。此程序是完全免费的，且适用于 Linux、macOS 和 Windows 系统。如果你想在移动设备上尝试，也提供了 BETA 版本。

安装步骤：

该应用程序可以通过 AppImage、Snap、Flatpak 和 deb 包进行安装。同时，也可以通过 PPA 的方式，安装至基于 Ubuntu/Debian 的系统。

特别的是，还为 Fedora、SUSE 和 Arch 提供了专用的安装包。你只需要点击下方的链接，就可以按你所需的格式，下载相应的执行程序。

>
> **[下载 Xournal++](https://xournalpp.github.io/installation/linux/)**
>
>
>

更多信息：

* [首页](https://xournalpp.github.io/)
* [文档](https://xournalpp.github.io/guide/overview/)
* [源代码](https://github.com/xournalpp/xournalpp/)

#### 2、OpenBoard

我们接下来想要重点介绍的是 [OpenBoard](https://openboard.ch/)。这是一个简洁易用的白板绘画应用，它不会通过过多的选项干扰你的使用体验。

该软件非常适合初学者以及在线课程的初级学生来使用进行笔记。

OpenBoard 内置了丰富的功能，包括颜色、画刷、文本、简单的绘图形状，页面支持等等。此应用基于 Qt 技术构建。

安装步骤：

此应用仅为 Ubuntu 提供独立的 deb 包。你可以通过以下链接下载。

>
> **[下载 OpenBoard](https://openboard.ch/download.en.html)**
>
>
>

更多信息：

* [主页](https://openboard.ch/)
* [文档](https://openboard.ch/support.html)
* [源代码](https://github.com/OpenBoard-org/OpenBoard)

#### 3、Scrivano

Scrivano 是一款新推出的基于 Qt 技术的白板应用。其设计理念强调易用性，能在记笔记和其他绘画活动中提供高效的功能表现。

它提供了一些独特的功能，如吸附到网格、创建自定义贴纸、填充笔触、激光选项等等。

此外，你还可以在此工具中导入 PDF 文件，并利用各种功能对其进行批注。

以下是一些值得关注的功能。

你可以在我们关于 [该应用官方评述](https://www.debugpoint.com/scrivano/) 中了解更多关于 Scrivano 的信息。

你可以 [对你的系统进行 Flatpak 配置以使用 Flathub](https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/)，然后点击下面的按钮，通过 [Flathub](https://flathub.org/apps/details/com.github.scrivanolabs.scrivano) 进行安装。

>
> **[下载并安装 Scrivano](https://dl.flathub.org/repo/appstream/com.github.scrivanolabs.scrivano.flatpakref)**
>
>
>

更多信息：

* [主页](https://scrivanolabs.github.io/)
* [Scrivano 评价](https://www.debugpoint.com/scrivano/)

#### 4、Notelab

[NoteLab](http://java-notelab.sourceforge.net/) 是一款具有十年历史的老牌白板应用。它是一个自由开源的应用，内含丰富的功能集，因此你可以理解这款应用的稳定性和广受欢迎的程度。

以下是其中的部分特性：

* 此应用支持所有常用的图片格式作为导出选项，例如 SVG、PNG、JPG、BMP 等。
* 提供了可配置的笔和纸的自定义选项
* 内建的内存管理器，用于指定 NoteLab 所使用的内存量。
* 不同格式的纸张可供选择，如宽格式、大学格式和图形纸。
* 含所有标准绘图工具。
* 对任何笔记部分都可以进行调整大小、移动、删除、改变颜色等多种操作。

然而，这是一个由 Java 编写并以 .jar 文件形式发布的应用，所以你需要 Java 运行环境来运行它。你可以参考我们的指南在 Linux 系统中安装 Java 或 JRE。

* [在基于 Ubuntu 的系统中安装 Java/JRE 的方法](https://www.debugpoint.com/2016/05/how-to-install-java-jre-jdk-on-ubuntu-linux-mint/)
* [在 Arch Linux 中安装 Java/JRE 的方法](https://www.debugpoint.com/2021/02/install-java-arch/)

如何安装：

NoteLab 提供了独立的可执行 .jar 文件，可以通过下方链接从 SourceForge 下载。请记住，要运行此应用，你需要 JRE。

>
> **[下载 NoteLab](https://sourceforge.net/projects/java-notelab/files/NoteLab/)**
>
>
>

更多信息：

* [主页](http://java-notelab.sourceforge.net/)
* [文档](http://java-notelab.sourceforge.net/features.html)

#### 5、Rnote

我们此次要介绍的第五款应用叫做 [Rnote](https://github.com/flxzt/rnote)。Rnote 是一款在触屏设备上进行手写笔记的绝佳应用程序。这款应用基于矢量图像技术，不仅便于进行绘图和注释图片，还方便对 PDF 文件进行标注。它支持本地的 .rnote 文件格式，并提供了 png、jpeg、SVG 和 PDF 的导入/导出选项。

Rnote 最酷的一项特性是它支持 Xournal++ 的文件格式（即本列表的首款应用程序），这使它成为必备的工具。

Rnote 使用 GTK4 和 Rust 进行开发，非常适合在 GNOME 桌面以及各类 Linux 系统上运行。

需要注意的是，该应用程序目前仍在开发中。

如何安装：

此应用以 Flatpak 包的形式提供。你可以使用 [此指南](https://flatpak.org/setup/) 为你的 Linux 系统安装 Flatpak，然后点击下方的按钮进行安装。

>
> **[安装 Rnote](https://dl.flathub.org/repo/appstream/com.github.flxzt.rnote.flatpakref)**
>
>
>

更多信息：

* [主页和源代码](https://github.com/flxzt/rnote)

#### 6、Lorien

[Lorien](https://github.com/mbrlabs/Lorien) 是一个能让你利用多种工具创造个性化笔记的理想数字笔记本软件。Lorien 是一个基于 Godot 游戏引擎的跨平台、自由开源的“无限画布绘图/笔记”应用。这款应用十分适合于快速记取头脑风暴会议中的笔记。

其工具箱相当标准，拥有自由手绘刷、橡皮擦、直线工具和选择工具等。你可以移动或删除你的笔划部分——这些在运行时会被视为点的集合进行渲染。

如何安装：

使用 Lorien 不需要安装。你可以从下面的链接下载一个自我包含的可执行文件（下载 tar 文件）。下载后，解压文件并双击即可运行。

>
> **[下载 Lorien](https://github.com/mbrlabs/Lorien/releases)**
>
>
>

更多信息：

* [主页和源代码](https://github.com/mbrlabs/Lorien)

#### 7、Rainbow Board

Rainbow Board 是一款基于 Electron 和 React 的自由开源白板应用。通常，由于性能和臃肿的问题，人们并不喜欢 Electron 应用。但考虑到我们正在列出这个分类的应用，我认为值得一提。

它提供了一个标准的画布，支持触控和手写输入。工具箱包括刷子大小、颜色、填充颜色、字体以及撤销和重做操作。你可以将你的绘制结果导出为 PNG 或 SVG 文件。

如何安装：

此应用可以作为 Snap、Flatpak 或独立的 deb 安装程序下载。你可以从下面的链接中得到它们。

>
> **[下载 Rainbow Board](https://www.electronjs.org/apps/rainbow-board)**
>
>
>

更多信息：

* [主页](https://harshkhandeparkar.github.io/rainbow-board/)
* [源代码](https://github.com/HarshKhandeparkar/rainbow-board)

### 特别推荐

在这里，我想额外提到的两款绘图应用分别是 Vectr 和 Excalidraw。这两款应用都是基于网络的白板绘图应用。它们被单独归类是因为它们并非传统意义上的桌面应用。

因此，如果你不愿安装其他应用，或者你使用的学校或工作系统中无法进行安装，你可以选择在浏览器中使用这些网络应用。下面是它们的网址。

>
> **[Vectr](https://vectr.com/)**
>
>
>

>
> **[Ecxalidraw](https://excalidraw.com/)**
>
>
>

### 结束语

以上是一些适用于 Linux 及其他操作系统的现代白板 [绘图](https://www.debugpoint.com/tag/digital-drawing) 应用。由于大流行病和居家工作环境的影响，你们许多人可能在使用笔和纸进行在线课程或会议的笔记记录。我相信这些软件会在你的学习和工作中提供帮助。

试一试这些软件，你肯定能找到最适合你的。对此清单如有任何评论或反馈，请在下方的留言区域告诉我。

干杯。

*（题图：MJ/373801b1-50f2-4078-8961-fcea78623f2f）*

---

via: <https://www.debugpoint.com/top-whiteboard-applications-linux/>

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

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


硬核观察 #1133 Valve 对开源和 Linux 做出了贡献

Summary:
? Valve 对开源和 Linux 做出了贡献
? 中国人工智能大模型数量约占全球数量 40%
? DuckDuckGo CEO 说摆脱谷歌“需要很多步”
»
»

DuckDuckGo也是一个不存在的网站。。。

总是跟风..

# 硬核观察 #1133 Valve 对开源和 Linux 做出了贡献

### Valve 对开源和 Linux 做出了贡献

在最近举行的欧洲开源峰会上，介绍了游戏平台公司 Valve 对开源和 Linux 的贡献。Valve 的掌机 Steam Deck 运行的操作系统 SteamOS 是基于 Arch Linux 的，其桌面采用了 KDE Plasma，因此，Valve 资助了相关程序的改进。Valve 的 Steam Play/Proton 借助了 Wine 项目，也对它做出了贡献，尤其是对 Linux 游戏和爱好者有重大价值。此外，Valve 在 Linux 图形驱动上的贡献让整个 Linux 桌面生态系统都受益。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Valve-Upstream-Everything-OSS)**
>
>
>

>
> 老王点评：虽然不乏吹嘘成分，但是只有这种切实使用并改善 Linux 的商业产品和服务，并回馈给社区的企业，对 Linux 和开源的贡献才是实实在在的。
>
>
>

### 中国人工智能大模型数量约占全球数量 40%

中国对人工智能的狂热引发了初创企业和科技巨头几乎每天都有大量的产品发布。据里昂证券称，中国目前至少有 130 种大型语言模型，占全球总数的 40%，仅次于美国的 50%。各公司还宣布了数十种与其核心模型相关联的 “特定行业语言模型”。然而，投资者和分析师表示，大多数公司尚未找到可行的商业模式，彼此过于相似，而且目前正面临成本激增的问题。

>
> **[消息来源：路透社](https://www.reuters.com/technology/chinas-ai-war-hundred-models-heads-shakeout-2023-09-21/)**
>
>
>

>
> 老王点评：最后能剩下几家，或者说最后能有几个真正有所开创呢？
>
>
>

### DuckDuckGo CEO 说摆脱谷歌“需要很多步”

DuckDuckGo 是一家以隐私为中心的搜索引擎，成立于 2008 年，其创始人在对谷歌的反垄断审查中表示，由于谷歌是电脑上的默认选项，消费者从谷歌转向其他搜索引擎“比想象中要难得多，……需要很多步”，因此 DuckDuckGo 的市场份额一直很小。DuckDuckGo 目前在美国搜索市场的份额约为 2.5%，每天的全球搜索量约为 1 亿次。相比之下，谷歌每天的搜索量为几十亿次。

>
> **[消息来源：彭博社](https://www.bloomberg.com/news/articles/2023-09-21/duckduckgo-ceo-says-too-many-steps-to-switch-from-google)**
>
>
>

>
> 老王点评：其实，只需要一步，就是这一步太难了。
>
>
>

### 回音

* Unity 公布了修改后的 [收费方案](https://blog.unity.com/news/open-letter-on-runtime-fee)，事实上放弃了按安装量收费的模式。


在 Ubuntu 上安装 VSCodium

VSCodium跟VS Code还有一点不同，它不能从MS扩展市场安装扩展，只能安装OpenVSI的扩展，或者安装打包好的vsix扩展。

来自广东广州的 Chrome Mobile 116.0|Android 10 用户

# 在 Ubuntu 上安装 VSCodium

>
> 不满意 VS Code 中的遥测功能？安装 VSCodium，它是 VS Code 的 100% 开源克隆。
>
>
>

[VSCodium](https://itsfoss.com/vscodium/) 是微软 VS Code 的“完全开源版本”。

它基本上是 [VS Code](https://code.visualstudio.com/) 的克隆，并去除了所有遥测痕迹。[遥测是用于收集有关应用使用情况的数据](https://code.visualstudio.com/docs/getstarted/telemetry)。许多开发人员使用它来深入了解改进他们的应用。

从外观和功能来看，这两个编辑器是相同的。

在 Ubuntu 上安装 VSCodium 有三种方法：

1. 从发布页面下载 deb 文件进行安装。缺点是你无法轻松更新它，因为你必须再次下载新的 deb 文件。
2. 将第三方开发者仓库添加到你的系统中（[VSCodium](https://vscodium.com/) 推荐的方式）。这样，你还可以获得 VSCodium 新版本的定期更新。
3. 使用 snap 版本。如果你不厌恶 Snap 软件包，这也许是最简单的方法。

我不会讨论第一种方法，因为它只是从 [发布页面](https://github.com/VSCodium/vscodium/releases) 下载并 [安装 deb 文件](https://itsfoss.com/install-deb-files-ubuntu/)。

我们来看看另外两种方法。

### 方法 1：通过添加外部仓库来安装 VSCodium

VSCodium 官方文档引用了 [Pavlo Rudy 的 GitLab 仓库](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo)，它为你提供了 VSCodium 的持续更新版本。

>
> ? 虽然我在这里使用 Ubuntu，但这些步骤应该适用于 Debian 和其他基于 Debian 和 Ubuntu 的发行版。
>
>
>

以下是步骤。

[在 Ubuntu 中打开终端](https://itsfoss.com/open-terminal-ubuntu/) 并使用以下命令获取开发者的 GPG 签名密钥并将其添加到你的系统中。这样，你的 Ubuntu 系统将信任该开发人员签名的软件包。

```
sudo wget https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg -O /usr/share/keyrings/vscodium-archive-keyring.asc

```

下一步是将仓库添加到 [你系统的 sources.list 文件](https://itsfoss.com/sources-list-ubuntu/)。这样，你的 Ubuntu 系统就会知道应该从哪里获取包。

```
echo 'deb [signed-by=/usr/share/keyrings/vscodium-archive-keyring.asc ] https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs vscodium main'| sudo tee /etc/apt/sources.list.d/vscodium.list

```

正如你所看到的，该条目中的仓库是由你在其上方添加的密钥签名的。

更新本地包缓存，以便你的系统能够识别新添加的仓库中的包。

```
sudo apt update

```

现在你已准备好在 Ubuntu 上安装 VSCodium：

```
sudo apt install codium

```

是的，该软件包名为 `codium`，而不是 `vscodium`。

很好！ 现在你可以在菜单中查找 “VSCodium” 并从那里启动应用：

现在你可以在 VSCodium 中享受编码的乐趣。

#### 更新 VSCodium

好处是你已将仓库添加到系统中。当新的 VSCodium 发布时，仓库维护者会将新版本推送到仓库，你应该在系统更新程序中看到新版本。

换句话说，[保持你的 Ubuntu 系统更新](https://itsfoss.com/update-ubuntu/)，你就会拥有更新版本的 VSCodium。

#### 删除 VSCodium

如果你出于某种原因不想再使用它，可以使用以下命令将其删除：

```
sudo apt remove codium

```

你可以将仓库和签名添加到你的系统中。

>
> ? 如果你对这些东西很在意，你也可以将它们从系统中删除。使用 sudo [在 Linux 终端中删除文件](https://itsfoss.com/delete-files-folders-linux/) 时要小心一些。
>
>
>

```
sudo rm /usr/share/keyrings/vscodium-archive-keyring.asc

```

接下来，你还可以从 `sources.list` 中删除仓库：

```
sudo rm /etc/apt/sources.list.d/vscodium.list

```

你的主目录中应该有一些与应用相关的本地文件，你可能还想删除它们：

```
rm -r ~/.config/VSCodium

```

### 方法2：使用 Snap 安装 VSCodium

>
> ? Snap 方法适用于任何 Linux 发行版，而不仅仅是 Ubuntu，只要 [你在系统上启用了 Snap 支持](https://itsfoss.com/install-snap-linux/)。
>
>
>

Snap 安装方法比较简单，步骤也较少。

打开终端并使用以下命令安装 VSCodium Snap 包：

```
sudo snap install codium --classic

```

等待几秒钟，它会下载 Snap 软件包，然后进行安装。你将在屏幕上看到进度。

**你如何 [更新 Snap 版本的 VSCodium](https://itsfoss.com/snap-update/)**？Snap 应用每天自动更新多次。但是，如果应用正在运行，那么不会更新。

因此，你也可以关闭任何正在运行的 VSCodium 实例并运行此命令来强制更新（如果有任何新版本）：

```
sudo snap refresh codium

```

如果你不喜欢它，可以使用以下命令轻松删除它：

```
sudo snap remove codium

```

### VS Code VS. VSCodium

主要区别在于，VSCodium 从 VS Code 中移除了遥测部分。除此之外，它就是这个微软项目的克隆版，在外观和功能上与著名的 VS Code 完全相同。

对于某些人来说，遥测可能是一个障碍，因此这个项目在开源社区中颇受欢迎。

下面是一篇关于 [VS Code 遥测问题](https://www.roboleary.net/tools/2022/04/20/vscode-telemetry.html)的好文章。

>
> **[VS Code - 遥测技术是怎么回事？](https://www.roboleary.net/tools/2022/04/20/vscode-telemetry.html)**
>
>
>

如果你能接受遥测部分，你可以 [在 Ubuntu 上轻松安装 VS Code](https://itsfoss.com/install-visual-studio-code-ubuntu/)。这确实可以是你的选择。

希望本教程对你在 Ubuntu 和其他基于 Debian 的发行版上安装 VSCodium 有所帮助。请在评论区留下你的反馈意见。

*（题图：MJ/352e50f1-3ae2-4fe2-9a32-b75d1b5f0c73）*

---

via: <https://itsfoss.com/install-vscodium-ubuntu/>

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


如何在 Linux 下使用 WebP 图像

# 如何在 Linux 下使用 WebP 图像

本文将详细介绍如何在 Ubuntu 和其他 Linux 发行版中转换和查看 WebP 图像，主题内容涵盖了你所需知道的全部信息。

### WebP 图像格式的定义

2010 年 9 月，谷歌提出了 WebP 图像格式，其愿景是完全替代 JPEG、PNG 和 GIF 文件格式。就如你所见，WebP 是一个全能型的格式，继承了先前压缩算法的所有特性，支持有损和无损的动画以及透明度。

除此以外，WebP 基于块预测技术，它是互联网上推荐使用的图像格式。由于其文件大小明显更小、图象质量更好，WebP 已经成为了为网站提供图像的现代化标准。

### 现状简述

现在，几乎所有的主流 Web 浏览器都开始支持 WebP，也就是说你可以在包括 Chromium、Chrome、Firefox、Brave、Vivaldi、Safari 和 Edge 在内的热门浏览器中查看这种格式的图像。

然而，要从现有的 JPG 和 PNG 文件创建 WebP 图像，你需要安装谷歌开发的 [WebP](https://developers.google.com/speed/webp) 库。另外，Linux 发行版的文件管理器暂时还不能直接显示该格式的图像。

为了与 WebP 实现无缝集成和提供良好的用户体验，各个组件必须协同工作。操作系统需要的是 WebP 的核心库。此外，文件管理器和图像查看器则需要能识别 `*.webp` 文件类型并进行加载。

这些为用户提供了一致的体验。由于 WebP 是新的标准，正在广泛施行和应用，你可能需要在 Linux 下执行一些额外的步骤以便运用这种技术。

另一方面，Windows 10 和 11 现在已经默认支持 WebP，包括其新的图像查看器功能。

因此，本篇文章将探讨如何在 Linux 系统下浏览、创建以及转换 WebP 图像的问题。

### 如何查看 WebP 图像

#### 针对 Ubuntu、Linux Mint 及相关发行版

要查看图像，首先需要一个加载器。文件管理器或图像查看器会使用这个加载器库来实现 WebP 图像的显示。然而，在 Ubuntu Linux 中，默认情况下并未提供 WebP 图像加载器。因此，你需要通过下列指令安装 `webp-pixbuf-loader` 库，此库能帮助 Ubuntu 中的 GTK 应用程序显示 WebP 图像。

```
sudo add-apt-repository ppa:helkaluin/webp-pixbuf-loadersudo apt updatesudo apt install webp-pixbuf-loader

```

如果你有兴趣了解 GDK 库如何在显示服务器（例如 [X.Org](http://X.Org)）和 GTK 组件间进行协作，可以参考 [这个页面](https://docs.gtk.org/gdk-pixbuf/)。

#### openSUSE

Leap 和 Tumbleweed 的软件包在 [这里](https://software.opensuse.org/package/webp-pixbuf-loader) 提供。访问页面并点击 “<ruby> 专家下载 <rt>  Expert Download </rt></ruby>” 进行安装即可。

#### Arch Linux

在 Arch Linux 中，这个软件包在 [社区仓库](https://archlinux.org/packages/community/x86_64/webp-pixbuf-loader/) 里有提供。因此，你可以通过以下的命令方便地进行安装：

```
sudo pacman -S webp-pixbuf-loader

```

#### Fedora Linux 以及 RHEL

对于 Fedora 以及其他相关的发行版，可以使用如下的指令进行安装：

```
sudo dnf install webp-pixbuf-loader

```

安装完成以后，你可以选择**重新启动你的计算机**。

现在，我们来到了最有趣的部分。只要导航到任何包含 WebP 图像的目录，通过缩略图或者默认的图像查看器，你应该就能看到这些图像了。

以下是一个示例，展示了在 Ubuntu 22.04 LTS 中带有 WebP 图像的 Nautilus 文件管理器在之前和之后的界面。

### 在文件管理器/图像查看器中查看 WebP 图像

#### GNOME & Nautilus

对于 GNOME 桌面环境，Nautilus 文件管理器可以配合我在之前章节针对 Ubuntu/Fedora 等系统所解释的步骤正常工作。

#### Thunar 桌面（基于 Xfce 的发行版）下的 WebP 图像查看

尽管 Thunar 在 Xfce 桌面环境下默认就可展示缩略图，但默认的图像查看器 Ristretto 不能打开 WebP 格式的文件。因此，你首先需要安装我在先前章节中提及的一些软件包（例如针对 Ubuntu/Fedora 或 Arch 的包）并重启。然后，你可以通过改变默认的 .webp 文件类型关联，使用 Ristretto 查看器打开这些图像。

#### KDE Plasma - Dolphin 文件管理器及 Gwenview 图像查看器

KDE 默认的图像查看器 Gwenview 原生支持 WebP 格式，因此，你无需额外的安装步骤就可以查看 WebP 图像。另外，Dolphin 文件管理器也可以很好地展示 WebP 格式的缩略图。

#### PCManFMQt（基于 LXQt 的发行版）下的 WebP 图像查看

如果你使用的是 Lubuntu，那你应该可以使用 LXImage 查看器打开 WebP 图像，因为这款查看器默认就支持 WebP。同样，PCManFMQt 文件管理器也能默认展示 WebP 图像的缩略图。

#### Nemo 文件管理器

从 [Linux Mint](https://www.debugpoint.com/linux-mint/) 的 [Mint 21 “Vanessa”](https://debugpointnews.com/linux-mint-21-systemd-oom/) 版本开始，Nemo 文件管理器也将支持 WebP。你也可以通过上述的 PPA 方案在 Linux Mint 中查看 WebP 图像，直到新的 Mint 正式版本发布。

### 使用其它应用程序查看 WebP 图像（推荐方式）

首先，著名的光栅图形编辑器 **GIMP** 在 2.10 版本及以后的版本中，已经支持打开和保存 WebP 格式的图像（目前在所有的 Linux 发行版中都已经可用）。

其次，除了你的桌面环境自带的图像查看器外，还有一些其他支持 WebP 图像格式的查看器，如：

* [Qview](https://interversehq.com/qview/download/) — 一款极简的图像查看器
* [gThumb](https://flathub.org/apps/details/org.gnome.gThumb) — 一款基于 GTK 的图像查看器，同时也提供 [Flatpak 版本](https://flathub.org/apps/details/org.gnome.gThumb)

最后，[LibreOffice 7.4](https://www.debugpoint.com/libreoffice-7-4/) 为其所有的组件（比如 Writer、Calc、Draw 和 Impress）带来 [对 WebP 格式的原生支持](https://cgit.freedesktop.org/libreoffice/core/commit/?id=60eaa424c5e213f31227008e1ed66a646491a360)，支持这类图像的导入和导出。

### 如何将 WebP 图像转换为 JPG 或 PNG 格式

现在，你已经知道了如何查看 .webp 格式的文件，再来学习如何转换这类文件应该会很有用。

首先，使用以下命令为 Ubuntu 或 Fedora Linux 系统，包括其他相关的发行版安装 webp 包。如果你需要一个不需要安装就能在所有发行版和操作系统上执行的预编译版本，可以访问 [这个页面](https://storage.googleapis.com/downloads.webmproject.org/releases/webp/index.html) 并下载最新的 zip 文件。

对于 Ubuntu 和相关的发行版：

```
sudo apt install webp

```

对于 Fedora 和相关的发行版：

```
sudo dnf install libwebp

```

**安装完成后**，使用以下命令可以将 WebP 格式的图像转换为 JPG 或 PNG 格式。记得根据你的实际情况，修改文件名和路径。

```
dwebp image1.webp -o image1.png

```

### 把 JPEG 或 PNG 图像转换为 WebP 格式

如果需要把一张 JPEG 或 PNG 格式的图像转化为 WebP 格式，你可以使用 `cwebp``（WebP 编码器）命令如下：

```
cwebp -q <压缩因数> <输入图像> -o <输出图像>

```

例如，你可以使用下面的示例命令，它将 `image1.png` 转换为使用 80 的压缩因子的 `image1.webp`：

```
cwebp -q 80 image1.png -o image1.webp

```

### 把 GIF 图像转换为 WebP 图像

一个在 WebP 格式中常被忽视的特点是它支持动画。因此，可以轻松将 WebP 格式用来保存具有动画效果的 GIF 文件。使用下面的命令就能把一个已有的 GIF 文件转换为 WebP 文件。

```
gif2webp input_file.gif -o output_file.webp

```

你可以访问 [这个页面](https://developers.google.com/speed/webp/download) 以获取更多关于上述工具和其他选项的信息。

### 结语

虽然 WebP 格式自首次发布以来已经有十年的时间了，Linux 桌面环境适应并支持 WebP 图像格式却并没有那么快。我相信以后 WebP 格式的支持应该会变成基本的，你甚至可能不需要进行额外的调整就能查看或保存 WebP 文件了。

我希望这篇文章可以帮你了解并掌握如何在工作流程中更好地使用 WebP 格式。

那么，你现在是怎么处理 WebP 格式图像的呢？欢迎在下方评论区分享你的经验。

*（题图：MJ/2541dab1-f071-4836-a34e-81c085c4d1ff）*

---

via: <https://www.debugpoint.com/view-webp-ubuntu-linux/>

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

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


Summary:
? 英特尔 CTO 建议使用 AI 将 CUDA 代码移植到英特尔芯片
? 2017 年以来近 500 个智能手机品牌退出市场
? 加州利用人工智能提前发现 40% 的野火
»
»

Apple拒绝给NVIDIA驱动签名，主要就是对抗CUDA,让自家Metal发展。如果Intel支持了CUDA，很可能大家采购NVIDIA GPU的热情会降低，大概率NVIDIA是不会支持Intel额。当然格局打开就不一样了，但NVIDIA比较调皮，看看Linux下之前逆向，和Wayland的支持。现在好点了，被骇客威胁怕了，开始采用GBM了。

# 硬核观察 #1134 英特尔 CTO 建议使用 AI 将 CUDA 代码移植到英特尔芯片

### 英特尔 CTO 建议使用 AI 将 CUDA 代码移植到英特尔芯片

英特尔、AMD 和其他加速器制造商在推动采用其人工智能硬件时面临的挑战之一是，为英伟达的 CUDA 运行时编写的大量代码必须经过重构才能在其他平台上使用。SYCL 是英特尔打破 CUDA 对人工智能软件生态系统束缚的最新举措之一。SYCL 处理了将 CUDA 代码移植到可在非英伟达加速器上运行的格式的大部分繁重工作（据称高达 95%），但通常还需要进行一些微调和调整。英特尔 CTO 认为，LLM 模型可以进一步自动化这种微调。他建议，“让我们使用 LLM 和 Copilot 等技术来训练一个机器学习模型，将你所有的 CUDA 代码转换为 SYCL”。

>
> **[消息来源：The Register](https://www.theregister.com/2023/09/21/intel_ai_cuda/?td=rt-9cp)**
>
>
>

>
> 老王点评：用人工智能解决人工智能需要的问题，这真是一个好主意。就是不知道英伟达怎么想。
>
>
>

### 2017 年以来近 500 个智能手机品牌退出市场

报告显示，在 2017 年的高峰期，有 700 多个智能手机品牌提供了 15 亿部的年销量。2023 年，手机品牌数量将减少三分之一，降至近 250 个。过去五年中关闭的品牌几乎都是印度、中东、非洲、中国、日本和韩国等地的本土品牌。但三星等全球品牌的数量一直保持在 30 个以上。

>
> **[消息来源：Tech Spot](https://www.techspot.com/news/100249-nearly-500-smartphone-brands-have-left-market-since.html)**
>
>
>

>
> 老王点评：这些消失的手机都是安卓手机，同质化严重的手机必然会逐渐被淘汰。
>
>
>

### 加州利用人工智能提前发现 40% 的野火

加州消防局与加州大学圣迭戈分校的 “警报加州” 项目及其遍布全州的 1000 多个摄像头网络合作，正在使用这项技术及早发现火灾。该试点项目非常成功，加州消防局表示，自 7 月 10 日以来，已有 40% 的火灾在接到 911 报警电话之前被人工智能检测到，而且该技术还在不断学习和改进。

>
> **[消息来源：CNN](https://www.cnn.com/2023/09/23/us/fighting-wildfire-with-ai-california-climate/index.html)**
>
>
>

>
> 老王点评：“你在新闻中没有听到火灾就是最大的成功。”
>
>
>


在 Linux 上的 VirtualBox 中从虚拟机访问 USB

# 在 Linux 上的 VirtualBox 中从虚拟机访问 USB

>
> 你完全可以从虚拟机内部访问 USB 存储器。如果你使用的是 Linux 上的 VirtualBox，下面将介绍如何做到这一点。
>
>
>

当你插入 USB 时，你的宿主操作系统可以轻松访问它并使用其中的文件。这并不奇怪。

如果你在 Linux 上使用带有 VirtualBox 的虚拟机，那么可以付出一些努力并从虚拟机访问插入物理机的 USB。

让我逐步引导你了解如何在 VirtualBox VM 中访问 USB 磁盘。

### 如何在 VirtualBox VM 中访问 USB 驱动器

默认情况下，你无法使用 VirtualBox 访问 USB 驱动器，因为你必须安装扩展包管理器，此外，还有一些配置部分。

这就是我将本教程分为三个简单步骤的原因。那么让我们从第一步开始。

#### 步骤 1：安装 VirtualBox 扩展包（在主机上）

这是本教程中最重要的一步，因为你将安装 VirtualBox 的扩展，这将使你能够在虚拟机中使用 USB 驱动器。

>
> ? 你应该安装与你安装的 VirtualBox 版本相同版本的扩展包。
>
>
>

要安装 VirtualBox 扩展包，只需访问 [VirtualBox 官方下载页面](https://www.virtualbox.org/wiki/Downloads)，向下滚动一点，你将找到下载扩展包的选项：

下载完扩展包后，请执行 3 个简单步骤：

* 转到 “<ruby> 文件 <rt>  File </rt></ruby>” > “<ruby> 工具 <rt>  Tools </rt></ruby>” > “<ruby> 扩展包管理器 <rt>  Extension Pack Manager </rt></ruby>”
* 点击 “<ruby> 安装 <rt>  Install </rt></ruby>” 按钮
* 从文件管理器中选择下载的文件：

它将打开一个新的提示来安装扩展包，你所要做的就是点击“安装”按钮并接受条款和条件：

我们就完成了扩展包的安装。

#### 步骤 2：将用户添加到 vboxusers 组（在宿主机上）

要在 VirtualBox 中使用 USB 驱动器，你的当前用户需要位于 `vboxusers` 组中。

我知道这听起来有点复杂，但 [将用户添加到组](https://learnubuntu.com/add-user-group/) 是一个命令过程，将用户添加到 `vboxusers` 组可以通过以下方式完成：

```
sudo usermod -aG vboxusers $USER

```

**完成这两个步骤后，重启系统以使这些步骤生效。**

#### 步骤 3：将 USB 驱动器添加到虚拟机

>
> ? 在为特定虚拟机添加 USB 之前，请确保其已关闭（未保存），否则你将无法按照给定的说明进行操作。
>
>
>

要为虚拟机添加 USB，你必须遵循以下简单步骤：

* 选择你想要使用 USB 的虚拟机并点击 “<ruby> 设置 <rt>  Settings </rt></ruby>”
* 转到 “USB” 选项卡
* 选中 “<ruby> 启用 USB 控制器 <rt>  Enable USB Controller </rt></ruby>” 框并单击 “+” 按钮选择 “USB”：

这就好了！现在你可以启动虚拟机，并且 USB 驱动器应该出现在文件管理器中。就我而言，它是 Ubuntu，所以它看起来像这样：

### 更多 USB 和 VM 技巧

如果你在虚拟机中使用 USB 看起来很酷，那么在虚拟机中从 USB 启动就更酷了！这里有一个关于 [如何在 VirtualBox 中从 USB 驱动器启动](https://itsfoss.com/virtualbox-boot-from-usb/) 的详细指南：

>
> **[如何在 VirtualBox 中从 USB 驱动器启动](https://itsfoss.com/virtualbox-boot-from-usb/)**
>
>
>

我希望本指南对你有所帮助。

*（题图：MJ/d9a1b4b5-30ec-4019-979f-b258a1fc075f）*

---

via: <https://itsfoss.com/virtualbox-access-usb/>

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


Summary: 当涉及到 CPU 的时候，有许多术语：AArch64、x86_64、amd64、arm 等等。了解它们是什么以及它们之间的区别。

补充一些知识

架构            特点                                    代表性的厂商                  运营机构              发明时间

X86            性能高，速度快，兼容性好         英特尔，AMD                 英特尔                       1978年

ARM            成本低，低功耗                  苹果，谷歌， IBM，华为         英国ARM公司              1983年

RISC-V            模块化，极简，可拓展                  三星，英伟达，西部数据         RISC-V基金会          2014年

MIPS            简洁，优化方便，高拓展性         龙芯                           MIPS科技公司              1981年

除了x86，其他的很难以低廉价格在市场上买到，即使是二手的也是。

# arm vs AArch64 vs amd64 vs x86_64 vs x86：有什么区别？

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

>
> 当涉及到 CPU 的时候，有许多术语：AArch64、x86\_64、amd64、arm 等等。了解它们是什么以及它们之间的区别。
>
>
>

当你查看数据表或软件下载页面时是否被 `ARM`、`AArch64`、`x86_64`、`i386` 等术语混淆？这些被称为 CPU 架构，我会帮你深入了解这个计算话题。

以下的表将为你总结每个字符串所代表的意义：

| CPU 架构 | 描述 |
| --- | --- |
| **`x86_64`** /`x86`/`amd64` | 64 位 AMD/英特尔 CPU 的别称 |
| **`AArch64`** /`arm64`/`ARMv8`/`ARMv9` | 64 位 ARM CPU 的别称 |
| **`i386`** | 32 位 AMD/英特尔 CPU |
| **`AArch32`** /`arm`/`ARMv1` 到 `ARMv7` | 32 位 ARM CPU 的别称 |
| **`rv64gc`** /`rv64g` | 64 位 RISC-V CPU 的别称 |
| **`ppc64le`** | 64 位 PowerPC CPU，**小端字节序存储** |

从左到右是使用该术语来描述 CPU 架构超过其右侧其他可选用术语的偏好。

从左到右是使用该术语描述 CPU 架构的优先级，使用左侧的而不是其右侧的其他可供选择的术语。

如果你像我一样是个极客，并想要更深入地解释，请继续阅读！

### 概述：CPU 架构

通常来说，我之前列出的术语是描述 CPU 架构的。但严格讲，它们被计算机工程师视为 CPU 的 <ruby> 指令集架构 <rt>  Instruction Set Architecture </rt></ruby>（ISA）。

CPU 的指令集架构定义了 CPU 如何解析二进制代码中的 1 和 0。

这些 CPU 的 ISA 有几个主要的类别：

* x86（AMD/英特尔）
* ARM
* RISC-V
* PowerPC（IBM 仍在使用）

当然，还有更多种类的 CPU ISA，比如 MIPS、SPARC、DEC Alpha 等等。但我列出的这些至今仍然被广泛使用（以某种形式）。

上述列出的 ISA 主要根据 *内存总线的宽度* 分为至少两个子集。内存总线的宽度指的是 CPU 和 RAM 一次能传输的位数。内存总线有很多种宽度，但最常见的是 32 位和 64 位。

>
> ? 32 位的 CPU ISA 要么是已经过时的历史产物，被留下来要么只是为了支持旧的系统，要么只运用在微控制器中。可以说，**所有新的硬件都已经是 64 位的了**，特别是那些面向消费者的硬件。
>
>
>

### x86（AMD/英特尔）

x86 CPU 的指令集架构主要源于英特尔，因为英特尔是最初搭配 8085 微处理器创建了它。8085 微处理器的内存总线宽度为 16 位。而后来，AMD 加入了这个领域，并且一直紧随英特尔的步伐，直到 AMD 创建出了自己的超集 64 位架构，超过了英特尔。

x86 架构的子集如下：

* `i386`：如果你拥有的是 2007 年之前的 CPU，那么这可能就是你的 CPU 架构。它是现在使用的 AMD/英特尔的 x86 架构的 32 位“版本”。
* `x86_64`/`x86`/`amd64`：这三个术语在不同的项目中可能会被交替使用。 但它们都是指 x86 AMD/英特尔架构的 64 位“版本”。无论如何，`x86_64` 这个字符串比 `x86` 和 `amd64` 使用得更广泛（也更受欢迎）。例如，FreeBSD 项目称 64 位的 x86 架构为 `amd64`，而 Linux 和 macOS 则称之为 `x86_64`。

>
> ? 由于 AMD 在创造 64 位 ISA 上超越了英特尔，所以一些项目（比如 FreeBSD）把 x86 的 64 位版本称为 `amd64`。**但更被广泛接受的术语还是 x86\_64**。
>
>
>

对于 CPU ISA，“x86” 这个字符串是一种特殊的情况。你要知道，在从 32 位的 x86（`i386`）到 64 位的 x86（`x86_64`）的过渡过程中，CPU 制造商确保了 CPU 能够运行 32 位 *和* 64 位指令。所以，有时你可能会看到 `x86` 也被用来意指“这款产品只能运行在 64 位的计算机上，但如果该计算机能运行 32 位指令，那么你也可以在它上面运行 32 位的用户软件”。

这种 x86 的模糊性——也就是诸如能同时运行 32 位代码的 64 位处理器——其主要用于和存在于运行在 64 位处理器上的，但是允许用户运行 32 位软件的操作系统，Windows 就通过这种被称作“兼容模式”的特性运用了这种方式。

汇总一下，由 AMD 和 英特尔 设计的 CPU 有两种架构：32 位的（`i386`）和 64 位的（`x86_84`）。

#### 其它的英特尔

`x86_64` ISA 实际上有几个子集。这些子集都是 64 位，但它们新添加了诸如 SIMD（<ruby> 单指令多数据 <rt>  Single Instruction Multiple Data </rt></ruby>）指令等功能。

* `x86_64-v1`：这是大多数人都熟知的基础 `x86_64` ISA。当人们谈论 `x86_64` 时，他们通常指的就是 `x86_64-v1` ISA。
* `x86_64-v2`：此版本新增了更多如 SSE3（<ruby> 流式 SIMD 扩展版本 3 <rt>  Streaming SIMD Extensions 3 </rt></ruby>）之类的指令扩展。
* `x86_64-v3`：除了基础指令外，还新增了像 AVX（<ruby> 高级矢量扩展 <rt>  Advance Vector eXtensions </rt></ruby>）和 AVX2 等指令。这些指令可以**使用高达 256 位宽的 CPU 寄存器**！如果你能够有效利用它们，就能大规模并行处理计算任务。
* `x86_64-v4`：这个版本在 `x86_64-v3` ISA 的基础上，迭代了更多的 SIMD 指令扩展，比如 AVX256 和 AVX512。其中，AVX512 可以**使用高达 512 位宽的 CPU 寄存器**！

### ARM

ARM 不仅是一家为 CPU ISA 制定规范的公司，它也设计并授权给其他厂商使用其 CPU 内核，甚至允许其他公司使用 ARM CPU ISA 设计自己的 CPU 内核。（最后那句话听起来就像是个 SQL 查询似的！）

你可能因为如树莓派这类的 <ruby> 单板计算机 <rt>  Single Board Computer </rt></ruby>）（SBC）听说过 ARM。但其实 ARM 的 CPU 还广泛应用于手机中。最近，苹果从使用 `x86_64` 处理器转向了在其笔记本和台式机产品中使用自家设计的 ARM 处理器。

就像任一种 CPU 架构一样，ARM 基于内存总线宽度也有两个子集。

官方认定的 32 位和 64 位 ARM 架构的名称分别是 `AArch32` 和 `AArch64`。这里的 `AArch` 字符串代表 “<ruby> Arm 架构 <rt>  Arm Architecture </rt></ruby>”。这些是 CPU 执行指令时可切换的**模式**。

实际符合 ARM 的 CPU ISA 的指令规范被命名为 `ARMvX`，其中 `X` 是规范版本的代表数字。目前为止，已经有九个主要的规范版本。规范 `ARMv1` 到 `ARMv7` 定义了适用于 32 位 CPU 的架构，而 `ARMv8` 和 `ARMv9` 是适用于 64 位 ARM CPU 的规范。（[更多信息在此](https://en.wikipedia.org/wiki/ARM_architecture_family#Cores)）

>
> ? 每个 ARM CPU 规范又有进一步的子规范。例如 ARMv8，我们有 ARMv8-R、ARMv8-A、ARMv8.1-A、ARMv8.2-A、ARMv8.3-A、ARMv8.4-A、ARMv8.5-A、ARMv8.6-A、ARMv8.7-A、ARMv8.8-A 和 ARMv8.9-A。 其中 -A 表示“应用核心”，-R 表示“实时核心”。
>
>
>

你可能会觉得困惑，为什么在 `AArch64` 正式被 ARM 认定为 64 位 ARM 架构后，有些人仍然称其为 `arm64`。原因主要有两点：

1. `arm64` 这个名称在 ARM 决定采用 `AArch64` 之前就已经广为人知了。（ARM 的一些官方文档也将 64 位的 ARM 架构称为 `arm64`…… ?）
2. [Linus Torvalds 对 `AArch64` 这个名称表示不满。](https://lore.kernel.org/lkml/CA+55aFxL6uEre-c=JrhPfts=7BGmhb2Js1c2ZGkTH8F=+rEWDg@mail.gmail.com/) 因此，Linux 的代码库主要将 `AArch64` 称为 `arm64`。然而，当你在系统中运行 `uname -m` 时，输出仍然是 `aarch64`。

因此，对于 32 位 ARM CPU，你应该寻找 `AArch32` 这个字符串，但有时也可能是 `arm` 或 `armv7`。相似的，对于 64 位 ARM CPU，你应该找 `AArch64` 这个字符串，但有时也可能会是 `arm64`、`ARMv8` 或 `ARMv9`。

### RISC-V

RISC-V 是 CPU 指令集架构（ISA）的一个开源规范。\*\*但这并不意味着 CPU 自身是开源的！\*\*这有点像以太网的情况。以太网规范是开源的，但你需付费购买网线、路由器和交换器。同样，RISC-V CPU 也要花钱购买。 ?

尽管如此，这并没有阻止人们创建并在开源许可下提供免费获取（**设计上的获取**，并非物理核心/SoC）的 RISC-V 核心。[这是其中的一项尝试](https://github.com/openhwgroup)。

>
> ? 总结一下：如果你在寻找运行于 RISC-V 消费级 CPU 上的软件，你应该寻找 “**rv64gc**” 这一字符串。这是许多 Linux 发行版所公认的。
>
>
>

像所有 CPU 架构一样，RISC-V 拥有 32 位和 64 位 CPU 架构。但由于 RISC-V 是非常新的描述 CPU ISA 的方式，大部分主流消费端或客户端的 CPU 核心一般都是 64 位的。大部分 32 位的设计都是微控制器，用于非常具体的用例。

它们的区别在于 CPU 的扩展。被称为 RISC-V CPU 的最低要求即实现“<ruby> 基本整数指令集 <rt>  Base Integer Instruction Set </rt></ruby>”（`rv64i`）。

下表列出了一些扩展及其描述：

| 扩展名称 | 描述 |
| --- | --- |
| `rv64i` | 64 位基本整数指令集（**必须的**） |
| `m` | 乘法和除法指令 |
| `a` | 原子指令 |
| `f` | 单精度浮点指令 |
| `d` | 双精度浮点指令 |
| `g` | 别名；一组运行**通用**操作系统所需的扩展集（包括 `imafd`） |
| `c` | 压缩指令 |

在 `rv64i` 这一字符串中，`rv` 表示 RISC-V，`64` 指的是 64 位 CPU 架构，而 `i` 指的是**强制性的**基本整数指令集扩展。 `rv64i` 之所以是一体的，因为即使 `i` 被认为是一种“扩展”，**但它是必须的**。

约定俗成的，扩展名称按上述特定顺序排列。因此，`rv64g` 展开为 `rv64imafd`，而不是 `rv64adfim`。

>
> ? 还有其他一些像 Zicsr 和 Zifencei 这样的扩展，它们位于 `d` 和 `g` 扩展之间，但我故意不列出，以避免令你感到害怕。
>
>
> 因此，严格说来，（在写这篇文章的时候）`rv64g` 实际上是 `rv64imafdZicsrZifencei`。**恶魔般的笑声**
>
>
>

### PowerPC

PowerPC 曾是苹果、IBM 以及，摩托罗拉早期合作时代的一种流行 CPU 架构。在苹果转向英特尔的 x86 架构之前，它一直被应用于苹果的全部消费品产品线。

最初，PowerPC 采取的是大端字节序的内存排序。后来随着 64 位架构的引入，增加了使用小端字节排序的选项。这么做的目的是为了与英特尔的内存排序保持兼容（以防止软件错误），因为英特尔自始至终都一直采用的是小端字节序。有关字节序的更多内容，我可以唠叨很久，不过你可以通过阅读 [这篇 Mozilla 的文档](https://developer.mozilla.org/en-US/docs/Glossary/Endianness) 来了解更多。

由于字节序在此也起到了一定的作用，PowerPC 共有三种架构：

* `powerpc`：表示 32 位的 PowerPC 架构。
* `ppc64`：表示拥有**大端字节序内存排序**的 64 位 PowerPC 架构。
* `ppc64le`：表示拥有**小端字节序内存排序**的 64 位 PowerPC 架构。

目前，**`ppc64le` 是被广泛使用的架构**。

### 结论

市面上有各种各样的 CPU 架构。对于每一种架构，都有 32 位和 64 位的子集。在现有的 CPU 中，我们可以找到 x86、ARM、RISC-V 和 PowerPC 等架构。

其中，x86 是最广泛和易于获取的 CPU 架构，因为英特尔和 AMD 都采取了这种架构。此外，ARM 提供的产品几乎在手机和易于获取的单板计算机中被独占使用。

RISC-V 正在努力使硬件更广泛地被使用。我就有一款带有 RISC-V CPU 的单板计算机。 ?

而 PowerPC 主要用于服务器，至少当前如此。

*（题图：MJ/634ac7ea-b344-443a-b041-3bb3b31a956f）*

---

via: <https://itsfoss.com/arm-aarch64-x86_64/>

作者：[Pratham Patel](https://itsfoss.com/author/pratham/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1135 Netflix 准备寄出最后的 DVD

Summary:
? Netflix 准备寄出最后的 DVD
? 英特尔因付费阻止 AMD 进入市场而被罚 4 亿美元
? 微软为其 AI 数据中心寻找核电专家
»
»

“老王点评：我有个担心，要是有一天 AI 能控制自己所需要的能源供给怎么办。”

——供电设施增加一个机械倒计时断路器。。。只能人工手动复位操作的那种。。。如果没人，一段时间后自动断开供电。。。

“英特尔因付费阻止 AMD 进入市场而被罚 4 亿美元”

——当地菜市场如果不加入某些协会，就会频繁收假币/遭小偷/遇无赖/被投诉/涨房租。。。所以商品涨价都是统一时间/幅度。。。

“老王点评：一个时代的结束象征。你有多久没有看过 DVD 碟片了？”

——即使是B站最高码率，看一些动作片也会卡/掉帧。。。

——碰到勒索病毒的时候，你就会怀念只读的DVD刻录盘了。。。

我还收藏着几张动画BD和CD，虽然我没有播放机。到时打算再买一些。

# 硬核观察 #1135 Netflix 准备寄出最后的 DVD

### Netflix 准备寄出最后的 DVD

Netflix 成立于 1997 年，最初的主业就是以邮寄方式出租 DVD 和蓝光碟片。在高峰期，它每周处理 120 万张 DVD，雇佣了 50 名员工。如今它只剩下 6 名员工筛选 DVD 碟片，而这一切也将在周五结束，停止邮寄其标志性的红色包裹。在鼎盛期，Netflix 是邮政服务的第五大客户，经营着 58 家邮寄设施，128 个运输车队，能为其 98.5% 的客户提供一日送达服务。这项业务仍然有 100 万客户，为了缓和忠诚客户的强烈反应，Netflix 允许客户保留最后租借的碟片。

>
> **[消息来源：Las Vegas Sun](https://lasvegassun.com/news/2023/sep/23/netflix-prepares-to-send-its-final-red-envelope/)**
>
>
>

>
> 老王点评：一个时代的结束象征。你有多久没有看过 DVD 碟片了？
>
>
>

### 英特尔因付费阻止 AMD 进入市场而被罚 4 亿美元

2009 年，欧盟就英特尔的反垄断行为开出了创纪录的 11.3 亿美元罚款。虽然英特尔的隐藏回扣等行为因缺乏伤害证据而在上诉中驳回，但欧盟委员会维持了英特尔向 PC 厂商付费以推迟或限制产品使用 AMD 处理器的指控，对其罚款 4 亿美元。具体而言，欧盟委员会举例说明，2002 年到 2005 年，英特尔向惠普付费要求其不要通过直销渠道向中小企业提供采用 AMD CPU 的电脑；英特尔付费给联想公司，要求其将 AMD 笔记本电脑的推出时间推迟六个月。英特尔没有对这一裁决提出异议，而欧盟委员会已经对被驳回的回扣部分提起了上诉。

>
> **[消息来源：Neo Win](https://www.neowin.net/news/eu-fines-intel-400-million-for-blocking-amds-market-access-through-payments-to-pc-makers/)**
>
>
>

>
> 老王点评：这竞争手段也是绝了。
>
>
>

### 微软为其 AI 数据中心寻找核电专家

微软正在招聘一名 “核技术首席项目经理”，负责“全球小型模块化反应堆（SMR）和微反应器能源战略的成熟和实施”，为微软云和人工智能所在的数据中心提供动力。SMR 是一种小型、模块化的核裂变发电厂，它可以由生产线制造，而且非常便于携带，可以放置在许多环境中。微反应器比 SMR 更小，甚至可以移动。据估计，为一个数据中心供电可能需要四个 SMR。

>
> **[消息来源：The Register](https://www.theregister.com/2023/09/25/microsoft_nuclear_energy_manager_job/)**
>
>
>

>
> 老王点评：我有个担心，要是有一天 AI 能控制自己所需要的能源供给怎么办。?
>
>
>


在 Linux 上用 Doxygen 生成源代码文档

Summary: Doxygen 是一款广泛使用的开源文档生成工具，它通过代码注释来生成文档。

能不能介绍一下说明文档中常用符号含义的规范?  类似jianshu.com/p/f5a89686ef3b这种,请问有没有主流或开源社区公认的规范?

Doxygen 是一款广泛使用的开源文档生成工具，它通过代码注释来生成文档。

# 在 Linux 上用 Doxygen 生成源代码文档

>
> Doxygen 是一款广泛使用的开源文档生成工具，它通过代码注释来生成文档。
>
>
>

在试着熟悉别人的代码时，你总希望他们留下的代码注释能对你理解代码有所帮助。同理，无论为了自己还是其他人，编写代码时写注释是好习惯。所有编程语言都有专门的注释语法，注释可以是一个单词、一行文字、甚至是一整段话。编译器或解释器处理源代码时会忽略注释。

注释不能完全取代文档，但是有方法可以使用注释来生成文档。[Doxygen](https://www.doxygen.n/) 是一个开源的文档生成工具，它能够根据代码注释生成 HTML 或 LaTeX 格式的文档。Doxygen 让你在不用额外操作的情况下创建代码结构概览。尽管 Doxygen 主要是用来给 C++ 生成文档的，它对其它语言同样适用，比如 C、Objective-C、 C#、 PHP、Java 和 Python 等。

要使用 Doxygen，你只需要在源代码中使用 Doxygen 能够识别的语法来写注释。Doxygen 会扫描源码文件，然后根据这些特殊注释生成 HTML 或 LaTeX 文档。下面的示例项目会演示如何使用 Doxygen 注释，以及文档是如通过注释生成出来的。示例代码可从 [GitHub](https://github.com/hANSIc99/DoxygenSample) 上获得，本文中也将引用 [Doxygen 手册及文档](https://www.doxygen.nl/manual/) 的相关章节。

### 在 Linux 上安装 Doxygen

在 Fedora 上可以通过软件包的形式安装 Doxygen。打开终端运行命令：

```
sudo dnf install doxygen

```

在基于 Debian 的操作系统上，可以通过以下命令来安装：

```
sudo apt-get install doxygen

```

### 使用

安装完 Doxygen 后，你需要在项目中按 Doxygen 可以识别的格式来注释代码，还要提供一个 Doxyfile 配置文件来控制 Doxygen 的一些行为。

注意：如果你用的是 GitHub 上的示例项目，你可以忽略下面一步。

如果 Doxyfile 文件不存在，你可以用 Doxygen 生成一个标准 Doxyfile 模板文件。切换到项目根目录下，运行：

```
doxygen -g

```

参数 `-g` 表示 <ruby> 生成 <rt>  generate </rt></ruby>。现在应该会出现一个名为 `Doxyfile` 的新文件。通过命令调用 Doxygen：

```
doxygen

```

现在应该能会有两个新文件夹：

* `html/`
* `latex/`

默认情况下，Doxygen 会同时输出 LaTeX 和 HTML 格式的文档。本文主要关注 HTML 文档。你可以在 Doxygen 官方文档的**入门**小节中找到关于 LaTeX 格式输出的更多信息。

双击 `html/index.html` 打开 HTML 文件。用空的配置文件生成的文档如下图：

现在我们试着修改 `Doxyfile` 文件，并在源代码中添加特殊注释。

### Doxyfile 文件

在 `Doxyfile` 文件中可以定义大量的可调选项，本文通过介绍示例项目的 `Doxyfile` 文件我只能覆盖其中很小的子集。

#### 第 35 行：项目名称

你可以在这里指定项目名称，它最终会显示在<ruby> 页眉 <rt>  header </rt></ruby>和浏览器标签上。

```
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
# double-quotes, unless you are using Doxywizard) that should identify the
# project for which the documentation is generated. This name is used in the
# title of most generated pages and in a few other places.
# The default value is: My Project.

PROJECT_NAME           = "My Project"

```

#### 第 47 行：项目简介

项目简介会以略小的字号显示在页眉上。

```
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF          = "An example of using Doxygen in C++"

```

#### 第 926 行：包含子目录

允许 Doxygen 查找源代码和文档文件时递归遍历子目录。

```
# The RECURSIVE tag can be used to specify whether or not subdirectories should
# be searched for input files as well.
# The default value is: NO.

RECURSIVE = YES

```

#### 第 1769 行：禁用 LaTeX 输出

如果你只想生成 HTML 文档，可以通过这个开关禁用 LaTeX 输出。

```
# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.

# The default value is: YES.

GENERATE_LATEX = NO

```

修改完成后，你可以再次运行 Doxygen 来检验修改是否生效了。可以在调用 Doxygen 时使用 `-x` 选项来查看 `Doxyfile` 文件的变更项：

通过调用 `diff` 命令，Doxygen 仅显示当前 Doxyfile 文件和模板文件的差异。

### 特殊注释

Doxygen 通过扫描源代码文件中的特殊注释和关键字来生成 HTML 文档。示例项目中的 ByteStream 类的头文件可以很好地解释特殊注释的用法。

下面用构造函数和析构函数作为示例：

```
/*! @brief Constructor which takes an external buffer to operate on
*
* The specified buffer already exist.
* Memory and size can be accessed by buffer() and size().
*
* @param[in] pBuf Pointer to existing buffer
* @param[in] size Size of the existing buffer
*/

ByteStream(char* pBuf, size_t size) noexcept;

```

特殊注释块有不同的格式风格。我倾向于使用 `/*!` 开头（Qt 风格），每行前添加 `*`，以 `*/` 结束注释块。你可以参考 Doxygen 手册的*文档化代码*小节，以大致了解不同的风格选项。

Doxygen 注释分两个部分：简要描述和详细描述。它们都是可选的。在上面的例子中的注释块是对紧跟其后的构造函数声明的描述。在 `@brief` 之后的文本会显示在类概览小节中：

<img src="content_image/album_202309_26_103309cv5pzl1o6k155j0j.png" alt="A screenshot of the C++ example of using Doxygen showing the Byte Stream Class Reference. The categories in the list are public member functions, writing (operators for writing to the stream), and reading (operators for reading from the stream)" title="A screenshot of the C++ example of using Doxygen showing the Byte Stream Class Reference. The categories in the list are public member functions, writing (operators for writing to the stream), and reading (operators for reading from the stream)">

在空行（空行是段落分隔符）之后是构造函数的实际文档。用 `@param[in/out]` 关键字标注传递给构造函数的参数，Doxygen 基于此生成参数列表：

值得注意的是 Doxygen 为 `buffer()` 和 `size()` 方法自动生成了链接。相反，Doxygen 忽略了析构函数前的注释，因为它并没有使用特殊注释：

```
// Destructor
~ByteStream();

```

现在你已经看到 Doxygen 的绝大部分功能了。通过使用一种稍微改良的注释格式，让 Doxygen 能够识别它们。通过使用一些关键字，你甚至可以进一步控制格式化。在下一节中，我会进一步介绍 Doxygen 的其它特性。

### 其它特性

现在几乎所有的工作都可以通过对源代码注释的方式完成。通过一些微调，你可以轻松地优化 Doxygen 的输出。

#### Markdown 格式

为了进阶的格式化，Doxygen 支持 Markdown 和 HTML 命令。Markdown 速查表可以在 [这里](https://opensource.com/downloads/cheat-sheet-markdown) 下载到。

#### 项目主页

除了自定义页眉之外，`html/index.html` 几乎没有其它内容了。你可以通过使用关键字向其中添加一些有意义的内容。因为主页通常不是针对某个源代码文件的，你可以将要显示在主页的内容放到项目根目录下的一个单独文件中。示例项目中就是这样做的，其输出效果如下：

<img src="content_image/album_202309_26_103310v5uvrvn200c9rvrc.png" alt="The Doxygen Example Documentation field now contains headings and documentation: Introduction, Running the example, System requirements, and Building the code, with step by step examples and code snippets (all can be found in the example on GitHub)" title="The Doxygen Example Documentation field now contains headings and documentation: Introduction, Running the example, System requirements, and Building the code, with step by step examples and code snippets (all can be found in the example on GitHub)">

#### 自动链接生成

上面已将提到了，当你引用代码的其它部分时，Doxygen 会自动识别并生成相应链接。但要注意，这要求被引用部分也有文档才行。

更多信息可以在官方文档的*自动链接生成*中找到。

#### 分组

`ByteStream` 类<ruby> 重载 <rt>  overload </rt></ruby> 了的读写流操作符 （`<<` 和 `>>`）。在类的概览中可以发现操作符被分为读和写两组。分组是在 `ByteStream` 的头文件中定义的。

分组的语法以标记 `@{` 开始，以 `}@` 结束。在标记范围中的内容都属于这个分组。在 `ByteStream.h` 中的实现如下：

```
/** @name Writing
* Operators for writing to the stream
* @{
*/

(...)

/** @}
* @name Reading
* Operators for reading from the stream
* @{
*/

(...)

/** @} */

```

你可以在官方文档的*分组*中找到更多相关信息。

#### LLVM 支持

如果你用 [Clang](https://clang.llvm.org/) 构建项目的话，可以通过使用 `-Wdocumentation` 选项让 Clang 对特殊注释进行检查。想了解该特性的更多信息，可以参考 LLVM 用户手册和 Dmitri Gribenko 的展示报告，它们可以在 Clang 网站上找到。

### 谁在用 Doxygen

Doxygen 是在 1997 年首次发布的。尽管有些年头了，现在仍然有很多项目在使用 Doxygen。比如 NASA 的飞行软件框架 [F Prime](https://github.com/nasa/fprime)、图像处理库 [OpenCV](https://docs.opencv.org/4.5.5/index.html)、包管理器 [RPM](https://github.com/rpm-software-management/rpm)。你还可以在其它领域发现 Doxygen 语法标记的身影，比如内容管理平台 [Drupal](https://www.drupal.org/docs/develop/standards/api-documentation-and-comment-standards) 的文档标准中。

注意：Doxygen 输出的 HTML 文档风格类似于九十年代网页。并且它也难以描绘元编程和模板编程架构。在这些情况下，你应该选择 [Sphinx](https://opensource.com/article/18/11/building-custom-workflows-sphinx) 而不是 Doxygen。

*（题图：MJ/4d354094-397e-4ac5-a80d-25b9c736ede5）*

---

via: <https://opensource.com/article/22/5/document-source-code-doxygen-linux>

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

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


21 个专业 Linux 用户喜爱的实用终端快捷键

Summary: 掌握这些极致实用的快捷键，让你的 Linux 终端操作效率大幅提升。

Ctrl + C; Ctrl + Z   从DOS时代就这功能了。。。

掌握这些极致实用的快捷键，让你的 Linux 终端操作效率大幅提升。

# 21 个专业 Linux 用户喜爱的实用终端快捷键

>
> 掌握这些极致实用的快捷键，让你的 Linux 终端操作效率大幅提升。
>
>
>

学习 Linux 命令无疑是你的首要任务，但当你能熟练 [运用命令行](https://itsfoss.com/linux-terminal-basics/) 之后，有另一样东西值得你去关注。

**那就是终端快捷键！**

如果你不知道如何利用它们提升终端会话的效率，那你就无法真正理解它们的重要性。

在本教程中，我将为你详细讲解顶级的终端快捷键，并且举例说明它们的用法。

在我逐一解释快捷键之前，先来看一下这个备忘录，它对我将在本教程中讨论的内容进行了概览：

| 快捷键 | 功能描述 |
| --- | --- |
| `Ctrl + A` | 光标快速跳至行首。 |
| `Ctrl + E` | 光标快速跳至行尾。 |
| `Ctrl + U` | 删除光标至行首的所有内容。 |
| `Ctrl + K` | 删除光标至行尾的所有内容。 |
| `Ctrl + W` | 删除光标前的一个单词。 |
| `Ctrl + L` | 清空整个终端屏幕。 |
| `Ctrl + C` | 停止正在执行的进程或命令。 |
| `Ctrl + D` | 注销或退出终端。 |
| `Ctrl + Z` | 暂停正在执行的进程（之后可恢复执行）。 |
| `Ctrl + R` | 在命令历史中进行逆向搜索。 |
| 上箭头 `↑` | 从命令历史中显示先前的命令。 |
| 下箭头 `↓` | 从命令历史中显示后续的命令。 |
| `!!` | 重复执行最近的命令。 |
| `!n` | 重复执行命令历史中的第 n 条命令。 |
| `Tab` | 自动补全命令，文件名或目录名。 |
| 连续按 `Tab` 两次 | 列出所有可能的补全选项。 |
| `Ctrl + Shift + C` | 复制所选文本或命令。 |
| `Ctrl + Shift + V` | 粘贴已复制的文本或命令。 |
| `Ctrl + Shift + N` | 打开新的终端窗口。 |
| `Ctrl + Shift + T` | 在当前终端中打开新的选项卡。 |
| `Ctrl + Tab` 或 `Ctrl + PageDown` | 在终端的选项卡之间切换。 |

>
> ? 虽然我在这篇文章中用的是大写字母，但实际上我们不需要使用大写来输入它们。比如 `Ctrl+A`，意思是同时按下 `Ctrl` 键和 `A` 键，并不意味着需要同时按下 `Shift` 键和 `a` 键来输入大写的 `A`。
>
>
>

接下来，我们更详细地看看这些快捷键如何使用。

### 1、Ctrl + A：光标切换至行首

当你在终端中按下 `Ctrl + A` 组合键，光标就会迅速跳到命令的起始处。这个功能在你需要修改一条长命令序列起始部分的时候十分实用。

例如，在以下示例中，你可以看到无论光标处在何位置，只需按下 `Ctrl + A`，光标就会立刻跳转至行首：

### 2、Ctrl + E：光标切换至行尾

在使用终端的过程中，如果你想迅速跳到当前行的末尾，直接按下 `Ctrl + E` 组合键就可以了。

在下面的示例中，我使用了一段样本文本，并按下 `Ctrl + E` 来快速移动到行尾：

### 3、Ctrl + U：删除光标位置至行首的内容

有些时候，你可能需要删除从光标位置到行首的所有内容。

此时，你只需使用左箭头键将光标移动至你想要开始删除的位置，然后按下 `Ctrl + U` ：

>
> ? 在输完 `sudo` 命令输入密码时，不确定是否输入正确？没必要用退格键一路删除，只需简单地使用 `Ctrl+U` 快捷键重新开始输入密码即可。
>
>
>

### 4、Ctrl + K：从光标删除至行尾

如你所猜想，当你按下 `Ctrl + K` ，它会移除光标至行尾的所有内容（光标位置右侧的所有）。

使用这种快捷操作时，你先要把光标放在你想从那里开始删除的位置，然后按下 `Ctrl + K`，如下图展示的那样：

### 5、Ctrl + W：删除光标前的一个词

我日常常用该快捷键，因为我时常打错命令，需要删除命令的一部分，这个时候只需要简单地按 `Ctrl + W` 就可以了。

当你按下 `Ctrl + W` 键时，它只会删除光标前的一个词：

### 6、Ctrl + L：清理终端显示（或者理解为整理显示内容）

按下 `Ctrl + L` 并不会彻底地 [清空终端显示](https://itsfoss.com/clear-terminal-ubuntu/)，但它可以整理显示内容。如果你向上滚动，你还能找到之前的命令和执行记录。

它与 `clear` 命令有所不同。`clear` 命令会消除历史记录，而且你会在命令历史中找到 `clear` 命令的执行。

但是当你按下 `Ctrl + L` 时，它只是整理当前屏幕的显示内容，并不会出现在历史记录中，因为它本身并不是一条命令。

比如在这个示例中，我执行了历史命令，随后按下 `Ctrl + L` 键进行了屏幕清理：

### 7、Ctrl + C：终止当前进程/执行

有没有想要 [停止进行中的命令](https://itsfoss.com/stop-program-linux-terminal/)，却不知所措，最后只好关闭终端呢？解决办法其实很简单，按下 `Ctrl + C` 就行了。

当你按下这一组键时，它将发送 `SIGINT` 信号以终别过程。

例如，在这里，我结束了正在执行的命令进程：

最后，你会看到 `^C` 符号，表示你按下了 `Ctrl + C` 来中止当前执行。

但是，有些进程可能不会被 `Ctrl + C` 信号所中止，此时，你可以使用 Linux 中的其他 [中止信号](https://linuxhandbook.com/termination-signals/) 来终止。

>
> **[如何在 Linux 中使用 SIGINT 和其它中止信号](https://linuxhandbook.com/termination-signals/)**
>
>
>

### 8、Ctrl + D：退出登录或者退出终端

你总是可以使用 `exit` 命令来关闭 Shell 会话和终端。你也可以选择使用 `Ctrl+D` 快捷键。

当你按 `Ctrl + D` 时，如果你正在 SSH 中使用，它会结束会话，如果再次按下，它将直接关闭终端：

### 9、Ctrl + Z：暂停当前进程

总是杀掉命令并不是个好主意，因为你有可能需要重新启动过程。

这种情况下，你可以按 `Ctrl + Z` 来暂停当前的进程，然后可以从之前暂停的地方继续。

例如，在这里，我暂停了更新进程：

你想更多地了解 [如何暂停命令及如何恢复它们](https://linuxhandbook.com/suspend-resume-process/) 吗？这里有一篇为此准备的详细指南：

>
> **[如何在 Linux 中暂停并稍后恢复一个进程](https://linuxhandbook.com/content/images/size/w256h256/2021/08/Linux-Handbook-New-Logo.png)**
>
>
>

### 10、Ctrl + R：搜索命令历史

当你按 `Ctrl + R` 时，它会打开一个搜索模式的提示，从中你可以键入命令的任何部分，并将找到匹配你输入的字符串的命令。

一旦你找到那个命令，只需按 `Enter` 键，它就会执行那个命令。

例如，在这里，我搜索了 `update`，返回的结果是在 Ubuntu 中的仓库更新命令（`sudo apt update`）：

>
> ? 如果你对历史记录中的任何建议都不满意，可以使用 `Ctrl+C` 退出搜索模式。
>
>
>

### 11、上箭头：呈现命令历史中的上一条

当你按下上箭头 `↑` 键时，命令历史中之前执行过的命令将会按次序逐一显示：

### 12、下箭头：呈现命令历史中的下一条

当你按下上箭头 `↑` 键时，它会展示先前的命令，但在有些情况下，你可能无意间点击了多次，这时你希望展示之前已显示过的命令。

这个时候，你可以使用下箭头 `↓` 键。

在以下图示中，我首先多次按下了上箭头键，然后为了返回到先前显示的命令，我按下了下箭头键：

>
> ? `Page Up` 和 `Page Down` 键也可以用于同样的目的。
>
>
>

### 13、!!：重复最后一条命令

有时候，你可能需要重复执行一次或多次最近的命令，此时你只需要输入 `!!`（两个感叹号）即可：

```
!!

```

比如，在这里，我执行了一个 `echo` 命令，随后我用了 `!!` 来重复执行相同的命令：

但是，这个快捷键最常用且最实用的场景是，当你忘记给命令加上 `sudo`。这样你无需重新输入整个命令，只需使用 `sudo !!` 就可以了

>
> ? 一个类似的键盘快捷键是 `Alt+.`，这个快捷键会给你提供上一条命令的最后一个参数或部分。假设你刚使用了 `ls /etc/apt/sources.list.d`，现在你想进入这个目录。只需输入 `cd` 然后使用 `Alt+.` 就可以。这就如同你输入 `cd /etc/apt/sources.list.d` 一样。
>
>
>

### 14、!n：重播历史中的第 n 条命令

你可以通过执行 Bash 的 `history` 命令来查看命令历史，每个命令都会有一个相应的索引号：

```
history

```

现在，假设我想要执行倒数第二个 `echo` 命令，我会这样使用：

```
!1998

```

### 15、Tab：命令自动补全

我认为这应是终端快捷键列表的首个条目。

在输入长命令时，你可以输入一部分，然后点击 `Tab` 键，它将为你进行自动补全。

例如，这里，我通过 `Tab` 键来自动完成我的脚本执行：

### 16、Tab（连击两次）：列出所有可能的自动补全

如果按 `Tab` 键无效果，那可能是因为当前输入的命令存在多种可能。

在这种场合，你可以连击两次 `Tab` 键，以列出所有可能的补全选项：

>
> ✋ 接下来的一些快捷键取决于终端的模拟器。虽然这些快捷键应该适用于大多数的终端应用，但不能完全确定。
>
>
>

### 17、Ctrl + Shift + C：复制所选文本

[复制终端中的文本](https://itsfoss.com/copy-paste-linux-terminal/)，你需要先用鼠标选取文本，然后按下 `Ctrl + Shift + C` 来复制选中的内容：

### 18、Ctrl + Shift + V：粘贴已复制的文本

当你通过选取和按下 `Ctrl + Shift + C` 复制了文本后，你可以通过按下 `Ctrl + Shift + V` 在任何地方粘贴：

### 19、Ctrl + Shift + N：打开新的终端窗口

当你按下 `Ctrl + Shift + N` 时，会打开一个新的终端窗口，且新窗口的工作目录与之前那个窗口内的工作目录相同：

### 20、Ctrl + Shift + T：开启新的终端标签页

就像使用网络浏览器一样，终端也支持开启多个标签页来进行不同的任务。要开启一个新的标签页，只需按下 `Ctrl + Shift + T` 就可以了：

### 21、Ctrl + Tab 或 Ctrl + PageDown：切换标签页

如果你按照之前的方式创建了多个标签页，你或许需要在它们之间进行切换。

为此，你可以使用 `Ctrl + Tab` 或 `Ctrl + PageDown`：

>
> ? 这可能更多是 Ubuntu 的功能。你可以通过 [按下 Ctrl+Alt+T 键来打开新的终端窗口](https://itsfoss.com/open-terminal-ubuntu/)。
>
>
>

### 接下来：必知的 Linux 命令

你喜欢这个“必备”键盘快捷键列表吗？可能你会对 [最基本却必备的 Linux 命令列表](https://itsfoss.com/essential-ubuntu-commands/) 也感兴趣：

>
> **[31 个最基本却必备的 Ubuntu Linux 命令](https://itsfoss.com/essential-ubuntu-commands/)**
>
>
>

我明白起初你可能不容易记住所有这些终端快捷键。但通过不断实践，它们会逐渐深入你的肌肉记忆。

另外，你有一些没有在这里列出的钟爱的快捷键吗？欢迎在评论区分享。

*（题图：MJ/992e3559-4ed7-4529-9aea-85d52484cccf）*

---

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

作者：[Sagar Sharma](https://itsfoss.com/author/sagar/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1136 约翰·卡马克认为人工智能部分归功于他的《雷神之锤》

Summary:
? 约翰·卡马克认为人工智能部分归功于他的《雷神之锤》
? 倡议 Apache 基金会结束 Apache Open Office
? 入侵索尼的勒索软件组织称自己严格遵守 GDPR 运营
»
»

# 硬核观察 #1136 约翰·卡马克认为人工智能部分归功于他的《雷神之锤》

### 约翰·卡马克认为人工智能部分归功于他的《雷神之锤》

给世界带来第一人称射击游戏《DOOM》的传奇软件开发者 <ruby> 约翰·卡马克 <rt>  John Carmack </rt></ruby> 在一次访谈中说，人工智能之所以能发展到今天，可能要归功于他的开创性游戏《雷神之锤》，因为它引发了对 GPU 的需求。他认为英伟达的黄仁勋认识到了 GPU 处理其他计算任务的潜力，从而引发了当前的人工智能热潮，但他仍为自己的贡献感到自豪。此外，他认为，<ruby> 通用人工智能 <rt>  artificial general intelligence </rt></ruby>（AGI）很可能在 2030 年左右与公众见面，他成立了一家研究 AGI 的初创公司 Keen。

>
> **[消息来源：The Register](https://www.theregister.com/2023/09/26/john_carmack_agi/)**
>
>
>

>
> 老王点评：所以说，游戏拯救世界。不过要是按这个意义说，以太坊这种需要 GPU 的区块链也是人工智能的重要推手啊。
>
>
>

### 倡议 Apache 基金会结束 Apache Open Office

有开发者号召社区向 Apache 基金会写信，敦促他们将 Apache Open Office 项目归档。在 2014 年之后，被捐赠给 Apache 基金会的 Open Office 就没有任何实质更新。偶尔能看到有一些错误修复和字典更新。虽然看起来它的代码库还有变化，但是你会发现这些提交大多是为代码添加一些空行（或许是为了让代码好看一些？）。为防止你不会写，他还给出了一份敦促 Apache 基金会的参考邮件。

>
> **[消息来源：Rocket 9 Labs](https://rocket9labs.com/post/its-time-to-let-go-apache-software-foundation/)**
>
>
>

>
> 老王点评：Open Office 简直就是 Apache 基金会的笑话。
>
>
>

### 入侵索尼的勒索软件组织称自己严格遵守 GDPR 运营

这个名为 [Ransomed.vc](http://ransomed.vc/) 的组织在网上宣称已经成功入侵了索尼的所有系统，并称由于索尼不想支付赎金，它将会出售数据。该组织已经发布了一些黑客证据数据，尽管这些数据“从表面上看并不是特别有说服力”。据说，[Ransomed.vc](http://ransomed.vc/) 既是勒索软件运营商，也是勒索软件即服务组织。它声称自己是 “解决公司内部数据安全漏洞的安全解决方案”，并 “严格遵守 GDPR 和数据隐私法” 运营。该组织称：“如果没有收到付款，我们有义务向 GDPR 机构报告违反《数据隐私法》的行为。”

>
> **[消息来源：Video Gameschronicle](https://www.videogameschronicle.com/news/a-ransomware-group-claims-to-have-beached-all-sony-systems/)**
>
>
>

>
> 老王点评：居然这么理直气壮，还要报告到 GDPR。我不禁揉了揉眼睛。
>
>
>


使用 Just Perfection 扩展定制 GNOME

太折腾了

坐等扩展失效

来自116.162.3.76的 Chrome Mobile 99.0|Android 10 用户

# 使用 Just Perfection 扩展定制 GNOME

>
> 利用 Just Perfection GNOME 扩展为你的 Linux 桌面带来全新的个性化定制体验。
>
>
>

GNOME 在 Linux 界中备受喜爱，是 [最热门的桌面环境](https://itsfoss.com/best-linux-desktop-environments/) 之一。

然而，讨论到 GNOME 的可定制程度，你会发现与 KDE 相比，可供选择的选项相对较少。

这并不意味着我们无法 [定制 GNOME](https://itsfoss.com/gnome-tricks-ubuntu/)。图形化的界面工具 <ruby>   GNOME 调整  <rt>  GNOME Tweaks </rt></ruby> 让你能轻松改变一些常规配置。而对于更深层次的设置更改，可以使用 [dconf 编辑器](https://wiki.gnome.org/Apps/DconfEditor)，不过这对许多人可能略显复杂。

在此，我想向你推荐一款名叫 **Just Perfection** 的 GNOME 扩展，它帮助你一次性修改桌面的多种设置。

### Just Perfection，一款全能扩展 ?

如果 Just Perfection 扩展的名称是 “Do it all” 或许会更符合其特性。我在后续的功能介绍中会更详细地解释此扩展的用途。

通过使用这个扩展，你可以进行诸如设置 <ruby> 停靠区 <rt>  Dock </rt></ruby>、通知面板、图标，以及调整与 GNOME 交互方式等一系列的微调。

Just Perfection 这款工具有以下一些核心特性：

* 提供 4 个预设的用户配置文件
* 可以启用/禁用 `super` 键、动画、面板、时钟、日历等功能
* 可以启用/禁用应用菜单、面板通知、电源图标及活动状态的图标显示
* 可以个性化调整面板、通知栏、OSD 位置（音量/亮度弹出）、窗口尺寸，以及在按下 `Alt + Tab` 时的应用程序预览
* 可以调整工作空间预览的行为、是否展示工作空间切换器、应用网格的打开方式等等

这些功能听起来确实令人期待，对吗？

#### Just Perfection 的安装方法

Linux 上安装 GNOME 扩展有 [多种途径](https://itsfoss.com/gnome-shell-extensions/)。其中一个是通过网页浏览器来进行安装。

若要使用网页浏览器进行安装，请访问其官方下载页面：

>
> **[获取 Just Perfection](https://extensions.gnome.org/extension/3843/just-perfection/)**
>
>
>

在完成安装之后，你可以在下载页面看到一个设置图标，点击它，就会弹出一个对话框，你可以在其中调整 Just Perfection 扩展的设置：

### Just Perfection GNOME 扩展的使用方法

使用这款扩展最方便的方法，就是选择四个预先配置好的用户配置之一。

虽然这一步是可选的，我还是建议启用“覆盖 Shell 主题”的选项，这样可以让你的桌面更具视觉吸引力：

一旦做了这个操作，它会自动切换到 `Custom` 用户配置，同时使停靠区背景变为透明。

关于各个用户配置文件的简述：

* `Default`：默认文件，不会做出任何改变，但如果你启用了覆盖 Shell 的选项，它会稍微缩小面板和停靠区的尺寸。
* `Custom`：在启用且覆盖 Shell 选项后生效，可将停靠区背景变为透明。
* `Minimal`：减少停靠区和面板的尺寸，增加更多的屏幕工作区域。
* `Super Minimal`：移除停靠区和面板，给予你一个干净的视野和最大的屏幕工作空间。

以下是在切换这些用户配置文件时的预期效果情况：

现在，你可以启用或禁用各种选项，来定制你理想的桌面环境。

### 使用 Just Perfection 创造简洁的桌面环境

在本节，我将展示如何实现一个由 Linux Mint 的 Cinnamon 桌面启发的简约桌面体验，其视觉效果如下：

下图是在切换工作空间时的显示效果：

为了使我的桌面看起来如上所示的简约，我进行了以下设定：

* 透明的停靠区定位于右侧（可在系统菜单中设置）
* 将面板位置调整到底部
* 从面板中移除 <ruby> 应用 <rt>  Application </rt></ruby> 菜单及 <ruby> 活动 <rt>  Activities </rt></ruby>
* 将时钟调整到左下角
* 设置通知弹出位置为左下角
* 启用工作区切换器
* 增大工作区概览面板的半径

不过这些步骤可根据个人喜好进行跳过。

#### 1、将透明的停靠区定位在右侧

要实现透明的停靠区，你需要在 “<ruby> 用户配置 <rt>  Profile </rt></ruby>” 菜单中选取 `Custom` 配置文件，并启用 “<ruby> Shell 主题 <rt>  Shell Theme </rt></ruby>” 选项即可：

如果你使用的是 Ubuntu 的最新版本，你可以在系统菜单中找到调整停靠区位置的选项。

首先，在系统菜单中打开设置，然后进入 “<ruby> 外观 <rt>  Appearance </rt></ruby>” 菜单。在 “<ruby> 停靠区 <rt>  Dock </rt></ruby>” 部分，你会找到 “<ruby> 在屏幕上的位置 <rt>  Position on screen </rt></ruby>” 选项。

在这里选择 “<ruby> 右侧 <rt>  Right </rt></ruby>” 即可：

对于使用较旧 GNOME 版本的用户，你可能无法找到这个菜单。

然而，不必担心，你可以 [安装名为 Dash to Dock 的扩展](https://news.itsfoss.com/dash-to-dock-gnome-40/) 来获得相同的效果。

在此，你需进行以下两个设置：

* 将屏幕上的位置选项设为 “<ruby> 右侧 <rt>  Right </rt></ruby>”
* 如果已经选中了面板模式，取消选中即可

#### 2、将面板定位至底部

要将面板定位至底部，前往 “<ruby> 定制 <rt>  Customize </rt></ruby>” 菜单，找到 “<ruby> 面板位置 <rt>  Panel Position </rt></ruby>” 选项。

双击这个选项并选择 “<ruby> 底部 <rt>  Bottom </rt></ruby>”：

#### 3、将时钟位置设定在左下角

过去的六个月里我一直在以此方式使用时钟，这对我的工作流程帮助很大。简单说，你会更频繁地看时钟，以此更快地对时间有所感触。

这也让桌面看起来更好！

要更改时钟位置，进入 “定制” 菜单，然后找到 “<ruby> 时钟菜单位置 <rt>  Clock Menu Position </rt></ruby>” 选项，选择 “<ruby> 左侧 <rt>  Left </rt></ruby>”：

#### 4、移除应用菜单和活动按钮

我注意到用户中鲜有人使用这两个选项，因此移除它们不失为一种方式，这样可以使界面看上去更清晰简洁。

要达到目的，你需要前往 “<ruby> 视觉 <rt>  Visibility </rt></ruby>” 菜单，然后取消以下两个选项：

* 活动按钮
* 应用菜单

#### 5、将通知弹窗定位至右下角

因为面板自身已经被移动到底部，所以（至少对我来说）将弹窗放在顶部毫无意义。而且，相比从顶部，从底部阅读信息要更加方便。

为此，你需要做以下两步：

* 前往 “定制” 菜单
* 在 “<ruby> 提示栏位置 <rt>  Notification Banner Position </rt></ruby>` 中选择 “<ruby> 底部末端 <rt>  Bottom End </rt></ruby>”。

#### 6、启用工作区切换器

当你在预览多个工作区的活动时，工作区切换器可以显示每个工作区的预览。

可能有些混淆？启用后的样子如下：

这样，你只需要按下 `super` 键，就可以清楚地查看在每个工作区中发生的事情。

当然，你同样可以通过（按两下 `super` 键）打开系统菜单来获得相同的视角，但为何要浪费一次按键并打开系统菜单，而不是在预览窗口中就实现呢？

要启用这个功能，需要以下三步：

* 前往 “<ruby> 行为 <rt>  Behavior </rt></ruby>” 菜单并打开 “<ruby> 始终显示工作区切换器 <rt>  Always Show Workspace Switcher </rt></ruby>”
* 进入 “<ruby> 定制 <rt>  Customize </rt></ruby>” 菜单
* 为 “<ruby> 工作区切换器大小 <rt>  Workspace Switcher Size </rt></ruby>” 选择 `11%`

我增加工作区切换器大小的原因是，我觉得默认的视图尺寸相对较小。

#### 7、增大工作区概览面板的圆角半径

我非常喜欢圆角设计，尤其是当它应用在工作区概览面板上时，当壁纸与设置相得益彰时尤为如此。

这就是应用上述设置后的效果：

要增加工作区概览面板圆角的半径，你需要：

* 前往 “定制” 菜单
* 在 “<ruby> 工作区背景圆角尺寸 <rt>  Workspace Background Corner Size </rt></ruby>” 中选择 `60px` （这是最大的设置值）

### 关于 GNOME 更深层次的自定义

如果你是 Ubuntu 的新手，那么我们有一份详细的指南，可以带你熟悉 [如何自定义 GNOME](https://itsfoss.com/gnome-tricks-ubuntu/)：

>
> **[如何自定义 GNOME](https://itsfoss.com/gnome-tricks-ubuntu/)**
>
>
>

下面会演示如何使用 GNOME Tweak 工具来提升 GNOME 的使用感受：

>
> **[在 Ubuntu 等 Linux 下安装和使用 GNOME 调整工具](https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png)**
>
>
>

我希望这篇指南能对你有所帮助。

*（题图：MJ/a7937194-0bf3-4626-99b6-4fbba1790314）*

---

via: <https://itsfoss.com/just-perfection-gnome-extension/>

作者：[Sagar Sharma](https://itsfoss.com/author/sagar/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lct/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


在 Windows 上安装 VirtualBox

# 在 Windows 上安装 VirtualBox

>
> 简单易学的指南，帮助你在 Windows 上安装 Oracle VirtualBox，以便在虚拟机中安装 Linux。
>
>
>

VirtualBox 是 [最好的虚拟化软件](/article-15911-1.html) 之一。

如果你想 [使用 Windows 上的 VirtualBox，在虚拟机中安装 Linux](/article-15183-1.html)，第一步是安装 VirtualBox 应用本身。

我们已经介绍了 [在 Ubuntu 上安装 VirtualBox](/article-11282-1.html) 的教程。让我重点介绍 Windows 系统的步骤。

对于最新的 Windows 10 或 11 及更早版本，步骤将相同。在 Windows 上安装 Oracle VirtualBox 的两种简单方法：

1. 下载 Windows 版安装程序并按照屏幕上的说明进行操作
2. 使用 winget 工具

### 1、使用 Windows 安装程序

要开始使用，请前往 [VirtualBox 的官方下载页面](https://www.virtualbox.org/wiki/Downloads)。单击 “**Windows host**” 选项下载 .exe 安装程序。

下载安装程序（.exe）文件后，启动它后将执行以下操作：

安装指导允许你选择安装位置。你应该坚持使用 C: 驱动器上的默认设置，以确保安装 VirtualBox 所需的所有内容，使其按预期工作。

安装过程包括设置虚拟网络接口。因此，你的网络此时可能会被重置。确保安装时没有连接到任何重要的东西。

在对网络功能进行重整的同时，还需要处理一些依赖关系。

需要安装 Python 核心包才能使 Python 绑定正常工作。如果你不想使用 Python 脚本控制虚拟机，则不一定需要安装它。

但是，如果你认为将来可能需要它们，则应该将其与它一起安装。

现在，最终的安装过程将根据你上面的偏好开始，并且它将向你提供在关闭安装程序时启动 VirtualBox 的选项。

### 2、使用 winget 工具

`winget` 命令行工具使用 Windows 包管理器在 Windows 10 和 11 上搜索、安装、升级、删除和配置应用。

如果你更喜欢使用命令行，那么这就是适合你的方法。

首先，你需要以**管理员**身份启动**命令提示符**。

接下来，你需要使用 `winget` 命令来安装 VirtualBox。

这是要输入的命令：

```
winget install Oracle.VirtualBox

```

>
> ? 如果你是第一次使用 winget，它会要求你同意这些条款。你需要接受它们才能继续使用它，同时你的一些数据（例如区域）将发送到微软商店。
>
>
>

### 下一步是启用虚拟化

你可以注意到，这两种方法都会安装适用于 Windows 的最新 VirtualBox 软件包。因此，你可以开始使用 VirtualBox 来创建和管理虚拟机。

但安装 VirtualBox 只是第一步。你应该通过调整一些设置来 [确保你的 Windows 系统已做好虚拟化准备](/article-16186-1.html)。以下是更多详细信息。

>
> **[让你的 Windows 系统为虚拟机做好准备](/article-16186-1.html)**
>
>
>

? 你在流程中遇到过任何问题吗？你更喜欢哪种方法？请在下面的评论中告诉我。

*（题图：MJ/ac593dfb-8d50-4e77-a3d7-6b772bcfc870）*

---

via: <https://itsfoss.com/install-virtualbox-windows/>

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


硬核观察 #1137 微软支持开发者用 Rust 开发 Windows 驱动

Summary:
? 微软支持开发者用 Rust 开发 Windows 驱动
? 所有主要 GPU 都可能遭受新的像素窃取攻击
? 苹果在法庭上为谷歌搜索交易辩护
»
»

强数据类型的语言，内存安全性都比较好。例如Pascal/delphi/lazarus。至少不会稀里糊涂的找不到对象。也不会弄不清++++j++++到底是几。

Github是什么，我根本就不知道啊！

根本不是一回事。

在pascal里：

1. String是包含长度信息的，而不是单纯靠"\0"，越界不容易。

2. 数组是包含长度信息的，越界会报错。

3. 数组下标允许从非零开始，for允许降序，能减少大量边界问题。

4. 类型是类型，常量是常量，不允许混用，也没有#define地狱问题。

5. 有Assigned函数。能够判断是否使用了未分配内存。

6. 指针是带数据类型的。

7. 变量统一使用前定义，不会半路冒出来个变量。

8. 没有++ --。

9. 没有宏函数。

10. 编译特别快，耗时C++的十分之一左右，调试很方便。

P.S. 其实如果不玩花活/炫技，即使是C/C++也没那么多问题的。

我比

和强不强类型没关系，核心问题是内存管理方式。

# 硬核观察 #1137 微软支持开发者用 Rust 开发 Windows 驱动

### 微软支持开发者用 Rust 开发 Windows 驱动

微软在 Github 上发布了代码，使开发人员能够用 Rust 编写 Windows 驱动程序，这是为操作系统实现内存安全编程的关键一步。此前，微软披露正在用 Rust 语言 [重写](/article-15763-1.html) 核心 Windows 库。由于各种技术和历史原因，Windows 的用户模式代码大部分都是用 C++ 编写的，而内核代码大部分是用 C 语言编写的。软件项目的大部分漏洞都属于内存安全错误。自 2006 年以来微软在 Windows 中修复的漏洞大约七成是内存安全漏洞。

>
> **[消息来源：Dev Class](https://devclass.com/2023/09/25/microsoft-posts-early-stages-code-for-developing-windows-drivers-in-rust/)**
>
>
>

>
> 老王点评：没想到 Windows 在拥抱 Rust 方面走在了 Linux 前面。
>
>
>

### 所有主要 GPU 都可能遭受新的像素窃取攻击

研究人员发现，六家主要供应商的 GPU 都容易受到一种新发现的攻击，这种攻击允许恶意网站跨源读取其他网站显示的像素。然后，攻击者就可以对像素进行重构，从而查看后一个网站显示的用户名、密码和其他敏感信息。通常情况下，同一来源策略会阻止这种泄漏，但 GPU 为提高性能而使用的数据压缩技术就像一个侧通道，会自动尝试压缩这些视觉数据，而不需要任何应用程序的参与。它们可以利用这个侧通道绕过限制，逐个窃取像素。芯片制造商们认为该问题的根本原因不在 GPU 中，而是浏览器厂商实现的问题。而谷歌表示，“这是对硬件工作原理的重要研究”，网站使用合理的标头可以显著减少个性化数据被泄露的风险。

>
> **[消息来源：Ars Technica](https://arstechnica.com/security/2023/09/gpus-from-all-major-suppliers-are-vulnerable-to-new-pixel-stealing-attack/)**
>
>
>

>
> 老王点评：很多安全漏洞都是优化带来的，比如预加载、并行预测。
>
>
>

### 苹果在法庭上为谷歌搜索交易辩护

在对谷歌搜索业务的反垄断审判中，谷歌与苹果之间的交易是美国司法部起诉谷歌的核心，该交易使谷歌成为所有苹果设备的默认搜索引擎，并每年向苹果支付数十亿美元。曾代表苹果签署和谷歌的《信息服务协议》的 Eddy Cue 被问及，如果双方不能就收入分成数字达成一致，他是否会放弃这笔交易。Cue 认为，达成交易符合谷歌和苹果的最大利益，这笔交易不仅仅是经济问题，苹果从未认真考虑过转而使用其他供应商的产品，因为“还没有一个可以替代谷歌的有效选择”。

>
> **[消息来源：The Verge](https://www.theverge.com/2023/9/26/23891037/apple-eddy-cue-testimony-us-google)**
>
>
>

>
> 老王点评：就是因为其无可取代才会形成垄断。
>
>
>


Linux Mint Debian 版本 6 “Faye” 来了！

Summary: 无需再等待！Linux Mint 的 Debian 版本升级已经发布了。

什么？现在竟然还有只支持32位的辣鸡电脑？换作我早就砸了（因为慢得无法忍受），除非是作为收藏用途的电脑。

无需再等待！Linux Mint 的 Debian 版本升级已经发布了。

# Linux Mint Debian 版本 6 “Faye” 来了！

>
> 无需再等待！Linux Mint 的 Debian 版本升级已经发布了。
>
>
>

我们期待已久！

去年，Linux Mint Debian Editon（LMDE）发布了一个重要的版本 [LMDE 5](https://news.itsfoss.com/lmde-5-release/)，并带来了一些比较不错的改进。

今年，我们迎来了 **LMDE 6 版本**，代号为 “**Faye**”。它采用了与以往版本相似的命名方式。

让我们看看这一新版本有什么引人注目的地方！

### Linux Mint Debian Edition 6 “Faye”: 有什么新功能？

LMDE 6 由 Debian 的最新的稳定发行版 [Debian 12](https://news.itsfoss.com/debian-12-release/) 支持，具有所有改进、错误修复和新功能等等。

你可以期待在 Linux Mint 21.2 中看到所有精彩功能。

新版本的一些主要亮点:

* 基于 Linux 内核 6.1
* Cinnamon 桌面升级
* 改进后的软件包管理器

>
> ? LMDE 只是另一个版本的 Linux Mint，它基于 Debian，而非 Ubuntu，在功能实现上与 Linux Mint 主版本保持同步。
>
>
>

#### Linux 内核 6.1

LMDE 6 使用了长期支持的 [Linux 内核 6.1](https://news.itsfoss.com/linux-kernel-6-1-release/) 版本，从而获得了 Rust 的**实验支持**、对英特尔 Meteor Lake 芯片和 AMD 的 RDNA 3 图形芯片的 **初始支持**。

#### Cinnamon 的升级

此外，使用了 **Cinnamon 5.8** 作为 LMDE 6 的默认桌面，它作为 Linux Mint 的旗舰桌面环境，提供了很多实用功能。

比如，对窗口管理的**手势支持**、**更好的窗口平铺与媒体控制**、**更强的工作区管理**等等。

还有一个名为“<ruby> 风格 <rt>  Styles </rt></ruby>”的新设置项，它用于调整系统的整体外观，允许你为系统的不同元素设置不同的颜色。

我们建议你阅读我们关于 **[Linux Mint 21.2](https://news.itsfoss.com/linux-mint-21-2/)** 发行版本的文章，以更好地了解 Cinnamon 的改进。

#### 全新的软件包管理器

同样，我们现在也有了**全面改版的软件包管理器**，我们在 Linux Mint 21.2 版本中首次看到了它，现在它又出现在了 LMDE 6 中。

它采用了**改良的布局**，以方便使用，主页上的主要应用类别移到了更下方，搜索栏也移到了左侧。

此外，在应用程序的系统软件包与 Flatpak 之间进行选择也变得**更加简单**。

#### ? 其他变化和改进

除上述更新外，还有一些变化值得一提：

* 新的登录屏幕；
* 为 Warpinator 提供更好的安全保障；
* 支持 HEIF 和 AVIF 图像；
* “Mint-Y-Legacy” 主题更名为 “Mint-L”；
* 可以在文件管理器中为文件夹设置重点颜色。

有关此版本的更多详情，请参阅官方 [发行说明](https://linuxmint.com/rel_faye.php)。

### ? 下载 LMDE 6 “Faye”

别忘了，LMDE 是为数不多的 [支持 32 位系统的 Linux 发行版](https://itsfoss.com/32-bit-linux-distributions/)，当然也包括最新的 LMDE 6！

它有 **32 位** 与 **64 位** 两种版本，你可以前往 [官方网站](https://linuxmint.com/download_lmde.php) 获取你所需要的版本。

**对于 LMDE 5 用户** ，可通过以下命令安装升级工具进行升级：

```
apt update
apt install mintupgrade

```

安装完成后，用以下命令启动图形用户界面升级工具：

```
sudo mintupgrade

```

按照屏幕上的说明进行操作，升级成功后，使用以下命令移除升级工具并重新启动：

```
apt remove mintupgrade
sudo reboot

```

>
> **[LMDE 6 “Faye”](https://linuxmint.com/download_lmde.php)**
>
>
>

? 你会体验 LMDE 6 吗？请告诉我们！

---

via: <https://news.itsfoss.com/lmde-6/>

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

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


Firefox 118 版本发布，带来了原生的翻译功能

Summary: Firefox 118 让用户更轻松地翻译网页。

什么时候才能将其他语言文字翻译成普通话简体汉字？

不太可能，这是离线翻译，还是开源引擎，中文太复杂了，做不来

来自116.162.3.76的 Chrome Mobile 90.0|Android 11 用户

Firefox 118 让用户更轻松地翻译网页。

# Firefox 118 版本发布，带来了原生的翻译功能

>
> Firefox 118 让用户更轻松地翻译网页。
>
>
>

近期，Mozilla 积极努力改进 Firefox，以使其在各方面都更强大，例如针对谷歌的 Web 服务提供更强大的 [支持](https://news.itsfoss.com/mozilla-firefox-progress/)，以及之前发布的 [Firefox 117 版本](https://news.itsfoss.com/firefox-117-release/)。

现在，Firefox 的新版本 118 来到了我们面前，它**终于带来了注重隐私保护的原生翻译功能**，无需寻找临时解决方案。

让我们一起深入了解新版本能为我们带来什么。

### ? Firefox 118：有哪些新特性？

和之前的版本一样，Firefox 118 提供了很多新特性，其中一些主要的亮点包括：

* 原生的浏览器翻译
* 谷歌会议的功能增强
* 重要的安全更新

首先，我们会关注到原生的翻译功能，然后再逐一了解其他的特性。

### 原生且内置的翻译功能

经过一段时期的测试后，[Firefox](https://www.mozilla.org/en-US/firefox/new/) 最终获得了**原生支持浏览器内部的翻译功能**。我们在 [Firefox 117 版本](https://news.itsfoss.com/firefox-117-release/) 中测试过这个功能，但并未设置为默认开启。

现在，只需要简单的几次点击就能启动翻译，如同视频中展示的那样。你需要进入汉堡菜单，然后点击 “<ruby> 翻译此页 <rt>  Translate page </rt></ruby>”，选择来源语言和你想要翻译成的语言，然后点击 “<ruby> 翻译 <rt>  Translate </rt></ruby>”。

如果你想返回原文，只需点击地址栏中的翻译图标，再点击 “<ruby> 显示原文 <rt>  Show original </rt></ruby>”。

在我实际使用过程中，**这个功能在处理具有多种语言的网页时有一些问题**，并且不支持从图像或视频中翻译文本。

但是请注意，**翻译工具依然标注为 “Beta” 版本**。我有信心，在未来几个月，开发者将会提供更多更新以改进其功能。

### ? 其他的更变与改进

关于其他的底层优化：

* 对于 [谷歌会议](https://apps.google.com/meet/)，Firefox 用户现在可以使用视频特效和背景模糊这类新功能。
* [Firefox 建议](https://blog.mozilla.org/en/products/firefox/firefox-news/firefox-suggest/) 的用户现在将可以在地址栏看到浏览器插件的建议（仅适用于美国用户）。
* 为了防止在隐私浏览窗口中进行字体指纹跟踪，网站上字体的可见性已被限制为仅显示系统字体。
* Firefox 现在使用 [FDLIBM](https://www.netlib.org/fdlibm/readme) 数学库来处理 Web 音频，以提高隐私保护。
* 进行了各种 [安全修补](https://www.mozilla.org/en-US/security/advisories/mfsa2023-41/)。

你还可以浏览官方的 [版本发布说明](https://www.mozilla.org/en-US/firefox/118.0/releasenotes/)，以更深入地了解一些技术问题。

### ? 下载 Mozilla Firefox 118

你可以在 [官方网站](https://www.mozilla.org/firefox/download/) 中下载 Firefox 118 版本，提供的格式有 **.tar.bz2 包** ，或者可以在 [Flathub 商店](https://flathub.org/apps/org.mozilla.firefox) 中 获取 **Flatpak**。

此外，你也可以尝试 Firefox 的 [Snap 包](https://snapcraft.io/firefox)。

>
> **[Mozilla Firefox 118](https://www.mozilla.org/firefox/download/)**
>
>
>

**对于已经安装的用户：** 你可以在设置菜单中搜索 “<ruby> 更新 <rt>  Update </rt></ruby>”，然后点击 “<ruby> 检查更新 <rt>  Check for Updates </rt></ruby>” 或者检查系统更新以从软件库中获取。

? 自从新的翻译功能发布，你是否为之振奋？你期待 Firefox 在未来会推出什么样的更新呢？请在评论区告诉我们你的想法！

---

via: <https://news.itsfoss.com/firefox-118-release/>

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

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


Summary: Matrix 2.0 协议已发布。如果你是早期用户，现在就可以试用！

Matrix 2.0 协议已发布。如果你是早期用户，现在就可以试用！

# Element X：用 Matrix 2.0 协议打造去中心化 WhatsApp 杀手

>
> Matrix 2.0 协议已发布。如果你是早期用户，现在就可以试用！
>
>
>

Matrix 是一种开源的去中心化通信协议。

你可以将其集成到你的服务中，自行托管 Matrix 服务器，或从选定的托管提供商处购买服务器。而且，要开始与其通信，你可以使用这几个 [最佳 Matrix 客户端](https://itsfoss.com/best-matrix-clients/) 之一。

Matrix 协议非常适合隐私和安全，并被政府、组织和个人采用。然而，它尚未成功取代 WhatsApp、Telegram 或 iMessage 等中心化消息应用的流行度。

为了解决这个问题，[Matrix.org](http://Matrix.org) 宣布了下一代协议，即 **Matrix 2.0**。

### ? Matix 2.0 x Element X：正在进行中

Matrix 2.0 旨在关注可用性和性能。

根据官方公告，可能的功能包括：

* 滑动同步（即时登录/同步）
* 原生 Open ID Connect（身份验证协议）
* 原生群组 VoIP（用于大规模加密语音和视频通话）
* 更快的远程加入

这听起来像是改善通信体验的可靠新功能。

然而，所有这些还不是当前 Matrix 规范的一部分。所以，作为用户，你必须等待。

但是，对于任何想要测试改进的开发人员来说，都可以在 Matrix 2.0 客户端的帮助下进行测试，这就是 **Element X** 的用武之地。

你还可以选择探索其他支持的 Matrix 客户端，目前 Element X 是 Matrix 2.0 的测试环境。

**Element X** 是我们所知的 [Element 消息应用](https://element.io/) **开发中的后续版本**。它的目标是超越 WhatsApp、iMessage 和 Telegram 等消息应用?。

Element X 的亮点包括：

* 端到端加密多方 VoIP 和视频通话
* 由于采用 Rust 编写的核心，有简化的 UI 和快速的性能
* 富文本编辑器 UI
* 支持位置共享和投票

当然，**这是一个大目标**。根据我使用 Element 应用的经验，它设法提供了良好的体验，但无法取代 WhatsApp/Telegram。

因此，看看他们如何在利用 Matrix 2.0 协议的同时改进 Element X 应该很有趣。我在我的安卓手机上对其进行了快速测试，看起来性能有所提高?。

除非你想成为该应用的早期采用者并希望向开发人员提供有关其进度的反馈，否则你可能需要等待。

当然，现在下结论还为时过早，因为 Element X 仍然没有许多功能，并且随着他们继续测试和实现 Matrix 2.0 协议功能，只会变得更好。

但是，我很兴奋！ ?

有关 Matrix 2.0 的所有**技术细节**，请参阅 [官方公告](https://matrix.org/blog/2023/09/matrix-2-0/)。而且，如果你热衷于探索 Element X 的计划，请前往其官方 [博客](https://element.io/blog/element-x-ignition/)。

? 你如何看待 Element 的下一代版本和 Matrix 2.0 计划？ 在下面的评论中分享你的想法。

---

via: <https://news.itsfoss.com/element-x-matrix-2/>

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


《泰拉瑞亚》开发商支持开源游戏引擎而非 Unity

Summary: 开源游戏引擎万岁！

好！

将来开源游戏引擎也开启收费模式，Good Note、Notability、Unity历史总是相似的。

永远不要相信 “未来不收费”、“未来不会变成订阅制” 这样的话，即便是开源软件。

Baldi's Basics 还在用Unity

# 《泰拉瑞亚》开发商支持开源游戏引擎而非 Unity

>
> 开源游戏引擎万岁！
>
>
>

继 Unity 制定了会在游戏安装或启动时向开发者收取费用的掠夺性 “[运行时费用](https://blog.unity.com/news/plan-pricing-and-packaging-updates)” 定价模式之后，《<ruby> 泰拉瑞亚 <rt>  Terraria </rt></ruby>》的开发商 [Re-Logic](https://re-logic.com/) 承诺将会支持两个新兴的开源游戏引擎。

尽管 Unity 的定价模式 [已进行了调整](https://www.theregister.com/2023/09/19/unity_talks_of_price_cap/)，但对玩家以及开发者的信任已经被打破。许多游戏开发商不得不采取预防措施来限制成本。

那么，让我们看看 Re-Logic 都承诺了些什么。

### 巨大贡献 ?

他们最近在 Twitter 上宣布了两件大事。

第一，他们**谴责 Unity 提出的定价模式改革**，提到了以下几点：

>
> 我们明确谴责并拒绝接受 Unity 最近提出的服务条款/收费变更，以及推出这些变更的暗箱操作方式。
>
>
> 最令人痛心的是，Unity 多年来培养的信任被轻描淡写地抛到了一边，成为压榨发行商、工作室和玩家的又一种方式。
>
>
>

他们还补充说，**一份简单的公开声明**不足以挽回这样的事情，被破坏的信任，不可能轻易修复。

不过，该公告的**第二项**主要亮点是他们**承诺向开源游戏引擎 [Godot](https://godotengine.org/) 和 [FNA](https://fna-xna.github.io/)** 各捐赠 100,000 美元。

而且，这还不够，他们还决定**赞助这些项目**，每个项目的赞助费为每月 1000 美元，只有一个很简单的要求：

>
> 作为回报，我们所要求的只是他们保持良好的品格，继续尽其所能为世界各地的开发人员提供功能强大、易于使用的引擎。
>
>
>

这是一个很好的回报要求！ ?

尽管《泰拉瑞亚》的手机和游戏机移植版使用的是 Unity（由第三方维护），但这并不妨碍他们对这种情况发表意见。

你可以在原 [公告推文](https://twitter.com/Terraria_Logic/status/1704227519027651016) 上关注围绕此事发表的讨论，了解用户和游戏开发者的更多想法。

### 是时候闪亮登场了吗？

我觉得，是的！

鉴于大多数流行的游戏引擎，要么是需要付费的闭源引擎，要么是仅供游戏开发者自用的引擎（说的就是你 [RAGE](https://en.wikipedia.org/wiki/Rockstar_Advanced_Game_Engine) ），因此**像 Godot 和 FNA 这样的开源游戏引擎是当务之急**。

很高兴看到 Re-Logic 这样的热门游戏开发商尝试支持开源游戏引擎，我们已经有一段时间没有看到这样的努力了。

我希望通过这件事，**更多的开发者会对支持开源游戏引擎产生浓厚的兴趣**，无论他们以何种方式，可以是金钱，也可以是贡献代码。

? 你对此怎么看？可以在下方分享你的想法。

---

via: <https://news.itsfoss.com/terraria-open-source-game-engine/>

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

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


NewsFlash 3.0：大升级，焕然一新

Summary: 适用于 Linux 的现代新闻阅读器应用获得超级升级。

新Flash

适用于 Linux 的现代新闻阅读器应用获得超级升级。

# NewsFlash 3.0：大升级，焕然一新

>
> 适用于 Linux 的现代新闻阅读器应用获得超级升级。
>
>
>

NewsFlash 是一个简洁的程序，可让你关注你最喜爱的新闻网站和博客。作为现已不复存在的 [FeedReader](https://github.com/jangernert/FeedReader) 的精神继承者，它与许多现有的基于网络的 RSS 阅读器（如 Inoreader 和 Feedly）很好地集成，并且还支持本地 <ruby> 订阅源 <rt>  Feed </rt></ruby>。

不要忘记，NewsFlash 是 [Linux 上最好的订阅源阅读器桌面应用](https://itsfoss.com/feed-reader-apps-linux/) 之一。

NewsFlash 3.0 升级后，应用有许多重要的改进。

### ? NewsFlash 3.0：有什么新内容？

NewsFlash 具有**调整后的界面布局**，并使用 libadwaita 1.4 的“分割视图”和“工具栏视图”。

这可以显示**无边框标题栏** ，其中 **三列的外观略有不同**。侧边栏和文章列表的调整大小行为也得到了改进。

同样，通过使用 GTK 4.12 的“列表视图”部分，**文章列表得到了改进**，并且文章现在按天/日期分组。

然而，这些并不是此版本的唯一亮点，以下是一些值得注意的亮点：

* 更好的性能
* 改进的缩略图
* 拖放功能
* 图像查看器

#### 更好的性能

得益于 [Tokio 运行时](https://tokio.rs/tokio/tutorial) 的实现，NewsFlash 3.0 现在**快了很多**，它允许在单个 Tokio 运行时实例上进行异步处理。

简而言之，该应用更加快捷，因为它以更优化的方式处理请求。因此，同步、将文章标记为已读以及抓取完整文章内容等操作现在要快得多。

#### 改进的缩略图

NewsFlash 中添加了**启发式进程**，它现在可以根据订阅源中的文章生成缩略图。

它应该从文章的 HTML 代码中收集“相关”图像，并将其用作缩略图。

然而，正如你在我们的 [Element X](/article-16235-1.html) 新闻文章中看到的那样，它从文章中抓取了图像，而不是获取题图。随着未来的更新，这应该会变得更好。

#### 拖放功能

现在，你可以拖放侧边栏上的元素，将订阅源从一个类别移动到另一个类别，并对列表重新排序。

#### 图像查看器

使用 NewsFlash 3.0，你现在可以单击文章中的图像，在**专用图像查看窗口**中查看它们。同样用于显示文章的图像附件。

#### ? 其他更改和改进

至于其他变化，以下是一些技术改进：

* 添加了对 [Commafeed](https://www.commafeed.com/) 的支持。
* 在移动设备上对订阅源的订阅已得到改进。
* NewsFlash 现在会记住应用重新启动时的窗口状态。
* “编辑”对话框已得到改进，更好地支持特殊字符和符号。

你可以浏览开发者的 [官方博客](https://blogs.gnome.org/jangernert/2023/09/22/newsflash-3-0/) 来探索此版本的一些技术细节。

### ? 下载 NewsFlash 3.0

你可以前往 [Flathub 商店](https://flathub.org/apps/io.gitlab.news_flash.NewsFlash) 获取最新版本的 NewsFlash。

它也有 [Snap](https://snapcraft.io/newsflash) 包。但是，在撰写本文时，它尚未更新到最新版本。

>
> **[NewsFlash（Flathub）](https://flathub.org/apps/io.gitlab.news_flash.NewsFlash)**
>
>
>

? 你以前尝试过 NewsFlash 吗？ 你更喜欢使用哪种订阅源阅读器？在下面的评论中分享你的想法。

---

via: <https://news.itsfoss.com/newsflash-3-0-release/>

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


活动资料下载 ｜ LLUG 深圳场成功举办

Summary: 9 月 24 日下午，LLUG 在热浪滔天的深圳成功举办。

为什么资料都下不了？

为什么前几期的也下不了？

可能是链接问题，你直接访问仓库：<br />
https://github.com/Linux-CN/LLUG-Shares

9 月 24 日下午，LLUG 在热浪滔天的深圳成功举办。

# 活动资料下载 ｜ LLUG 深圳场成功举办

>
> 9 月 24 日下午，LLUG 在热浪滔天的深圳成功举办。
>
>
>

*白板上的 “LLUG.sz”由 Norland 现场创作*

和往期一样，本次的活动依然分为主题演讲和闪电演讲，来自广深两地的 Linux 爱好者们和现场的同学积极交流技术，分享总结。

来自 Linux 中国的核心贡献者 Locez 为参会者分享了 BPF 的背景，帮助大家理解什么是 BPF，并通过一些现场的示例，帮助开发者了解 BPF 的能力范畴。

*Locez 介绍 BPF*

*现场参会同学 Q & A*

来自龙蜥社区 eBPF SIG Maintainer 廖肇燕则分享了龙蜥社区产品 coolbpf 在阿里云上的实践，帮助参会同学进一步理解 BPF 在企业的的实际应用和场景。

*廖肇燕分享 coolbpf*

Linux 中国的硬核老王则为刚刚接触开源的爱好者介绍了如何快速成为一名开源贡献者的演讲，并结合实例给出了一条可实践的发展之路。

*硬核老王介绍如何参与开源*

最后，还有林佳敏同学对 Vercel 的介绍，和大家积极参与的闪电演讲。

### PPT及视频下载

LLUG 的创办希望帮助 Linux 社区当中的每一个人都可以充分的交流经验和心得，所以我们也将本次活动的视频以及演示文稿开放出来，供大家查看。[视频托管在 Bilibili](https://space.bilibili.com/203983793) 和视频号，PPT 文稿则托管在 GitHub 的 [Linux-CN/LLUG-Shares](https://github.com/Linux-CN/LLUG-Shares) 仓库中，供大家下载。

| 类型 | 主题 | 演讲者 | PPT 下载地址 | 视频录播 |
| --- | --- | --- | --- | --- |
| 主题演讲 | 简单聊聊 BPF | Locez | [下载](https://github.com/Linux-CN/LLUG-Shares/blob/main/Shenzhen/2023.09-Alibaba/%E7%AE%80%E5%8D%95%E8%81%8A%E8%81%8A%20BPF.pdf) | [Bilibili](https://www.bilibili.com/video/BV1k84y1U7qV/) |
| 主题演讲 | Coolbpf 在阿里云应用实践 | 廖肇燕 | [下载](https://github.com/Linux-CN/LLUG-Shares/blob/main/Shenzhen/2023.09-Alibaba/Coolbpf%E5%9C%A8%E9%98%BF%E9%87%8C%E4%BA%91%E5%BA%94%E7%94%A8%E5%AE%9E%E8%B7%B5.pdf) | [bilibili](https://www.bilibili.com/video/BV1fj41187pU/) |
| 主题演讲 | 高效开源（个人篇） | 老王 | [下载](https://github.com/Linux-CN/LLUG-Shares/blob/main/Shenzhen/2023.09-Alibaba/%E9%AB%98%E6%95%88%E5%BC%80%E6%BA%90%EF%BC%88%E4%B8%AA%E4%BA%BA%E7%AF%87%EF%BC%89.pdf) | [Bilibili](https://www.bilibili.com/video/BV1DF41117jb/) |
| 主题演讲 | Vercel 的落地与实现 | 林佳敏 | [下载](https://github.com/Linux-CN/LLUG-Shares/blob/main/Shenzhen/2023.09-Alibaba/Vercel%E7%9A%84%E8%90%BD%E5%9C%B0%E4%B8%8E%E5%AE%9E%E7%8E%B0.pdf) | [bilibili](https://www.bilibili.com/video/BV1EF411U7HV/) |
| 闪电演讲 | COSSIG | Norland | [下载](https://github.com/Linux-CN/LLUG-Shares/blob/main/Shenzhen/2023.09-Alibaba/COSSIG.pdf) | 无 |
| 闪电演讲 | 如何使用开源软件赚钱 | 老许 | 无 | [Bilibili](https://www.bilibili.com/video/BV1k84y1U7qV/) |
| Lighting TalK | 高校开源镜像站心得 | 于思远 | 无 | [Bilibili](https://www.bilibili.com/video/BV1AC4y1o7Ee/) |

### 致谢

本次活动的举办，得到了阿里云提供的线下场地支持，让我们在炎炎夏日，可以在会议室内畅聊技术，交流心得；同时，也要感谢博文视点和《Linux 就该这么学》的刘遄老师提供的图书支持，这些高质量的图书为参会者们提供了丰富的知识，为大家带来了新知输入。

此外，还要感谢志愿者 Locez 和 Norland，能够提前来到现场，为 LLUG 深圳活动准备现场物料，协助组织整场活动。

感谢大家的支持，才能让本次活动成功举办！

### 10 月，成都还是杭州？

10 月份的 LLUG 活动目前还在规划中，预计可能会在成都或杭州举办，关于这两座城市，你有没有什么想法？如果你感兴趣做分享，或是有更多的建议给到我们，可以扫描下方二维码，申报议题。

*提交你的提议*

*（题图：MJ/1a34da0d-8561-40e0-b959-ea8bb10904dc）*


Summary:
? 俄罗斯零日卖家出价 2000 万美元购买安卓和 iPhone 漏洞
? 谷歌播客将关闭
? 人工智能生成的 “潜意识信息” 正在疯传
»
»

# 硬核观察 #1138 俄罗斯零日卖家出价 2000 万美元购买安卓和 iPhone 漏洞

### 俄罗斯零日卖家出价 2000 万美元购买安卓和 iPhone 漏洞

一家名为“零点行动”的公司的业务是收购并销售零日漏洞（即受影响的开发者不知道的软件缺陷）。它现在提出将向研究人员支付 2000 万美元，用于购买黑客工具，使其客户能够黑进 iPhone 和安卓设备。之前他们的悬赏费用是 20 万美元，现在提供的悬赏可能是暂时的，反映了市场的特殊时期，以及黑客入侵 iOS 和安卓的难度。

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2023/09/27/russian-zero-day-seller-offers-20m-for-hacking-android-and-iphones/)**
>
>
>

>
> 老王点评：都这么值钱了吗？那说明一定有值得这个价钱的目标存在。
>
>
>

### 谷歌播客将关闭

谷歌宣布其播客服务将在 2024 年关闭，成为最新一个被搜索巨人杀死的产品，而 YouTube Music 将加入播客功能。用户在谷歌播客上订阅的播客将能通过工具迁移到 YouTube Music。而 YouTube Music 将支持通过 RSS 订阅源添加播客，包括未托管在 YouTube 上的播客节目。

>
> **[消息来源：Youtube](https://blog.youtube/news-and-events/podcast-destination-on-youtube-music/)**
>
>
>

>
> 老王点评：其实谷歌一开始建立了很多很好、很受技术人群喜爱和依赖的服务，但是奈何这些技术人群没有什么经济价值，于是就一个个关闭了。
>
>
>

### 人工智能生成的 “潜意识信息” 正在疯传

最近一项名为 “<ruby> 控制网 <rt>  ControlNet </rt></ruby>” 人工智能技术开始流行，人们用它创建能让用户产生视错觉的图片。这项技术本质是让用户通过指定额外的输入来控制生成的图像，用户可以在其他图像中创建图像或文字。比如我们之前 [介绍](/article-16200-1.html) 过，用它来创建嵌入在图画中的二维码，以及棋盘式的图画。一些用户认为这是一种 “隐性信息”，可用于以微妙的视觉提示形式植入建议，比如在电影海报的轮廓中出现麦当劳的 “M” 标志。

>
> **[消息来源：VICE](https://www.vice.com/en/article/v7by5a/ai-generated-subliminal-messages-are-going-viral-heres-whats-really-going-on)**
>
>
>

>
> 老王点评：这种技术再发展下去，你看到图片其实会暗示你另外一些信息，人类被愚弄而不自知。
>
>
>

### 回音

* 昨天我们 [说到](/article-16232-1.html) 了苹果并未真的考虑过在其产品中替换谷歌搜索引擎，现在，微软必应高管 [表示](https://www.bloomberg.com/news/articles/2023-09-27/microsoft-says-apple-used-bing-offer-as-google-bargaining-chip)，苹果利用必应报价作为对谷歌的“谈判筹码”。


使用开源工具 CBconvert 转换你的漫画书

Summary: 这里有一些有趣的东西供你尝试！

我不需要转换漫画，但我需要把pdf转成epub。遗憾的是calibre的转换效果不满意，图片排版是个问题，而且章节无法做成独立的页面。

是啊，常看电子书的都有类似需求。但pdf这种“固定”排版效果的格式，跟epub这种对不同显示设备“自适应”排版效果的格式，可能永远难以无损转换；说白了，功能上决定了无法实现转换。

这里有一些有趣的东西供你尝试！

# 使用开源工具 CBconvert 转换你的漫画书

>
> 这里有一些有趣的东西供你尝试！
>
>
>

这是一款有趣的开源工具，具有非常特定的用途。

**CBconvert 是漫画书转换器**，可以将漫画转换为不同的格式以适合各种设备。

对我个人来说，这将是第一次，因为我以前从未尝试过这样的转换器。在此，我将探讨并重点介绍这款工具的功能。

>
> ? 该应用相当新，正在积极开发中。期待事情发生改变。
>
>
>

### ⭐ CBconvert：概述

CBconvert 主要使用 [Go](https://go.dev/) 语言编写，旨在成为满足你所有漫画书转换需求的一站式应用。

它可以读取最常见的文件格式，例如 **CBR**（RAR）、XPS、**CB7**（7Z）、**CBT**（TAR）、**PDF** 等。

你可以将这些文件转换为两种不同的格式：**CBZ**（ZIP）和 **CBT**（TAR）。

不要认为 CBconvert 的唯一目的是转换漫画书，你还可以使用它进行一些视觉调整。我稍后会讨论这个问题。

主要功能：

* 有用的编辑工具
* 漫画书转换
* 从漫画中提取封面图片

事不宜迟，让我们深入了解 CBconvert。

### ?? 初步印象

虽然转换器可以在 **Linux、Windows 和 macOS** 上运行，但我在 Linux 系统上进行了尝试。

我首先使用侧边栏菜单中的“<ruby> 添加文件 <rt>  Add Files </rt></ruby>”选项向应用添加一些漫画（公共领域获取）。我能够添加多部漫画，没有遇到很多问题。

同样，我继续查看各种功能选项卡。

**第一个选项卡名为“<ruby> 输入 <rt>  Input </rt></ruby>”**，包含一些选项，例如**设置最小大小限制**、**仅选择灰度图像**等等。我不需要使用这些，但如果你想向要转换的文件添加先决条件，这些选项肯定很有用。

**第二个选项卡是你可以进行漫画转换的地方**，它被称为“<ruby> 输出 <rt>  Output </rt></ruby>”。我设置了输出目录，并选择了 “ZIP” 存档格式来获取 **.cbz 文件输出**。

它还可以选择向输出文件添加后缀，并从存档中删除任何非图像文件，如下所示。

设置完所有输出设置后，我单击“<ruby> 转换 <rt>  Convert </rt></ruby>”。然后它开始一张一张地处理所有的漫画。操作速度很快，达到了预期的最终结果。

你可能想知道：**为什么这个封面看起来和以前的不一样？**

好吧，在转换这些漫画之前，我冒昧地尝试调整漫画书的视觉效果。

感谢“<ruby> 变换 <rt>  Transform </rt></ruby>”选项卡，它允许我尝试各种设置，例如**亮度**、**对比度**、**输入/输出级别**等。

我想说，**此功能需要进一步完善**，由于预览时未实时反映更改，因此需要一些时间才能显示更改。

>
> ? 请记住，我不必选择其他漫画，所有漫画都与“夜魔侠”一起接受了相同的调整。
>
>
>

然后，**有第三个选项卡，名为“<ruby> 图像 <rt>  Image </rt></ruby>”**，它允许我以各种图像格式导出封面照片，例如 JPEG、PNG、TIFF、WebP 等。

CBconvert 还具有一些选项来**从封面图片创建缩略图**、**调整图像质量**、**将其变成灰度**，甚至**对其应用一些调整大小的滤镜**。

### ? 获取 CBconvert

对于其他平台，你可以从 [GitHub](https://github.com/gen2brain/cbconvert) 存储库获取最新版本的 CBconvert，对于 Linux，你可以选择 [Flathub](https://flathub.org/apps/io.github.gen2brain.cbconvert) 中的 Flathub 包。

>
> **[CBconvert（Flathub）](https://flathub.org/apps/io.github.gen2brain.cbconvert)**
>
>
>

---

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

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


Summary: 为 Linux 桌面或者 Steam Deck 做好游戏准备，听起来都很刺激！

为 Linux 桌面或者 Steam Deck 做好游戏准备，听起来都很刺激！

# Bazzite：专为 Steam Deck 和 PC 上的 Linux 游戏打造的发行版

>
> 为 Linux 桌面或者 Steam Deck 做好游戏准备，听起来都很刺激！
>
>
>

对于一个专为 Linux 游戏定制的发行版，你是否感兴趣呢？

如果答案是肯定的，那么我们为你准备了绝佳选择。

Bazzite 是一个新推出的基于 Fedora 的发行版，它是为 **Linux 桌面上的游戏**，以及越来越火热的 **[Steam Deck](https://store.steampowered.com/steamdeck/)** 定制的。

在此文章中，我们将对 Bazzite 进行简短总结，并探讨其优势。

### ⭐ Bazzite：概述

Bazzite 基于最新发布的 [Fedora 38](https://news.itsfoss.com/fedora-38-release/)，使用的是 [Universal Blue](https://github.com/ublue-os/main) —— Fedora 的一个 OCI 基础镜像。它提供了扩展硬件支持，如 **微软 Surface 设备**，并预先安装了关键驱动。

>
> ? 基于 Fedora 39 的构建也可供测试。你可以关注下个月末发布的稳定版。
>
>
>

它的一些亮点包括：

* 预装专有的英伟达驱动
* 支持硬件加速的 H264 解码
* 引入了 [Waydroid](https://waydro.id/)，允许运行安卓应用
* 由于实现了 [xone](https://github.com/medusalix/xone)、[xpadneo](https://github.com/atar-axis/xpadneo) 和 [xpad-noone](https://github.com/ublue-os/xpad-noone)，所以支持 Xbox 手柄

### ?? 初步印象

我在 [虚拟机](https://itsfoss.com/virtual-machine/) 上尝试了 Bazzite，发现其安装体验极其接近 Fedora。但在安装过后，你会发现它的独特之处。

Bazzite 默认使用的是 [KDE Plasma 5.27](https://news.itsfoss.com/kde-plasma-5-27-release/) 桌面环境，并在整个操作系统中融入了整洁的 **Steam Deck 风格**。

它还为 PC 和 Steam Deck 提供了 **独立的 ISO**，包括一个面向 **英伟达的版本**，以及一个如果你不喜欢 KDE，可以选择的 **GNOME 版本**。

在设置发行版用于游戏时，我使用了 “Bazzite Portal” 应用，它引导我走过了一些重要的配置步骤。如果你需要，此处你也可以安装 [Open Razer](https://github.com/openrazer/openrazer)。

首先，它设置了 Bazzite Arch，它是一个自定义的 Arch Linux OCI，运行在 Distrobox 中，支持 [Steam](https://store.steampowered.com/)、[Lutris](https://lutris.net/) 等在其内运行游戏。

在配置了一些其他选项之后，开始了应用程序的安装，呈现了许多包含各种类别的特定用例的最热门应用。

完成设置之后，你就拥有了一款专为游戏设计的操作系统 ?

最近，通过一个更新，Bazzite 新增了两款预装应用：

* [Mission Control](https://gitlab.com/mission-center-devs/mission-center)（系统监视器应用）
* [Discover Overlay](https://github.com/trigg/Discover)（一个用于 Discord overlay 的应用）

这里还有我跳过的一些其他配置选项。

Bazzite 可以利用 **Nix 包管理器**，**在启动时以大屏幕模式启动 Steam**，**提供了内存调节的选项** 等等。

这个概念听起来极具趣味性，如果你一直在寻找像 [Nobara](https://nobaraproject.org/) 那样，基于 Fedora 的、对游戏进行优化的发行版，你可以试试 Bazzite。

### ? 下载 Bazzite

如果你对 Bazzite 提供的功能感兴趣，你可以在其 [GitHub 仓库](https://github.com/ublue-os/bazzite/releases) 中下载最新版本。

>
> **[Bazzite（GitHub）](https://github.com/ublue-os/bazzite/releases)**
>
>
>

想要获取更多关于 Bazzite 的信息，你也可以去查看其早期的 [博客发布](https://universal-blue.org/blog/2023/08/20/bazzite-10/)。

? 请在下面的评论区分享你对该项目的看法。

---

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

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

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


硬核观察 #1139 Linux 基金会是世界上最大的“软件公司”

Summary:
? Linux 基金会是世界上最大的“软件公司”
? 人工智能语言模型在无损压缩方面可超越 PNG 和 FLAC
? 人工智能驱动的必应聊天回复中被注入了恶意广告
»
»

png和flac不是压缩率最高的格式，它们只是最流行的格式。

Linux基金会以当然不是企业，而是非牟利组织。那谁说的意思是，按研发组织力算，Linux基金会动员起的研发程序员数量超过了最大的公司微软公司。

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

# 硬核观察 #1139 Linux 基金会是世界上最大的“软件公司”

### Linux 基金会是世界上最大的“软件公司”

Linux 基金会执行董事 Jim Zemlin 在上海举办的 KubeCon 上发表演讲，他开玩笑地说，“Linux 基金会很可能是世界上最大的软件公司”。他指出，如果把软件开发人员的平均工资（假定全球平均工资为 4 万美元）乘以为基金会做出贡献的开发人员人数，工资总额将达到约 260 亿美元，超过微软 240 亿美元的研发工资总额。当然，为 Linux 基金会项目工作的开发人员实际上都不为 Linux 基金会工作，因此这一统计数字并不能当真。

>
> **[消息来源：The Register](https://www.theregister.com/2023/09/28/kubecon_shanghai/)**
>
>
>

>
> 老王点评：说 Linux 基金会是个企业其实也没错，只是这个企业经营模式不太一样罢了。
>
>
>

### 人工智能语言模型在无损压缩方面可超越 PNG 和 FLAC

研究人员详细介绍了他们的发现：名为 Chinchilla 70B 的 DeepMind 大型语言模型（LLM）可以将 ImageNet 图像数据库中的图像片段无损压缩至原始大小的 43.4%，超过了将相同数据压缩至 58.5% 的 PNG 算法。在音频方面，Chinchilla 可将 LibriSpeech 音频数据集的样本压缩至原始大小的 16.4%，超过 FLAC 压缩的 30.3%。结果表明，尽管 Chinchilla 70B 主要是为处理文本而训练的，但它在压缩其他类型的数据时也出奇地有效，往往比专门为这些任务设计的算法更好。

>
> **[消息来源：Ars Technica](https://arstechnica.com/information-technology/2023/09/ai-language-models-can-exceed-png-and-flac-in-lossless-compression-says-study/)**
>
>
>

>
> 老王点评：所以，以后图片和音频会有一种 AIC 格式么？
>
>
>

### 人工智能驱动的必应聊天回复中被注入了恶意广告

微软于 2023 年 2 月推出了由 OpenAI 的 GPT-4 引擎驱动的必应聊天工具。今年 3 月，微软开始在必应聊天对话中注入广告，以从这一新平台中创收。研究人员发现，当你询问必应聊天如何下载 “Advanced IP Scanner”时，它会在聊天中显示一个下载链接。但是，当你将鼠标悬停在聊天中的下划线链接上时，必应聊天可能会先显示广告，然后再显示合法的下载链接。在这种情况下，赞助链接就是推送恶意软件的恶意广告。这种类似于对话的互动会让人工智能提供的 URL 充满错位的权威感和可信度，因此搜索平台中现有的恶意广告问题因人工智能助手的引入而被放大。

>
> **[消息来源：Bleeping Computer](https://www.bleepingcomputer.com/news/security/bing-chat-responses-infiltrated-by-ads-pushing-malware/)**
>
>
>

>
> 老王点评：投放恶意广告并不稀奇，只是这种对话式的场景，容易让人放松警惕。
>
>
>


Summary:
? 起亚和现代将汽车被盗归咎于 TikTok 和 Instagram
? 美国国家安全局正在启动人工智能安全中心
? 人工智能初创公司发布无护栏聊天机器人
»
»

汽车厂商自己不做好安全，出事了怪社交网络，典型的拉不出屎怪地硬。

如果广泛流行，并且没有管控，绝对会沦为各种犯罪的工具，不信看看小飞机等一众前辈。<br />
我们拭目以待

来自山东潍坊的 Chrome Mobile 116.0|Android 10 用户

# 硬核观察 #1140 起亚和现代将汽车被盗归咎于 TikTok 和 Instagram

### 起亚和现代将汽车被盗归咎于 TikTok 和 Instagram

之前，我们 [报道](/article-15704-1.html) 过，起亚和现代汽车由于缺乏基本的 [防盗技术](/article-15542-1.html)，并在社交媒体上病毒式传播的盗窃视频的推动下，导致大量该品牌的汽车被盗。在一起集体诉讼案中，起亚和现代汽车表示，他们的汽车被盗并不是他们的错，因为几乎所有其他汽车也都采用这些技术。相反，这两家公司将矛头指向了社交媒体公司，如 TikTok 和 Instagram，在这些社交媒体上，如何偷车的说明被广泛分享，窃贼们也在炫耀他们偷来的汽车。

>
> **[消息来源：VICE](https://www.vice.com/en/article/bvj5jv/kia-and-hyundai-blame-tiktok-and-instagram-for-their-cars-getting-stolen)**
>
>
>

>
> 老王点评：那么，为什么其它汽车没有大量被盗呢？
>
>
>

### 美国国家安全局正在启动人工智能安全中心

美国国家安全局（NSA）认为这是一项至关重要的任务，因为人工智能能力正被越来越多地获取、开发并整合到美国的国防和情报系统中。该中心将并入 NSA 的网络安全合作中心。美国情报和国防机构已经在使用人工智能。NSA 表示，这既是为了人工智能安全，也是为了在其国家安全系统和国防工业基地内促进人工智能的安全发展和采用。

>
> **[消息来源：Security Week](https://www.securityweek.com/national-security-agency-is-starting-an-artificial-intelligence-security-center/)**
>
>
>

>
> 老王点评：其实美国只是树立一个假想敌而已。
>
>
>

### 人工智能初创公司发布无护栏聊天机器人

估值 2.6 亿美元的法国人工智能初创公司 Mistral 在推特上发布了一个磁力链，指向他们首个公开发布的开源 LLM。根据研究人员的测试，对该聊天机器人讨论的内容“没有任何审核机制”。与之对比的是，OpenAI 等人工智能领域的领军企业推出每一项开发成果，都会不断增加一整套保障措施，防止用户让人工智能模型为所欲为。而且，由于 Mistral 是以磁力链的形式发布的，因此该聊天机器人 “基本上不可能从互联网上审查或删除”。

>
> **[消息来源：404 Media](https://www.404media.co/260-million-ai-company-releases-chatbot-that-gives-detailed-instructions-on-murder-ethnic-cleansing/)**
>
>
>

>
> 老王点评：这不仅仅打开了潘多拉魔盒，而是制造了一个！
>
>
>


Richard Stallman 正在与癌症作战

Summary: 让我们共同祈愿他早日康复！

RMS得的是淋巴瘤，淋巴瘤分为霍奇金和非霍奇金两种，前者较少见且存活率高（87%），后者相对更常见但存活率低一些（72%）。

自由软件运动，全人类受益

软件行业里的自由领袖，人类福音，希望你健康

软件行业里的自由领袖

软件行业里的自由领袖

让我们共同祈愿他早日康复！

# Richard Stallman 正在与癌症作战

>
> 让我们共同祈愿他早日康复！
>
>
>

为了纪念 GNU 项目成立 40 周年，自由软件基金会（FSF）已计划在 **10 月 1 日**（即GNU 40）为家庭、学生以及美国的其他人群组织一场黑客马拉松活动。

活动之前，GNU 项目于 9 月 27 日迎来了 40 岁生日，Richard Stallman 和一些社区成员在瑞士<ruby> 比尔 <rt>  Biel </rt></ruby>举行了 <ruby> GNU 黑客会议 <rt>  GNU Hacker's Meeting </rt></ruby>。

在会议上，他分享了自己的见解，并公开了自己正在与癌症作战的事实。

在主题演讲中，我们看到 **Richard Stallman 已经没有他标志性的长胡子和长发，外貌发生了变化**。他正在接受化疗以对抗癌症，这就能解释这一切。

他对自己的健康状况并没有多做说明，只是说病情是可以控制的，他仍能活很多年。

他特别强调：

>
> 因此，这一点基本上改变了我的生活方式……我仍在为自由软件基金会和其他的事业持续工作。
>
>
>

### Richard Matthew Stallman（RMS）：愿你早日康复！

Richard Stallman 是一位计算机科学家，他在 **1983 年 9 月 27 日**公布了名为 **GNU**（GNU's Not Unix）的类 Unix 操作系统。

因此，如果没有它，Linux 就无从谈起。这也是为何有些人更倾向于用 GNU/Linux 来称呼 Linux 的原因。

值得一提的是，他还创立了 <ruby> 自由软件运动 <rt>  Free Software Movement </rt></ruby>，这是如今开源实践的基石。

当然，他在许多事情上都表达了富有争议性的观点，但他在 Linux 和开源上的影响是巨大的！

毫无疑问，得知 Richard 患癌的消息令人难过。然而，尽管面临这样的困境，他以 70 岁的高龄仍然兴致勃勃地出现在了主题演讲中，并发表了演讲。

让我们祝愿 Richard 早日恢复！?

---

via: <https://news.itsfoss.com/richard-stallman-battling-cancer/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #1141 GNU 庆祝成立 40 周年，RMS 患癌

Summary:
? GNU 庆祝成立 40 周年，RMS 患癌
? 微软解释在云中提供 Python in Excel 的原因
? Canonical 的 Snap 商店暂停上传
»
»

希望rms早点康复！

# 硬核观察 #1141 GNU 庆祝成立 40 周年，RMS 患癌

### GNU 庆祝成立 40 周年，RMS 患癌

本周三，自由软件基金会发布公告，将于 10 月 1 日庆祝 “GNU 操作系统诞生 40 周年暨自由软件运动启动 40 周年”，称其为 “计算机历史上的一个转折点”。1983 年 9 月 27 日，一位名叫 <ruby> 理查德·斯托尔曼 <rt>  Richard Stallman </rt></ruby>（RMS）的计算机科学家宣布，计划开发一种类似 Unix 的自由软件操作系统，名为 GNU，意为 “GNU's not Unix”。GNU 是唯一一个专门为用户自由而开发的操作系统。在当天召开的 GNU 黑客会议上，RMS 一改以往的浓密的头发和胡子的形象出席，并发表了演讲。他还顺便 [透露](/article-16244-1.html)，他已经患癌，并已在接受化疗（因而没有了头发）。不过，庆幸的是，他表示，病情是可以控制的，他仍能活很多年。

>
> **[消息来源：FSF](https://www.fsf.org/news/forty-years-of-gnu-and-the-free-software-movement)**
>
>
>

>
> 老王点评：伟大的 GNU，伟大的 RMS，祝愿 RMS 早日康复！
>
>
>

### 微软解释在云中提供 Python in Excel 的原因

之前，我们 [报道](/article-16121-1.html) 过，微软发布了 Python in Excel 的公开预览版，无需任何设置就可以在同一工作簿中结合 Python 和 Excel 分析。有用户表示，表示希望能够在其他环境中运行 Python，而不是被锁定的、价格待定的 Azure 云容器。微软解释了这样做的原因：1、在本地机器上安全运行 Python 是一个难题。我们将工作簿中的所有 Python 代码都视为不可信任的，因此我们在 Azure 上的一个与管理程序隔离的容器中执行这些代码；2、我们希望确保您共享的工作簿中的 Python 代码在您的同事打开它时表现相同，而不需要他们安装和管理 Python。3、通过在 Azure 上运行，用户或其系统管理员无需在其组织中使用该功能的每台机器上维护 Python 的本地安装。

>
> **[消息来源：Reddit](https://www.reddit.com/r/excel/comments/16tohx5/we_developed_python_in_excel_one_of_microsoft/)**
>
>
>

>
> 老王点评：似乎有道理，但是在本地有一个沙盒化的 Python 环境有多难？
>
>
>

### Canonical 的 Snap 商店暂停上传

一些 Snap 用户报告了最近发布的几个可能是恶意的 Snap 软件包。接到这些报告后，Snap 商店团队立即下架了这些软件包。此外，该团队还对所有新的 Snap 注册提出了临时人工审核要求。这不是 Snap 商店第一次遇到恶意软件包，之前就有带有未披露的隐藏的加密挖掘功能的软件包被上传。

>
> **[消息来源：Snap Craft](https://forum.snapcraft.io/t/temporary-suspension-of-automatic-snap-registration-following-security-incident/37077)**
>
>
>

>
> 老王点评：似乎这种审核机制不够啊，原来是事后审核吗？
>
>
>


# 修复无法添加 PPA：“This PPA does not support jammy” 错误

>
> 尝试添加一个 PPA，却在 Ubuntu 中收到 “无法添加 PPA： 此 PPA 不支持 xyz” 的错误？下面是解决这一错误的方法。
>
>
>

这是一个场景。你正在尝试使用 PPA 在 Ubuntu 中安装软件。

你使用 `sudo add-apt-repository` 添加 PPA 仓库，当它更新包缓存时，会出现错误：

>
> Cannot add PPA: "This PPA does not support *xyz*
>
>
>

其中 “xyz” 是 [你正在使用的 Ubuntu 版本的代号](https://itsfoss.com/how-to-know-ubuntu-unity-version/)。

? 这就是发生这种情况的原因以及你可以采取的措施：

* PPA 不适用于你正在使用的 Ubuntu 版本
* 你应该寻找其他来源来安装该应用
* 如果绝望了，你可以从 PPA 网页下载 .deb 文件

我将详细讨论以上所有内容。

### 检查 PPA 是否适用于你的 Ubuntu 版本

首先，在终端中使用以下命令获取 Ubuntu 版本和代号的详细信息：

```
lsb_release -a

```

输出将包含详细信息：

现在，访问托管所有 PPA 的 Ubuntu 的 Launchpad 网站：

>
> **[进入 Launchpad PPA](https://launchpad.net/ubuntu/+ppas)**
>
>
>

在这里，查找困扰你的 PPA。为此，你必须使用 PPA 维护者的名字。

例如，如果 `ppa:jstaf/onedriver` 造成问题，请搜索维护者 `jstaf`。

一名维护者可能拥有多个软件仓库。单击你要安装的那个。

在里，你应该在 “<ruby> 发布于 <rt>  Published in </rt></ruby>” 旁边的下拉按钮选择 “<ruby> 所有系列 <rt>  Any Series </rt></ruby>”。

检查你是否看到你正在使用的 Ubuntu 版本的代号。如果不存在，那么此 PPA 不适用于你的 Ubuntu 版本。

### 如果 PPA 不支持你的 Ubuntu 版本，你该怎么办

你会看到，开发人员（或维护人员）创建一个仓库并使该软件可用于他们正在使用的 Ubuntu 版本。

随着时间的推移，Ubuntu 发布了更新的版本。现在，一位活跃的维护者将发布新 Ubuntu 版本的软件。但情况并非总是如此。如果维护者不再活跃，那么将不会更新。像你这样尝试遵循教程说明的人将会看到此错误。

现在，你有两个选择：

#### 选项 1：在其他地方寻找该软件

这里有几种可能性。

**新版 Ubuntu 可能也可以通过其他 PPA 获得相同的软件。请在 Launchpad 网站或互联网上查找。**

这是怎么发生的？许多原始软件开发人员只是发布源代码，因此一些志愿者创建 Debian 软件包并从 Launchpad 分发它，以便像你这样的 Ubuntu 用户可以轻松安装该软件。不止一名志愿者可以为同一软件创建自己的个人包存档（PPA）。你应该使用活跃的一个。

例如，如果我查找 `onedriver` 包，我可以看到它可能在另一个名为 [Ubuntu deployment](https://launchpad.net/~remiariro/+archive/ubuntu/misc) 的 PPA 中可用。

**另一个方式是查看该包是否以其他格式提供，例如 Snap、Flatpak、AppImage。**

* [检查 Snap 商店](https://snapcraft.io/store)
* [检查 Flatpak 包](https://flathub.org/)
* [检查 AppImages](https://www.appimagehub.com/)

在极少数情况下，该软件可能已经在 Ubuntu 仓库中可用。

为此，你必须是一个聪明的用户并在互联网上进行搜索。如果你找到其他包格式，那就太好了。否则，下一步就是绝望。

#### 选项 2：从 PPA 下载 deb 文件

PPA 仓库为你提供 Debian 软件包。添加仓库后，你还可以直接通过系统更新获得更新（如果有）。

如果你的 Ubuntu 版本的 PPA 没有更新，并且你在其他地方找不到该软件，你可以尝试从 PPA Launchpad 页面下载 deb 软件包。

在包详细信息页面上，单击展开符号并查找 deb 文件。除非你使用类似树莓派的主板，否则你应该选择 amd64。

>
> ? 如果软件太旧，下载的 deb 包可能会因为依赖问题而无法安装成功。此外，你将不会获得已安装软件包的更新（如果已安装）。不过，这个方法还是值得一试。
>
>
>

### 结论

尽管 Canonical 在大力推动 Snap 打包，PPA 仍然是用户在 Ubuntu 中安装第三方应用的最爱。

但 PPA 也有其自身的麻烦，而不能添加 PPA 错误就是其中之一。同样的问题还会导致 “[仓库没有发布文件](https://itsfoss.com/repository-does-not-have-release-file-error-ubuntu/)” 错误。

我希望现在这个问题更加清楚了。如果你仍有疑问，请告诉我。

*（题图：MJ/d1013502-d518-4bc8-896c-d8dddd15ae22）*

---

via: <https://itsfoss.com/cannot-add-ppa-error/>

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


哇！树莓派 5 看起来成为动手爱好者的新宠了！

Summary: 对于热爱动手实践的你来说，树莓派 5 已经落地，为你绚烂的想法提供热情的舞台！

经历了疫情和成本导致价格水涨船高，成为“理财产品”，一拖再拖。现在树莓派5终于发布了，还以为今年不会出。但是这个升级幅度真的很失望，感觉白等了。

树梅派4都已经涨道将近1k了，以前只要两三百就可以了，太贵了

树莓派4看视频卡的要死，树莓派5能成为一个简易的播放中心吗？

对于热爱动手实践的你来说，树莓派 5 已经落地，为你绚烂的想法提供热情的舞台！

# 哇！树莓派 5 看起来成为动手爱好者的新宠了！

>
> 对于热爱动手实践的你来说，树莓派 5 已经落地，为你绚烂的想法提供热情的舞台！
>
>
>

单板计算机（SBC）领域因树莓派新产品的推出再次活跃起来。

这款被称为 **树莓派 5** 的新产品，是其非常受欢迎的前身树莓派 4（于 2019 年推出）的进化版。

下面，我们来探讨它的新鲜亮点，以及何时何地可以将其买到手。

### ? 树莓派 5 的新变化是什么？

**树莓派 5 是一款足以称得上强大的后继产品**，其全新设计的平台搭载了在英国开发的**自行设计的芯片**。

与树莓派 4 比较，**树莓派 5 的性能提升了一倍以上** ，这主要得益于硬件和软件的改进。他们还补充说：

>
> 与树莓派 4 相较，我们的 CPU 和 GPU 性能提高了两到三倍，在内存和 I/O 带宽方面也有大约两倍的增长；而且这是我们首次在旗舰树莓派设备上使用了自家的树莓派芯片。
>
>
>

尽管外形并无明显改变，树莓派 5 **仍然保留了信用卡大小的尺寸**。变化主要体现在端口的位置上。

为了配合这款 SBC 的发布，树莓派团队积极开发了适合的新版本树莓派操作系统。它**基于 [Debian 12 “Bookworm”](https://news.itsfoss.com/debian-12-release/) 版本**，所以你可以期待有很多改进。

这个更新的操作系统预计将在 **2023 年 10 月中旬** 发布，将过渡到 [Wayfire](https://wayfire.org/) Wayland 合成器系统，**摒弃了 X11**。

### ? 树莓派 5 的关键参数

那么，你可能对树莓派 5 的硬件配置感到好奇。

首先，树莓派 5 是**由 Broadcom 的一款新型 16 纳米应用处理器 BCM2712 驱动**的。

它使用了一颗 **四核 64 位 Arm Cortex-A76 处理器**，在标准运行状态下的频率为 **2.4 GHz**，拥有 **每核 512 KB 的 L2 缓存** 和一个 **2 MB 的共享 L3 缓存**。

这一切都融入了一款新的 GPU 中，那就是 Broadcom 的 **VideoCore VII**。它配备了**完全开源的 Mesa 驱动程序**。

还有新的 **RP1 I/O 控制器**，它**负责操作各种 I/O 端口**，如 **USB 2.0/3.0** 、**千兆以太网**、**MIPI 收发器** 和 **常见的 GPIO 端口**。

>
> 项目 RP1 自 2016 年启动以来，已经投资了 1500 万美元。 ?
>
>
>

最后，我们看到了新的 **DA9091 电源管理 IC**，出自 [Renesas](https://www.renesas.com/us/en)，它**负责处理主板上的电源分配**，带有 **8 个单独的开关模式电源供应器**，以生成树莓派 5 所需的不同电压。

此外，以下是其他一些值得一提的要点：

* 独立电源按钮
* 双频 802.11ac Wi-Fi
* 可选 4 GB / 8 GB 内存版本
* 2x 4Kp60 HDMI 显示输出
* 2x 4-通道 MIPI 摄像头 / 显示器收发器
* 蓝牙 5.0 / 低功耗蓝牙（BLE）

树莓派 5 看上去是一款能助你创建出比当前的 [树莓派项目](https://itsfoss.com/raspberry-pi-projects/) 更棒的新项目的设备。

### 树莓派 5 配件 ?

一如既往，树莓派 5 与各种官方配件一同发布。

以带有**集成风扇的外壳**为例，设计精良，适用于低噪声和长期使用。

还有一种叫做 **主动冷却器** 的冷却配件，它配有一个铝质热散片和可以安装在主板上的风扇。

由于**峰值功率需求的增加**，他们也提供了**一款 27 W 的 USB-C 电源适配器**，以便动手玩家们可以最大限度地使用他们的树莓派 5。

我在这里没有提到的还有一些额外的 [树莓派配件](https://itsfoss.com/raspberry-pi-accessories/)，如显示线缆、m.2 连接帽等等。我相信在不久的将来会看到更多的配件。

我强烈建议你浏览官方的 [公告博客](https://www.raspberrypi.com/news/introducing-raspberry-pi-5/) ，进一步了解这款有趣的单板计算机的详细信息。

### ? 价格和供应信息

树莓派 5 提供**两款版本** ，价格从**4 GB 版本的 60 美元** 开始，**8 GB 版本为 80 美元**。

目前已经在一些 [认证的经销商](https://www.raspberrypi.com/resellers/) 开始接受预订，预计将在十月末出货。

>
> **[树莓派 5（认证的经销商）](https://www.raspberrypi.com/resellers/)**
>
>
>

他们被**限制只能销售给个人购买者**，这个限制将持续到今年（2023 年）结束，以避免任何供应链方面的问题。

*（题图：MJ/12b9c1e0-414e-42f8-a61b-466dad831eef）*

---

via: <https://news.itsfoss.com/raspberry-pi-5/>

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

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


硬核观察 #1142 谷歌高管曾称其搜索广告利润“堪比非法企业”

Summary:
? 谷歌高管曾称其搜索广告利润“堪比非法企业”
? 数以百万计的 “数字游民” 正在周游世界
? 研究人员让人工智能帮助反证 P=NP 问题
»
»

这一看就是AI配图啊～

# 硬核观察 #1142 谷歌高管曾称其搜索广告利润“堪比非法企业”

### 谷歌高管曾称其搜索广告利润“堪比非法企业”

在对谷歌搜索反垄断审判中披露的一份文件显示，谷歌财务副总裁 Michael Roszak 在 “为一门关于沟通的课程” 的会议记录中写道，谷歌的搜索广告 “是有史以来世界上最伟大的商业模式之一”，其经济效益只有某些销售 “香烟或毒品” 的 “非法企业” 才能与之匹敌。此外，这份会议记录中还写道，由于用户迷上了谷歌的搜索引擎，谷歌能够 “在很大程度上忽略需求方” 的 “基本经济规律”，“只关注广告商、广告形式和销售等供应方”。Roszak 否认该会议记录反映出他的真实想法，“因为这与商业目的无关”。他称，该课程要求他把 “我不相信的东西作为演讲的一部分” 告诉学生。谷歌多次反对公开该笔记，而在公开后，谷歌又试图封锁 Roszak 就该文件的证词。

>
> **[消息来源：Ars Technica](https://arstechnica.com/tech-policy/2023/09/google-exec-said-users-get-hooked-on-search-engine-like-cigarettes-or-drugs/)**
>
>
>

>
> 老王点评：瞎说什么大实话，有的企业早就这么做了。
>
>
>

### 数以百万计的 “数字游民” 正在周游世界

据为公司与自由职业人才牵线搭桥的 MBO Partners 公司称，“近 1700 万美国员工自称是‘数字游民’，比大流行病前的数字翻了一番还多”。在大流行病期间突然转向远程工作，让许多人长期以来的空想变成了可能。在多年的限制之后，被压抑的国际旅行需求激增，工作休闲旅行时间延长的趋势也随之加快。数十个国家正在向这些专业人士推销一种新的签证类别。在亚洲旅行的“数字游民”中，大约有 15% 的人严格遵守美国的工作时间，熬夜工作；另外大约三分之一的人工作时间比较灵活，可以在晚上或清晨工作。

而另外一则 [报道](https://www.sfgate.com/local/article/office-to-housing-conversion-buildings-sf-18399064.php) 称，旧金山的一些空置办公室准备转变为住房，这些写字楼达到了 33.9% 的历史空置率，空置面积超过 3000 万平方英尺。

>
> **[消息来源：雅虎](https://sg.news.yahoo.com/digital-nomads-are-travelling-by-day-and-working-by-night-000006946.html)**
>
>
>

>
> 老王点评：令人称羡的工作和自由。
>
>
>

### 研究人员让人工智能帮助反证 P=NP 问题

一个来自国内的研究团队发表了一篇预印本论文，介绍了他们利用 OpenAI 的 GPT-4 来帮助反证 P=NP 问题不成立。该团队的方法相当于从之前的论文中提取论点，然后灌输给 GPT-4，以促使其做出有用的反应。他们通过 97 轮提示，让 GPT-4 扮演“一位睿智的哲学家”、“一位精通概率论的数学家”，诱导 GPT-4 证明 P 事实上不等于 NP。他们观察到，GPT-4 演示了一些论据，从而得出 P 事实上不等于 NP 的结论。他们认为，这项工作表明大型语言模型不仅能吐回大量文本，还能 “发现新的见解”，从而带来 “科学发现”，他们将这一前景命名为 “科学的 LLM”。

>
> **[消息来源：ZDNet](https://www.zdnet.com/article/can-generative-ai-solve-computer-sciences-greatest-unsolved-problem/)**
>
>
>

>
> 老王点评：虽然我觉得人工智能可能能够发现人类所忽视的知识，但是能从这些地方找到证明 P=NP 问题的思路已经超过了我的想象。
>
>
>


现在，使用 Mozilla Firefox 的理由又增加了一条！

Summary: Firefox 正在不断取得进展，让我们一起看看最新的变化吧！

重度Google用户肯定会用Chrome而不是Firefox来访问Google服务，因为自家服务集成度更高，这不是用Firefox的理由。

firefox 的 devtools 能换主题吗 ？<br />
以前有试过一次 ，但是它的devtools 太不方便了

firefox ux 一直有简洁大气的感觉，扩展功能也够用，没有更换的想法

一直在用firefox，chromium用不习惯

只可惜linux下的firefox总是不能成功开启GPU加速，看B站4K8K时CPU都快冒烟了。。。。。windows下则自动就会开启。

我是 firefox 可以, 但是 chrome/chromium 不行, Xe 核显.

重要的是现在很多插件只支持chromium系浏览器，包括很多三方插件网站默认下载.crx格式的，对Firefox的支持并不友好。Firefox还是应该增强宣传力度

来自112.48.27.66的 Firefox 118.0|GNU/Linux 用户

就凭FF禁止中国用户安装广告屏蔽插件这一行为它就已经不再存在我的软件列表里了,哪怕它再好用。

你要是有能力，可以给火狐翻案……

这是因为输了官司，火狐真正的黑点是谋智版

这是因为中国广告商起诉了FF，又不是FF搞歧视

zhuanlan.zhihu.   com/p/484768591

其实github有uBlock的xpi

github.  com/gorhill/uBlock/

Firefox 正在不断取得进展，让我们一起看看最新的变化吧！

# 现在，使用 Mozilla Firefox 的理由又增加了一条！

>
> Firefox 正在不断取得进展，让我们一起看看最新的变化吧！
>
>
>

Mozilla Firefox 是一款极棒的开源多平台浏览器，一直以来都以提供最佳的隐私保护功能而广受好评。

更值得一提的是，它成为了大多数 Linux 发行版的默认浏览器，使得它成为了 Linux 用户的自然之选。

### Firefox 当前的状况

尽管 Firefox 一直以隐私优先的策略，并且是 [谷歌 Chrome 的最佳开源替代品](https://itsfoss.com/open-source-browsers-linux/) 之一，它仍然被大众所冷落。

这听起来令人失望，不是吗？

的确是的，就以市场份额来说，谷歌 Chrome 占据了 **63.56%**，而 Firefox 用户仅占据了 **2.94%** —— 这是来自 [StatCounter](https://gs.statcounter.com/browser-market-share) 的统计数据。

为什么会这样？

详细来说，你可以回顾一下 [Firefox 在 2021 年几乎损失了 5000 万用户](/article-13642-1.html)。

简而言之：**Mozilla Firefox 已经尽其所能，但似乎仍然不足以吸引公众的注意**。

### Firefox 的用户体验在不断改善

幸运的是，在过去的两年中，Mozilla Firefox 似乎专注于一步步提升用户体验，并比平常更多地向公众展示自己。

例如，他们正在为 Firefox 117 提供 [自动翻译功能支持](https://news.itsfoss.com/firefox-117-release/)。

总的来说，最近的更新已经简化了用户界面，并为 [我为什么总是会回到 Firefox](https://news.itsfoss.com/why-mozilla-firefox/) 提供了更多理由。

当然，Firefox 已经提供了 [Firefox Relay](https://relay.firefox.com/)（[保护你电子邮箱的工具](https://itsfoss.com/protect-email-address/) 之一）等隐私特性。但是，并非每个用户都在乎那些改善了安全性的底层优化。

许多用户希望能够通过网页浏览器无缝的使用他们喜爱的网络服务。**这无疑是用户体验的核心部分。**

Mozilla Firefox 就是一款能提供这一体验的强大且安全的浏览器。

如果浏览器能满足网民使用他们**最喜欢或是主流服务**的体验需求，那么 Firefox 就能保留旗下用户，甚至吸引更多新用户。

### 谷歌的网络服务在 Firefox 上运行得比以前更好了

好消息是：**Mozilla 正在全力以赴做出改变！**

在最近的 [博客文章](https://blog.mozilla.org/en/products/firefox/google-meet-firefox/) 中，他们宣布，**谷歌 Meet 以及其他谷歌服务如 Workspace、Voice、YouTube、Keep、地图、翻译以及相册** 在 Firefox 上运行得比以往任何时候都要好。

他们为此与谷歌的 Workspace 团队一直保持着紧密的合作，他们这样写道：

>
> 如果你正在考虑切换，但担心兼容性问题，你可以放心 —— 谷歌的服务在 Firefox 上工作得相当出色，我们也在不断的努力满足你的日新月异的需求。
>
>
>

他们还分享了谷歌 Meet 在 Firefox 上改善后的一些使用体验截图。现在，只需使用 Firefox 115 和更高版本，你就可以在加入视频通话前后应用视效（或背景）。

许多网络用户都一直在使用谷歌的服务，如果他们在 Firefox 上的用户体验也很棒，那么 Firefox 就可能成为一个适合他们替代 Chrome 的选择。

**所以，谷歌的网络服务在 Firefox 上的体验得到了改进？**

**这又是一个使用 Firefox 的理由。**

我认为，Mozilla 为了与谷歌 Chrome 及其他竞方保持竞争力，并增强用户对流行网络服务的网络体验，这么做是明智之举。

? 你现在正在使用 Firefox 吗？在读了这篇文章后，你决定再试一次吗？在下方留言分享你的想法吧！

*（题图：MJ/7427a77e-ed67-4ac4-bc8a-bb9794c34adc）*

---

via: <https://news.itsfoss.com/mozilla-firefox-progress/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[ChatGPT](https://linux.cn/lctt/ChatGPT) 校对：[wxy](https://github.com/wxy)

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


Btrfs 详解：子卷

# Btrfs 详解：子卷

这篇文章是《Btrfs 详解》系列文章中的一篇。从 Fedora Linux 33 开始，Btrfs 就是 Fedora Workstation 和 Fedora Silverblue 的默认文件系统。

以防你忘记，这是系列文章中的前一篇：[Btrfs 详解：基础概念](/article-16189-1.html)。

### 简介

<ruby> 子卷 <rt>  Subvolume </rt></ruby> 允许将一个 Btrfs 文件系统划分成多个独立的子文件系统。这意味着你可以从 Btrfs 文件系统挂载子卷，就好像它们是独立的文件系统。除此之外，例如，你还可以通过 <ruby> 限额组 <rt>  qgroup </rt></ruby>（我们将在本系列的另一篇文章里介绍）定义子卷能够占据的最大空间，或者用子卷去包含或排除快照中的文件（我们会后面的文章中会讲到）。自 Fedora Linux 33 后每个 Fedora Workstation 和 Fedora Silverblue 默认安装过程中会利用子卷。在这篇文章中我们会介绍它是如何工作的。

下面你会找到很多关于子卷的例子。如果你想跟着操作，你必须拥有访问某些 Btrfs 文件系统的权限和 root 权限。你可以通过下面命令来验证你的 `/home/` 目录是否是 Btrfs 。

```
$ findmnt -no FSTYPE /home
btrfs

```

这个命令会输出你 `/home/` 目录的文件系统名。如果它是 btrfs，那就可以了。让我们创建一个新的目录去做实验：

```
$ mkdir ~/btrfs-subvolume-test
$ cd ~/btrfs-subvolume-test

```

在下面的文本中，你会看到很多像上面显示的那样的命令输出框。请在阅读/比较命令输出时请记住，**框中的内容在行末会被换行**。这使得识别跨多行的长行变得困难，降低了可读性。如果有疑问，试着调整浏览器窗口的大小，看看文本的变化!

### 创建和使用子卷

我们可以通过以下命令创建一个 Btrfs 子卷：

```
$ sudo btrfs subvolume create first
Create subvolume './first'

```

当我们检查当前目录，我们可以看到现在有一个名为 `first` 的新目录。注意到下面输出的第一个字符 `d`：

```
$ ls -l
total 0
drwxr-xr-x. 1 root root 0 Oct 15 18:09 first

```

我们可以像常规目录一样操作它：我们可以重命名它，移动它，在里面创建新文件和目录，等等。注意到目录属于 root，所以我们必须以 root 身份去做这些事情。

如果它表现和看起来就像个目录，那我们如何知道这是不是一个 Btrfs 子卷呢？我们可以使用 `btrfs` 工具去列出所有子卷：

```
$ sudo btrfs subvolume list .
ID 256 gen 30 top level 5 path home
ID 257 gen 30 top level 5 path root
ID 258 gen 25 top level 257 path root/var/lib/machines
ID 259 gen 29 top level 256 path hartan/btrfs-subvolume-test/first

```

如果你安装的是最新的 Fedora Linux，且未修改过，你很可能会看到和上面一样的输出。我们会在之后检查 `home` 和 `root` ，还有全部数字的含义。现在，我们看到在我们指定的路径下有一个子卷。我们可以将输出限制在我们当前位置下面的子卷：

```
$ sudo btrfs subvolume list -o .
ID 259 gen 29 top level 256 path home/hartan/btrfs-subvolume-test/first

```

让我们重命名子卷：

```
$ sudo mv first second
$ sudo btrfs subvolume list -o .
ID 259 gen 29 top level 256 path home/hartan/btrfs-subvolume-test/second

```

我们还可以嵌套子卷：

```
$ sudo btrfs subvolume create second/third
Create subvolume 'second/third'
$ sudo btrfs subvolume list .
ID 256 gen 34 top level 5 path home
ID 257 gen 37 top level 5 path root
ID 258 gen 25 top level 257 path root/var/lib/machines
ID 259 gen 37 top level 256 path hartan/btrfs-subvolume-test/second
ID 260 gen 37 top level 259 path hartan/btrfs-subvolume-test/second/third

```

我们也可以移除子卷，就像移除目录一样：

```
$ sudo rm -r second/third

```

或者通过特殊的 Btrfs 命令：

```
$ sudo btrfs subvolume delete second
Delete subvolume (no-commit): '/home/hartan/btrfs-subvolume-test/second'

```

### 像单独的文件系统一样操作子卷

前面的简介里说 Btrfs 子卷就好像单独的文件系统。这意味着我们可以挂载子卷并且传递一些挂载选项给它。我们先创建一个小的目录结构去更好的理解发生了什么：

```
$ mkdir -p a a/1 a/1/b
$ sudo btrfs subvolume create a/2
Create subvolume 'a/2'
$ sudo touch a/1/c a/1/b/d a/2/e

```

这就是目录结构的样子：

```
$ tree
.
└── a
    ├── 1
    │   ├── b
    │   │   └── d
    │   └── c
    └── 2
        └── e

4 directories, 3 files

```

验证现在这里有一个新的 Btrfs 子卷：

```
$ sudo btrfs subvolume list -o .
ID 261 gen 41 top level 256 path home/hartan/btrfs-subvolume-test/a/2

```

为了挂载子卷，我们必须知道 Btrfs 子卷所在的块设备路径。下面的命令会告诉我们：

```
$ findmnt -vno SOURCE /home/
/dev/vda3

```

现在我们挂载子卷。确保你将参数替换成你 PC 上的：

```
$ sudo mount -o subvol=home/hartan/btrfs-subvolume-test/a/2 /dev/vda3 a/1/b

```

观察到我们使用 `-o` 参数去提供额外的选项去挂载程序。在这里我们告诉它挂载在设备 `/dev/vda3` 上 btrfs 文件系统里名为 `home/hartan/btrfs-subvolume-test/a/2` 的子卷。这是 Btrfs 特有的选项，在其他文件系统里没有的。

我们可以看到目录结构变化了：

```
$ tree
.
└── a
    ├── 1
    │   ├── b
    │   │   └── e
    │   └── c
    └── 2
        └── e

4 directories, 3 files

```

现在文件 `e` 出现了两次， `d` 不见了。我们现在可以用两个不同的路径访问相同的 Btrfs 子卷。在一个路径的所有变化会被立刻反应在其他的位置：

```
$ sudo touch a/1/b/x
$ ls -lA a/2
total 0
-rw-r--r--. 1 root root 0 Oct 15 18:14 e
-rw-r--r--. 1 root root 0 Oct 15 18:16 x

```

让我们尝试更多的挂载选项。例如我们可以像这样以只读方式挂载子卷到 `a/1/b`（插入你 PC 的参数）：

```
$ sudo umount a/1/b
$ sudo mount -o subvol=home/hartan/btrfs-subvolume-test/a/2,ro /dev/vda3 a/1/b

```

我们和上面使用相同的命令，除了我们加上了 `ro` 在末尾。现在我们不能在这个挂载点上创建文件：

```
$ sudo touch a/1/b/y
touch: cannot touch 'a/1/b/y': Read-only file system

```

但直接访问子卷仍然像之前一样：

```
$ sudo touch a/2/y
$ tree
.
└── a
    ├── 1
    │   ├── b
    │   │   ├── e
    │   │   ├── x
    │   │   └── y
    │   └── c
    └── 2
        ├── e
        ├── x
        └── y

4 directories, 7 files

```

在下一步之前不要忘记进行清理：

```
$ sudo rm -rf a
rm: cannot remove 'a/1/b/e': Read-only file system
rm: cannot remove 'a/1/b/x': Read-only file system
rm: cannot remove 'a/1/b/y': Read-only file system

```

天啊，发生了什么？噢，因为我们在上面挂载只读子卷，所以不能删除它。从文件系统的角度来看，删除是一种写入操作：为了删除 `a/2/b/e`，我们从父目录 `a/1/b` 的内容中删除目录项 `e`。换句话来说，我们必须 *写入* `a/1/b` 去表明 `e` 不复存在。所以我们先卸载子卷，然后移除目录：

```
$ sudo umount a/1/b
$ sudo rm -rf a
$ tree
.

0 directories, 0 files

```

### 子卷 ID

还记得 `btrfs subvolume list` 命令的第一次输出吗？那包含了很多数字，让我们看看这些究竟什么。我在这里复制了输出，以便再次查看:

```
ID 256 gen 30 top level 5 path home
ID 257 gen 30 top level 5 path root
ID 258 gen 25 top level 257 path root/var/lib/machines
ID 259 gen 29 top level 256 path hartan/btrfs-subvolume-test/first

```

我们看到有三列数字，每个前面有一些字母来描述它们的作用。第一列是子卷 ID 。子卷 ID 在 Btrfs 文件系统是唯一的，而且唯一地标识子卷。这意味着名为 `home` 的子卷也可以用它的 ID **256** 来引用。之前的挂载命令是这样写的：

```
$ sudo mount -o subvol=hartan/...

```

另外一个完全合法的选择是使用子卷 ID ：

```
$ sudo mount -o subvolid=...

```

子卷 ID 从 **256** 开始，每创建一个子卷依次递增 1 。但是在这里有一个例外：文件系统的根的子卷名称总是为 `/`，并且子卷 ID 是 5 。没错，即使文件系统的根技术上也是一个子卷。这是不言而喻的，因此不会出现在 `btrfs subvolume` 的输出列表里。如果你没有用 `subvol` 和 `subvolid` 参数去挂载一个 Btrfs 文件系统，`subvolid=5` 的顶级子卷就是默认的挂载对象。下面我们会看到一个想要显式挂载文件系统根的例子。

第二列的数字是生成号，并且在每次 Btrfs 事务中递增。这几乎是一个内部的计数器，我们不会在这里讨论。

最后，第三列数字是 *父* 子卷的子卷 ID。在上面的输出我们可以看到子卷 `home` 和 `root` 的父子卷 ID 都是 5。记住 ID 5 的特殊含义：这是文件系统的根。所以我们知道 `home` 和 `root` 都是顶级子卷的子卷。另一方面 `hartan/btrfs-subvolume-test.first` 是子卷 ID 256（也就是 `home`）的子卷。

在下一节我们会看看子卷 `root` 和 `home` 是怎么来的。

### 检查 Fedora Linux 的默认子卷

当你从头创建一个新的 Btrfs 文件系统，里面是没有子卷的（当然，除了顶级子卷）。所以 Fedora Linux 里的 `home` 和 `root` 子卷是哪里来的？

它们是安装程序在安装时创建的。传统的安装经常会为 `/` 和 `/home` 目录包含单独的文件系统分区。在启动时，它们通过恰当的挂载组成一个完整的文件系统。但这个方法有一个问题：除非你使用像 lvm 这样的技术，想在将来改变分区的大小是非常难的。因而你可能出现 `/` 或 `/home` 用完空间的情况，然而还有很多其他没被使用的分区和空间剩余。

因为 Btrfs 子卷全都是相同文件系统的一部分，它们共享底层文件系统提供的空间。还记得我们在上面创建的子卷吗？我们从未告诉 Btrfs 它们多大：一个子卷可以占据文件系统拥有的全部空间，默认是不会阻止这种行为的。但是，我们 *可以* 通过 Btrfs 的 <ruby> 限额组 <rt>  qgroup </rt></ruby> 动态地约束其大小，同时也可以在运行时修改（我们将在后续的文章中了解如何做的）。

另外一个分离 `/` 和 `/home` 的优势是我们可以分别进行 *快照* 。子卷是快照的边界，对一个子卷的快照永远不会包含该子卷下面的其他子卷的内容。快照的更多细节会在后续的文章中介绍。

理论已经足够了！我们来看看这是怎么回事。首先确保你的根文件系统类型是 Btrfs ：

```
$ findmnt -no FSTYPE /
btrfs

```

然后我们获取它所在的分区：

```
$ findmnt -vno SOURCE /
/dev/vda3

```

记住我们可以通过特殊的子卷 ID 5 挂载文件系统的根（适应文件系统分区！）：

```
$ mkdir fedora-rootsubvol
$ sudo mount -o subvolid=5 /dev/vda3 ./fedora-rootsubvol
$ ls fedora-rootsubvol/
home  root

```

而且还有 Fedora Linux 安装的子卷！但 Fedora Linux 是如何知道子卷 `root` 属于 `/` ，而 `home` 属于 `/home` 的呢？

文件 `/etc/fstab` 包含了所谓的文件系统的静态信息。简而言之，在你系统启动的时候会一行一行地读取这个文件，然后挂载那里列出的所有文件系统。在我的系统上，这个文件长这样：

```
$ cat /etc/fstab
# [ ... ]
# /etc/fstab
# Created by anaconda on Sat Oct 15 12:01:57 2022
# [ ... ]
#
UUID=5e4e42bb-4f2f-4f0e-895f-d1a46ea47807 /                       btrfs   subvol=root,compress=zstd:1 0 0
UUID=e3a798a8-b8f2-40ca-9da7-5e292a6412aa /boot                   ext4    defaults        1 2
UUID=5e4e42bb-4f2f-4f0e-895f-d1a46ea47807 /home                   btrfs   subvol=home,compress=zstd:1 0 0

```

（注意上面的 “UUID” 开头行的内容被换行成两行）

每行开头的 `UUID` 用于标识你系统上的硬盘和文件系统分区（大概相当于我在上面使用的 `/dev/vda3` ）。第二列是文件系统应该挂载在文件系统树上的路径。第三列是文件系统类型。我们可以看到 `/` 和 `/home` 都是 `btrfs` 类型，正如我们期望的那样！最后，第四列是：这些是挂载选项，这里说通过 `subvol=root` 选项去挂载 `/` 。这正是我们一直在 `btrfs subvolume list /` 里看到的输出！

有了这些信息，我们可以重新构建创建这个文件系统项的 `mount` 命令

```
$ sudo mount -o subvol=root,compress=zstd:1 UUID=5e4e42bb-4f2f-4f0e-895f-d1a46ea47807 /

```

（再次，上面的 “UUID” 开头行的内容被换行成两行）

这就是 Fedora Linux 如何使用 Btrfs 子卷！如果你对好奇 Fedora Linux 为什么选择 Btrfs 作为默认的文件系统，请参阅下面链接的更改提议    [1] 。

### Btrfs 子卷的更多内容

Btrfs 维基提供了关于子卷的更多信息，其中最重要的是可应用于 Btrfs 子卷的挂载选项。有些选项，比如 `compress` 只能应用到文件系统的层面，因而会影响一个 Btrfs 文件系统的所有子卷。你可以通过下面的链接找到entry    [2] 。

如果你对哪些目录是普通目录和哪些是子卷有困惑，你可以对你的子卷采用特殊的命名约定。例如，你可以给子卷名加上 `@` 前缀去方便区分。

现在你知道子卷表现得就像文件系统，有人可能会问如何才能最好地将子卷放置在特定位置。比如你想要一个 Btrfs 子卷在 `~/games` 下面，然而你的主目录（`~`）本身就是一个子卷，你该如何实现呢？鉴于上面的例子，你可以使用像 `sudo btrfs subvolume create ~/games` 的命令。这样，你创建了所谓的 *嵌套* 子卷：在你的子卷 `~` 里，有一个子卷 `games` 。这正是一种达成目的的方法。

其他有效的方法就是如同 Fedora 默认行为那样：在根子卷下创建所有子卷（也就是它们的父子卷 ID 是 5 ），然后挂载它们到特定的位置。Btrfs 维基有这些方法的概述和对于各自文件系统管理影响的简短讨论    [3] 。

### 总结

在本文中，我们探索了 Btrfs 子卷，它们像是 Btrfs 文件系统内部的独立的 Btrfs 文件系统。我们学习了如何创建、挂载和删除子卷。最后，我们探讨了 Fedora Linux 如何在我们完全没有注意到的情况下使用子卷。

本系列的下一篇文章将讨论：

* 快照 - 回到过去
* 压缩 - 透明地节省存储空间
* 配额组 - 限制文件系统大小
* RAID - 替代 mdadm 配置

如果你还想了解与 Btrfs 相关的其他主题，请查看 Btrfs 维基    [4]  和文档    [5] 。不要忘记查看本系列的第一篇文章（如果你还没有看过的话）！如果你认为本系列文章缺少了一些内容，请在下面的评论中告诉我们。再会！

### 参考资料

1. <https://fedoraproject.org/wiki/Changes/BtrfsByDefault#Benefit_to_Fedora> [↩](#fnref1)
2. <https://btrfs.readthedocs.io/en/latest/Subvolumes.html> [↩](#fnref2)
3. <https://btrfs.wiki.kernel.org/index.php/SysadminGuide#Layout> [↩](#fnref3)
4. <https://btrfs.wiki.kernel.org/index.php/Main_Page> [↩](#fnref4)
5. <https://btrfs.readthedocs.io/en/latest/Introduction.html> [↩](#fnref5)

*（题图：MJ/f047ea87-2490-40e5-9f91-d48d236675e5）*

---

via: <https://fedoramagazine.org/working-with-btrfs-subvolumes/>

作者：[Andreas Hartmann](https://fedoramagazine.org/author/hartan/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[A2ureStone](https://github.com/A2ureStone) 校对：[wxy](https://github.com/wxy)

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