Linux 内核动手编译实用指南

Summary: 一份让你深入体验最新 Linux 内核编译过程的实操指南。

一份让你深入体验最新 Linux 内核编译过程的实操指南。

![](/data/attachment/album/202310/04/115142ggqqhuclvxdxsb14.jpg)

>
> 一份让你深入体验最新 Linux 内核编译过程的实操指南。
>
>
>

出于各种原因，自行编译 Linux 内核可能引起你的兴趣。这些原因可能包括但不限于：

* 测试一个比你目前的 Linux 发行版更新的内核版本
* 采用一组不同的配置选项、驱动来构建内核
* 学习者的好奇心 ?

此指南将一步步指导你如何亲自编译 Linux 内核，包括你该运行哪些命令，为什么运行这些命令以及这些命令的执行效果。本文篇幅较长，所以请做好准备！

>
> ? 诸如 [Ubuntu 这样的发行版提供了更简单地安装主线 Linux 内核的方式](https://itsfoss.com/upgrade-linux-kernel-ubuntu/)。但本教程目标是从源码手动完成所有工作。**此教程需要你付出时间、耐心以及丰富的 Linux 命令行使用经验**。本文更注重亲身实践的体验。不管怎么说，我仍建议你在虚拟机或备用系统中尝试此冒险，而非在你的主系统上进行。
>
>
>

### 前置准备

在软件领域，构建任何事物都有两个基本要求：

1. 源代码
2. 构建依赖

因此，作为预备环节，我们需要下载 Linux 内核的源码压缩包，并安装一些能让我们成功构建 Linux 内核的依赖项。

#### Linux 版本导览

在任何时刻，[~~Freax~~](https://en.wikipedia.org/wiki/History_of_Linux#Naming) Linux 内核都有四种“版本”。

Linux 的这些 “版本”，按照开发流程的顺序是：

1. **linux-next 树：** 所有准备合并到 Linux 代码库的代码首先被合并到 linux-next 树。它代表的是 Linux 内核最新也是“最不稳定”的状态。大多数 Linux 内核开发者和测试人员使用这个来提高代码质量，为 Linus Torvalds 的后续提取做准备。**请谨慎使用！**
2. **发布候选版（RC） / 主线版：** Linus 从 linux-next 树抽取代码并创建一个初始发布版本。这个初始发布版本的测试版称为 RC（<ruby> 发布候选 <rt>  Release Candidate </rt></ruby>）版本。一旦 RC 版本发布，Linus 只会接受对它的错误修复和性能退化相关的补丁。基础这些反馈，Linus 会每周发布一个 RC 内核，直到他对代码感到满意。RC 发行版本的标识是 `-rc` 后缀，后面跟一个数字。
3. **稳定版：** 当 Linus 觉得最新的 RC 版本已稳定时，他会发布最终的“公开”版本。稳定发布版将会维护几周时间。像 Arch Linux 和 Fedora Linux 这样的前沿 Linux 发行版会使用此类版本。**我建议你在试用 linux-next 或任何 RC 版本之前，先试一试此版本。**
4. **LTS 版本：** 每年最后一个稳定版将会再维护 [几年](https://news.itsfoss.com/linux-kernel-support/)。这通常是一个较旧的版本，但它会 **会积极地维护并提供安全修复**。Debian 的稳定版本会使用 Linux 内核的 LTS 版版本。

若想了解更多此方面的知识，可参阅 [官方文档](https://www.kernel.org/category/releases.html)。

本文将以当前可用的最新稳定版为例，编写此文时的 Linux 内核版本是 [6.5.5](https://lwn.net/Articles/945378/)。

### 系统准备

由于 Linux 内核使用 C 语言编写，编译 Linux 内核至少需要一个 C 编译器。你的计算机上可能还需要其他一些依赖项，现在是安装它们的时候了。

>
> ? 这个指南主要聚焦于使用 GNU C 编译器（GCC）来编译 Linux 内核。但在未来的文章中（可能会深入介绍 Rust 的支持），我**可能**会介绍使用 LLVM 的 Clang 编译器作为 GCC 的替代品。
>
>
> 不过，请注意，MSVC 并不适用。尽管如此，我仍期待有微软的员工为此发送修补程序集。我在瞎想啥？
>
>
>

对于 Arch Linux 以及其衍生版本的用户，安装命令如下：

```
sudo pacman -S base-devel bc coreutils cpio gettext initramfs kmod libelf ncurses pahole perl python rsync tar xz

```

对于 Debian 以及其衍生版本的用户，安装命令如下：

```
sudo apt install bc binutils bison dwarves flex gcc git gnupg2 gzip libelf-dev libncurses5-dev libssl-dev make openssl pahole perl-base rsync tar xz-utils

```

对于 Fedora 以及其衍生版本的用户，安装命令如下：

```
sudo dnf install binutils ncurses-devel \
    /usr/include/{libelf.h,openssl/pkcs7.h} \
    /usr/bin/{bc,bison,flex,gcc,git,gpg2,gzip,make,openssl,pahole,perl,rsync,tar,xz,zstd}

```

#### 下载 Linux 内核源码

请访问 [kernel.org](https://kernel.org/)，在页面中寻找第一个 <ruby> 稳定 <rt>  Stable </rt></ruby> 版本。你不会找不到它，因为它是最显眼的黄色方框哦 ?

>
> **[点击访问 kernel.org](https://kernel.org/)**
>
>
>

![](/data/attachment/album/202310/04/115421iaaw8wvn85r6no8d.jpg)

通过点击黄色的方框，你就可以下载 Tar 文件。同时，也别忘了下载相匹配的 PGP 签名文件，稍后我们需要用到它来验证 Tar 文件。它的扩展名为 `.tar.sign`。

##### 校验 Tar 文件的完整性

你如何知道刚下载的 Tar 文件是否被损坏？对于个人来说，一个损坏的 Tar 文件只会浪费你的宝贵时间，如果你是在为一个组织工作，那么可能会危及到组织的安全（这时你可能还有更大的问题需要担忧，但我们并不想让所有人都产生创伤后应激障碍！）。

为了验证我们的 Tar 文件的完整性，我们需要先解压它。目前，它是使用 XZ 压缩算法压缩的。因此，我将使用 `unxz` 工具（其实就是 `xz --decompress` 的别名）来解压 `.tar.xz` 格式的压缩文件。

```
unxz --keep linux-*.tar.xz

```

解压完成后，我们需要获取 Linus Torvalds 和 Greg KH 使用的 GPG 公开密钥。这些密钥用于对 Tar 文件进行签名。

```
gpg2 --locate-keys torvalds@kernel.org gregkh@kernel.org

```

你应该可以得到一个与我在我的电脑上看到的类似的结果：

```
$ gpg2 --locate-keys torvalds@kernel.org gregkh@kernel.org
gpg: /home/pratham/.gnupg/trustdb.gpg: trustdb created
gpg: key 38DBBDC86092693E: public key "Greg Kroah-Hartman <gregkh@kernel.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: key 79BE3E4300411886: public key "Linus Torvalds <torvalds@kernel.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1
pub   rsa4096 2011-09-23 [SC]
      647F28654894E3BD457199BE38DBBDC86092693E
uid           [ unknown] Greg Kroah-Hartman <gregkh@kernel.org>
sub   rsa4096 2011-09-23 [E]

pub   rsa2048 2011-09-20 [SC]
      ABAF11C65A2970B130ABE3C479BE3E4300411886
uid           [ unknown] Linus Torvalds <torvalds@kernel.org>
sub   rsa2048 2011-09-20 [E]

```

在导入 Greg 和 Linus 的密钥后，我们可以使用 `--verify` 标志来验证 Tar 的完整性，操作如下：

```
gpg2 --verify linux-*.tar.sign

```

如果验证成功，你应该会看到如下的输出信息：

```
$ gpg2 --verify linux-*.tar.sign
gpg: assuming signed data in 'linux-6.5.5.tar'
gpg: Signature made Saturday 23 September 2023 02:46:13 PM IST
gpg:                using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
gpg: Good signature from "Greg Kroah-Hartman <gregkh@kernel.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 647F 2865 4894 E3BD 4571  99BE 38DB BDC8 6092 693E

```

**务必查看是否存在 `gpg: Good signature` 的提示，然后再继续！**

>
> ? 你可以忽略以下警告：`WARNING: This key is not certified with a trusted signature! There is no indication that the signature belongs to the owner.`。
>
>
> 我们已根据 Linus 和 Greg 的邮件地址获取了公开密钥，并无需对此警告感到担忧。
>
>
>

##### 解压 Tar 文件

如果你顺利的进行到这里，意味着你的 Tar 文件完整性检查已经成功完成。接下来，我们将从 Tar 文件中解压出 Linux 内核的源码。

![The "TAR" xkcd comic: https://xkcd.com/1168/](/data/attachment/album/202310/04/115346wqqq7guguzg7cdgv.png)

这个步骤十分简单，只需对 Tar 文件执行 `tar -xf` 命令，如下：

```
tar -xf linux-*.tar

```

在这里，`-x` 选项表示解压，`-f` 选项则用来告诉 Tar 文件的文件名。

这个解压过程可能需要几分钟时间，你可以先放松，耐心等待一下。

### 配置 Linux 内核

Linux 内核的构建过程会查找 `.config` 文件。顾名思义，这是一个配置文件，用于指定 Linux 内核的所有可能的配置选项。这是必需的文件。

获取 Linux 内核的 `.config` 文件有两种方式：

1. 使用你的 Linux 发行版的配置作为基础（**推荐做法**）
2. 使用默认的，通用的配置

>
> ? 也有第三种方法，也就是从零开始，手动配置每一个选项，但注意，这需要配置超过 12,000 个选项。并不推荐这种方式，因为手动配置所有选项将花费大量的时间，并且你还需要理解每个启用和禁用选项的含义。
>
>
>

#### 使用发行版提供的配置

**使用你的 Linux 发行版提供的配置是一个安全的选择。** 如果你只是跟随这个指南测试一个不是你的发行版提供的新内核，那么这就是推荐的方式。

你的 Linux 发行版的 Linux 内核配置文件会在以下两个位置之一：

* 大多数 Linux 发行版，如 Debian 和 Fedora 及其衍生版，将会把它存在 `/boot/config-$(uname -r)`。
* 一些 Linux 发行版，比如 Arch Linux 将它整合在了 Linux 内核中。所以，可以在 `/proc/config.gz` 找到。

>
> ? 如果两者都有，建议使用 `/proc/config.gz`。这是因为它在只读文件系统中，所以是未被篡改的。
>
>
>

进入含有已经解压出的 Tar 文件的目录。

```
cd linux-*/

```

接着，复制你的 Linux 发行版的配置文件：

```
### Debian 和 Fedora 及其衍生版：
$ cp /boot/config-"$(uname -r)" .config

### Arch Linux 及其衍生版：
$ zcat /proc/config.gz > .config

```

##### 更新配置文件

一旦完成这些步骤，接下来就需要“更新”配置文件了。因为你的发行版提供的配置很可能比你正在构建的 Linux 内核版本要旧。

>
> ? **这同样适用于像 Arch Linux 和 Fedora 这样前沿的 Linux 发行版。** 它们并不会因为有新版本可用就立刻发布更新。他们会进行一些质量控制工作，这必然会花费些时间。因此，即便是你的发行版提供的最新内核，相较于你在 [kernel.org](http://kernel.org) 上获取的版本也会滞后几个小版本。
>
>
>

要更新一个已有的 `.config` 文件，我们使用 `make` 命令搭配 `olddefconfig` 参数。简单解释一下，这个命令的意思是使用 *旧的、默认的、配置*。

这将使用“旧的配置文件”（当前保存为 `.config`，这是你发行版配置的一份直接副本），并检查从上一版本以来 Linux 代码库中新加的任何配置选项。如果找到任何新的、*未配置* 的选项，该选项的默认配置值会被使用，并会对 `.config` 文件进行更新。

原来的 `.config` 文件将被重命名为 `.config.old` 进行备份，并将新的更改写入至 `.config` 文件。

```
make olddefconfig

```

以下是我机器上的输出：

```
$ file .config
.config: Linux make config build file, ASCII text

$ make olddefconfig
    HOSTCC  scripts/basic/fixdep
    HOSTCC  scripts/kconfig/conf.o
    HOSTCC  scripts/kconfig/confdata.o
    HOSTCC  scripts/kconfig/expr.o
    LEX     scripts/kconfig/lexer.lex.c
    YACC    scripts/kconfig/parser.tab.[ch]
    HOSTCC  scripts/kconfig/lexer.lex.o
    HOSTCC  scripts/kconfig/menu.o
    HOSTCC  scripts/kconfig/parser.tab.o
    HOSTCC  scripts/kconfig/preprocess.o
    HOSTCC  scripts/kconfig/symbol.o
    HOSTCC  scripts/kconfig/util.o
    HOSTLD  scripts/kconfig/conf
.config:8593:warning: symbol value 'm' invalid for USB_FOTG210_HCD
.config:8859:warning: symbol value 'm' invalid for USB_FOTG210_UDC
#
# configuration written to .config
#

```

##### 针对 Debian 及其衍生版用户

Debian 及其衍生版为内核模块使用一个签名证书。默认情况下，你的计算机并不包含这个证书。

我推荐关闭启用模块签名的选项。具体如下所示：

```
./scripts/config --file .config --set-str SYSTEM_TRUSTED_KEYS ''
./scripts/config --file .config --set-str SYSTEM_REVOCATION_KEYS ''

```

**如果你不这么做，在后面你进行 Linux 内核构建时，可能会导致构建失败。要注意这点。**

#### 使用自定义配置

如果你出于学习内核开发的目的学习如何构建 Linux 内核，那你应该这样做。

>
> ? **请注意，偏离你的 Linux 发行版的配置可能无法在实体硬件上“正常”工作。**问题可能是特定硬件无法工作、Linux 内核无法启动等。
>
>
> 因此，我们只建议在虚拟机中使用。
>
>
>

你可以通过查看 [make help 的输出](https://www.kernel.org/doc/makehelp.txt) 来查看 *所有* 可用的选项，但我们主要关注三个 `make` 目标：

* `defconfig`: 默认配置。
* `allmodconfig`: 根据当前系统状态，尽可能地把项目构建为可加载模块（而非内建）。
* `tinyconfig`: 极简的 Linux 内核。

由于 `tinyconfig` 目标只会构建少数项目，构建时间将会缩短。我个人选择它的原因主要有：

1. 检查我在代码/工具链中做的修改是否正确，以及代码是否可以编译。
2. 在虚拟机中只进行少数选项的测试。

>
> ? 在为 ARM 或 RISC-V 机器构建 Linux 内核时，你可能需要 DTB（设备树的二进制文件）。**使用 `tinyconfig` 目标将不会启用构建 DTB 的选项，你的内核很可能无法启动。**
>
>
> 当然，你可以用 QEMU 在没有任何 DTB 的情况下启动 Linux 内核。但这篇文章并不会聚焦在此。或许你可以通过评论，让我在之后的时间里覆盖这个话题 ?
>
>
>

**除非你确切地知道自己在做什么，否则你应当使用 `defconfig` 目标。** 以下是我在我的电脑上运行的效果：

```
$ make defconfig
    HOSTCC  scripts/basic/fixdep
    HOSTCC  scripts/kconfig/conf.o
    HOSTCC  scripts/kconfig/confdata.o
    HOSTCC  scripts/kconfig/expr.o
    LEX     scripts/kconfig/lexer.lex.c
    YACC    scripts/kconfig/parser.tab.[ch]
    HOSTCC  scripts/kconfig/lexer.lex.o
    HOSTCC  scripts/kconfig/menu.o
    HOSTCC  scripts/kconfig/parser.tab.o
    HOSTCC  scripts/kconfig/preprocess.o
    HOSTCC  scripts/kconfig/symbol.o
    HOSTCC  scripts/kconfig/util.o
    HOSTLD  scripts/kconfig/conf
*** Default configuration is based on 'defconfig'
#
# configuration written to .config
#

```

#### 修改配置

无论你是使用 Linux 发行版的配置并更新它，还是使用 `defconfig` 目标创建新的 `.config` 文件，你都可能希望熟悉如何修改这个配置文件。**最可靠的修改方式是使用 `menuconfig` 或 `nconfig` 目标。**

这两个目标的功能是相同的，只不过提供给你的界面有所不同。这是这两者间唯一的区别。我个人更偏向于使用 `menuconfig` 目标，但近来我发现 `nconfig` 在搜索选项时似乎更具直观性，所以我逐渐转向使用它。

首先，带着 `menuconfig` 目标运行 `make` 命令：

```
$ make menuconfig
    HOSTCC  scripts/kconfig/mconf.o
    HOSTCC  scripts/kconfig/lxdialog/checklist.o
    HOSTCC  scripts/kconfig/lxdialog/inputbox.o
    HOSTCC  scripts/kconfig/lxdialog/menubox.o
    HOSTCC  scripts/kconfig/lxdialog/textbox.o
    HOSTCC  scripts/kconfig/lxdialog/util.o
    HOSTCC  scripts/kconfig/lxdialog/yesno.o
    HOSTLD  scripts/kconfig/mconf

```

在此界面，你可以根据各选项的类型来进行切换操作。

有两类可切换选项：

* 布尔状态选项：这类选项只能关闭（`[ ]`）或作为内建组件开启（`[*]`）。
* 三态选项：这类选项可以关闭（`< >`）、内建（`<*>`），或作为可加载模块（`<M>`）进行构建。

想要了解更多关于某个选项的信息，使用上/下箭头键导航至该选项，然后按 `<TAB>` 键，直至底部的 `< Help >` 选项被选中，然后按回车键进行选择。此时就会显示关于该配置选项的帮助信息。

**在修改选项时请务必谨慎。**

当你满意配置后，按 `<TAB>` 键直到底部的 `< Save >` 选项被选中。然后按回车键进行选择。然后再次按回车键（**记住，此时不要更改文件名**），就能将更新后的配置保存到 `.config` 文件中。

### 构建 Linux 内核

构建 Linux 内核实际上十分简单。然而，在开始构建之前，让我们为自定义内核构建添加一个标签。我将使用字符串 `-pratham` 作为标签，并利用 `LOCALVERSION` 变量来实施。你可以使用以下命令实现配置：

```
./scripts/config --file .config --set-str LOCALVERSION "-pratham"

```

这一命令将 `.config` 文件中的 `CONFIG_LOCALVERSION` 配置选项设为我在结尾指定的字符串，即 `-pratham`。当然，你也不必非得使用我所用的名字哦 ?

`LOCALVERSION` 选项可用于设置一个“本地”版本，它会被附加到通常的 `x.y.z` 版本方案之后，并在你运行 `uname -r` 命令时一并显示。

由于我正在构建的是 6.5.5 版本内核，而 `LOCALVERSION` 字符串被设为 `-pratham`，因此，对我来说，最后的版本名将会是 `6.5.5-pratham`。这么做的目的是确保我所构建的自定义内核不会与发行版所提供的内核产生冲突。

接下来，我们来真正地构建内核。可以用以下的命令完成此步骤：

```
make -j$(nproc) 2>&1 | tee log

```

**这对大部分（99%）用户来说已经足够了。**

其中的 `-j` 选项用于指定并行编译任务的数量。而 `nproc` 命令用于返回可用处理单位（包括线程）的数量。因此，`-j$(nproc)` 其实意味着“使用我拥有的 CPU 线程数相同数量的并行编译任务”。

`2>&1` 会将 STDOUT 和 STDIN 重定向到相同的文件描述符，并通过管道传输给 `tee` 命令，这会将输出存储在一个名为 `log` 的文件，并且在控制台打印出完全相同的文本。如果你在构建时遇到错误，并希望回顾日志来检查出了什么问题，这将会十分有用。遇到那种情况，你只需要简单执行 `grep Error log` 命令就能找到线索。

#### 自定义 make 目标

在 Linux 内核的源文件夹中，`make` 命令有一些自定义的目标可供执行各种操作。这些主要作为开发者的参考。如果你的唯一目标是安装一个比你当前发行版更新的 Linux 内核，那么你完全可以跳过这部分内容 ?

##### 构建目标

作为一名开发者，你可能只想构建 Linux 内核，或者只想构建模块，或者只想构建设备树二进制（DTB）。在这种情况下，你可以指定一个构建目标，然后 `make` 命令只会构建指定的项目，而不会构建其他的。

以下是一些构建目标：

* `vmlinux`：纯粹的 Linux 内核。
* `modules`：可加载模块。
* `dtbs`：设备树二进制文件（主要用于 ARM 和 RISC-V 架构）。
* `all`：构建所有被标记了星号 `*` 的项目（从 `make help` 的输出中可以查看）。

通常情况下，你并不需要指定构建目标，因为它们都已经在构建列表中。所列出的目标是在你只想要测试某一个构建目标，而不是其他目标时的情况。

依据你的 [计算机架构](https://itsfoss.com/arm-aarch64-x86_64/)，构建完成的 Linux 内核镜像（存放在 `/boot` 目录）的名称会有所不同。

对于 `x86_64`，Linux 内核的默认镜像名称是 `bzImage`。因此，如果你只需要构建引导所需的 Linux 内核，你可以像下面这样设定 `bzImage` 为目标：

```
### 对于 x86_64
$ make bzImage

```

“那么如何在我的架构上找到用来调用 `make` 的目标名称呢？”

有两种方法。要么你可以执行 `make help` 之后查找在 `Architecture specific targets` 下，第一个前面带有星号 `*` 的选项。

或者，如果你希望自动完成，你可以利用 `image_name` 目标得到镜像的完全路径（相对路径），选择性地添加 `-s` 标志来获得有用的输出。

以下是我拥有的三台电脑的输出，一台是 `x86_64`，另一台是 `AArch64`，还有一台是 `riscv` ：

```
### x86_64
$ make -s image_name
arch/x86/boot/bzImage

### AArch64
$ make -s image_name
arch/arm64/boot/Image.gz

### RISC-V
$ make -s image_name
arch/riscv/boot/Image.gz

```

现在，要只构建 Linux 内核镜像，你可以这样进行：

```
make $(make -s image_name | awk -F '/' '{print $4}')

```

##### 清理目标

如果你需要清理构建产生的文件，你可以用以下的目标来实现你的需求：

* `clean`：除了 `.config` 文件外，删除几乎所有其他内容。
* `mrproper`：执行了 `make clean` 的所有操作外，还会删除 `.config` 文件。
* `distclean`：除了执行 `make mrproper` 的所有操作外，还会清理任何补丁文件。

### 安装

一旦成功编译了 Linux 内核，接下来就是启动安装一些东西的时候了。“*一些* 东西？” 没错，我们至少构建了两种不同的东西，如果你使用的是 ARM 或 RISC-V 架构，那就有三种。我会在以下内容中详细解释。

>
> ? 虽然我将告诉你不同的安装方式，尤其是关于如何改变默认安装路径的方法，但**如果你不确定自己在做什么，那么我不建议你这么做！** 请慎重考虑，如果你决定走自定义的路线，那你需要自己负责后果。默认设置之所以存在，是因为它们有其特殊的原因 ?
>
>
>

#### 安装内核模块

Linux 内核有部分在系统启动时并非必需的。这些部分被构建为可加载模块，即在需要时才进行加载和卸载。

所以，首先需要安装这些模块。这可以通过 `modules_install` 目标完成。**必须使用 `sudo`**，因为模块会被安装在 `/lib/modules/<kernel_release>-<localversion>` 这个需要 `root` 权限的路径下。

这个过程不仅会安装内核模块，还会对其进行签名，所以可能需要一些时间。好消息是你可以通过之前提到的 `-j$(nproc)` 选项来并行执行安装任务，这样会快一些。?

```
sudo make modules_install -j$(nproc)

```

>
> **给开发者的提示：** 你可以通过设定 `INSTALL_MOD_PATH` 变量来指定一个不同的路径存放 Linux 模块，而不用默认的 `/lib/modules/<kernel_release>-<localversion>`，具体如下：
>
>
>
> ```
>    sudo make modules_install INSTALL_MOD_PATH=<path>
>
> ```
>
>

>
> **另一个给开发者的提示：** 你可以使用 `INSTALL_MOD_STRIP` 变量来决定是否需要剥离模块的调试符号。如果未设定该变量，调试符号**不会被剥离**。当设为 `1` 时，符号信息将会被使用 `--strip-debug` 选项剥离，随后该选项会传递给 `strip`（或者在使用 Clang 的时候传递给 `llvm-strip`）工具。
>
>
>

#### （可选）安装 Linux 内核头文件

如果你打算使用这个内核来支持树外模块，比如 ZFS 或英伟达 DKMS，或者打算尝试自行编写模块，你可能会需要 Linux 内核提供的头文件。

可以通过以下方式使用 `headers_install` 目标来安装 Linux 内核头文件：

```
sudo make headers_install

```

**应使用 `sudo` 命令**，因为这些头文件会被安装到 `/usr` 目录。同时还会在 `/usr` 目录内创建子目录 `include/linux`，然后将头文件安装到 `/usr/include/linux` 内。

>
> **给开发者的提示：** 通过设定 `INSTALL_HDR_PATH` 变量，你可以修改 Linux 内核头文件的安装路径。
>
>
>

#### 安装 DTB（只针对 ARM 和 RISC-V）

**如果你使用的是 x86\_64 架构，那么你可以跳过此步骤！**

如果你针对 ARM 或者 RISC-V 构建了内核，那么在运行 `make` 的过程中，设备树的二进制文件可能已经被编译出来了。你可以通过在 `arch/<machine_architecture>/boot/dts` 目录查找 `.dtb` 文件来确认这一点。

这里提供了一个快速检查的技巧：

```
### 对于 AArch32
$ find arch/arm/boot/dts -name "*.dtb" -type f | head -n 1 > /dev/null && echo "DTBs for ARM32 were built"

### 对于 AArch64
$ find arch/arm64/boot/dts -name "*.dtb" -type f | head -n 1 > /dev/null && echo "DTBs for ARM64 were built"

### 对于 RISC-V
$ find arch/riscv/boot/dts -name "*.dtb" -type f | head -n 1 > /dev/null && echo "DTBs for RISC-V were built"

```

如果你看到出现 `DTBs for <arch> were built` 的消息，那么你可以开始安装 DTB。这可以通过 `dtbs_install` 目标来实现。

**需要使用 `sudo`**，因为它们会被安装在 `/boot/dtb-<kernel_release>-<localversion>` 中，而这个目录是由 `root` 所拥有的。

```
sudo make dtbs_install

```

>
> **给开发者的提示：** 就像安装模块一样，你可以使用 `INSTALL_DTBS_PATH` 变量指定一个自定义的路径来安装设备树二进制文件。
>
>
>

#### 安装 Linux 内核

最后，我们来安装 Linux 内核本身！这可以通过 `install` 目标来完成，就像这样：

```
sudo make install

```

**在这里必须使用 `sudo`**，因为 Linux 内核将被安装在 `/boot` 目录，而这个目录不允许普通用户写入。

>
> ? 一般来讲，`install` 目标也会更新引导加载程序，但是如果它没有成功，那可能是不支持你使用的引导加载程序。如果你没有使用 GRUB 作为你的引导加载程序，请一定要阅读你引导加载程序的使用手册 ?
>
>
>

>
> **给开发者的提示：** 并不奇怪，`INSTALL_PATH` 变量被用来设定 Linux 内核的安装位置，而非默认的 `/boot` 目录。
>
>
>

#### 针对 Arch Linux 用户的说明

如果你尝试执行了 `make install` 命令，可能已经注意到产生了错误。错误如下：

```
$ sudo make install
    INSTALL /boot
Cannot find LILO.

```

要在 Arch Linux 上实际完成 Linux 内核的安装，我们需要手动复制 Linux 内核镜像文件。别担心，如果你使用的是 Arch Linux，手动操作应该是家常便饭了。( ͡° ͜ʖ ͡°)

可以使用以下命令完成这个步骤：

```
sudo install -Dm644 "$(make -s image_name)" /boot/vmlinuz-<kernel_release>-<localversion>

```

因为我编译的是 6.5.5 版本的内核，所以我将会执行下面这条命令，你可以根据你的实际情况进行适当调整：

```
sudo install -Dm644 "$(make -s image_name)" /boot/vmlinuz-6.5.5-pratham

```

虽然不是必须的，但最好复制一份名为 `System.map` 的文件。既然你已经在操作了，一并也复制了 `.config` 文件吧 ?

```
sudo cp -vf System.map /boot/System.map-<kernel_release>-<localversion>
sudo cp -vf .config /boot/config-<kernel_release>-<localversion>

```

##### 生成初始 RAM 磁盘

当你安装 Arch Linux 时，可能已经了解过 `mkinitcpio` 这个工具。现在，我们将使用它来创建初始的 RAM 磁盘。

首先，我们需要创建一个预设文件。向 `/etc/mkinitcpio.d/linux-<localversion>.preset` 文件中添加以下内容，根据实际需要来替换 `<kernel_release>` 和 `<localversion>`。

```
ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-<kernel_release>-<localversion>"

PRESETS=('default' 'fallback')

default_image="/boot/initramfs-<kernel_release>-<localversion>.img"
fallback_options="-S autodetect"

```

配置完成后，执行下面的命令来生成初始 RAM 磁盘：

```
sudo mkinitcpio -p linux-<localversion>

```

我自己的电脑上得到的输出如下，你的结果应该会类似！

```
$ sudo mkinitcpio -p linux-pratham
==> Building image from preset: /etc/mkinitcpio.d/linux-pratham.preset: 'default'
==> Using configuration file: '/etc/mkinitcpio.conf'
    -> -k /boot/vmlinuz-6.5.5-pratham -c /etc/mkinitcpio.conf -g /boot/initramfs-6.5.5-pratham.img
==> Starting build: '6.5.5-pratham'
    -> Running build hook: [base]
    -> Running build hook: [udev]
    -> Running build hook: [autodetect]
    -> Running build hook: [modconf]
    -> Running build hook: [kms]
    -> Running build hook: [keyboard]
==> WARNING: Possibly missing firmware for module: 'xhci_pci'
    -> Running build hook: [keymap]
    -> Running build hook: [consolefont]
==> WARNING: consolefont: no font found in configuration
    -> Running build hook: [block]
    -> Running build hook: [filesystems]
    -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: '/boot/initramfs-6.5.5-pratham.img'
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux-pratham.preset: 'fallback'
==> Using configuration file: '/etc/mkinitcpio.conf'
==> WARNING: No image or UKI specified. Skipping image 'fallback'

```

初始 RAM 磁盘已成功生成，现在我们可以进入下一步，更新引导加载器！

##### 更新 GRUB

一旦所有必要的文件已成功复制到其对应的位置，接下来，我们将进行 GRUB 的更新。

使用以下命令对 GRUB 引导加载器进行更新：

```
sudo grub-mkconfig -o /boot/grub/grub.cfg

```

>
> ? 如果你使用的引导加载器不是 GRUB，请参看 Arch Wiki 中相关的引导加载器文档。
>
>
>

**注意，更新 GRUB 并不会直接使新的内核版本设为默认启动选项。在引导时，请在启动菜单中手动选择新的内核版本。**

你可以通过选择 `Advanced options for Arch Linux` 菜单，并在随后的菜单中选择 `Arch Linux, with Linux <kernel_release>-<localversion>` 来启用新版的 Linux 内核。

### 重启电脑

恭喜你！你已经完成了获取 Linux 内核源代码、进行配置、构建以及安装等所有步骤。现在只需要通过重启电脑并进入新构建和安装的 Linux 内核，就可以开始享受你的努力成果了。

启动时，请确保从引导加载器中选择正确的 Linux 内核版本。系统启动后，运行 `uname -r` 命令来确认你正在使用预期的 Linux 内核。

以下是我自己的电脑输出的内容：

```
$ uname -r
6.5.5-pratham

```

**是时候开始庆祝了！** ?

### 卸载操作

>
> ? 提示：在删除当前正在使用的内核版本之前，你应该首先切换至较旧的内核版本。
>
>
>

可能你的 Linux 发行版所使用的 Linux 内核版本就是你手动编译的版本，或者你自行编译了新的内核并注意到应卸载旧的内核以节省空间，于是你开始想如何才能卸载。当然，虽然我们无法简单地运行 `make uninstall` 命令，但这并不代表没有其他的方法！

我们清楚各个文件的安装位置，因此删除它们相对简单。

```
### 删除内核模块
$ rm -rf /lib/modules/<kernel_release>-<localversion>

### 删除设备树二进制文件
$ rm -rf /boot/dtb-<kernel_release>-<localversion>

### 删除 Linux 内核本身
$ rm -vf /boot/{config,System,vmlinuz}-<kernel_release>-<localversion>

```

### 总结

这个过程不是一次简单的旅程，是吧？但是现在，我们终于抵达了终点。我们一起学习了手动编译 Linux 内核的全过程，包括安装依赖、获取和验证源码、解压源码、配置 Linux 内核、构建内核以及安装内核。

如果你喜欢这个详细的步骤指南，请给我留言反馈。如果在操作过程中遇到问题，也欢迎提出，让我知道！

*（题图：MJ/853481c5-87e3-42aa-8ace-e9ddfa232f75）*

---

via: <https://itsfoss.com/compile-linux-kernel/>

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


硬核观察 #1144 量子计算机正在重演真空管计算机的历史吗？

Summary:
? 量子计算机正在重演真空管计算机的历史吗？
? Meta 开始裁员元宇宙芯片部门
? 亚马逊利用秘密算法提高价格，获利 10 亿美元
»
»

![](/data/attachment/album/202310/04/151700f58talblod02l88h.jpg)

![](/data/attachment/album/202310/04/151710hkndiauhnmguyuyi.jpg)

### 量子计算机正在重演真空管计算机的历史吗？

20 世纪 40 年代初，第一台真空管计算机投入使用，解决了人类无法解决的问题。这些庞大的机器复杂、特殊，而且普遍不可靠。在许多方面，今天的量子系统与早期的真空管计算机有着惊人的相似之处，它们也是难以置信的昂贵、特殊和不直观。如果量子系统能够像多年前的巨人计算机破解德国密码那样破解现代加密技术，将颠覆建立在现代计算技术之上的世界。量子系统的早期采用者将会获得最大收益，因此各国和各个公司都为量子成为真正竞争威胁的可能性投入了大量资金。不过，目前量子计算机能做的事情，没有一件是经典计算机做不到的，真正的创新将出现在我们用量子算法解决量子问题的时候。

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

>
> 老王点评：从庞大到一个房间放不下的计算机，到如今的计算无处不在，才短短几十年。那么，从现在的量子计算机变成手持量子计算机，需要多少年，会改变多少事情？
>
>
>

![](/data/attachment/album/202310/04/151721g44gg4f2f2ol06gg.jpg)

### Meta 开始裁员元宇宙芯片部门

Meta 公司计划裁掉其面向元宇宙的 Facebook 敏捷硅团队（FAST）员工，该部门约有 600 名员工。FAST 部门的任务是开发定制芯片，为 Meta 的现实实验室部门生产的增强现实和虚拟现实硬件提供动力。

>
> **[消息来源：路透社](https://www.reuters.com/technology/meta-lay-off-employees-metaverse-silicon-unit-wednesday-2023-10-03/)**
>
>
>

>
> 老王点评：元宇宙梦碎，不知道 Meta 还会改名回 Facebook 吗？结合上一条，或许元宇宙真正接管世界时，会是在量子计算普遍可用的时候。
>
>
>

![](/data/attachment/album/202310/04/151735nikgjryowcxko0yi.jpg)

### 亚马逊利用秘密算法提高价格，获利 10 亿美元

根据美国联邦贸易委员会（FTC）对亚马逊提起的垄断诉讼中被删节的部分内容，亚马逊使用了一种代号为 “尼斯项目” 的算法来测试它能以竞争对手会跟进的方式提高多少价格。该算法帮助亚马逊提高了各购物类别商品的利润，并影响竞争对手提高了价格。如果竞争对手没有将价格提高到亚马逊的水平，该算法就会自动将商品恢复到正常价位。据一位熟悉此事的人士称，亚马逊通过使用该算法获得了超过 10 亿美元的收入。亚马逊在 2019 年停止使用该算法，但原因不明。

>
> **[消息来源：华尔街日报](https://www.wsj.com/business/retail/amazon-used-secret-project-nessie-algorithm-to-raise-prices-6c593706)**
>
>
>

>
> 老王点评：“算法是无辜的”，错的是经营商业的人和写算法的人？是吗？
>
>
>


备受欢迎的数字音频工作站 Studio One 新增了对 Linux 的支持

Summary: 音乐制作人们，这是你们翘首以待的消息。

音乐制作人们，这是你们翘首以待的消息。

![](/data/attachment/album/202310/04/182440b2evk5fiqfzv5k4v.jpg)

>
> 音乐制作人们，这是你们翘首以待的消息。
>
>
>

[数字音频工作站（DAW）](https://en.wikipedia.org/wiki/Digital_audio_workstation) 已经成为音乐制作专业人士重要工具之一。

遗憾的是，对于 Linux 用户而言，选择十分有限。最受欢迎的选择通常是开源 DAW，如 [Ardour](https://news.itsfoss.com/ardour-7-3-release/)、[Audacity](https://news.itsfoss.com/audacity-3-2-release/) 和闭源的 [Bitwig](https://www.bitwig.com/)。

当然，这些工具都有一定的优点。然而像 **Cubase、Nuendo 和 Pro Tools** 这类在音乐产业内广泛使用的热门 DAW 却没有 Linux 版 ?

随着 [Studio One](https://www.presonus.com/en/studio-one.html) 的出现，这个局面正在发生变化 ?

[Studio One](https://www.presonus.com/en/studio-one.html) 是专业音响设备制造商 [PreSonus](https://www.presonus.com/en/start) 所推出的一款广受欢迎的 DAW，它**自 2009 年推出以来一直受到许多专业人士的青睐**，被视为 Steinberg Cubase、 Avid Pro Tools、 Apple GarageBand 等软件的有效替代品。

>
> ? 需要指出的是，Studio One 并不是 FOSS（自由与开源软件），我们在这里谈论的是其新增的 Linux 支持。
>
>
>

### Studio One：登陆 Linux! ?

![](/data/attachment/album/202310/04/182513tr7k7ybntnhknpq8.png)

最初作为公开的测试版本发布的是 **[Studio One 6.5](https://blog.presonus.com/2023/09/29/you-can-do-immersive-audio-right-now/)，这是首个为 Linux 用户提供的版本。**

官方明确说明了该软件的系统需求为 **Ubuntu 23.04**，并且需要使用 **Wayland 会话**。

作为 DAW，它拥有大量高级特性，用于创作、录制和混音。其中一些关键特性包括：

* 多轨工具
* 内置节拍制造器
* 支持 <ruby> 草稿本 <rt>  Scratch pad </rt></ruby>
* 为音频和 MIDI 提供和声编辑

无论你有没有 PreSonus 音频设备，这个消息都是兴奋的。

想必这会对其他商业上成功的 DAW 考虑 Linux 成为新的平台产生影响 ?

这对于 Linux 的桌面应用肯定会有巨大的推动作用，有望提升 [当前的市场份额](https://itsfoss.com/linux-market-share/) ?

更重要的是，Studio One 支持在所有三个平台上无缝地创作音乐，这也是它的另一大优势。你可以使用自己最喜欢的 DAW 创作音乐，而不需要被依赖于某个特定的平台。这听起来很不错，*对吗？*

**需要注意的是**：PreSonus 当前并未提供任何官方的 Linux 方面的支持。而未来的稳定版本可能会改变这个局面。

尽管如此，公司推荐用户在他们的用户论坛的 [Linux 版块](https://forums.presonus.com/viewforum.php?f=419) 中讨论与 Linux 相关的问题，以获得解答和分享社区反馈。

>
> ? 请注意，这是一个测试版，**还不应该在实际生产中使用**。开发者已在 Studio One 的 [Linux 支持页面](https://support.presonus.com/hc/en-us/articles/19214558269581-Linux-Getting-Started) 上列出了一些已知的问题。一些功能，如 CD 刻录、视频支持、DDP 导入/导出等，在 Linux 版本中完全不可用。
>
>
>

尽管 **Studio One 是闭源的**，但它对 Linux 的支持将使 Linux 平台对音频工程师、制作人乃至艺术家更加友好。

### ? 获取 Studio One 测试版

要想体验这个公开的测试版，你首先需要**注册一份订阅计划**。我建议你首先进行**30 天的免费试用**，看看它在你的 Linux 系统上的表现如何。

想了解更多，欢迎访问他们的 [官方网站](https://www.presonus.com/en/studio-one-compare.html)。

>
> **[Studio One](https://www.presonus.com/en/studio-one-compare.html)**
>
>
>

? 对于这个新闻，你有多兴奋？你试用过了吗？欢迎在下方评论留言分享你的想法！

参考来源：[omg! ubuntu](https://www.omgubuntu.co.uk/2023/10/pro-audio-app-studio-one-now-supports-linux)

*（题图：MJ/4d6d0f4b-c16d-4164-ad1e-90e6bd2b4843）*

---

via: <https://news.itsfoss.com/studio-one-linux/>

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


如何制作一个 Linux Mint 立付 USB

有了Ventoy之后，一切都非常方便，U盘还能存放其他文件，根本不需要用传统方法制作Live USB。

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

一般情况用cp命令写入U盘iso启动镜像，有需要谨慎的情况下就dd，用不着下载安装其它写镜像软件，毕竟这些软件运行时都联网。

来自117.136.89.29的 Chrome Mobile 117.0|Android 13 用户

Ventoy安装debian12有些问题，无法进入安装界面，灰屏

这是已知的issue（2475），不过我刚才试过能正常安装，用最新版1.0.95

![](/data/attachment/album/202310/05/140006qoqq9jupkczt8vgu.jpg)

>
> 按照本指南，在 Windows 和 Linux 上用 Linux Mint 轻松创建立付 USB。
>
>
>

Linux Mint 是 [初学者的最佳 Linux 发行版选择](https://itsfoss.com/best-linux-beginners/) 之一。它基于 Ubuntu ，但有些人认为 [Linux Mint 比 Ubunutu 更好](https://itsfoss.com/linux-mint-vs-ubuntu/)。

如果你想尝试使用 Linux Mint，你可以 [在 VirtualBox 内安装 Linux Mint](https://itsfoss.com/install-linux-mint-in-virtualbox/)。 这是体验 Linux Mint 的方法之一。

另一种方法是创建 Linux Mint 的 <ruby> 立付 <rt>  Live </rt></ruby> USB。这样，你就可以从 USB 启动，在实时会话中体验 Linux Mint。它不会干扰你当前的操作系统，无论是 Windows 还是 Linux。

>
> LCTT 译注：关于我们将 “Live” 翻译为 “立付” 的原因，请参照 [此文](/article-15496-1.html) 说明。简单概括：
>
>
> Live 原意多指“现场”、“实时”，在计算机环境中使用时也多引用此意。但对它的翻译就颇费神，因为无论是在 Live Patch，还是更多见的 Live USB/CD、Live Session，其实都不好翻译为“现场”、“实时”。推荐使用“立付”，在照顾发音的同时，取其“立时交付”之意。而对于 Live Stream，提议者建议依旧翻译为“直播”、“实时流”。对于 Live Patch，还是采用 “热补丁” 这样的意译。
>
>
>

如果你喜欢它并选择安装至硬盘上，可以使用同一个立付 USB 来进行。创建立付 USB 是安装 Linux Mint 的第一步。

### 准备工作

如果需要制作一个 Linux Mint 立付 USB，你需要:

* 一个 **USB 驱动器**（可以是 U 盘、移动硬盘等），至少需要 8GB 的空间；
* 一个可以使用的互联网连接，以便下载 Linux Mint ISO；
* 一个帮助你制作立付 USB 的写盘工具。

>
> ? 你可以在一个系统上创建立付 USB，然后在其他电脑上使用。
>
>
>

### 第一步：下载 Linux Mint ISO

这一 ISO 文件是包含 Linux Mint 系统的镜像文件，它将会被写入至 USB 驱动器上。

Linux Mint 有三种 [桌面环境](https://itsfoss.com/what-is-desktop-environment/) 版本：**Cinnamon** 旗舰版本、**MATE** 以及 **XFCE** 的变体。

![](/data/attachment/album/202310/05/140044e8ssvnv51z39jrso.jpg)

这些 ISO 文件包括了你可以找到 [最佳的桌面环境](https://itsfoss.com/best-linux-desktop-environments/)。**Cinnamon** 是最流行的版本，建议选择它以获得最佳的 Linux Mint 体验，但你也可以尝试其他版本。

不管你选择的是什么版本，ISO 文件的大小都约为 **2.7GB**。

你可以前往 [官方下载页面](https://www.linuxmint.com/download.php) 获取上述的 ISO 文件。你可以选择直接下载或使用 Torrent 种子文件下载。

>
> **[Linux Mint 下载](https://www.linuxmint.com/download.php)**
>
>
>

获得 ISO 文件后，你需要一个专用工具将 ISO 映像写入到 USB 驱动器上。我推荐使用 Etcher。

>
> ? 有些人喜欢对下载的 ISO 文件 [进行完整性校验](https://itsfoss.com/checksum-tools-guide-linux/)。这是一种确保 ISO 文件在下载过程中不会损坏的方法（可能会因为网络不稳定等因素而损坏）。
>
>
>

### 第二步：安装 Etcher 以制作立付 USB

对于 Windows 用户来说，Rufus 是一款出色的工具。可惜 Linux 用户无法使用。

为了让本教程简洁明了，我将使用 [Etcher](https://itsfoss.com/install-etcher-linux/)。它是 [Rufus 的替代品](https://itsfoss.com/live-usb-creator-linux/)，可用于 Linux 与 Windows。

这样，你就可以在 Windows 和 Linux 平台上使用相同的步骤创建 Linux Mint 立付 USB。唯一不同的是安装 Etcher 的步骤。

#### Windows 教程

从 [官方网站](https://etcher.balena.io/#download-etcher) 下载 Etcher。建议你下载完整的安装程序，除非你真的需要便携式文件。

![](/data/attachment/album/202310/05/140044d56kyzkjiihfi80i.jpg)

你会找到一个 **.exe** 文件。只需要**双击**安装程序，然后同意说明条款并按照窗口内的步骤进行安装即可。

然后，你可以从搜索菜单中搜索并启动该程序。

![](/data/attachment/album/202310/05/140044k81vi8mf0tiwvw22.jpg)

#### Linux 教程

对于 Linux 用户来说，可以从 [官网](https://etcher.balena.io/#download-etcher) 下载 Etcher 的 AppImage 可执行文件。

你可以参考我们的 [AppImage 指南](https://itsfoss.com/use-appimage-linux/)，了解如何将文件作为可执行文件运行。

![](/data/attachment/album/202310/05/140045rh52w0aa2wjnrr2z.png)

使用 AppImage 文件，你不需要 [安装 Etcher](https://itsfoss.com/install-etcher-linux/)，而是在直接运行它。

### 第三步：使用 Etcher 将 Linux Mint ISO 写入到 USB 驱动器

**插入 USB 驱动器**，并运行上一步安装的 Etcher 工具。

现在，考虑到你已经下载了 Linux Mint ISO，点击 “<ruby> 从文件烧录 <rt>  Flash from file </rt></ruby>” 选项，如下图所示。

![](/data/attachment/album/202310/05/140046fx998fgzuqm0xu87.jpg)

然后使用文件管理器选择 Linux Mint 的 ISO 文件。

![](/data/attachment/album/202310/05/140046i968rrkmbk3591eo.jpg)

选择 ISO 文件后，需要选择要将要刷入的 USB 驱动器。如果只有一个，Etcher 会自动选择。但仍要确保在 Etcher 中选择了正确的 USB 驱动器。

![](/data/attachment/album/202310/05/140047rincwzj0jv2t50q5.jpg)

现在，你只需点击 “<ruby> 现在烧录 <rt>  Flash </rt></ruby>”，等待程序完成。

![](/data/attachment/album/202310/05/140047u9it1yooyptkyat1.png)

你将收到接受命令行进程的提示，并选择 “Yes” 以启动刷入进程。

![](/data/attachment/album/202310/05/140048w7v11uewjr7z6fjy.png)

完成后，它将自动验证刷入的 USB 驱动器是否完整，然后你就可以开始了！

### 第四步：从 USB 驱动器启动

你通过上述方法所制作的 Linux Mint 立付 USB 驱动器应适用于任何具有 UEFI 启动功能的计算机。

当系统启动并显示制造商徽标时，按 `F2` 或 `F10` 或 `F12` 键，即可访问 [UEFI 启动设置](https://itsfoss.com/access-uefi-settings-windows-10/)

访问启动设置后，将启动顺序更改为先从 USB 驱动器启动。

不同的电脑有不同的 BIOS 设置，因此我无法分享此步骤的明确截图。

>
> ? 在极少数情况下，安全启动可能不允许启动。这时可以禁用安全启动。
>
>
>

### 接下来怎么办？

如果你喜欢立付环境下的 Linux Mint，可以使用立付 USB 删除 Windows 来安装 Mint。

或者，你也可以选择 [Linux Mint 和 Windows 双系统共存](https://itsfoss.com/guide-install-linux-mint-16-dual-boot-windows/) ，在同一台电脑中同时运行两个操作系统。

? 我希望本教程对你创建 Linux Mint 立付 USB 有帮助。请在评论区告诉我你的问题和建议。

*（题图：MJ/a7bdf228-4928-4171-9250-58ce1ba7545c）*

---

via: <https://itsfoss.com/linux-mint-live-usb/>

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


硬核观察 #1145 安卓 14 开源项目发布

Summary:
? 安卓 14 开源项目发布
? Gmail 向电子邮件添加表情符号反应
? X.Org 被发现新安全漏洞，可追溯到 1988 年
»
»

Xorg不安全，请尽快迁移到Wayland。不过我更想知道以安全著称却不打算迁移到Wayland的OpenBSD会怎样做。

![](/data/attachment/album/202310/05/171513wr2odmmrmzfmfexb.jpg)

![](/data/attachment/album/202310/05/171523a4v7t8p5ofe65526.jpg)

### 安卓 14 开源项目发布

谷歌在纽约举行的“谷歌制造”活动上正式发布了安卓 14。与此同时，谷歌还发布了对应的开源项目 AOSP，安卓 14 的源代码已被推送到 AOSP。安卓 14 将于今天开始向 Pixel 设备推出，并在今年晚些时候向更多移动设备推出。安卓 14 带来的一系列升级和更新就不一一赘述了，值得注意的是，此版本支持 OpenJDK 17。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Android-14-AOSP)**
>
>
>

>
> 老王点评：虽然越来越多的部分被谷歌放在自己的专有部分，但不管怎么说，安卓总是开源的，而且不是“延迟”开源。
>
>
>

![](/data/attachment/album/202310/05/171532d9d0myx92oa22k2x.jpg)

### Gmail 向电子邮件添加表情符号反应

在 Gmail 中，你现在可以像回复即时消息聊天一样回复电子邮件，在电子邮件上粘贴一个 “?” 的表情符号，而不是回复。就像信息应用一样，现在你的电子邮件下方会出现一排表情符号反应数，对话线索中的其他人可以点击添加到反应数中。电子邮件本身并不支持表情符号反应，这使得该功能成为 Gmail 的专有功能，其它没有使用 Gmail 客户端的人会收到一封包含你的单个表情符号反应的新邮件。目前，这项新功能不适用于企业或学校账户、邮件列表等情形。

>
> **[消息来源：Ars Technica](https://arstechnica.com/gadgets/2023/10/gmail-unleashes-email-emoji-reactions-onto-an-unsuspecting-world/)**
>
>
>

>
> 老王点评：在不破坏电子邮件协议兼容性的情况下，增加一些创新是好的，但是似乎可以比每个表情符都发一个电子邮件做的更好。
>
>
>

![](/data/attachment/album/202310/05/171544mk0n3wzxkh1m0jy1.jpg)

### X.Org 被发现新安全漏洞，可追溯到 1988 年

十年前，一位安全研究人员评论说，X.Org 服务器的安全性 “比看起来还要糟糕”，例如 GLX 代码就是 “8 万行恐怖代码”，整个代码库中发现了数百个漏洞。而到了 2023 年，新的 X.Org 安全漏洞还在不断被发现，今天公开的几个漏洞中，有几个最早可追溯到 1988 年的 X11R2 代码。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/XOrg-Vulnerabilities-Since-1988)**
>
>
>

>
> 老王点评：88 年时我还没见过电脑。所以，这一堆代码中到底有多少问题，就像沙虫里面的沙子一样，怎么也淘洗不干净。
>
>
>


任务中心：一款流畅的 Linux 系统监控应用

Summary: 这是一款为 Linux 打造的用户友好的系统监控应用。让我们一起来了解！

这是一款为 Linux 打造的用户友好的系统监控应用。让我们一起来了解！

![](/data/attachment/album/202310/05/180653pnz0nkta1lc1tclz.jpg)

>
> 这是一款为 Linux 打造的用户友好的系统监控应用。让我们一起来了解！
>
>
>

假如有一天，你发现你的系统开始运行缓慢，你的发行版的默认的系统监控应用又无法给与帮助，你会如何处理？

我能理解当你在试图找出是什么进程引起你的系统运行缓慢，而系统监控器却无法提供帮助是何等烦恼的事。

在此，我初步介绍的这个工具，或许就是你需要的。这就是 “<ruby> 任务中心 <rt>  Mission Center </rt></ruby>”，一个为 Linux 打造的系统监控器，旨在提供实用的功能。

下文将一一展示这个应用可以做什么，以及它的一些限制。

>
> ? 这个应用还是非常新的，处于积极的开发中。所以，预计会有一些变动。
>
>
>

### ⭐ 任务中心：概述

![](/data/attachment/album/202310/05/180716w3mmg6hma9i646tl.png)

主要使用 **内存安全的 Rust 编程语言** 编写的 [任务中心](https://missioncenter.io/) 是一款可以让你监控 CPU、内存、磁盘、网络以及 GPU 的系统监控器。

它的几个关键特性包括：

* 实时监控每个线程的 CPU 使用情况。
* 有能力监控 RAM 和 Swap 的使用状况。
* 提供应用和进程的详细使用信息。
* 监控网络的利用率和传输速度。

### ?? 初步印象

我在一个运行着 **[Ubuntu 22.04](https://news.itsfoss.com/ubuntu-22-04-release/) LTS** 的系统上进行了测试，由于这款应用 **提供了 Flatpak 安装方式**，使得整个安装过程相当简洁。

我不得不说，任务中心 **看起来和** [Windows 11](https://www.microsoft.com/en-us/windows?wa=wsignin1.0) **上的任务管理器大体相似**，这并不算是坏事。这种界面布局十分适合以用户友好的方式展示所有重要的信息。

我首先查看的是系统监控的 “<ruby> 性能 <rt>  Performance </rt></ruby>” 部分中的 CPU 标签。它向我提供了我处理器的所有关键信息，并配有一个能**展示实时 CPU 使用率的图表**。

我还能切换到 “<ruby> 逻辑处理器 <rt>  logical processors </rt></ruby>” 视图，以便**观察每个线程的 CPU 使用情况**。只需在图表上进行右键点击并进入 “<ruby> 改变视图 <rt>  Change Graph To </rt></ruby>” 菜单即可切换。

![](/data/attachment/album/202310/05/180716ch91x5r1zfzht1d1.png)

我接下来查看的是 “<ruby> 内存 <rt>  Memory </rt></ruby>” 标签，它提供了**一个内存使用的实时图表**，以及两个正在使用的 RAM 模块的实用信息。

![](/data/attachment/album/202310/05/180717fk5q99rkrddesinh.png)

然后我查看了 “<ruby> 硬盘 <rt>  Disk </rt></ruby>” 标签。即便我在我的系统中有多个存储硬盘，但我只在 Ubuntu 上使用了 “Disk 4”。我对其进行了使用率检查，显示出来的似乎是实时的磁盘使用数据。

不过，[据开发者所述](https://gitlab.com/mission-center-devs/mission-center/-/issues/2)，当前**硬盘使用率的百分比仍在开发中**，因此，现在的数据可能尚不准确。

![](/data/attachment/album/202310/05/180718mkdq2w1uuqbxqel7.png)

最后，我查看了 “<ruby> 以太网 <rt>  Ethernet </rt></ruby>” 标签。它向你展示了有关系统的网络活动的实时图表，包括了下载和上传活动的两个信息点。

然而，它对于应用的网络数据使用情况，目前还是**没有应用级的网络数据信息**。这个功能，开发者正 [在着手开发](https://gitlab.com/mission-center-devs/mission-center/-/issues/3)。

![](/data/attachment/album/202310/05/180719d06hje422wf2jff8.png)

接下来，我查看了 “<ruby> 应用 <rt>  Apps </rt></ruby>” 部分。这里包含了系统中运行的大部分（甚至全部）应用和进程。它不有展示了应用/进程的全部有用信息，包括 PID、CPU 使用、内存和磁盘使用情况。

你还能在任何一个应用/进程上进行右键点击，来选择 **停止应用/进程** 或 **强制停止应用/进程**。

![](/data/attachment/album/202310/05/180719sl9nyj999djdn8za.png)

我还调整了任务中心应用的一些设置，比如：

* 调整所有实时图表的更新频率
* 设定合并进程统计数据
* 记住我在 “<ruby> 应用 <rt>  Apps </rt></ruby>” 部分所使用的排序顺序。

![](/data/attachment/album/202310/05/180724fmvxn4d0gq4ds3qd.png)

我注意到一个缺失的数据，关于我的 GPU。任务中心**未能检测到我的英伟达 GPU**。

这是可以理解的，因为 **GPU 的支持目前仍然处于实验阶段**，仅支持 AMD 和英伟达的 GPU。

### ? 获取任务中心

任务中心可以在 [Flathub 商店](https://flathub.org/apps/io.missioncenter.MissionCenter) 或者 [GitLab](https://gitlab.com/mission-center-devs/mission-center) 上获得，如果你更倾向于从源码来构建的话。

>
> **[任务中心（Flathub）](https://flathub.org/apps/io.missioncenter.MissionCenter)**
>
>
>

? 你会考虑用任务中心来替代你 Linux 系统上的默认系统监控器吗？

*（题图：MJ/feb84cdf-0719-401a-9c4a-1db7960d4572）*

---

via: <https://news.itsfoss.com/mission-center/>

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


Linux 游戏的下一个秘密武器：Bottles Next

加强桌面化友好界面交互，避免过多涉及Shell；这不单是作为一个游戏平台的修养，也是Linux旨在成为一个合格日常桌面系统的必修课，堪称Linux桌面普及的一大瓶颈。

![](/data/attachment/album/202310/06/123651ctvakzantvupnezt.jpg)

>
> Bottles 的发展计划充满激动人心，目标是成为在 Linux 上运行 Windows 应用和游戏的更优秀工具。
>
>
>

如今，Wine 和 Steam 的 Proton 让 Linux 用户获得了升级的游戏体验。

而 Lutris、Heroic Games Launcher 等应用利用这些技术，让你能够轻松管理、安装和启动游戏。

**Bottles** 是一款此类的实用工具，它帮助你在 Linux 上 [运行 Windows 应用和游戏](https://itsfoss.com/use-windows-applications-linux/)。这是在 Linux 上使用 [Epic 游戏商店](https://itsfoss.com/epic-games-linux/) 的最佳方法之一。

我深信，它在不久的将来会成为一个更令人激动的工具！*为什么？* ?

嗯，我发现了一些关于 Bottles 下一代升级计划的有趣更新 ?

### Bottles Next：完全变革

当前版本的 [Bottles](https://usebottles.com/) 是一款简洁且可以定制的应用，帮助你仅需点击几次便可管理和运行 Windows 应用和游戏。

![Bottles 当前版本的截图](/data/attachment/album/202310/06/123717nyivt1f1cvvhbi7y.png)

根据其未来升级计划（*尽管目前还没有具体的时间表*），开发者们准备提升用户体验，以及提供一个**更强大的后端**。与之配合的是，他们还计划**重新设计用户界面**，以满足初级和资深用户的需求。

现在，我来告诉你更多它的计划信息...

#### 用户界面的重新设计

这是其创建者 [Mirko Brombin](https://news.itsfoss.com/interview-mirko-brombin/) 分享的 Bottles Next 的一些效果图：

![Bottles Next 展示两种模式的设计](/data/attachment/album/202310/06/123718n3fvweziwwnxw8jb.jpg)

如你所见，他们的目标是推出两种使用模式，即 “<ruby> Next 模式 <rt>  Next Mode </rt></ruby>” 针对初级用户，以及 “<ruby> 经典模式 <rt>  Classic Mode </rt></ruby>” 针对资深用户。

>
> ? 这些效果图可能不代表 Bottles Next 的最终设计。
>
>
>

Bottles Next 的更新旨在提供更简洁的用户体验，同时依然保持了工具的可定制性。

![](/data/attachment/album/202310/06/123718ebmnxjcdmrmjjbdp.jpg)

游戏信息界面看起来很吸引人，显示了重要信息，并提供了进入高级设置的选项。

![](/data/attachment/album/202310/06/123718zk2j7urkq4r1jrtz.jpg)

我个人觉得这个设计不错，*你觉得呢？*

#### 核心的变化

计划中的技术变动很大，但当然，你可能无法从用户界面上看出其变化。

后端重写的一些目标包括：

* 让后端独立于图形用户界面
* 重新定义应用如何与其创建的 “<ruby> 前置瓶 <rt>  bottle </rt></ruby>” 联系，重点是单一应用。
* 引入新功能（如取消创建 “前置瓶” 的能力）

（LCTT 译注：Wine 使用一个被称之为 “Wineprefix” 的配置目录来控制使用 Wine 运行的 Windows 程序，这个目录也被比喻作 “bottle”，而 “Bottles” 是一个基于此机制的软件。在此，我将 “Wineprefix” 和 “bottle” 尝试翻译为 “Wine 前置配置” 和 “前置瓶”。）

为了使后端独立于图形用户界面，他们计划使用客户端和本地服务器的概念。因此，其他应用也可以使用 Bottles 服务器来处理已创建的 <ruby> Wine 前置配置 <rt>  Wineprefix </rt></ruby>。

>
> ? <ruby> Wine 前置配置 <rt>  Wineprefix </rt></ruby> 是 Wine 用于存储配置文件及已安装的 Windows 程序的目录（更多关于 Wine 的信息参见 [Arch Linux Wiki](https://wiki.archlinux.org/title/wine)）。
>
>
>

换句话说，他们目标是改变所有的工作方式，同时保证他们的后端对其他应用管理 Wine 是有利的。

关于技术变化，Mirko 提到：

>
> 这种全新的架构允许在任何需要管理 Wine 前置配置的应用中使用 Bottles。你可以用任何工具包，例如 qt、GTK 等写客户端。我们正朝着 Electron 的道路前进，同时也在开发一个 GTK 客户端。
>
>
>

（计划中）Bottles Next 工作方式的一个**有趣的地方**：

>
> Bottles Next 将会是第一款能够从内部管理 Wine 前置配置的管理器。我们正在编写一个名为 [WineBridge](https://github.com/bottlesdevs/winebridge) 的项目，它运行在 Wine 前置配置内部，然后通过协议与 Bottles 通信。这样我们便可以避免使用 Shell 命令来启动程序或调整 <ruby> Wine 前置配置 <rt>  Wineprefix </rt></ruby>，大大降低了痛苦。
>
>
>

此外，他提到将基于 Go 编程语言进行重写。

简而言之，即将在底层和前端出现大量重大的变化。这些整合后，必然能够在 Bottles 上提升用户体验。

随着他们透露的关于 Bottles Next 更多的计划和进展信息，我们可能会获得更多值得关注的消息。

### ? 如果可以，帮助他们！

我敢肯定，至此为止，作为一个 Linux 游戏狂热爱好者，你一定迫不及待想要看到下一代的更新!

然而，已经分享的**开发计划**会需要一段时间去实践，最后才能推出。

**但不用担心，你可以伸出援手！**

你可以在 [GitHub](https://github.com/bottlesdevs) 上为项目做出贡献，提出你的想法/反馈到 [论坛](https://forum.usebottles.com/)， 加入他们的 [Discord](https://discord.gg/wF4JAdYrTR) 服务器找出更多参与 **Bottles Next** 项目的方式。

>
> **[Bottles](https://usebottles.com/)**
>
>
>

? 你对 Bottles Next 有什么看法？在下方的评论中分享你的观点。

*（题图：MJ/e6b335c1-70d9-4404-b62f-e9b27fd128bb）*

---

via: <https://news.itsfoss.com/bottles-next-linux-gaming/>

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


硬核观察 #1146 decat：跳上键盘的猫咪清除了数据库

Summary:
? decat：跳上键盘的猫咪清除了数据库
? 苹果考虑并拒绝从谷歌转向 DuckDuckGo
? 微软也发布补丁修补 libwebp 漏洞
»
»

DDG的后端是Bing，Qwant和移动版的StartPage也是（电脑版则是Google）。Bing的搜索质量只比百毒好一些，即使有AI也没有多少提升。

也许是libwebp已经没人维护了吧，都去维护avif了？要不然公开前就该修复了，也轮不到各个厂商自己修复了。

来自辽宁大连大连理工大学的 Chrome 117.0|Windows 10 用户

搜索质量好的版本被和谐了。还记得之前bing无法访问的那段时间吗？

对于搜索引擎的好坏，“用户想要的”与“厂商可以给用户的”的评价标准是不同的。。。

不记得，我只是听说过，因为很少用Bing（除非暂时翻不出去）。但是即使翻不了，现在有更好的选择了。<br />
Bing的国际版的搜索结果也显然不如Google。

![](/data/attachment/album/202310/06/162025e56jq447pz0g3lg7.jpg)

![](/data/attachment/album/202310/06/162035s6xkzlnknkqwfx0z.jpg)

### decat：跳上键盘的猫咪清除了数据库

在一次电话会议上，有人分享了这则故事：当技术人员正在检查服务器集群的配置时，他们的猫跳上键盘并删除了它。另外一个人说，“这就是我养狗的原因”。发生此事的部门承认“问题很快被发现，并在四小时内恢复了系统”，但他们没有提到猫，也拒绝评论。所以，这可能是一只薛定谔的猫，既存在，也不存在。

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

>
> 老王点评：继程序员们要 debug 之后，系统运维们也要 decat 了。
>
>
>

![](/data/attachment/album/202310/06/162046j6eisfjl66qesfsp.jpg)

### 苹果考虑并拒绝从谷歌转向 DuckDuckGo

在针对谷歌的反垄断审判的笔录中披露，苹果公司与 DuckDuckGo 就取代谷歌搜索引擎作为苹果 Safari 浏览器私人模式的默认搜索引擎进行了谈判，但最终拒绝了这一想法。DuckDuckGo CEO 说，苹果已经将 DuckDuckGo 的其他几项隐私技术整合到 Safari 中，“除了搜索”。但苹果认为，由于 DuckDuckGo 依靠必应提供搜索信息，因此也可能向微软提供一些用户信息，这让他相信 DuckDuckGo “关于隐私的营销与细节有些不符”。

>
> **[消息来源：彭博社](https://www.bloomberg.com/news/articles/2023-10-04/apple-considered-switch-to-search-engine-duckduckgo-from-google)**
>
>
>

>
> 老王点评：我觉得关键还是 DDG 不够好用吧？
>
>
>

![](/data/attachment/album/202310/06/162101rc78vzhs8cs5hq8o.jpg)

### 微软也发布补丁修补 libwebp 漏洞

继苹果和谷歌 [修补](/article-16216-1.html) 了产品中的 libwebp 漏洞后，微软也发布补丁修复了两个流行开源库 libwebp 和 libvpx 中的零日漏洞，这些漏洞影响了微软的多个产品，包括 Skype、Teams 和 Edge 浏览器。但微软拒绝透露其产品是否在野外被利用，也拒绝透露公司是否有能力知道。

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2023/10/04/microsoft-wont-say-if-its-products-were-exploited-by-spyware-zero-days/)**
>
>
>

>
> 老王点评：为什么到现在 libwebp 上游都不统一发布修复呢？
>
>
>


elementary OS 7.1 发布，重点关注隐私

Summary: elementary OS 的精致更新已到来！

这个审美正常，字体大小合适，也不会整天折腾系统栏。。。

和其他linux发行版相比， elementary已经很精美了。但即便是elementary，对比windows，字体显示还是不够锐利，雾感明显。各位大神有好的解决办法吗？

换4k显示

会不会是字体的问题

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

![](/data/attachment/album/202310/06/232453yxlnckyvn3bb28n9.jpg)

>
> elementary OS 的精致更新已到来！
>
>
>

2023 年即将结束，而我们得到了一次全新的 elementary OS 更新。今年早些时候，我们对 [elementary OS 7](https://news.itsfoss.com/elementary-os-7-release/) 版本进行了概览，该版本带来了众多改进。

而今，让我们来探索一下新发布的 **elementary OS 7.1**版本。

### ? elementary OS 7.1: 新增了什么？

![](/data/attachment/album/202310/06/232559g9dopve2x9tccypk.jpg)

作为 [最美 Linux 发行版](https://itsfoss.com/beautiful-linux-distributions/) 之一，这次的 elementary OS 发行版**主要集中在隐私和辅助功能上**。

此版本的一些显著亮点包括：

* 隐私优化
* 加强辅助功能
* <ruby> 应用中心 <rt>  AppCenter </rt></ruby> 的改进
* 手势和键盘导航有所提升

### 隐私优化

![](/data/attachment/album/202310/06/232559b32mt494abt55sbt.png)

在此发行版中，已引入新系统，用于**管理应用程序的自动启动**，并且当应用程序在后台运行时会向你**发出警告**。

因为这个新的 “<ruby> 后台 & 自启动 <rt>  Background & Autostart </rt></ruby>” 管理面板的引入，现在众多如日历、邮件和任务等核心应用的自启动行为可以得到控制。

该管理面板还负责管理应用程序的权限，其中 “<ruby> 定位服务 <rt>  Location Services </rt></ruby>” 的管理，采用了一个**更安全的方法**来允许应用程序请求位置访问。

符合最新的 [FreeDesktop.org](https://www.freedesktop.org/wiki/) 标准的实现。

### 加强辅助功能

![](/data/attachment/album/202310/06/232601fua0kyqaq15oqkea.png)

收到来自**具有视觉障碍用户的反馈**后，elementary OS 团队实施了一些有用的可访问性功能。

一项功能是，安装过程中会自动播放 **音频提示** ，以**让了解用户屏幕阅读器的键盘快捷方式**。这个音频提示在首次安装和设置过程中都会提供。

另一项功能是，为了**帮助 [色觉缺陷](https://en.wikipedia.org/wiki/Color_blindness) 人群**在发行版中导航，实施了**五种不同的显示过滤器**。

这些过滤器是为解决 **红色盲**、**绿色盲** 和 **黄蓝色盲** 这些问题的人们设计的。他们还增添了一些 **高对比度选项** ，并增加了大量的 **辅助文字**。

### 应用中心的改进

![](/data/attachment/album/202310/06/232602we6web2g8czmz6e7.png)

**<ruby> 应用中心 <rt>  AppCenter </rt></ruby> 也有了改进**，现在它会显示所有列出或侧载的 Flatpak 应用运行所需的权限。

现在，它可以显示如位置、发送通知、自启动、读/写系统设置等应用权限。

这让用户在安装应用程序时能更清楚地了解哪些权限是必要的。

### 提升手势和键盘导航

![](/data/attachment/album/202310/06/232602vipzlkk7ekeqimmi.png)

同样地，**多点触控手势和键盘导航得到了加强**，这归功于在整个系统中更广泛的实施。

现在，用户可以**使用手势控制工作区**，并**使用新添加的各种键盘快捷键导航**。对键盘行为的设置也有所优化，提供了大量调整选项。

### ? 其他修改和改进

像每个 elementary OS 发布版本一样，许多微妙的改进效果显著。其他的亮点包括：

* “<ruby> 文件 <rt>  Files </rt></ruby>” 应用的标题栏中新增应用菜单，具有新的缩放控制和能同时重命名多个文件的 “批量重命名” 功能。
* 引入了最新的长期支持，来自 Ubuntu 的 [硬件支持栈](https://wiki.ubuntu.com/Kernel/LTSEnablementStack)。
* “<ruby> 反馈 <rt>  Feedback </rt></ruby>” 应用已被改进，现在包含有搜索栏并已迁移到 GTK 4。
* “<ruby> 邮件 <rt>  Mail </rt></ruby>” 应用完全重做，带来了更稳定的用户体验。
* 已集成 [GNOME Web 44.6](https://gitlab.gnome.org/GNOME/epiphany/-/releases/44.6)。
* 核心应用得到了各种更新。

我建议你阅读官方的 [发布说明](https://blog.elementary.io/os-7-1-available-now/) ，以更深入地了解此版本。

### ? 下载 elementary OS 7.1

由于 elementary OS 是一种 “看着给” 发行版，你可以前往 [官方网站](https://elementary.io/) 购买或免费下载它。

>
> **[elementary OS 7.1](https://elementary.io/)**
>
>
>

你也可以选择他们网站上列出的一些硬件零售商，他们提供预装发行版的笔记本电脑和台式机。

---

via: <https://news.itsfoss.com/elementary-os-7-1/>

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


Wolfi：改进云软件供应链的 Linux “非”发行版

Summary: Wolfi，这个有趣的项目致力于增强软件供应链的安全性，现已走过一载岁月！

Wolfi，这个有趣的项目致力于增强软件供应链的安全性，现已走过一载岁月！

![](/data/attachment/album/202310/07/192722wdzz199535h4c983.jpg)

>
> Wolfi，这个有趣的项目致力于增强软件供应链的安全性，现已走过一载岁月！
>
>
>

这里说的不是 [世界上最小的章鱼](https://en.wikipedia.org/wiki/Octopus_wolfi)，而是一款从这个小章鱼那里汲取灵感的 Linux 发行版。

Wolfi 是一个**由社区驱动、以容器为核心的 Linux 发行版**，目的在于保护软件供应链的安全性。创造者（[Chainguard](https://www.chainguard.dev/)）将其誉为 “**非发行版**”。

Wolfi 的目标是解决构建和分发软件时经常遇到的容器问题。

下面我们一起来回顾下 Wolfi 的历程，以及未来的展望。

### Wolfi：项目的成就 ?

自从 Wolfi [去年](https://news.itsfoss.com/wolfi-linux-undistro/) 开始启动，它已经取得了长足的进步，例如 **在 Wolfi 的仓库中具有超过 1300 个包配置** ，并且在 Wolfi 的索引中拥有 **超过 18000 的软件包**。

**有 60 名贡献者**参与了这个项目 ，在过去的一年中， **超过 4400 个拉取请求已经成功地合并了** 到 Wolfi 在 [GitHub](https://github.com/wolfi-dev) 上的仓库中。

此外，他们还保证了 80% 的时间内， 在 GitHub 项目中的 **软件包更新间隔少于 24 小时** ，并且还添加了如 [Docker Scout](https://docs.docker.com/scout/) 、[Snyk](https://snyk.io/) 、[Wiz](https://www.wiz.io/) 等漏洞扫描工具。

由于 Wolfi 采用了 [滚动发布](https://itsfoss.com/rolling-release/) 模式，因此它还致力于为新发现的 [CVE](https://en.wikipedia.org/wiki/Common_Vulnerabilities_and_Exposures) 快速提供修复。

综上，这些成就使得他们在以下方面实现了技术创新：

* 为所有 Wolfi 软件包构建了 64 位 ARM 版本。
* 对 Go 和 Java 实现了全源引导。
* 引入了 [Rustls](https://github.com/rustls/rustls) TLS 库，用于处理内存安全漏洞。
* 分发了一个名称为 “[wolfi-act](https://github.com/wolfi-dev/wolfi-act)” 的新项目，让 Wolfi 包能在 GitHub 操作中动态使用。

你可能会好奇：**未来的计划是什么？**

好吧，Wolfi 的开发团队希望它能发展成为一个**由社区驱动的项目**，并有望成为人们最信赖的容器化工作负载发行版。他们还期望 **广大开发者都能充分利用 Wolfi 的全部潜力，解决各种问题**。

此外，他们还分享了一个 Wolfi 的使用案例：

>
> 在当前应用中，Wolfi 的一个清晰的示例是 [Chainguard Images](https://www.chainguard.dev/chainguard-images) —— 这正是我们开始构建该项目的原因。Chainguard Images 只是 Wolfi 实现的许多解决方案之一，我们鼓励更多的用户和社区去探寻 Wolfi 所能搭建出的可能性。
>
>
>

根据他们的新闻发布，他们还提到，在不久的将来 **将为 Rust 和其他语言生态系统加入全源引导**。

? 你是否有过用 Wolfi 的经验？你对它的体验是如何的？

---

via: <https://news.itsfoss.com/wolfi-turns-one/>

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


硬核观察 #1147 OpenAI 正在考虑自己制造 AI 芯片

Summary:
? OpenAI 正在考虑自己制造 AI 芯片
? 联想推出安卓 PC
? 盖蒂图片公司打造尊重版权的人工智能工具
»
»

![](/data/attachment/album/202310/07/201423ckucbbxmzz6uuz4z.jpg)

![](/data/attachment/album/202310/07/201436m4eor7gzppci19gp.jpg)

### OpenAI 正在考虑自己制造 AI 芯片

OpenAI 正在评估潜在收购目标，考虑自己制造 AI 芯片。OpenAI 的聊天机器人 ChatGPT 运行成本昂贵，分析师估计每次查询的成本为 4 美分。如果 ChatGPT 的查询份额达到谷歌的十分之一，那么 OpenAI 早期阶段需要价值 481 亿美元的 GPU，后续运行每年还需要 160 亿美元的芯片。目前 AI 芯片主要依赖于英伟达的芯片，该公司控制着逾八成的市场份额。

>
> **[消息来源：路透社](https://www.reuters.com/technology/chatgpt-owner-openai-is-exploring-making-its-own-ai-chips-sources-2023-10-06/)**
>
>
>

>
> 老王点评：我觉得无论是芯片昂贵还是计算成本昂贵的问题，都很快会解决，就像计算机普及一样。
>
>
>

![](/data/attachment/album/202310/07/201447pt7tf011btlsdfbs.jpg)

### 联想推出安卓 PC

安卓系统最常用于手持设备。联想与一家名为 Esper 的公司合作，制造出了一种运行安卓的台式一体机：ThinkCentre M70a。Esper 公司专门从事 Android 系统的定制开发，并提供设备管理服务。ThinkCentre M70a 拥有 21 英寸触摸屏，提供从酷睿 i3 到 i9 的英特尔 CPU，支持最大 16GB DDR4 3200MHz 内存和 512GB PCIe SSD。

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

>
> 老王点评：直接运行 Linux 发行版不好吗？
>
>
>

![](/data/attachment/album/202310/07/201516aej0nhaejenrr6aq.jpg)

### 盖蒂图片公司打造尊重版权的人工智能工具

盖蒂图片公司 CEO 称，为了证明人工智能制造商有可能尊重艺术家的版权，盖蒂建立了一个只使用授权数据的人工智能工具。该公司表示，目前他们还没有一种工具，可以在每次生成人工智能图像时评估哪位艺术家应该获得奖励，但他们会采用一种固定的模型，该模型将决定你的内容在训练集中占多大比例，在生成图像中表现如何，然后根据该模型来奖励创作者。之前，盖蒂起诉 Stability AI，指控该公司的图像生成器“稳定扩散”是在 1200 万张盖蒂图片上训练出来的。

>
> **[消息来源：Ars Technica](https://arstechnica.com/tech-policy/2023/10/getty-images-built-a-socially-responsible-ai-tool-that-rewards-artists/)**
>
>
>

>
> 老王点评：想法是好的，但是我认为这种做法是徒劳的，或者说是虚假的模型。因为就目前的 AI 研究进展，很难确定哪个被训练的图片真正起到了多少作用。而如果能够定量分析的话，恐怕也不需要从人类创作的素材学习了。
>
>
>


Ubuntu 与 Kubuntu：哪一个更适合你？

这贴会引发KDE和Gnome支持者的圣战么？

大家都不是小孩子了，有什么好争的，萝卜青菜各有所爱。

好歹放个原味的gnome，而不是Ubuntu改造过的。

![](/data/attachment/album/202310/08/104715hv9msvt1segmozs4.jpg)

>
> 对于 Ubuntu 和其相关版本如 Kubuntu 的选择可能会令人迷惑。那就让我们简化这个选择过程吧。
>
>
>

Ubuntu 是桌面用户最选择的 Linux 发行版。其特色是一个定制的 GNOME 桌面，可以提供流畅的用户体验。振奋人心！

而另一方面，Kubuntu 是 [Ubuntu 发行版家族](https://itsfoss.com/which-ubuntu-install/) 中的一员，特色在于其 **KDE Plasma 桌面**。

本质上，这两种发行版非常类似，主要区别在于 [桌面环境](https://itsfoss.com/what-is-desktop-environment/)。

*那么，它二者有何明显不同点？是否一个比另外一个更好？对于你来说，何种发行版更为适合？*

接下来，我们将比较下它们之间的主要不同，并提供一些基本信息以助你做出选择。

>
> ? 本篇文章的对比依据是 Ubuntu 23.04 以及 Kubuntu 23.04。随着未来版本的发布，可能会有一些变动，我们也会持续进行更新。
>
>
>

### 桌面环境

Ubuntu 的特色在于使用了 [GNOME](https://www.gnome.org/) 桌面的定制外观。对于新的 Linux 用户来说，这个布局独特且易用。

![Ubuntu 23.04 主屏幕截图](/data/attachment/album/202310/08/104749utsnetjmymr8f4z4.jpg)

它并不与 Fedora Linux 的原生 GNOME 体验完全相同。Ubuntu 的桌面环境体验经过了一些改动。

Kubuntu 提供了原生的 [KDE Plasma](https://kde.org/plasma-desktop/) 体验。对于从 Windows 平台转换来的用户，布局会感到相当熟悉，包含开始菜单、系统小工具等等。

![Kubuntu 23.04 截图](/data/attachment/album/202310/08/104834ucvzpvr9epamqv6e.jpg)

如果你尝试过任何其他带有 KDE Plasma 桌面的发行版，其体验应该差不多。

它们都是一些极为出色的 [桌面环境](https://itsfoss.com/best-linux-desktop-environments/)，所以，你基于各种布局、定制性和特性选择它们中的哪一个都没有什么问题。

为了进行更多的参考，下面是 Ubuntu 的登录页面所呈现的样子：

![](/data/attachment/album/202310/08/104750ey5may4q5c5z0qgy.jpg)

接下来，我们看一下带有 X11 桌面会话的 Kubuntu 登录屏幕：

![](/data/attachment/album/202310/08/104750eryitrhx1eajn3to.jpg)

此外，我为你提供了一份详细的指南，如果你想深入研究，可以参考这份 [KDE 与 GNOME](https://itsfoss.com/kde-vs-gnome/) 的对比指南：

>
> **[KDE 与 GNOME：Linux 桌面终极之选](https://itsfoss.com/kde-vs-gnome/)**
>
>
>

>
> ? 根据发行版版本，例如 [长期支持版](https://itsfoss.com/long-term-support-lts/)（LTS）还是非 LTS，桌面环境及特征集会有所不同。
>
>
> 举例来说，如果你选择像 Ubuntu 23.10 或 Kubuntu 23.10 这样的非 LTS 版本，你可以获得更新的桌面版本 —— [GNOME 45](https://news.itsfoss.com/gnome-45/) 或 [KDE Plasma 5.27](https://news.itsfoss.com/kde-plasma-5-27-release/)。
>
>
> 而对于 Ubuntu 22.04 LTS，提供的则是稍旧一些的桌面版本—— [GNOME 42](https://news.itsfoss.com/gnome-42-features/) 或 [KDE Plasma 5.24](https://news.itsfoss.com/kde-plasma-5-24-lts-release/)。
>
>
>

### 软件管理

由于 Ubuntu 和 Kubuntu 其核心都是 Ubuntu（或 Debian），因此可以期待在这两个版本上安装同样的应用程序。

但是，你用来管理或安装应用程序的应用商店在每个版本中都是不同的。

![](/data/attachment/album/202310/08/104750khlsfl6sfxf6b8h5.png)

对于 Ubuntu，它使用 <ruby> 软件中心 <rt>  Software Center </rt></ruby> 或者 <ruby> Ubuntu 应用中心 <rt>  Ubuntu App Center </rt></ruby>（从 [Ubuntu 23.10](https://news.itsfoss.com/ubuntu-23-10/) 开始的新版本），默认集成了 Snap。因此，如果你更倾向于使用 Snap 而不是 Flatpak，Ubuntu 就可以提供以无缝的安装体验。

![](/data/attachment/album/202310/08/104751uf7qinrq5ewfjkoi.png)

想要使用 Flathub 的包，你可以按照我们的 [Flatpak 使用指南](https://itsfoss.com/flatpak-guide/) 进行操作，但 Ubuntu 的软件管理器并未提供整合。

提及 Kubuntu，你得到的软件管理器是 “<ruby> 发现 <rt>  Discover </rt></ruby>” 应用。你也可以从软件仓库以及 Snap 包中安装应用。

![](/data/attachment/album/202310/08/104751vp6g0zonmngom89d.png)

与 Ubuntu 的软件商店相较，“发现”应用在轻松整合 Flatpak 方面更具**灵活性**。

你只需多击几下，就可以在设置菜单中通过 **Flatpak 后端插件** 在“发现”应用里列出来自 Flathub 的应用。

![](/data/attachment/album/202310/08/104752xgem6g3t83g34nen.jpg)

### 软件与功能点差异

有些用户更注重在特定发行版中能做什么，以及开箱即用的软件工具。

![Kubuntu 中的屏幕截图操作](/data/attachment/album/202310/08/104752sd0d86xk8xi9d0dx.jpg)

他们并不在意桌面布局或锁屏和登录屏幕的界面如何。他们只在乎**功能特性**，就如你在这里看到的图片展示的那样。

![Ubuntu 的快速切换菜单](/data/attachment/album/202310/08/104752oww3s6dcwb4hldkw.jpg)

>
> ? 可用的功能会依据发行版的版本和软件而有所不同。然而，我相信，一些让它们各自独特之处值得你了解，这些可能有助于你的选择。
>
>
>

一些重要的功能点如下：

* Kubuntu 的默认屏幕截图工具提供了注释和编辑功能，而 Ubuntu 则没有这功能。
* Kubuntu 的文件管理器比 Ubuntu 的包含更多的特性。
* 作为桌面环境选项，Kubuntu 提供了更多的预装应用。
* 相比于 Ubuntu，Kubuntu 提供了更多的外观定制选项。
* Kubuntu 默认使用 KDE “<ruby> 连接 <rt>  Connect </rt></ruby>” 应用连接你的移动设备。你也可以在 Ubuntu 进行相同的安装以获取这个功能。
* 在 Ubuntu 上，简易化并自动化的工作空间增加功能易于改进工作流。你可以在 Kubuntu 上增加虚拟桌面，但需手动操作。
* Ubuntu 具有快捷切换到深色/浅色模式的功能。
* Ubuntu 针对经常被海量选项所困扰的用户，更加注重简单易用的操作方式。

### 发布周期

如 Ubuntu 18.04 和 Ubuntu 22.04 这类的 Ubuntu LTS 版本，会在其发布之日后的**五年**内接受软件更新和安全补丁。

此外，如果你希望长期使用同一版本，你可以选择开通 [Ubuntu Pro 订阅](https://ubuntu.com/pro)（个人使用免费），它将为你提供**额外五年的更新支持**。

而对于非 LTS 版本，如 Ubuntu 22.10 和 Ubuntu 23.04，则会提供**九个月的维护更新**。

>
> ? 对大部分用户来说，我们推荐使用 LTS 版本。只有在你准备好在九个月之后升级你的系统，以获取最新最好的软件时，才推荐尝试非 LTS 版本。
>
>
>

如果你对这些术语感到不熟，我建议你阅读我们的一些资源，深入理解发布周期：

* [Ubuntu 的生命周期终止期指的是什么？](https://itsfoss.com/end-of-life-ubuntu/)
* [长期支持版是什么意思？](https://itsfoss.com/long-term-support-lts/)

总的来说，选择 Ubuntu，你可以获得**相当长的支持选项**。

大部分用户可能会认为，由于 Kubuntu 是 Ubuntu 的官方发行版，它们应该具有相同的更新周期。遗憾的是，**并非如此**。

在 Kubuntu 中，其**长期支持版从发布之日起仅支持三年**。非长期支持版的更新维护期仅为**九个月**。并无任何扩展软件更新期的选项。

### 安装

不论是 Ubuntu 还是 Kubuntu，其安装过程都相当直观且易于理解。

你将注意到的唯一不同之处在于用户界面及其一些选项。

以下是 Kubuntu 的截图：

![](/data/attachment/album/202310/08/104752yw7v566l5nr7cahz.jpg)

![](/data/attachment/album/202310/08/104752na4x6z686k646kd4.jpg)

尽管它们的界面有所不同，但安装过程都极其简便。

这里是 Ubuntu 的一个安装界面截图：

![](/data/attachment/album/202310/08/104752jyxqb5x9ll0959dl.png)

![](/data/attachment/album/202310/08/104752ahy27t27bdd1dr9y.png)

Ubuntu 近期发布的版本极大地改进了安装器的用户体验。所以，用户在点击步骤进行安装时，可能会觉得更加简洁明了。

例如，安装 Ubuntu 后，你或许可以立即选择深色或浅色模式，然而在 Kubuntu 中这样的选项并不可用。

![](/data/attachment/album/202310/08/104753rju7ku4ouu90uj0h.png)

### 系统资源使用

这里不会有赢家或输家，但基本上，Kubuntu 上的桌面环境（KDE Plasma）更轻量也更注重性能。

Ubuntu 的 GNOME 则设计得直观，为你提供了顺畅的用户体验。

举个例子，基于我的测试，Ubuntu 在启动后会马上占用大约 **1.5 GB 的内存**：

![](/data/attachment/album/202310/08/104753w82yo4ya92b4dd7y.png)

而在 Kubuntu 中，启动后占用的内存约为 1.2 GB：

![](/data/attachment/album/202310/08/104753nhyyaxrynqryhdpu.png)

没错，Kubuntu 的系统监控看起来功能稍多一些。但这就是全部了。

因此，在资源使用方面，虽然你在纸面上可能观察到明显的差异，但在实践中，它可能根本不会对你产生影响。

### 你应该选择哪个？

在选择一个适合日常使用的 Linux 发行版时，你的工作流以及布局都是需要考虑的因素。

**如果你熟悉 Windows 平台，Kubuntu 应是一个好选择**（甚至是从 Windows 平台转换过来的用户）。

**如果你理解并乐意接受 GNOME 的布局，Ubuntu 可以为你提供简单且现代的体验。**

但不管是哪种情况，**如果你希望能有高度的可定制性和大量实用工具，Kubuntu 会是一个理想的选择**。反而，**如果你更偏爱简约清晰的布局，选择 Ubuntu 一定不会错**。

? 你更偏好哪一个 Linux 发行版，是什么让你做出这样的选择呢？

*（题图：MJ/dbde3529-ecea-4411-a53e-6e75b4e388db）*

---

via: <https://itsfoss.com/ubuntu-vs-kubuntu/>

作者：[Ankush Das](https://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/) 荣誉推出


使用 Gamerzilla 分享你的游戏成就

Summary: Gamerzilla 是一个开源游戏成就系统，用于存储和共享你的游戏成就。

Gamerzilla 是一个开源游戏成就系统，用于存储和共享你的游戏成就。

![](/data/attachment/album/202310/08/191724uj7mmjw9ccd7pcl9.jpg)

Gamerzilla 是一个开源游戏成就系统，用于存储和共享你的游戏成就。游戏使用 libgamerzilla 轻松添加成就。Gamerzilla 库是用 C 编写的，但也有其他语言的绑定。

两年前，我描述了如何设置 [Gamerzilla 服务器](/article-15389-1.html)。除了 .net 实现之外，还可以使用 php 和 python 实现。但你可能不想运行自己的服务器。这里介绍一个公共服务器和 Gnome 界面。

### 公共服务器

我的网络服务器现在托管了一个启用了公共注册的 [Gamerzilla](https://identicalsoftware.com/trophy/) 实例。要创建帐户，请单击右上角的 “<ruby> 签到 <rt>  Sign In </rt></ruby>” 链接。然后单击 “<ruby> 登录 <rt>  Login </rt></ruby>” 按钮旁边的 “<ruby> 注册 <rt>  Register </rt></ruby>” 链接。

用户帐户收集的信息非常少。只需输入用户名和密码。你不需要输入你的真实姓名或电子邮件地址。因此，忘记密码没有实现。

账户一开始是不可见的。如果你希望公众在登录后看到你的成就，请单击页面右上角你的用户名，然后选择 “<ruby> 设为可见 <rt>  Make Visible </rt></ruby>”。新用户必须经过批准才能上传成就。目前没有显示你是否获得批准的指示。

### 获得成就

在获得第一个成就之前，你需要使用以下命令安装 Gamerzilla GNOME Shell 扩展：

```
sudo dnf install gnome-shell-extension

```

安装后，你需要注销并重新登录。需要使用以下命令启用扩展：

```
gnome-extensions enable gamerzilla@gamerzilla.identicalsoftware.com

```

游戏控制器图标出现在 GNOME Shell 的顶部栏中。

单击控制器图标并选择 “<ruby> 首选项 <rt>  preferences </rt></ruby>”。在出现的屏幕上输入你的 Gamerzilla 网址，包括尾部斜杠，但不包含 UI 的“奖杯”地址。如果使用我的服务器，该值将为 `https://identicalsoftware.com/`。填写你的用户名和密码。单击保存。默认情况下启用自动连接。如果你不想始终连接，请禁用此功能。

![Gamerzilla Controller menu](/data/attachment/album/202310/08/191751k2gyzpmph5p5q5lt.png)

不幸的是，一个错误阻止了该 Shell 扩展立即工作。你需要注销并重新登录。解决这个问题是当务之急。

### 目前支持的游戏

Fedora 仓库中的多个游戏支持 Gamerzilla 成就。如果你想买一个来尝试一下，我建议试试 Shippy 1984、Seahorse Adventures 或 Anagramarama。一旦你完成一个级别，Seahorse Adventures 就会存储一些进度。如果你玩 Super Tux Kart，你可能已经取得了成就。只需启动游戏即可同步之前完成的任何成就。当成就完成时，Gamerzilla 不会显示任何通知，但游戏可能会自行实现。

### 更进一步

除了修复第一次连接的错误之外，我还想要一个本地浏览器来查看成就。这样你就可以查看所有游戏成就，而无需强制上传它们。

成就确实有消极的一面。有些人觉得有必要完成它们。如果成就非常困难，这可能会导致负面的游戏体验。我理解这种担忧，但有些人也喜欢这些方面。更重要的是，为了吸引和留住玩家，我觉得开源游戏需要一个游戏成就系统。

我们需要更多游戏来实现 Gamerzilla 成就。我们需要玩家表现出对这个系统的支持。我继续为我的游戏和我尝试的其他开源游戏添加成就。

*（题图：MJ/32ae3f54-b319-4db7-b874-eeacd1dcc4d2）*

---

via: <https://fedoramagazine.org/share-your-game-achievements-with-gamerzilla/>

作者：[Dennis Payne](https://fedoramagazine.org/author/dulsi/) 选题：[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/) 荣誉推出


硬核观察 #1148 美议员建议对 RISC-V 技术实施出口限制

Summary:
? 美议员建议对 RISC-V 技术实施出口限制
? 仅有 10% 的人主要将 Python 用于开发系统管理脚本
? 澳大利亚科学家用《帝国时代》 游戏模拟蚂蚁战争
»
»

美国要疯了，中国什么都自己搞一套，难是难了点。可这样也意味着他们将来要面对竞争啊？抢发展中国家市场~

这个议员明显属于啥也不懂的门外汉，政治口嗨罢了，不要过于高潮

![](/data/attachment/album/202310/08/193338ldmeodfedpo2cocj.jpg)

![](/data/attachment/album/202310/08/193345gwmnbw3hd33bm5em.jpg)

### 美议员建议对 RISC-V 技术实施出口限制

美国参众两院的几名议员以美国国家安全为由敦促美国政府对 RISC-V 相关技术的出口实施限制。议员们担心，中国正在利用美国公司之间的开放合作文化来推动中国半导体产业的发展，这可能会削弱美国目前在芯片领域的领先地位。他们认为，中国正在“*滥用* RISC-V 来规避美国在芯片设计所需知识产权方面的主导地位”。总部位于美国加利福尼亚的 RISC-V 初创公司 SiFive 公司说，美国政府对美国公司在 RISC-V 的潜在限制将是一个 “巨大的悲剧”。

>
> **[消息来源：路透社](https://www.reuters.com/technology/us-china-tech-war-risc-v-chip-technology-emerges-new-battleground-2023-10-06/)**
>
>
>

>
> 老王点评：当年他们曾经考虑过对 Linux 等开源软件也进行限制的，结果你也知道了，这是不可能做到的。
>
>
>

![](/data/attachment/album/202310/08/193356cexrnzevj7799xv4.jpg)

### 仅有 10% 的人主要将 Python 用于开发系统管理脚本

由 Python 软件基金会和 JetBrains 开展的 2022 年度 Python 开发者调查报告刚刚发布。当被问及 Python 最常用于什么用途时，22% 的人用于 Web 开发，18% 的人用于数据分析，12% 的人用于机器学习，只有 10% 的人用于 DevOps/系统管理/编写自动化脚本。此外，报告显示，93% 的受访者采用了 Python 3，但仍有 7% 的受访者在使用 Python 2。而在上一年度的调查中，这一比例为 5%，略有回升。在受访者中，51% 的人表示他们在工作和个人/教育用途或副业项目中使用 Python，85% 的受访者表示 Python 是他们的主要语言。

>
> **[消息来源：Info World](https://www.infoworld.com/article/3707798/python-developers-wont-let-go-of-python-2.html)**
>
>
>

>
> 老王点评：Python 难道不是运维人员最爱的语言吗？看起来它的用户群体已经发生了很大变化。所以，即便你不是运维，也该学习一下 Python 了。
>
>
>

![](/data/attachment/album/202310/08/193408dbewit1wz4417u77.jpg)

### 澳大利亚科学家用《帝国时代》 游戏模拟蚂蚁战争

在澳大利亚各地，已经有 50 种不同的入侵蚂蚁，包括电蚁、火蚁和黄疯蚁，为了消灭它们，已经花费了数亿美元。为了更好地了解本地蚂蚁和外来入侵蚂蚁之间的斗争，澳大利亚国家科学机构的科学家们利用微软的经典电脑游戏《帝国时代》来模拟蚂蚁战争。研究人员称，“蚂蚁是少数几个在战争规模和死亡率方面与人类战争相似的动物物种群体之一。”他们认为该工作有助于开发新的栖息地管理方法，比如在城市化环境中增加灌木丛或更复杂的环境，使竞争的天平重新倾向于本地蚂蚁。

>
> **[消息来源：ABC](https://www.abc.net.au/news/rural/2023-10-03/age-of-empires-computer-game-ant-warfare-simulation-csiro-uwa/102923706)**
>
>
>

>
> 老王点评：所以，我们的文明和战争是不是也是“别神”在玩的《帝国时代》？?
>
>
>


Linux 中的 ls 命令使用教程

我感觉我16年看这个论坛开始，ls教程见过不下20篇

你说的没错，ls 这个标签下有 18 篇了~~

更简单的用法：

l = ls -F

ll = ls -l

la = ls -a

甚至DOS的dir也可以。。。

![](/data/attachment/album/202310/08/200201p8sfy8shyyyspxxx.jpg)

>
> ls 属于 Linux 中那些简单又常用的命令之一。在本教程里，你将学到如何高效使用它。
>
>
>

对我个人而言，`ls` 无疑是 [最常被使用的 Linux 命令](https://itsfoss.com/essential-ubuntu-commands/)，因为我们总是借助它 [列出目录内的内容](https://itsfoss.com/list-directory-content/) 来检验上一步操作的结果。

`ls` 命令是 “<ruby> 列表 <rt>  List </rt></ruby>” 的缩写，其功能就是列出你指定目录下的所有内容。

我将在本教程中，通过一系列的实例，带你一步步掌握 `ls` 命令的使用。

另外也会给出一些练习题，以检验你的学习成果。

### 如何运用 ls 命令

要使用 `ls` 命令，你只需遵循以下简单的命令格式：

```
ls [OPTIONS] Targeted_Directory

```

这里，

* `[OPTIONS]`：用来改变 ls 命令的默认行为。
* `Targeted_Directory`：在这里输入目录名或目录的绝对路径。

你可能会想，如果没有任何选项地使用 `ls` 命令会发生什么。为了回答这个问题，我在当前工作目录中使用了 `ls` 命令：

![使用 ls 命令列出工作目录的内容](/data/attachment/album/202310/08/200241vtij69midd88iq2i.png)

如你所见，它列出了当前工作目录中所有可用的目录和文件。但你可以做的远不止于在当前工作目录中获取名称和文件。

接下来让我给你展示一下。

#### 1、列出带有所有权的文件和目录

`ls` 命令的重要用途之一就是查出具体的文件或目录的权限以及所有权信息。

这就需要你在使用 `ls` 命令时，带上 `-l` 选项（这也被称为长列表格式）：

```
ls -l

```

执行该命令后，你会看到类似的输出：

```
$ ls -lh
-rwxrw-r-- 1 sagar sagar 666M Dec 10 18:16 Fedora.iso

```

注意到我是同时使用了 `–h` 选项吗？我们稍后会详细说明这个。

如果目前为止的输出结果看起来太复杂，那就让我来帮你简化一下：

![利用 ls 命令在 Linux 中解读文件权限和所有权](/data/attachment/album/202310/08/200241v9alyc09cysy9juy.png)

如你所见，每个文本块都有特定的含义，它们分别对应文件拥有者、组和其他用户的各项权限。

对于想对文件权限有更深入理解的朋友，我推荐你阅读 [我们关于 Linux 文件权限的详尽指南](https://linuxhandbook.com:443/linux-file-permissions/)。

#### 2、获取以人类可读的方式显示的信息

默认状态下，文件大小以字节为单位显示，显然不是最佳的查阅方式。那如果想以更易读的方式来得知相同的信息，我们怎么做呢？

其实很简单。你只需使用 `-h` 选项与 `ls` 命令配合：

```
ls -l -h

```

接下来，我们比较下默认显示状态和可读性更强的显示方式的区别：

![以人类可读的方式通过 ls 命令列出文件](/data/attachment/album/202310/08/200242ji4j4q7zeltjddkd.png)

明显更好了，对吧？

>
> ? 尽管 `ls` 命令很好地展示了文件大小，但它并不能告诉你文件夹的大小，普遍情况都会显示为 4K（LCTT 译注：这其实是“目录”这个文件所占用的大小，而不是该目录下文件的总计大小。）。如果需要了解文件夹的大小，那么你可以尝试使用 `du` 命令。
>
>
>

#### 3、列出隐藏文件

和其他所有文件管理器一样，`ls` 命令在默认情况下并不会显示隐藏文件（这正是隐藏文件的意义所在，对吧？）。

那么，如果你期望在常规文件之外，一并 [列出隐藏文件](https://itsfoss.com/show-hidden-files-linux/) 呢？只需在使用 `ls` 命令时带上 `-a` 选项就行：

```
ls -a

```

你会注意到，以 `.` 开头的文件名就是所谓的隐藏文件。

![用 ls 命令在 Linux 终端列出隐藏文件](/data/attachment/album/202310/08/200242g1zbqvhiboqub4uq.png)

>
> ? 你还可以使用 `ls -A`，它的功能与 `ls -a` 类似，但它不包括 `.` 和 `..` 这两个目录。
>
>
>

#### 4、递归列出文件

事实上，有 [多种方法可以递归列出文件](https://linuxhandbook.com:443/list-files-recursively/)，使用 `ls` 命令就是其中之一。

如果你还不清楚，递归列出文件就是指展示所有子目录中的文件，直到每个子目录的最深层次。

你可以通过使用 `-R` 参数来递归列出文件：

```
ls -R

```

![在 Linux 中使用 ls 命令递归列出文件](/data/attachment/album/202310/08/200242tstd49xrx5ky9rl2.png)

这种方式实际上为你展示了当前目录的结构，我个人非常喜欢这种方式，但你需要先进行安装。

>
> ? 其实你并不需要进入某个目录才能查看其内容，你可以直接通过提供它的绝对路径或相对路径来列出目录内容，比如：`ls /var/log`。
>
>
>

#### 5、在使用 ls 时对文件和目录做区分

通常，不同的颜色就足以区分文件和目录。但是如果你基于某种原因需要给文件和目录添加符号标识，这就有一个办法。

在 `ls` 命令中，使用 `-F` 选项，它会在每个目录名末尾添加一个正斜杠 `/`：

```
ls -F

```

![使用 ls 命令在文件和目录间做区分](/data/attachment/album/202310/08/200243hzxsur5xt7yffduu.png)

#### 6、列出指定扩展名的文件

有些情况下，你可能只希望列出具有特定扩展名的文件，实际上，这是最简单的操作之一。

做到这一点，你无需使用任何选项。只需在星号 `*` 后附上文件扩展名，如 `*.png`，`*.txt` 等：

```
ls *.extension

```

例如，如果我只想列出 ISO 文件，那么我将使用以下命令：

```
ls *.iso

```

![列出特定扩展名的文件](/data/attachment/album/202310/08/200243dzqwspuquuz6jqpy.png)

#### 7、基于大小对输出内容排序

若希望基于文件大小来对输出内容排序，你需要使用 `-S` 选项，它会以从大到小的方式（降序）列出文件：

```
ls -lhS

```

![使用 ls 命令基于文件大小排序](/data/attachment/album/202310/08/200243rtc4qu224vtvccc6.png)

相反，如果你想颠倒这个顺序，使得最小的文件首先被列出，你可以利用 `-r` 选项来实现反向排序：

```
ls -lhSr

```

![使用 ls 命令从小到大排序文件](/data/attachment/album/202310/08/200244y73izpooanph9ii4.png)

#### 8、根据日期和时间排序文件

`ls` 命令在列出的内容中包括文件的修改时间。

如果你希望最新的文件最先被列出，可以使用 `-t` 选项，如下所示：

```
ls -lht

```

![使用 ls 命令最先列出最新文件](/data/attachment/album/202310/08/200244wyjjwycqcjcc4qcf.png)

你也可以像我前面提到的那样，在这里使用 `-r` 选项进行反转排序。

```
ls -lrt

```

这会使得最近修改的文件在列表的底部显示，当目录中存在大量文件，而你希望查看最近被修改过的文件时，这一命令会特别有用。我在解决我的软件项目问题时就经常用到它。

![使用 ls -lrt 命令](/data/attachment/album/202310/08/200244a0tiz96o5zo7mnt0.png)

### 让我们来总结一下至此你已经学习到的！

下面，我会共享一个表列出本教程中介绍过的一些与 `ls` 命令一起使用的选项：

| 命令 | 描述 |
| --- | --- |
| `ls -l` | 长格式列出文件和目录 |
| `ls -lh` | 以人类可读的方式显示信息 |
| `ls -a` | 在列出的内容中包括隐藏文件 |
| `ls -R` | 递归列出文件 |
| `ls -F` | 在目录名后添加正斜杠 |
| `ls *.ext` | 列出具有特定扩展名的文件 |
| `ls -lS` | 根据文件大小排序 |
| `ls -lt` | 根据修改时间排序 |
| `-r` | 反转排序顺序（与 `-S` 或 `-t` 结合使用） |

### ? 并练习你所学

实践你所学总是一个好主意，这就是我们在每一份终端指南中都试图添加实践部分的原因。

所以，这里有一些关于 `ls` 命令的简单练习：

* 列出 `/var/log` 的内容
* [将命令的输出](https://itsfoss.com/save-command-output-to-file-linux/) 保存到名为 `output.txt` 的文件中
* 找出最近的 3 个文件（使用基于时间的排序）
* 基于大小显示文件，但排序方式要反转
* 检查是否存在任何隐藏文件

这些练习对你来说会很有帮助。期待之后更多关于 Linux 命令的学习。

如果你是初次接触终端，别忘了关注我们的终端基础系列。

祝你日有进益 ?

*（题图：MJ/8fb35776-5192-43ca-b96d-31bbd77c3318）*

---

via: <https://itsfoss.com/ls-command/>

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


使用 Btrfs 快照方便升级 Fedora Linux 且易于回退

Summary: 现在，你可以利用 Btrfs 快照来更简便地创建一个可引导的回退系统。

要是想用这个功能，为什么不用openSUSE？Snapper一切都是现成的，不用那么麻烦。

现在，你可以利用 Btrfs 快照来更简便地创建一个可引导的回退系统。

![](/data/attachment/album/202310/09/113654ba1kp126nzn6tpjv.jpg)

在 2018 年的一篇 [早前的文章](https://fedoramagazine.org/use-lvm-upgrade-fedora/) 中，我们介绍了在升级 Fedora Linux 前如何利用 LVM 复制根文件系统，以便在可能出现错误的情况下能有一个回退机制。然而如今，Fedora 工作站的默认安装已经是 Btrfs 文件系统了。现在，你可以利用 Btrfs 快照来更简便地创建一个可引导的回退系统。注意，本文不涉及会如何从其它文件系统转换或迁移到 Btrfs 上。

### 确认根文件系统是否为 Btrfs

本示例采用的是 Pinebook aarch64 笔记本电脑。在开始前，务必确认你的根文件系统是否采用 Btrfs。要明确，不是所有的定制版或者镜像文件默认都使用 Btrfs。

```
$ df -T
Filesystem     Type     1K-blocks     Used Available Use% Mounted on
devtmpfs       devtmpfs      4096        0      4096   0% /dev
tmpfs          tmpfs       998992        0    998992   0% /dev/shm
tmpfs          tmpfs       399600     6360    393240   2% /run
/dev/mmcblk2p3 btrfs     56929280 39796116  15058348  73% /
tmpfs          tmpfs       998996       24    998972   1% /tmp
tmpfs          tmpfs      5242880        0   5242880   0% /var/lib/mock
/dev/mmcblk2p3 btrfs     56929280 39796116  15058348  73% /f34
/dev/mmcblk2p3 btrfs     56929280 39796116  15058348  73% /home
/dev/mmcblk2p2 ext4        996780   551888    376080  60% /boot
/dev/mmcblk2p1 vfat        194348    31648    162700  17% /boot/efi
tmpfs          tmpfs       199796      100    199696   1% /run/user/1000
tmpfs          tmpfs       199796       84    199712   1% /run/user/0

```

### 列出当前的 Btrfs 子卷

以上的示例输出显示挂载在 “根”（`/`）的文件系统类型是 Btrfs。你会注意到，有三个挂载点显示了相同的备份设备以及 *已用* 和 *可用* 的块数。这是因为它们是从同一 Btrfs 文件系统挂载的不同部分（子卷）。比如，`/f34` 子卷是我去年创建的那个可引导快照。

默认的 Fedora Btrfs 安装会创建一个 Btrfs 文件系统，并在其上分别挂载两个子卷，`root` 和 `home` ，挂载路径分别为 `/` 和 `/home`。让我们一起来看看我还添加了哪些其它的子卷：

```
$ sudo btrfs subvol list /
ID 272 gen 110428 top level 5 path root
ID 273 gen 110426 top level 5 path home
ID 300 gen 109923 top level 5 path f34
ID 301 gen 95852 top level 5 path home.22Jul26
ID 302 gen 95854 top level 5 path f36.22Jul26

```

在这里，我们有一个来自最近一次系统升级的 `f34` 子卷，以及两个只读快照 `home` 和 `f36`。要添加和删除这些快照，最简单的方法就是挂载 Btrfs 的根目录。我会更新系统并创建当前 f36 `root` 子卷的新快照。如果你已经重命名了你的 `root` 子卷，我相信你知道该如何调整以下的示例以适应你的系统。

### 创建 Btrfs 的回退快照

```
$ sudo dnf update --refresh
...更新了很多部分（如果升级了内核还需要重启）
$ sudo mkdir -p /mnt/root
$ sudo mount /dev/mmcblk2p3 /mnt/root
$ cd /mnt/root
$ ls
f34  f36.22Jul26  home  home.22Jul26  root
$ sudo btrfs subvol snapshot root f36
Create a snapshot of 'root' in './f36'

```

因为 Btrfs 快照是以文件系统为基础的，所以并不需要在创建快照之前进行 “同步”，正如我在 LVM 中建议的。要从新的子卷引导为回退，你需要使用你喜欢的编辑器编辑 `/mnt/root/f36/etc/fstab`。如果你是刚入门的话，nano 就是一款十分简单的文本编辑器，功能基本够用。以下是我 `fstab` 文件中的一些行：

```
LABEL=PINE		/    btrfs   subvol=root,compress=zstd:1        1 1
UUID=e31667fb-5b6f-48d9-aa90-f2fd6aa5f005 /boot ext4    defaults        1 2
UUID=75DB-5832          /boot/efi               vfat    umask=0077,shortname=winnt 0 2
LABEL=PINE		/home    btrfs   subvol=home,compress=zstd:1    1 1
LABEL=SWAP swap			swap	discard=once	0 0

```

将 `subvol=root` 更改为 `subvol=f36`。这个改动是作用在快照中的文件，而并非你实际运行中的 `fstab` 文件。你可以通过 `diff /etc/fstab /mnt/root/f36/etc/fstab` 对比它们的区别。在我的情况下，我还使用了 `sudo btrfs subvol delete f34` 来删除我去年的 `f34` 快照。

### 测试 Btrfs 的回退快照

你现在可以进行回退的测试了。你可以使用 [grubby](https://fedoramagazine.org/setting-kernel-command-line-arguments-with-fedora-30/) 或在 `/boot/loader/entries` 中编辑一项来将 `subvol=root` 替换为 `subvol=f36`。然而，为了初学者的安全起见，我们更建议你在启动时编辑 GRUB 进行操作。你可以参考 [关于 GRUB 的这篇文章](https://fedoramagazine.org/boot-earlier-kernel/) 了解如何进入 GRUB 菜单。在你到达那里后，按下 `e` 键编辑默认的内核启动项。放心 —— 你所做的更改都只存在于内存中，如果你弄错了，重启电脑即可重新开始。就像编辑 `fstab` 文件一样，找到 `subvol=root` 并将其更改为 `subvol=f36`。然后，按 `F10` 或 `Ctrl + X` 来引导你修改过的项目。通过这些更改，你的系统应该能够引导进入你的新快照。你可以查看 `/etc/fstab` 确保你正在引导至正确的子卷，或键入 `mount | grep subvol` 查看此时在 `/` 上挂载的子卷。

### 进行 Fedora Linux 的系统升级

如果你的回退功能没问题，重启并返回你的正常根文件系统（并像上面所述，进行确认）。然后，按照 [维基页面](https://docs.fedoraproject.org/en-US/quick-docs/dnf-system-upgrade/) 上的指南进行标准的系统升级。提示：在运行 `dnf system-upgrade reboot` 之前，给 `root` 子卷创建另一个快照，你可以给它命名为 `root.dl`。这样，如果你发现硬盘空间不够，你不必再下载五个 GB 的文件包。因为除了下载的包以外，所有的内容都将与 `root` 和 `f36` 共享，因此它不会占用任何额外的空间。然后说到磁盘块的共享问题……

因为在 `root` 子卷中的 `f36` 文件和 `f36` 子卷中的相同文件都使用的是相同的磁盘位置，所以在处理 Btrfs 报告的可用空间时，`dnf system-upgrade` 会感到困惑。因此在升级过程中从 `root` 子卷中删除它们并不会真正释放任何空间。如果你耗尽了所有空间，并且决定重启电脑，那么图形用户界面（GUI）将无法启动。此时，你需要使用 `Ctrl + Alt + F2` 进入文本控制台并登录，这将是你磨练命令行技能的好机会。如何清空空间或扩展根文件系统在这里先不做讨论（我的文件系统经常在一个 LVM 的卷上，可以被扩展）。通常，为升级保留超过 50% 的空闲空间是比较保险的。

### 恢复环节

如果不幸出现问题，你可以重启电脑，并编辑 GRUB 条目以引导启动回退快照。如果你是新手，一旦需要在磁盘上修改 GRUB 条目（这样你就不需要每次启动时都进行编辑），可能需要一些指导。删除或重命名损坏的 `root` 子卷是非常直接的。你可以为 `f36` 子卷（或 `root.dl` 快照）创建一个快照，然后尝试再一次进行系统升级。以下是在子卷 f36 上启动到回退系统后重新开始的示例：

```
$ mount | grep subvol
$ sudo mount /dev/mmcblk2p3 /mnt/root
$ cd /mnt/root
$ sudo mv root root.failed
$ sudo btrfs subvol snapshot f36 root
Create a snapshot of 'f36' in './root'

Don't forget to edit /mnt/root/root/etc/fstab to change the subvol mounted on "/" to "root".

```

事实证明，新的 f38 版本的 kernel-6.2.11 在我的 Pinebook 上进行系统升级后并未成功启动！（不过请不要担心，ARM 只是 Fedora Linux 的可选 CPU 架构——在主流设备上，你很少会遭遇此类问题。）的确，我成功地按照前文所述，在启动时编辑了 GRUB 条目并恢复到了 f36 的 kernel-6.2.10。现在，我继续使用着 f38，但同时搭载了 f36 的 kernel-6.2.10。

**更新**：kernel-6.2.12 已经发布，且我已确认它在 Pinebook 上运行正常。

### 过期问题

随着你不断更新 f38 系统，它最终可能会希望删除 `/boot` 下的最后一个 f36 内核。通常来说，这并不是问题，因为到那个时候，你已经完全熟悉 f38，而 `f36` 快照只是一个存档。然而，如果你希望你的复刻版本（即 `f36` 的快照）能无限期地启动，那么你应当在 `/boot` 下保存一个能正常工作的 f36 内核。最简单的方法是在 `/etc/dnf/dnf.conf` 文件中设置 `installonly_limit=0` 并手动移除旧的内核，这种方法既简单又安全（尽管可能稍显繁琐）。

这里还有一个更复杂的解决方案（不适合新手）：运行 `find /boot -name "*fc36*"` 指令，列举出所有在 `f36` 子卷快照中的内核及 GRUB 文件（这些文件并未包含在快照之内）。将这些文件备份至安全位置（例如我会挂载 `f36` 子卷，并将文件备份至其下的一个目录）。当 f38 系统启动后，对于每一个 f36 内核版本，都需使用 `dnf` 删除特定版本的内核（例如，使用 `dnf remove kernel-core-5.19.11-200.fc36`）。千万不要删除 f38 的内核！然后将你先前备份的 f36 内核恢复至 `/boot` 下。此时，f38 系统已经无法再识别 f36 的内核，因此也不会将其从 `/boot` 中删除。

然而，使用此方法有一个缺点，那就是你可能会不小心删除正在运行的 f38 内核。如果大家有更佳的解决办法，欢迎在评论区分享。

### 展望未来

对于习惯于修改 GRUB 条目的用户，他们可能会考虑创建一个命名为 `f38` 的快照子卷。将当前的 GRUB 条目进行修改，以便启动到这个子卷，重启后，在这个子卷中进行系统升级。此后，总是根据它所包含的 Fedora Linux 版本来命名根文件系统的子卷。但在本文中，我没有采用这种作法，原因有两点：

1. 将当前活动的子卷命名为 `root`，这是遵循 Fedora Linux 的默认设置。
2. 坚持使用 `root` 作为当前子卷，这样在进行正常的系统升级操作之外，并不需要任何永久性的更改。

正如本文所展示的，针对重大系统更改（如系统版本升级）可能引发问题时，只读快照作为本地恢复点，非常有用。这些快照还可以通过 Btrfs 的 `send` 子命令，发送至远程备份。（如果远程备份设备已经包含了先前的备份数据，Btrfs 可以进行增量发送，仅传输发生变更的文件，这样就能节省时间和空间。）如果你打算长期存档这些快照，保持清晰不混淆且能明确恢复顺序的关键，就是要使用一套一致的命名规则。关于如何使用 Btrfs 的 `send` 命令来创建备份的更多信息，你可以参考关于 [Btrfs 快照备份](https://fedoramagazine.org/btrfs-snapshots-backup-incremental/) 的文章。

*（题图：MJ/6aed1d19-f1dd-4935-ad6f-61f6a868f150）*

---

via: <https://fedoramagazine.org/make-use-of-btrfs-snapshots-to-upgrade-fedora-linux-with-easy-fallback/>

作者：[Stuart D Gathman](https://fedoramagazine.org/author/sdgathman/) 选题：[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/) 荣誉推出


开源应用 Pomatez 使你保持专注

Summary: Pomatez 应用可以提升你的效率，它为你的时间管理带来了巨大帮助。

Pomatez 应用可以提升你的效率，它为你的时间管理带来了巨大帮助。

![](/data/attachment/album/202310/09/135249tc48b4ophxcbcxuz.jpg)

>
> Pomatez 应用可以提升你的效率，它为你的时间管理带来了巨大帮助。
>
>
>

你是否对 “番茄工作法” 有所了解呢？

这是一种 **时间管理方法**，于 1980 年代末期开发，通过定时器将工作划分为一定的时间间隔，每间隔 25 分钟后进行短暂的休息，如此循环直至任务完成。

这种方法在近些年变得越来越流行，有很多应用程序以 <ruby> <a href="https://en.wikipedia.org/wiki/Pomodoro_Technique">  番茄工作法 </a> <rt>  Pomodoro Technique </rt></ruby> 作为主要的卖点。

这里我们将介绍一个采用这种方法的应用，它名为 “Pomatez”，并且是 **原生支持 Linux 平台的开源应用**。Pomatez 为时间管理提供了所需的全部工具。

其实这并不是我们第一次介绍这种应用，之前有一种应用叫 “Reminders”，功能类似，但并未采用番茄工作法。

>
> **[Reminders：一个漂亮的开源 Linux 应用，可帮助你完成工作](/article-15852-1.html)**
>
>
>

现在我来详述一下你可以用 Pomatez 应用做些什么。

### Pomatez: 概述 ⭐

![](/data/attachment/album/202310/09/135313g1w31wecz1rqv03r.png)

Pomatez 使用 TypeScript 编程语言编写，是一款极好的工具，能让你在执行重要任务的同时安排适时的休息，保持专注。

Pomatez 的关键特性包括：

* 内置的任务列表
* 桌面通知
* 可定制的规则

#### 初次使用感受 ??

我在我的 Ubuntu 22.04 LTS 系统上安装了它，体验了它的功能表现。

首先，我在 “<ruby> 任务列表 <rt>  Task List </rt></ruby>” 部分填充了一些当日必须完成的重要任务和一些不太重要的任务。

一切就绪后，你将不会感到失望的 ?

![](/data/attachment/album/202310/09/135313n30syi740yynth17.png)

然后，我进入 “<ruby> 配置 <rt>  Config </rt></ruby>” 栏，按照自己的喜好进行了规则调整。

“<ruby> 保持专注 <rt>  Stay focus </rt></ruby>” 为执行任务的时间长度，“<ruby> 短暂休息 <rt>  Short break </rt></ruby>” 为短暂的休息时间，“<ruby> 长休息 <rt>  Long break </rt></ruby>” 为更长的休息时间，以及 “<ruby> 会话轮次 <rt>  Session rounds </rt></ruby>” 为定时器的会话数量。

这里还有一个 “<ruby> 特殊休息 <rt>  Special Breaks </rt></ruby>” 部分，可以用来安排比如午餐、晚餐的特定休息时间。

![](/data/attachment/album/202310/09/135314jbhizdjj09bo52ee.png)

接下来，我进入 “<ruby> 计时器 <rt>  Timer </rt></ruby>” 栏，此处显示了首个待处理任务，一列显示的是会话数以及控制定时器/会话的选项。

这里有一个重置定时器的按钮，一个开始/停止定时器的按钮，一个按规则进入下一阶段的按钮，一个调节音量的按钮，以及一个切换至 “<ruby> 精简模式 <rt>  Compact mode </rt></ruby>”（位于右下角）的按钮。

![](/data/attachment/album/202310/09/135314uiygawwe7lsavlxe.png)

我按下 “开始” 按钮启动了定时器，并开始查看了任务的可执行操作。我可以标记任务为 “<ruby> 完成 <rt>  Done </rt></ruby>”，跳过任务，或者从应用中删除任务。

![](/data/attachment/album/202310/09/135314dbzqgevmn1qwnm1p.png)

随着任务的推进，我通过按下带一个框和向下箭头图标的按钮，将 Pomatez 切换到了 “<ruby> 精简模式 <rt>  Compact mode </rt></ruby>”。

这样我得到了一个更小巧的，节省空间的界面。当我完成任务后，我停止了计时器并将任务标记为 “<ruby> 完成 <rt>  Done </rt></ruby>”。

![](/data/attachment/album/202310/09/135315ay2xveybubu8vu2e.png)

随后，我转到 “<ruby> 设置 <rt>  Settings </rt></ruby>” 栏，看看我可以调整哪些选项，我发现它给我了不少惊喜。

我可以调整应用行为，如设置为 “<ruby> 始终在顶部 <rt>  Always On Top </rt></ruby>”， 启用“<ruby> 深色主题 <rt>  Dark Theme </rt></ruby>” 和 “<ruby> 语音助手 <rt>  Voice Assiastance </rt></ruby>” 等。

![](/data/attachment/album/202310/09/135315c7t767o99wvsvkwt.png)

Pomatez 还支持键盘快捷键，虽然我期望它能提供通过键盘快捷键控制计时器的功能。

或许他们可以考虑在未来的版本中参考我的反馈意见？我希望他们可以！

![](/data/attachment/album/202310/09/135316ksm5mhszngz9n3z5.png)

总体而言，如果你希望改进日常工作流程，这款应用值得尝试。

最好的是，它是一个跨平台的应用，不仅可以在 Linux 所有现代发行版上运行，你在 Windows 和 macOS 系统上也可以试用。

### ? 下载 Pomatez

Pomatez 提供了 Linux 平台的 .deb、AppImage 和 .rpm 安装包。你还可以找到它的 Snap 包。

你可以从官方网站，Snap 商店 或其在 GitHub 上的仓库获取你需要的包。

>
> **[Pomatez（GitHub）](https://zidoro.github.io/pomatez/)**
>
>
>

你之前用过这样的应用吗？请在下方的评论区告诉我们吧！

*（题图：MJ/af06ca24-ec64-471f-92e0-76cedf3837ea）*

---

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

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


硬核观察 #1149 谷歌开源了一个键帽形键盘，摇头输入

Summary:
? 谷歌开源了一个键帽形键盘，摇头输入
? 密码学家悬赏寻找 5 个 NIST 椭圆曲线丢失的种子
? Prada 将为美国国家航空航天局设计新登月服
»
»

Prada的魔咒：谁给我代言谁塌房

![](/data/attachment/album/202310/09/182909sfohf0ghf33q1odf.jpg)

![](/data/attachment/album/202310/09/182922zd5wptn0n7u5wn9n.jpg)

### 谷歌开源了一个键帽形键盘，摇头输入

“键帽”，当然也是一种帽子。谷歌日本公司为那些愿意用头来输入的人设计了一套“键帽”键盘。这个设计是为了推广谷歌的 Gboard 应用程序。在这个“键帽”里有一个 6 轴惯性传感器，可以读取帽子的定位。佩戴者左右转动帽子，每个角度代表一个不同的字符代码。然后，佩戴者可以按下帽子顶部来输入字符。键盘通过蓝牙与设备连接，并支持 USB-C 充电。不过，谷歌并没有生产这款产品，只是制造了原型产品，并开源了其软硬件设计，所以你可以自己 DIY 一个。

>
> **[消息来源：Ars Technica](https://arstechnica.com/gadgets/2023/10/google-open-sourced-a-hat-shaped-like-a-giant-keycap-and-it-actually-types/)**
>
>
>

>
> 老王点评：名副其实的“键帽”，键和帽都有了，所有担心自己颈椎问题的程序员们都需要一顶。?
>
>
>

![](/data/attachment/album/202310/09/182940fftfwcsbqspawfse.jpg)

### 密码学家悬赏寻找 5 个 NIST 椭圆曲线丢失的种子

NIST 的椭圆曲线是由美国国家安全局（NSA）在 90 年代末提供的散列种子生成的，它为现代密码学提供了大量动力。有传言说，这些种子是某些英语句子的哈希值，但挑选这些种子的 Jerry Solinas 博士于 2023 年初去世，这留下了一个密码学之谜，生成这些哈希值的种子是什么。密码学家 Filippo Valsorda 宣布为破解这五个哈希值提供 12288 美元的赏金！

下面是这五个种子的哈希值：

```
3045AE6FC8422F64ED579528D38120EAE12196D5
BD71344799D5C7FCDC45B59FA3B9AB8F6A948BC5
C49D360886E704936A6678E1139D26B7819F7E90
A335926AA319A27A1D00896A6773A4827ACDAC73
D09E8800291CB85396CC6717393284AAA0DA64BA
```

>
> **[消息来源：Filippo](https://words.filippo.io/dispatches/seeds-bounty/)**
>
>
>

>
> 老王点评：虽然这些种子究竟是什么并不影响这些加密算法的安全性，但是能找到也是一种有趣的事情。
>
>
>

![](/data/attachment/album/202310/09/182954jo5jjdgt4d3ojozg.jpg)

### Prada 将为美国国家航空航天局设计新登月服

奢侈时装品牌 Prada 将为美国国家航空航天局 2025 年的登月任务设计宇航服。一位宇航员说，他认为 Prada 的设计经验足以应对这一挑战。有教授称，Prada 在各类复合面料方面拥有丰富的经验，也许真的能够为新太空服的外层做出一些真正的技术贡献。但人们不应该期望看到宇航员穿着佩斯利太空服或任何类似的花哨图案，保持良好的热环境才是真正的关键。

>
> **[消息来源：BBC](https://www.bbc.com/news/science-environment-67022619)**
>
>
>

>
> 老王点评：或许我觉得还有一个共同点，就是都挺贵的。
>
>
>

### 回音

* Linux 基金会的稳定内核维护者 GKH [回应](https://news.ycombinator.com/item?id=37749846)将 LTS 内核的支持期缩短为两年的原因是，“因为事实证明没人用它们”。


修复 Arch Linux 中的 “Bash: man command not found” 错误

Summary: 我遇到 “找不到 man 命令” 错误的小插曲，以及我是如何解决的。

恰巧昨天我在debian也遇到了 想都没想就apt install了一个。。。这文章还长篇大论看来有点水。。。

我遇到 “找不到 man 命令” 错误的小插曲，以及我是如何解决的。

![](/data/attachment/album/202310/09/231716f6ehhv6u9sueuts4.jpg)

>
> 我遇到 “找不到 man 命令” 错误的小插曲，以及我是如何解决的。
>
>
>

多年后，我再次尝试 Arch Linux。我忘记了 [pacman 命令的用法](https://itsfoss.com/pacman-command/)，所以我尝试访问它的手册页。

接下来发生的事情让我震惊（是的！我一直在阅读 BuzzFeed ?）。它向我展示了这个错误：

>
> bash: man: command not found
>
>
>

当然，这不仅是 pacman，所有命令都是这样。

![](/data/attachment/album/202310/09/231740x9oeyy99ifeafmdo.png)

这让我感到困惑，因为我以前从未遇到过无法使用 `man` 命令的情况。

如果你发现自己处于找不到 `man` 命令的类似情况，我向你保证，修复很简单：

* 安装 `man-db` 包（安装手册页）
* 更新 `mandb` 缓存（用于索引所有命令的手册页）

让我们更详细地看看。

### 在 Linux 中安装手册页

我从未想过我必须明确安装手册页。但是 [Arch Linux](https://archlinux.org/) 将你带入未知领域。这在某种程度上是件好事，因为你会发现以前从未遇到过的事情。

**这里的关键是安装手册页的包名为 `man-db`**。这对我来说也是一个发现。

你可以使用发行版的包管理器来安装它。

[对于 Arch 和 Manjaro](https://itsfoss.com/manjaro-vs-arch-linux/)，使用：

```
sudo pacman -S man-db

```

![](/data/attachment/album/202310/09/231740cw5g7v3t7l8787ow.png)

对于 Ubuntu 和 Debian，请使用：

```
sudo apt install man-db

```

对于 Fedora，请使用：

```
sudo dnf install man-db

```

对于 Red Hat Linux，请使用：

```
sudo yum install man-db

```

**你明白了要点**。为手册页构建缓存也是明智的一步。

### 构建手册页缓存

要刷新或构建手册页缓存，请运行 [mandb 命令](https://www.man7.org/linux/man-pages/man8/mandb.8.html)：

```
sudo mandb

```

它将在不同位置查找手册页并构建缓存，以便你可以快速访问手册页。

![](/data/attachment/album/202310/09/231740h1rltlx44p4tr81t.png)

完成后，我就可以像往常一样使用 `man` 命令。

### 结论

这确实让我感到震惊，因为我一直认为手册页是 Linux 的核心部分。从未想过我必须安装它们。

我应该将其添加到 [安装 Arch Linux 后要做的事情列表](https://itsfoss.com/things-to-do-after-installing-arch-linux/) 吗？我还没有把握。

也许我是在 Arch 中遇到这个缺少 `man` 命令问题的极少数用户之一。也许不是。如果你遇到过这样的“意外错误”，请在评论中告诉我。

*（题图：MJ/a582366a-ee9d-4583-9025-eed6a4e96108）*

---

via: <https://itsfoss.com/man-command-not-found/>

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


Cloudflare 推出免费的、更注重隐私的替代验证码系统

Summary: Cloudflare 最终提出了一种可结束视觉难题的解决方案。

Cloudflare 最终提出了一种可结束视觉难题的解决方案。

![](/data/attachment/album/202310/10/104321aioinl13v7i9nz6b.jpg)

>
> Cloudflare 最终提出了一种可结束视觉难题的解决方案。
>
>
>

自 [去年](https://news.itsfoss.com/cloudflare-pat/) 以来，Cloudflare 一直在研发一种更加注重隐私的验证码（CAPTCHA）替代系统。

可恶的验证码（尤其是谷歌的 reCAPTCHA）的问题是其无必要地收集用户数据、延迟体验时间、在网络导航中造成不便。

当然，验证码在一定程度上具有其用处。如果我声称它一无是处，无疑会显得无知。然而，随着技术的发展，以及为了提供无缝体验，我们所有的 [隐私保护工具](https://itsfoss.com/privacy-tools/) 都在不断进步，我们也需要一个连贯的系统来保护网站免受机器人的侵扰。

令人感兴趣的是，Cloudfare 设法整合了一项**每个人都可以免费使用作为替代品的技术**，那就是**Cloudflare Turnstile**。和每个 Cloudflare 的产品一样，你可以得到一个 "*Enterprise*" 计划，能够移除其品牌标识，并做一些其他操作。

### Cloudflare Turnstile：彻底摆脱验证码！

有了 [Cloudflare Turnstile](https://www.cloudflare.com/en-in/products/turnstile/)，你将永远不再需要解答任何视觉难题。

一开始，即使是它的自家隐私优先的验证码系统也会向部分用户展示难题。

现在，所有这些都已被他们的新产品替换。你只需进行一次点击，就可以验证你是人类：

![来源：Cloudflare 博客](/data/attachment/album/202310/10/104346jtarcmcn5wambrv5.gif)

为了确保隐私保护目标的实现，Cloudflare 作出了以下说明：

>
> 我们创立 Turnstile 就是为了保护隐私。Turnstile 达到了 <ruby> <a href="https://www.cloudflare.com/learning/privacy/what-is-eprivacy-directive/">  电子隐私指令 </a> <rt>  ePrivacy Directive </rt></ruby>、[GDPR](https://www.cloudflare.com/learning/privacy/what-is-the-gdpr/) 及 [CCPA](https://www.cloudflare.com/learning/privacy/what-is-the-ccpa/) 的合规性要求，也符合我们自己严格的隐私承诺。此外，Cloudflare 的 [FedRAMP Moderate 授权套餐](https://marketplace.fedramp.gov/products/FR2000863987)、"Cloudflare for Government" 现在也包括 Turnstile。我们并不依赖于追踪用户数据，比如用户访问过其他哪些网站，来判断用户是人还是机器人。我们的业务是保护网站，而不是卖广告，因此，运营商可以放心部署 Turnstile，知道他们的用户数据安全无虞。
>
>
>

此外，Cloudflare 认为，即使不向用户提供任何交互元素，它也能比现有的验证码系统更有效。它可以保护网站免受机器人流量，以及欺诈行为的侵害。

所以，有些人可能甚至不会看到人类验证的挑战，因为 Cloudflare 已经通过后台进行了一系列的检查和分析以发现可疑行为。

**有什么更让人兴奋的吗？**

![](/data/attachment/album/202310/10/104346zvz3ancqqamvvcgd.jpg)

所有这些都是免费提供的。任何不使用 Cloudflare 作为防火墙或 CDN 的网站或平台，只需添加**几行代码**，即可选择使用本服务。

>
> **[Cloudflare Turnstile](https://www.cloudflare.com/en-in/products/turnstile/)**
>
>
>

你还可以按照官方 [文档](https://developers.cloudflare.com/turnstile/migration/) 的指南，从 [reCAPTCHA](https://www.google.com/recaptcha/about/) 或 [hCAPTCHA](https://www.hcaptcha.com/) 迁移到该系统。

欲了解更多技术信息，你可以查看 [Cloudflare 的公告](https://blog.cloudflare.com/turnstile-ga/)。

? 你如何评价 Cloudflare 的新系统，能在无需验证码的情况下阻挡机器人并提升用户体验呢？

---

via: <https://news.itsfoss.com/cloudflare-captcha-replacement/>

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


硬核观察 #1150 GNOME 开始正式放弃 X.Org 会话支持

Summary:
? GNOME 开始正式放弃 X11 会话支持
? “Admin123” 是最大的网络安全错误配置漏洞
? LXC 发布 LXD 的社区分支 Incus 0.1
»
»

xfce还在迁移Wayland的路上……

linux用户都没发话呢

对呀，就算等到明年4.20，也只是过渡性支持...

来自117.136.89.137的 Chrome Mobile 117.0|Android 13 用户

mate据说不支持Wayland，于是Solus打算把mate版换成xfce版。如果mate后续仍然不支持wayland，以后可能不再是主流桌面。

放弃X11是因为没人维护而且爆出多个安全漏洞，给个放弃Gnome的理由？习惯Gnome的人不见得会因为这个原因用KDE或其他桌面。

原本用gnome3挺好的，但是每次升级后插件有一大堆都不能用了，所以切换到cinnamon了。

筆電的n卡混合輸出加獨顯直連，寄！

能不能放弃gnome不好说，但我个人是不喜欢Wayland的，仅就截屏限制的问题就让我难以接受，虽然这是出于安全考虑，但实在是太不方便了。

要我说，还真有放弃Gnome的理由，倒不是因为放弃X11，而是Gnome的设计。例如：对触屏友好，但对鼠标不太友好的桌面交互逻辑；有时需要各种第三方插件才能还原传统桌面用户的熟悉体验；性能要求高，无法使老电脑物尽其用；等等。

Linux中国就有一篇翻译文章，提到原生Gnome的不足之一：《在 GNOME 中添加最小化和最大化按钮》，10月18日发布。

当然，以上是个人感想。我个人觉得现在的Gnome更像是为触屏电脑打造，我个人还是更喜欢KDE、XFCE、Cinnamon这样的传统设计。

昨天刚试了Fedora39的Wayland，鼠标还是一如既往的飘。最后还是开启了gdm中的那个选项……

GNOME3的API貌似一直不稳定，GTK3这么多年，GIMP终于要迁移到GTK3了，然后它又要开始折腾GTK4了。和Fedora一样，现在的GNOME更像是RH的技术试验环境，而它居然还要放弃X11用根本就不成熟的Wayland。A卡、I卡实测Wayland的性能甚至还不如X11。架构是优化了，但性能反而更差。

![](/data/attachment/album/202310/10/163917x5avjnn2g252jy7s.jpg)

![](/data/attachment/album/202310/10/163931vkeyth0x6c3q2txy.jpg)

### GNOME 开始正式放弃 X11 会话支持

随着 Fedora 40 希望禁用 GNOME 的 X11 会话支持，上游的 GNOME 开始评估禁用和移除其 X11 会话支持的前景。GNOME 开启了一组合并请求，开始放弃对 GNOME 桌面的 X11 会话支持，一旦这些代码被移除，GNOME 将成为仅支持 Wayland 的桌面环境。在这第一步中仅移除了 systemd 启动目标，但 X11 功能仍然存在。随后的其它合并请求将真正删除大约 3.6 千行的 X11 会话代码。GNOME 称，“X11 接受的测试越来越少。自 2016 年以来，我们一直默认使用 Wayland 会话，现在是时候彻底放弃 x11 会话了。”此外，Fedora 40 也将只支持 KDE Plasma 6 的 Wayland 会话。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/GNOME-MR-Drop-X11-Session)**
>
>
>

>
> 老王点评：随着 Fedora 的推动，在 GNOME 和 KDE 的支持下，X11 将被扫到历史的垃圾堆中。
>
>
>

![](/data/attachment/album/202310/10/163942niegco4rnjmo5ar5.jpg)

### “Admin123” 是最大的网络安全错误配置漏洞

根据从红蓝队演习中获得的数据，美国网络安全和基础设施安全局（CISA）和美国国家安全局（NSA）将在软件、系统和应用程序中坚持使用默认凭据列为 [十大网络安全错误配置](https://media.defense.gov/2023/Oct/05/2003314578/-1/-1/0/JOINT_CSA_TOP_TEN_MISCONFIGURATIONS_TLP-CLEAR.PDF) 之首。排名第二的是用户和管理员权限分离不当，第三是网络监控不足。采用安全设计和默认安全的方法，是美国政府近年来最明确、宣传最多的目标之一。他们鼓励技术制造商停止生产存在已知可利用漏洞的产品，并制定法案禁止购买存在任何已知漏洞的软件，虽然一些专家批评该法案限制过多。

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

>
> 老王点评：网络安全已经不是增强功能，而是必备的基础功能了。
>
>
>

![](/data/attachment/album/202310/10/164013iobyyfrsno44kfkb.jpg)

### LXC 发布 LXD 的社区分支 Incus 0.1

八月份，在 Canonical 决定 [接管](/article-15971-1.html) LXD 之后，LXC 社区将 LXD 项目分叉为 Incus。上周末，Incus 软件发布了第一个正式版本 0.1。Incus 0.1 大致相当于 LXD 5.18 版本，在此基础上做了各种改动，删除了一些未使用或有问题的功能。有一个值得注意的变化是，用 `/dev/incus` 代替 `/dev/lxd` 设备。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Incus-0.1-Released)**
>
>
>

>
> 老王点评：脱开企业的束缚，就是新生的开始。而且，两个同源的竞争品也有助于更好的发展。
>
>
>


GNOME 活动搜索：你可能从未了解过的 7 个功能

相当于macOS的Spotlight和Alfred

花梢而不实用。。。

我觉得利用搜索来进行一些日常计算的功能非常好用，这是我之间没有尝试过的。这样比使用计算器更直观，也更方便，以前我都是通过shell或是python来计算的，缺点很显然计算结果要等到按下回车键之后才知道。

![](/data/attachment/album/202310/10/224338y0d7dgqlez0e0nmz.jpg)

>
> GNOME 的桌面环境中隐藏着丰富的搜索特性，爱探索的你不妨尝试寻找。挖掘新知，将是一场乐趣无穷的旅程。
>
>
>

在我之前的 [一篇文章](https://itsfoss.com/nautilus-file-search/) 中，分享过在 Nautilus 文件管理器中如何掌握搜索的技巧。

在这次的教程中，我将介绍 GNOME 活动区域中一些被忽视的搜索功能。

如果 “<ruby> GNOME 活动 <rt>  GNOME Activities </rt></ruby>” 这个术语你并不熟悉，你可以在 GNOME 桌面环境的左上角找到并点击 “<ruby> 活动 <rt>  Activities </rt></ruby>” 按钮，进入相应界面。

![点击活动以访问](/data/attachment/album/202310/10/224343kmrt22922rccjhrq.png)

你也可以通过按下 `Super` 键（即：`Windows` 键）来快速访问。

![GNOME 搜索界面](/data/attachment/album/202310/10/224344x8yyt85ecc8ts8gu.png)

尽管 GNOME 内置了强大的搜索功能，但大部分人却仅仅用它来搜索和运行应用。

![大部分人用 GNOME 活动来搜索和运行应用](/data/attachment/album/202310/10/224344zfgtiltv3vf31nkf.png)

而实则，它还有更多的功能等待你去探索，这些可能在你使用过程中派上大用场，同时让你带上专业用户的范儿。

就让我们逐个介绍这些隐藏功能吧。

### 1、全局文件搜索

这个功能和打开应用非常类似。当你在搜索区域开始输入，你会发现搜索结果在不断的变化。如果有文件与你的搜索关键词匹配上，你可以点击文件名，也可以按回车，以默认的应用打开它。

![文件搜索](/data/attachment/album/202310/10/224345kxqz9vxtnq9zopzg.png)

在同一界面中，你可以看到每个文件都有一个小型的预览。并且，列表中的每个文件都会标注其完整路径。

如果你细看，你会发现这里有一个文件管理器的图标，点击它。

![文件管理器图标](/data/attachment/album/202310/10/224346e48wi15l1nglffyw.png)

点击后，会打开 Nautilus 文件管理器，并进入搜索模式，你可以看到所有匹配到的文件。

![Nautilus 文件管理器的搜索模式](/data/attachment/album/202310/10/224346whrhr7qooow96r9a.png)

同样的，如果你点击了搜索结果中的某个应用图标，将打开这个应用，并同时展示相应的搜索结果。

>
> ? 如果你已经安装了 GNOME Sushi，你甚至可以在开始使用这些文件前，使用全屏模式预览它们。
>
>
>

### 2、复制表情符和特殊字符

GNOME 提供了一个名为 `gnome-characters` 的应用，它包含了许多表情符以及相关字符。如果你还未安装这个应用，可以使用以下命令进行安装：

```
sudo apt install gnome-characters

```

安装完成后，这个应用将配置自己的搜索提供器。这意味着你能够搜索任何字符的名称，并且在输入过程中，系统会为你提供各种搜索建议。

![搜索概览中的字符](/data/attachment/album/202310/10/224347azftrm9ompp4p34r.png)

一旦你找到了想要的字符，按回车键，就可以将其复制到剪贴板。然后使用 `CTRL+V` 进行粘贴。

![字符已复制](/data/attachment/album/202310/10/224348wh8mvqnhve3krmqm.png)

### 3、不必打开计算器便能进行计算

你完全可以利用 GNOME shell 的搜索功能当作一个快捷的计算器。对于一些简单的数学运算，并无必要额外打开计算器应用。

相反，你可以直接在 GNOME 活动区域内完成计算。

![获取计算结果](/data/attachment/album/202310/10/224349yiy3jcjfbyeycplm.png)

此外，你还可以将计算结果复制到剪贴板。

### 4、轻松获取全球时间

想要知道另一个城市现在的具体时间吗？不必使用其他小工具或程序，仅仅输入城市名称，GNOME shell 就能告诉你该地的时间。

![GNOME Shell 搜索中的世界时钟](/data/attachment/album/202310/10/224349sxx02uhd2zjgl7cl.png)

### 5、方便地在运行中的终端窗口之间切换

假设你同时运行了多个终端窗口，或者在同一终端窗口中打开多个标签，各自运行了不同的活动命令，例如 `top`，或者用 `bat` 或 `less` 在读取某个文件等，

你可以通过在 GNOME shell 搜索中输入命令名称，快速定位到正在运行该命令的终端窗口。

![获取运行中的终端窗口](/data/attachment/album/202310/10/224350nh3e8d7iehahzdd6.png)

你会发现，我在其中一个终端中运行了 `top` 可以直接跳转到此终端窗口。若这是在不同的标签中，它也能帮你切换到运行着这个特定命令的标签页。

### 6、执行网络搜索

你可以通过 GNOME Shell 直达 Firefox 的网页搜索。为能实现这个功能，你需要先在后台打开 Firefox。

![设置中的 Firefox 角色——搜索提供器](/data/attachment/album/202310/10/224350nn4aapzcsucekpks.png)

启动 Firefox 后，你可以在活动概览中搜索并找到网页结果。除此之外，你还可以在系统设置中，根据你的喜好对 Firefox 的显示顺序进行调整。

![Firefox 搜索结果](/data/attachment/album/202310/10/224351by577tvoohhvht5q.png)

>
> ? 遗憾的是，在我使用的 Fedora 38 系统中，虽然 Firefox 是搜索提供器，但我无法从中获得任何搜索结果。但在 Manjaro 上，一切运行正常。
>
>
>

如果你使用的是其他的发行版，你可以在 GNOME shell 搜索中，通过 Epiphany 或 GNOME Web 浏览器来访问网络搜索结果。首先，你可以使用你的包管理器来安装 Epiphany：

```
sudo apt install epiphany

```

或者，你也可以从 Flathub 安装：

```
flatpak install flathub org.gnome.Epiphany

```

安装完成后，打开设置，找到搜索功能。这时，你会看到 GNOME Web 已经出现在列表中了。

![搜索设置中的 GNOME Web](/data/attachment/album/202310/10/224351ps5l7n0gsgpgjuyu.png)

如果它未被激活，只需开启这个开关。即使 GNOME Web 并没有被打开，它仍能正常工作。

![使用 GNOME Web 搜索得到的网络结果](/data/attachment/album/202310/10/224351kuyfqy0yiukuuzui.png)

>
> ? 如果一个新安装的应用程序提供了某种搜索功能，它将会出现在搜索标签页中。
>
>
>

### 7、管理搜索结果的显示顺序

你可以使用系统设置对显示的搜索结果进行重新排序，禁用某些结果等操作。

#### 在系统设置应用中访问搜索设置

打开系统设置，然后进入搜索选项卡。

![设置中的搜索选项卡](/data/attachment/album/202310/10/224352xx35x8z5xg35zp5i.png)

#### 重新排序搜索结果显示的顺序

打开搜索设置后，你可以看到列出了所有可用的搜索提供器。每一个项目的左侧有一个把手，右侧有三个点的菜单。

![用于排列项目的按钮和把手](/data/attachment/album/202310/10/224353tsd91zyy1yg1j6jq.png)

你可以直接拖拽左侧的把手来调整项目顺序，将其放到你希望的位置。

![拖拽调整项目显示的顺序](/data/attachment/album/202310/10/224353pq73jv897rn8ynvr.gif)

或者，你也可以点击右侧三点菜单，然后选择“<ruby> 向上移动 <rt>  Move Up </rt></ruby>”或“<ruby> 向下移动 <rt>  Move Down </rt></ruby>”。

![使用按钮上下移动](/data/attachment/album/202310/10/224354wsgu3dzqcjbuztuf.gif)

调整后的设置将会作为 GNOME shell 搜索结果新的显示顺序。

#### 管理各个文件的搜索位置

通过搜索选项卡里的“<ruby> 搜索位置 <rt>  Search Locations </rt></ruby>”选项，你可以调整系统应用，如文件、照片、视频等的搜索位置。

![](/data/attachment/album/202310/10/224354vgogennjjdnentug.png)

现在，你可以开启或者关闭已有的搜索位置。或者点击添加按钮，添加新的位置。

![添加或移除位置](/data/attachment/album/202310/10/224354a5jqy2mm222fqz5d.png)

#### 从搜索中启用或禁用搜索提供器

如果你并未使用某些搜索提供器，你可以通过禁用未使用的搜索提供器在搜索界面释放一些空间。具体操作是，使用每个项目右侧的切换按钮关闭指定提供器。

![启用 - 禁用开关](/data/attachment/album/202310/10/224355m9tcdu5rqgs9z8zd.png)

如果需要，你可以随时重新开启它们，只需切换相同的按钮至开启状态。

#### 整体禁用搜索

你可以通过关闭 **应用搜索** 按钮来彻底禁用 GNOME Shell 中的应用内搜索。

![在概览中禁用搜索](/data/attachment/album/202310/10/224355krvzwp3j7j325p87.png)

在这种情况下，只有应用程序可以进行搜索，搜索结果会被隐藏。

![应用内搜索被禁用状态](/data/attachment/album/202310/10/224356bslyst1134qclyj5.png)

### 额外技巧：扩展插件增强搜索效能

有一些 GNOME 扩展件可以使你的搜索更便捷、有效。

#### 快速网络搜索

这是一个名为 “Quick Web Search” 的扩展，它会为 DuckDuckGo 提供一个搜索选项。每当我们在 GNOME shell 搜索中输入一些词汇时，DuckDuckGo 的图标就会出现。单击它，将在你的首选浏览器中打开搜索结果。

![Shell 中的 DuckDuckGo 搜索](/data/attachment/album/202310/10/224356rfrq2rf9olwan1oz.png)

即使所有的浏览器实例都已关闭，这个功能也可以正常工作。此外，你可以通过扩展设置将搜索提供器更改为谷歌或其他选项。

>
> **[获取 Quick Web Search 扩展](https://extensions.gnome.org/extension/6051/quick-web-search/?ref=itsfoss.com)**
>
>
>

#### GNOME 模糊应用搜寻

此扩展为 GNOME 搜索提供了模糊应用搜寻结果。因此，即便你输错或拼错了某些名字，它都会尽力为你找到匹配的结果。

![使用模糊搜索的 GNOME 搜索](/data/attachment/album/202310/10/224357oj8517x790jx2525.png)

>
> **[获取 GNOME 模糊应用搜索](https://extensions.gnome.org/extension/3956/gnome-fuzzy-app-search/?ref=itsfoss.com)**
>
>
>

### 充分利用 GNOME

如你所见，你可能从未充分地利用过所有的 GNOME 搜索特性，或者可能未曾对其给予足够的关注。

? 期望你能喜欢这些技巧。欢迎在评论区留下你的建议。

*（题图：MJ/81a823e0-ed00-4988-a0a8-47c88e4ed188）*

---

via: <https://itsfoss.com/gnome-search/>

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


硬核观察 #1151 VBScript 将从 Windows 中删除

Summary:
? VBScript 将从 Windows 中删除
? 严重安全漏洞影响三年来的所有 curl 版本
? 谷歌等披露 HTTP/2 “快速重置” DDoS 攻击
»
»

MS什么时候弃用Office的VBA宏？这个过时技术也该淘汰了。

作不了方便的VBS恶作剧了（悲

不这么看，其实VBA的封装还是很简洁直观的，而且用的各种非字母字符也少，反倒最自然语言友好，这一点和python是同路人。如果能持续演进，还是挺好的

![](/data/attachment/album/202310/11/164340mda9ls0qmsmamqdd.jpg)

![](/data/attachment/album/202310/11/164348o8fqsf8fqeke23lq.jpg)

### VBScript 将从 Windows 中删除

微软表示，VBScript 已被弃用，被列在其 Windows 客户端废弃功能列表中。在未来的 Windows 版本中，VBScript 将作为一项可选功能，之后会从 Windows 中删除。VBScript 首次发布于 1996 年，但其早在 2010 年就停止了开发。它是一种脚本语言，曾一度被 Windows 系统管理员广泛用于自动执行任务，直到被 2006 年问世的 PowerShell 所取代。VBScript 也曾用于 IE 和 IIS 中，但由于其它浏览器并不支持它，因此在微软独有的环境之外逐渐被 JavaScript 所取代。

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

>
> 老王点评：这就是微软封闭时代的遗留物之一，这些遗留物将逐渐消失在故纸堆中。
>
>
>

![](/data/attachment/album/202310/11/164359n9fse48nucvcskfc.jpg)

### 严重安全漏洞影响三年来的所有 curl 版本

前几天，curl 官方就发出预警，其正在修复一个高危安全漏洞，并将在今天发布修复版本 8.4.0。根据刚刚发布的最新版本和安全公告，这个漏洞影响从 2020 年 3 月发布的 7.69.0 到 8.3.0 的所有版本。该漏洞导致 curl 在 SOCKS5 代理握手过程中堆缓冲区溢出。鉴于 curl 和 libcurl 被广泛用在各种项目中，其带来的影响非常广泛。建议的做法是升级到最新版本，或者不要使用 SOCKS5 代理。curl 作者还就如何产生该漏洞做了深入探讨和 [反省](https://daniel.haxx.se/blog/2023/10/11/how-i-made-a-heap-overflow-in-curl/)。

>
> **[消息来源：CURL](https://daniel.haxx.se/blog/2023/10/11/curl-8-4-0/)**
>
>
>

>
> 老王点评：虽然这种事情在所难免，但是又一次让人思考现有的开源软件供应链模式是否先天上难以免除这种风险？或许需要一些不一样的思考。
>
>
>

![](/data/attachment/album/202310/11/164410h4xr5dctccm5cmxm.jpg)

### 谷歌等披露 HTTP/2 “快速重置” DDoS 攻击

最近几个月，Cloudflare、AWS、谷歌以及其他大型云服务商都受到了一种新型 DDoS 攻击，其中一些 DDoS 攻击达到了每秒 2 亿至 4 亿次请求。谷歌云报告称，由于这种现在被称为 HTTP/2 “快速重置”攻击的攻击，其每秒请求数达到了破纪录的 3.98 亿。这种攻击的模式是，攻击端发起请求使服务器端开始工作，然后快速重置请求。当请求被取消，但 HTTP/2 连接仍保持开放，而服务器仍需为取消的请求做大量工作。并且，立即重置流的能力使每个连接都能无限量地发送请求。通过明确取消请求，攻击者永远不会超过并发开放流的数量限制。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/HTTP2-Rapid-Reset-Attack)**
>
>
>

>
> 老王点评：要说谁对各种协议最热衷，那就是专门盯着这些协议，以期发现各种漏洞的攻击者了。
>
>
>


Linux Mint 21.2 Edge：为更新的硬件提供支持

Summary: Linux Mint 21.2 Edge ISO 来了！

Edge与常规版的区别仅仅是内核版本更新吗？如果有基于最新版Ubuntu而非LTS的mint就好了。

![](/data/attachment/album/202310/11/224116oso9krhjqqoq5qji.jpg)

>
> Linux Mint 21.2 Edge ISO 来了！
>
>
>

Linux Mint 背后的人们一直在努力推出主要版本，例如 [Linux Mint 21.2](https://news.itsfoss.com/linux-mint-21-2/) 和 [LMDE 6](https://news.itsfoss.com/lmde-6/)。

一系列的发布似乎并没有停止，因为我们现在以 “**Linux Mint 21.2 Edge**” 的形式得到了另一个版本。

请允许我告诉你更多相关信息。

### Linux Mint 21.2 Edge：可以期待什么？

![](/data/attachment/album/202310/11/224122vc9crbdjhjcdclcc.png)

Linux Mint 21.2 Edge 采用 [Linux 内核 6.2](https://news.itsfoss.com/linux-kernel-6-2-release/)，**为那些希望运行较新硬件**而不喜欢 [Linux 内核 5.15](https://news.itsfoss.com/linux-kernel-5-15-release/) LTS（常规 Linux Mint 21.2 版本的特性）的用户量身定制。

现在对于 Intel Arc 显卡用户来说绝对是一个不错的 Linux 发行版选择！

如果你对 “*Edge*” ISO 感到好奇，请参阅 [文档](https://linuxmint-user-guide.readthedocs.io/en/latest/edge.html)：

>
> 除了常规 ISO 镜像之外，Linux Mint 有时还会为其最新版本提供 “Edge” ISO 镜像。该镜像附带更新的组件，能够支持最现代的硬件芯片组和设备。
>
>
>

此外，此 ISO 还**恢复了对安全启动的支持**。对于那些想要它的人来说，这应该是一个有用的附加组件。

不要忘记，Linux Mint 21.2 Edge **仅提供 “Cinnamon” 风格桌面**，没有任何 XFCE 或 MATE 风格。

不过，除了更新的硬件支持之外，与常规版本相比，使用 Edge 版本时你不会发现任何差异。

**想要试一试？**

前往 [官方网站](https://www.linuxmint.com/edition.php?id=310) 从众多可用的下载镜像之一获取 ISO。

>
> **[Linux Mint 21.2 Edge](https://www.linuxmint.com/edition.php?id=310)**
>
>
>

请注意，此版本**仅提供 64 位版本**，没有 32 位选项。

? 你会尝试 Edge ISO 吗？ 请在下面告诉我们！

*（题图：MJ/f49e0353-86d5-4ebb-a503-58716d8b54fb）*

---

via: <https://news.itsfoss.com/linux-mint-21-2-edge/>

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