

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 比较 AL2 和 AL2 023
<a name="compare-with-al2"></a>

以下主题描述了 AL2 和 AL2 023 之间的主要区别。

有关、和 AL2 023 中已弃用的功能的更多信息 AL1 AL2，请参阅。[AL2023 中已弃用的功能](deprecated.md)

**Topics**
+ [添加、升级和删除了软件包](#package-changes)
+ [针对每个版本的支持](#al2-eol-date)
+ [命名和版本控制更改](#naming-and-versioning-changes)
+ [优化](#optimize-performance)
+ [来自多个上游](#building-on-fedora)
+ [网络系统服务](#networkd)
+ [软件包管理器](#package-manager)
+ [使用 cloud-init](#using-cloud-init)
+ [图形桌面支持](#graphical-desktop-support)
+ [编译器三元组](#compiler-triplet)
+ [32 位 x86 (i686) 软件包](#i686)
+ [`lsb_release` 和 `system-lsb-core` 软件包](#lsb-release)
+ [Extra Packages for Enterprise Linux (EPEL)](epel.md)
+ [Python 2.7 已被 Python 3 所取代](python2.7-no-more.md)
+ [安全更新](security-updates.md)
+ [确定性升级用于提高稳定性](compare-deterministic-upgrades.md)
+ [`gp3` 作为默认 Amazon EBS 卷类型](continuing-al2-filesystem.md)
+ [统一控制组层次结构 (cgroup v2)](cgroupv2.md)
+ [`systemd` 计时器取代 `cron`](cron.md)
+ [改进的工具链：gcc、binutils 和 glibc](glibc-gcc-and-binutils.md)
+ [`systemd` 日志取代 `rsyslog`](journald.md)
+ [最小化程序包依赖](minimized-pkg-dependencies.md)
+ [Amazon Corretto 作为默认 JVM](compare-al2-java.md)
+ [AWS CLIv2](awscli2.md)
+ [UEFI 首选和安全启动](uefi-preferred.md)
+ [SSH 服务器默认配置更改](ssh-host-key.md)
+ [AL2023 内核更改自 AL2](compare-with-al2-kernel.md)
+ [`/tmp` 现在是 `tmpfs`](compare-al2-al2023-tmp.md)
+ [AMI 和容器映像变化](w2aac11c69.md)
+ [比较 Amazon Linux 2 和 Amazon Linux 2023 AMI 上安装的软件包](amzn2-al2023-ami.md)
+ [比较 Amazon Linux 2 和 Amazon Linux 2023 Minimal AMI 上安装的软件包](amzn2-al2023-minimal-ami.md)
+ [比较 Amazon Linux 2 和 Amazon Linux 2023 基础容器映像上安装的软件包](amzn2-al2023-container.md)

## 添加、升级和删除了软件包
<a name="package-changes"></a>

AL2023 包含数千个可供使用的软件包。有关 023 年新增、升级或删除的所有软件包与之前的 Amazon Linux 版本对比的完整列表，请参阅 AL2 023 [年 AL2的 Package 变更](https://docs.aws.amazon.com/linux/al2023/release-notes/compare-packages.html)。

 要申请在 AL2 023 年添加或更改软件包，请在[亚马逊 linux-](https://github.com/amazonlinux/amazon-linux-2023/issues) 2023 存储库中提交问题。 GitHub

## 针对每个版本的支持
<a name="al2-eol-date"></a>

对于 AL2 023，我们提供五年的支持。

 有关更多信息，请参阅 [发布频率](release-cadence.md)。

## 命名和版本控制更改
<a name="naming-and-versioning-changes"></a>

AL2023 支持的机制与支持平台识别的 AL2 机制相同。 AL2023 还引入了用于平台识别的新文件。

有关更多信息，请参阅 [命名和版本控制](naming-and-versioning.md)。

## 优化
<a name="optimize-performance"></a>

AL2023 优化了启动时间，以缩短从实例启动到运行客户工作负载的时间。这些优化涵盖了 Amazon EC2 实例内核`cloud-init`配置、配置和内置于操作系统软件包（如`kmod`和`systemd`）中的功能。

有关优化的更多信息，请参阅[性能和操作优化](performance-optimizations.md)。

## 来自多个上游
<a name="building-on-fedora"></a>

AL2023 基于 RPM，包括来自多个版本的 Fedora 和其他发行版（例如 CentOS 9 Stream）的组件。Amazon Linux 内核直接源自来自 kernel.org 的长期支持 (LTS) 版本，该版本是独立于其他发行版选择的。

有关更多信息，请参阅 [与 Fedora 的关系](relationship-to-fedora.md)。

## 网络系统服务
<a name="networkd"></a>

`systemd-networkd`系统服务在 AL2 023 中管理网络接口。这是从 AL2、使用ISC dhclient或的改动`dhclient`。

有关更多信息，请参阅 [网络服务](networking-service.md)。

## 软件包管理器
<a name="package-manager"></a>

 AL2023 上的默认软件包管理工具是DNF。 DNF是中的软件包管理工具的继任者 AL2。YUM

有关更多信息，请参阅 [软件包管理工具](package-management.md)。

## 使用 cloud-init
<a name="using-cloud-init"></a>

在 AL2 023 中，cloud-init管理软件包存储库。默认情况下，在早期版本的Amazon Linux 中，cloud-init 安装了安全更新。这不是 AL2 023 的默认设置。用于在启动时更新的确定性升级功能描述了 AL2 023 `releasever` 在启动时启用软件包更新的方法。有关更多信息，请参阅[在中管理软件包和操作系统更新 AL2023](managing-repos-os-updates.md)和[确定性升级用于提高稳定性](compare-deterministic-upgrades.md)。

对 AL2于 023，你可以cloud-init与一起使用。SELinux有关更多信息，请参阅 [使用 cloud-init 启用 `enforcing` 模式](enforcing-mode.md#cloud-init-enforcing)。

Cloud-init 使用 cloud-init 从使用 HTTP(S) 的远程位置加载配置内容。在早期版本中，当远程资源不可用时，Amazon Linux 不会提醒您。在 AL2 023 中，不可用的远程资源会造成致命错误并导致cloud-init执行失败。此行为更改从 AL2，提供了更安全的 “失效关闭” 默认行为。

 有关更多信息，请参阅[自定义 cloud-init](cloud-init.md) 和 [cloud-init 文档](https://cloudinit.readthedocs.io/en/22.2.2/)。

## 图形桌面支持
<a name="graphical-desktop-support"></a>

AL2自 2023.7 版本起，023 采用基于 GNOME 的图形桌面环境，取代了中使用的 MATE 桌面。 AL2此版本为用户提供了不同的桌面体验，同时保持了 AL2 023 的云优化性能。GNOME 桌面环境提供多种自定义选项、系统集成功能以及独特的用户界面设计，为用户提供了不同于先前 MATE 桌面环境的替代方案。更多详细信息请参阅 [AL2023 图形化桌面](graphical-desktop-al2023.md) 页面。

## 编译器三元组
<a name="compiler-triplet"></a>

AL2023 为和设置编译器三元组GCC，`LLVM`以表明`amazon`这是供应商。

因此， AL2 `aarch64-redhat-linux-gcc`变成 `aarch64-amazon-linux-gcc` AL2 023。

对于大多数用户来说，这应该是完全透明的，并且可能只会影响那些在 AL2 023 上构建编译器的用户。

## 32 位 x86 (i686) 软件包
<a name="i686"></a>

作为 [2014.09版本的一部分](https://aws.amazon.com/amazon-linux-ami/2014.09-release-notes/)， AL1它宣布这将是最后一个生产32位的版本。 AMIs因此，从 [2015.03 版本](https://aws.amazon.com/amazon-linux-ami/2015.03-release-notes/)起， AL1Amazon Linux 不再支持在 32 位模式下运行系统。 AL2 为 x86-64 主机上的 32 位二进制文件提供了有限的运行时支持，并且没有提供支持构建新 32 位二进制文件的开发包。 AL2023 不再包含任何 32 位用户空间软件包。我们建议您完成向 64 位代码的过渡。

如果您需要在 023 上运行 32 位二进制文件，则可以从 AL2 023 之上运行的 AL2 容器 AL2 内部使用 32 位用户空间。 AL2

## `lsb_release` 和 `system-lsb-core` 软件包
<a name="lsb-release"></a>

 过去，有些软件会调用该`lsb_release`命令（ AL2 由软件`system-lsb-core`包提供）来获取有关其运行的 Linux 发行版的信息。Linux Standards Base (LSB) 引入了此命令，Linux 发行版采用了此命令。Linux 发行版已经演变为使用更简单的标准，将这些信息保存在 `/etc/os-release` 和其他相关文件中。

 `os-release` 标准来自 `systemd`。有关更多信息，请参阅 [systemd os-release 文档](https://www.freedesktop.org/software/systemd/man/os-release.html)。

 AL2023 不附带该`lsb_release`命令，也不包括`system-lsb-core`软件包。软件应完成向 `os-release` 标准的过渡，以保持与 Amazon Linux 和其他主要 Linux 发行版的兼容性。

# Extra Packages for Enterprise Linux (EPEL)
<a name="epel"></a>

**警告**  
 E AL2 `epel` xtra 启用了第三方EPEL7存储库。自 2024 年 6 月 30 日起，*不再维护*第三方 EPEL7 存储库。  
 此第三方存储库*未来将不再更新*。这意味着 *EPEL* 存储库中的程序包将*不会有安全修复*。  
 本节将介绍 AL2 023 中包含的软件包的选项。EPEL

 Extra Packages for Enterprise Linux (EPEL) 是 Fedora 社区中的一个项目，其目标是为企业级 Linux 操作系统创建大量软件包。该项目主要制作RHEL和CentOS包装。 AL2 具有高度的兼容性CentOS 7。因此，许多EPEL7软件包都能正常运行 AL2。

 没有与 AL2 023 二进制兼容的EPEL版本。但是，想要在 AL2 023 年使用其EPEL7套餐的客户有几种选择。有些EPEL软件包在 AL2 023 中有替代方案，而另一些则作为其中的一部分[适用于亚马逊 Linux 的补充软件包](spal.md)提供。

**警告**  
 仅添加设计用于 AL2 023 的存储库。  
 虽然为其他发行版设计的存储库现在可以使用，但不能保证它们会继续使用 023 中的任何软件包更新或不是为在 AL2 023 中使用而设计的存储库。 AL2

 本页提供有关客户在 AL2 023 上使用的EPEL7软件包 AL2 及其对应套餐的信息。

 对于其余套餐，买家或许可以使用适用于亚马逊 Linux 的补充套餐 (SPAL)。SPAL 提供了数EPEL9千个专为 Amazon Linux 2023 构建的软件包，但这些软件包不在AWS支持计划范围内。这意味着 CVEs 不会对 SPAL 软件包进行跟踪，并且只有在上游可用时才会提供补丁。

**重要**  
 使用[适用于亚马逊 Linux 的补充软件包](spal.md)前请查阅的文档。

**Topics**
+ [`axel`- HTTP/FTP 客户](#axel)
+ [`brotli` 和 `libbrotli`：压缩](#brotli)
+ [`collectd`：统计数据收集进程守护程序](#collectd)
+ [`cpulimit`：CPU 使用限制器](#cpulimit)
+ [`exim`：邮件传输代理](#exim)
+ [`fuse3`：用户空间文件系统（FUSE）v3](#fuse3)
+ [`ganglia`：分布式监控系统](#ganglia)
+ [`git-lfs`：使用 Git 进行大文件版本控制](#git-lfs)
+ [`haveged`：使用 HAVEGE 算法的熵源](#haveged)
+ [`inotify-tools`：inotify 命令行工具](#inotify-tools)
+ [`iperf`- TCP/UDP 性能基准](#iperf)
+ [`jemalloc`：替代的 `malloc` 实现](#jemalloc)
+ [`libbsd`：BSD 兼容函数库](#libbsd)
+ [`libserf` - HTTP 客户端库](#libserf)
+ [`libzstd`：zstd 压缩库](#libzstd)
+ [`lighttpd` Web 服务器](#lighttpd)
+ [`lshell`：受限 Shell](#lshell)
+ [`monit`：进程、文件、目录和设备监视器](#monit)
+ [`nodejs`](#nodejs)
+ [`perl-Config-General`](#perl-Config-General)
+ [`python2-lockfile`：文件锁定](#python2-lockfile)
+ [`python2-rsa`：纯 Python RSA](#python2-rsa)
+ [`python2-simplejson`：适用于 Python 2 的 JSON 例程](#python2-simplejson)
+ [`rkhunter`：Rootkit 检测工具](#rkhunter)
+ [`rssh`：与 OpenSSH 配合使用的受限 Shell](#rssh)
+ [`sscg`：自签名 SSL 证书生成器](#sscg)
+ [`stress`：压力测试工具](#stress)
+ [`stress-ng`：压力测试工具](#stress-ng)
+ [`tmpwatch`：基于最后访问时间删除文件](#tmpwatch)
+ [`xmlstarlet`：命令行 XML 工具集](#xmlstarlet)

## `axel`- HTTP/FTP 客户
<a name="axel"></a>

 `axel` 程序包包含在 EPEL7 中，且从未作为 Amazon Linux 的一部分发布。 AL2023 中可用的替代方案是`curl`和。`wget`

**警告**  
 `axel` 的 `-S` 选项使用*未加密的* http 连接来发现文件的镜像。

 强烈建议将所有对 `axel` 的使用迁移到 `curl` 或 `wget`。

## `brotli` 和 `libbrotli`：压缩
<a name="brotli"></a>

 `brotli`和`libbrotli`软件包在里EPEL7面，而 AL2 核心中只有`brotli`软件包可用。

 `brotli`和`libbrotli`软件包都包含在 AL2 023 中。

 可以使用以下命令在 AL2 023 上安装该`brotli`软件包：

```
[ec2-user ~]$ sudo dnf install brotli
```

 可以使用以下命令在 AL2 023 上安装该`libbrotli`软件包：

```
[ec2-user ~]$ sudo dnf install libbrotli
```

## `collectd`：统计数据收集进程守护程序
<a name="collectd"></a>

 该`collect`软件包已经在里面了EPEL7，还有 E `collectd-python3` AL2 xtra `collectd` s 中有。

 该`collectd`软件包包含在 AL2 023 中，可以通过运行以下命令进行安装：

```
[ec2-user ~]$ sudo dnf install collectd
```

## `cpulimit`：CPU 使用限制器
<a name="cpulimit"></a>

 在 Amazon Linux 2023 中，`systemd` 提供限制进程或进程组 CPU 使用量的功能。此功能也可轻松地在任何 `systemd` 服务中使用。

 `systemd` 提供了强大的资源控制功能，可用于确保对任何任务或任务组可以使用的资源进行限制。有关更多信息，请参阅上游 [systemd.resource-control](https://www.freedesktop.org/software/systemd/man/latest/systemd.resource-control.html) 文档以及[在 AL2023 中使用 systemd 限制进程资源使用量](resource-limiting-systemd.md)。

## `exim`：邮件传输代理
<a name="exim"></a>

 该`exim`软件包已在里面EPEL7，之前有售 AL1。亚马逊 Linux 2023 同时提供`postfix`和`sendmail`邮件传输代理 (MTAs)。

## `fuse3`：用户空间文件系统（FUSE）v3
<a name="fuse3"></a>

 `fuse3` 程序包（包括 `fuse3-libs` 和 `fuse3-devel`）包含在 EPEL7 中。这些软件包是 AL2 023 的一部分，每个软件包都可以通过运行以下相关命令进行安装：

```
[ec2-user ~]$ sudo dnf install fuse3
```

```
[ec2-user ~]$ sudo dnf install fuse3-libs
```

```
[ec2-user ~]$ sudo dnf install fuse3-devel
```

## `ganglia`：分布式监控系统
<a name="ganglia"></a>

 该`ganglia`软件包已在里面EPEL7，之前有售 AL1。它不是随附的 AL2。

 上游项目有一段不活跃的时期，有些未解决的问题没有 CVEs得到解决。尽管上游项目最近有一些活动，但不计划将其增加`ganglia`到 AL2 023。

## `git-lfs`：使用 Git 进行大文件版本控制
<a name="git-lfs"></a>

 `git-lfs` 程序包包含在 EPEL7 中。在 Amazon Linux 2023 中，`git-lfs` 程序包包含在核心存储库中。在 AL2 023 上，`git-lfs`可以通过运行以下命令进行安装：

```
[ec2-user ~]$ sudo dnf install git-lfs
```

## `haveged`：使用 HAVEGE 算法的熵源
<a name="haveged"></a>

 `haveged` 程序包包含在 EPEL7 中。Amazon Linux 2023 预配置了熵源，无需使用 `haveged`。

## `inotify-tools`：inotify 命令行工具
<a name="inotify-tools"></a>

 `inotify-tools`包裹已装入EPEL7，并包含在 AL2 023 中。

**注意**  
 在 AL2 023 中，`systemd`支持基于路径的激活，可用于对事件（例如路径存在或更改时）采取行动。  
 现在可以使用 `systemd` 路径激活以更可靠的方式更好地完成 `inotify-tools` 的许多用途。有关更多信息，请参阅 [systemd.path](https://www.freedesktop.org/software/systemd/man/latest/systemd.path.html)。

 该`inotify-tools`软件包包含在 AL2 023 中，可以通过运行以下命令进行安装：

```
[ec2-user ~]$ sudo dnf install inotify-tools
```

## `iperf`- TCP/UDP 性能基准
<a name="iperf"></a>

 第 2 `iperf` 版软件包已`testing` AL2 推EPEL7出，也在 Extra 中可用。还有 AL1 

**注意**  
 `iperf3` 程序包也可用，提供 `iperf` 的第 3 版。

 该`iperf`软件包包含在 AL2 023 中，可以通过运行以下命令进行安装：

```
[ec2-user ~]$ sudo dnf install iperf
```

## `jemalloc`：替代的 `malloc` 实现
<a name="jemalloc"></a>

 该`jemalloc`软件包已装EPEL7入，并在 E `mariadb10.5` AL2 xtra `lamp-mariadb10.2-php7.2` s 中提供。

 该`jemalloc`软件包包含在 AL2 023 中，可以通过运行以下命令进行安装：

```
[ec2-user ~]$ sudo dnf install jemalloc
```

## `libbsd`：BSD 兼容函数库
<a name="libbsd"></a>

 该`libbsd`软件包已装入EPEL7，也可在 E `testing` AL2 xtra 中购买。

 该`libbsd`软件包包含在 AL2 023 中，可以通过运行以下命令进行安装：

```
[ec2-user ~]$ sudo dnf install libbsd
```

 可通过运行以下命令安装 `libbsd` 的开发文件。

```
[ec2-user ~]$ sudo dnf install libbsd-devel
```

## `libserf` - HTTP 客户端库
<a name="libserf"></a>

 `libserf` 程序包包含在 EPEL7 中。`libserf` 程序包在 Amazon Linux 2023 中提供。可通过运行以下命令安装：

```
[ec2-user ~]$ sudo dnf install libserf
```

## `libzstd`：zstd 压缩库
<a name="libzstd"></a>

 该`libzstd`软件包在 AL2 核心和内核中EPEL7。该`libzstd`软件包也是 AL2 023 的一部分。

```
[ec2-user ~]$ sudo dnf install libzstd
```

## `lighttpd` Web 服务器
<a name="lighttpd"></a>

 该`lighttpd`软件包已在里面EPEL7，之前有售 AL1。Amazon Linux 2023 同时提供 Apache `httpd` 和 `nginx` Web 服务器。

## `lshell`：受限 Shell
<a name="lshell"></a>

 `lshell` 程序包从未作为 Amazon Linux 的一部分发布。它曾在 EPEL6 中可用。[`lshell` 的 Fedora 打包存储库](https://src.fedoraproject.org/rpms/lshell)说明了在 EPEL7 或 Fedora 30 中[未将其打包的原因](https://src.fedoraproject.org/rpms/lshell/c/cb122f0a16c9f1d5c2af8582b740a3f62587a951?branch=rawhide)。它也已[从 Debian 中移除](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=862302)。

 [上游`lshell`项目已[停止积极维护](https://github.com/ghantoos/lshell/issues/209)，并且包含[已知的未修补的 Critic](https://github.com/ghantoos/lshell/issues/188)*al CVEs*：[CVE-2016-6902 和 CVE-2016-6903](https://nvd.nist.gov/vuln/detail/CVE-2016-6902)。](https://nvd.nist.gov/vuln/detail/CVE-2016-6903)

 在 Debian 错误中建议的替代方案 [http://www.pizzashack.org/rssh/](http://www.pizzashack.org/rssh/) 其上游也已无人维护，作者列举了无法修复的安全问题作为原因。

 出于这些原因，没有计划添加`lshell`到 AL2 023。

## `monit`：进程、文件、目录和设备监视器
<a name="monit"></a>

 在 Amazon Linux 2023 中，`systemd` 提供了用于监控、启动、停止和重启服务的大量功能。这包括限制重启频率、在重启尝试之间等待，以及在失败时启动其他服务。更多信息，请参阅 [systemd.service](https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html) 文档。

 在 AL2 023 中，`systemd`还支持基于路径的激活，可用于对事件（例如路径存在或更改时）采取行动。更多信息，请参阅 [systemd.path](https://www.freedesktop.org/software/systemd/man/latest/systemd.path.html)。

 `systemd` 单元具有通用配置选项，可用于指定依赖关系、条件判断以及成功或失败时执行的操作。更多信息，请参阅 [systemd.unit](https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html) 文档。

 `systemd` 提供了强大的资源控制功能，可用于确保任何监控任务不会占用过多 CPU 或内存。更多信息，请参阅 [systemd.resource-control](https://www.freedesktop.org/software/systemd/man/latest/systemd.resource-control.html)。

## `nodejs`
<a name="nodejs"></a>

 `nodejs`版本 16 软件包已包含在 023 中EPEL7，`nodejs`现在已包含在 AL2 023 中。在撰写本文时，`nodejs`版本 18 和 20 都已在 AL2 023 年推出。你可以使用以下命令在 AL2 023 上安装 `nodejs` 18：

```
[ec2-user ~]$ sudo dnf install nodejs
```

 你可以使用以下命令在 AL2 023 上安装 `nodejs` 20：

```
[ec2-user ~]$ sudo dnf install nodejs20
```

## `perl-Config-General`
<a name="perl-Config-General"></a>

 该`perl-Config-General`软件包已包含在 023 中EPEL7，现在已包含在 AL2 023 中。你可以使用以下命令在 AL2 023 中安装`perl-Config-General`软件包：

```
[ec2-user ~]$ sudo dnf install perl-Config-General
```

 也可通过要求 DNF 安装提供特定 Perl 模块的程序包来安装 Perl 模块。通过此方法，您可使用更熟悉的 Perl 模块名称而非操作系统程序包名称。

```
[ec2-user ~]$ sudo dnf install 'perl(Confg::General)'
```

## `python2-lockfile`：文件锁定
<a name="python2-lockfile"></a>

 `python2-lockfile`包裹在里面EPEL7，里面有一个 AL2 包`python-lockfile`裹。在 AL2 023 中[Python 2.7 已被 Python 3 所取代](python2.7-no-more.md)，因此该软件包的 *Python 2* 变体不会添加到 AL2 023 中。

 此软件包的 *Python 3* 版本*包含在 AL2 023* 中。您可以使用以下命令之一在 AL2 023 中安装该`python3-lockfile`软件包：

```
[ec2-user ~]$ sudo dnf install python3-lockfile
```

 也可以通过要求 DNF 安装提供特定 Python 模块的程序包来安装 Python 模块。

```
[ec2-user ~]$ sudo dnf install 'python3dist(lockfile)'
```

## `python2-rsa`：纯 Python RSA
<a name="python2-rsa"></a>

 `python2-rsa`包裹在里面EPEL7，里面有一个 AL2 包`python2-rsa`裹。在 AL2 023 中[Python 2.7 已被 Python 3 所取代](python2.7-no-more.md)，因此该软件包的 *Python 2* 变体不会添加到 AL2 023 中。

 此软件包的 *Python 3* 版本*包含在 AL2 023* 中。您可以使用以下命令之一在 AL2 023 中安装该`python3-rsa`软件包：

```
[ec2-user ~]$ sudo dnf install python3-rsa
```

 也可以通过要求 DNF 安装提供特定 Python 模块的程序包来安装 Python 模块。

```
[ec2-user ~]$ sudo dnf install 'python3dist(rsa)'
```

## `python2-simplejson`：适用于 Python 2 的 JSON 例程
<a name="python2-simplejson"></a>

 `python2-simplejson` 程序包包含在 EPEL7 中。在 AL2 023 中[Python 2.7 已被 Python 3 所取代](python2.7-no-more.md)，因此该软件包的 *Python 2* 变体不会添加到 AL2 023 中。

 此软件包的 *Python 3* 版本*包含在 AL2 023* 中。你可以使用以下命令在 AL2 023 中安装`python3-simplejson`软件包：

```
[ec2-user ~]$ sudo dnf install python3-simplejson
```

 也可以通过要求 DNF 安装提供特定 Python 模块的程序包来安装 Python 模块。

```
[ec2-user ~]$ sudo dnf install 'python3dist(simplejson)'
```

## `rkhunter`：Rootkit 检测工具
<a name="rkhunter"></a>

 该`rkhunter`软件包随附在 AL2 023 中。`chkrootkit`

```
[ec2-user ~]$ sudo dnf install rkhunter
```

```
[ec2-user ~]$ sudo dnf install chkrootkit
```

## `rssh`：与 OpenSSH 配合使用的受限 Shell
<a name="rssh"></a>

 `rssh` 程序包包含在 EPEL7 中。上游 [http://www.pizzashack.org/rssh/](http://www.pizzashack.org/rssh/) 程序包已无人维护，作者列举了无法修复的安全问题作为原因。

 由于作者列举了无法修复的安全问题，因此没有计划添加`rssh`到 AL2 023。

## `sscg`：自签名 SSL 证书生成器
<a name="sscg"></a>

 该`sscg`软件包在 AL2 核心和内核中EPEL7。该`sscg`软件包也是 AL2 023 的一部分。

```
[ec2-user ~]$ sudo dnf install sscg
```

## `stress`：压力测试工具
<a name="stress"></a>

 `stress`包裹已装入EPEL7，也有 AL1 

 该`stress`软件包包含在 AL2 023 中，可以通过运行以下命令进行安装：

```
[ec2-user ~]$ sudo dnf install stress
```

## `stress-ng`：压力测试工具
<a name="stress-ng"></a>

 该`stress-ng`软件包已装入EPEL7，也可在 E `testing` AL2 xtra 中购买。

 该`stress-ng`软件包包含在 AL2 023 中，可以通过运行以下命令进行安装：

```
[ec2-user ~]$ sudo dnf install stress-ng
```

## `tmpwatch`：基于最后访问时间删除文件
<a name="tmpwatch"></a>

 在 Amazon Linux 2023 中，此功能由 [https://www.freedesktop.org/software/systemd/man/latest/systemd-tmpfiles.html](https://www.freedesktop.org/software/systemd/man/latest/systemd-tmpfiles.html) 提供。

## `xmlstarlet`：命令行 XML 工具集
<a name="xmlstarlet"></a>

 该`xmlstarlet`软件包已在 AL2 023 年上市EPEL7，但尚未上市。

 上游程序包已超过 9 年未更新（最后更新于 2014 年 8 月）。在那之前的四年期间（至少从 2010 年 7 月起），寻找新维护者的请求始终无人回应。正是出于这个原因，不打算将其添加`xmlstarlet`到 AL2 023。

# Python 2.7 已被 Python 3 所取代
<a name="python2.7-no-more"></a>

 AL2 在 2025 年 6 月之前为 Python 2.7 提供支持和安全补丁，这是我们对 AL2 核心包的长期支持 (LTS) 承诺的一部分。这种支持不仅限于上游 Python 社区在 2020 年 1 月发布的 Python 2.7 end-of-life 声明。

 AL2 使用`yum`包管理器，它对 Python 2.7 有硬依赖性。在 AL2 023 中，`dnf`包管理器已迁移到 Python 3，不再需要 Python 2.7。 AL2023 已完全移至 Python 3。

**注意**  
 AL2023 删除了 Python 2.7，因此任何需要 Python 的操作系统组件都是为了与 Python 3 配合使用而编写的。要继续使用 Amazon Linux 提供并支持的 Python 版本，请将 Python 2 代码转换为 Python 3。

有关 Amazon Linux 上的 Python 的更多信息，请参阅 [Python在 AL2023](python.md)。

# 安全更新
<a name="security-updates"></a>

 亚马逊 Linux 2023 在中存在的强化基础上进行了改进。 AL2有关更多信息，请参阅 [Amazon Linux 2023 中的安全性与合规性](security.md)。有关中内核强化更改的更多信息 AL2，请参阅[注重安全的内核配置变化](compare-with-al2-kernel.md#security-kernel-config-changes)。

**Topics**
+ [SELinux](selinux.md)
+ [OpenSSL 3](openssl3.md)
+ [IMDSv2](imdsv2.md)
+ [删除 log4j 热补丁 (`log4j-cve-2021-44228-hotpatch`)](log4j-hotpatch.md)

# SELinux
<a name="selinux"></a>

默认情况下，f Security Enhanced Linux (SELinux) o AL2 r 023 为`enabled`并设置为`permissive`模式。在 `permissive` 模式下，记录但不强制执行权限拒绝。

SELinux是 Amazon Linux 内核的一项安全功能，该内核曾`disabled`在 AL2。 SELinux是内核功能和实用程序的集合，为内核的主要子系统提供强制访问控制 (MAC) 架构。

有关更多信息，请参阅 [为 AL2023 设置 SELinux 模式](selinux-modes.md)。

有关SELinux存储库、工具和策略的更多信息，请参阅[SELinux 笔记本](https://github.com/SELinuxProject/selinux-notebook/blob/main/src/toc.md)、[ SELinux 策略类型](https://github.com/SELinuxProject/selinux-notebook/blob/main/src/types_of_policy.md#types-of-selinux-policy)和[SELinux 项目](https://github.com/SELinuxProject.html)。

# OpenSSL 3
<a name="openssl3"></a>

AL2023 具有Open Secure Sockets Layer version 3 (OpenSSL 3)密码学工具包。 AL2023 支持TLS 1.3和TLS 1.2网络协议。

默认情况下， AL2 附带OpenSSL 1.0.2。您可以依据 OpenSSL 1.1.1 构建应用程序。

有关 OpenSSL 的更多信息，请参阅 [OpenSSL 迁移指南](https://www.openssl.org/docs/man3.0/man7/migration_guide.html)。

有关安全性的更多信息，请参阅[安全更新和功能](security-features.md)。

# IMDSv2
<a name="imdsv2"></a>

默认情况下，任何使用 AL2 023 AMI 启动的实例都IMDSv2只需要-并且您的默认跳数限制将设置为 2 以支持容器化工作负载。这可通过将 `imds-support` 参数设置为 `v2.0` 来完成。有关更多信息，请参阅 *Amazon EC2 用户指南*中的[配置 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration)。

**注意**  
会话令牌的有效时间可以介于 1 秒到 6 小时之间。用于发送针对 IMDSv2 查询的 API 请求的地址如下：  
IPv4: 169.254.169.254
IPv6: fd00:ec2:: 254

您可以手动覆盖这些设置并使用实例元数据选项启动属性启用 IMDSv1。此外，您可以使用 IAM 控件强制执行不同的 IMDS 设置。有关设置和使用实例元数据服务的更多信息，请参阅 *Amazon EC2 用户指南*中的[使用IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service)、[为新实例配置](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances)[实例元数据选项和修改现有实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-existing-instances)的实例元数据选项。

# 删除 log4j 热补丁 (`log4j-cve-2021-44228-hotpatch`)
<a name="log4j-hotpatch"></a>

**注意**  
AL2023 不随`log4j-cve-2021-44228-hotpatch`包裹一起发货。

 为了回应 [CVE-2021-44228](https://alas.aws.amazon.com/cve/html/CVE-2021-44228.html)，亚马逊 Linux 发布了适用于 Ap [ache Log4j 的 Hotpatch 的 RPM 打包版本，适用于](https://aws.amazon.com/blogs/opensource/hotpatch-for-apache-log4j/)和。 AL1 AL2在[宣布向 Amazon Linux 添加热补丁](https://alas.aws.amazon.com/announcements/2021-001.html)时，我们指出：“安装热补丁并不能取代更新到可缓解 CVE-2021-44228 或 CVE-2021-45046 的 log4j 版本。” 

 热补丁是一种缓解措施，可以留出时间来修补 `log4j`。 AL2023 的第一个通用可用性 (GA) 版本是 [CVE-2021-44228](https://alas.aws.amazon.com/cve/html/CVE-2021-44228.html) 发布的 15 个月后，因此 AL2 023 不附带热补丁（无论是否启用）。

 在 Amazon Linux 上运行自有 `log4j` 版本的用户应确保已更新到不受 [CVE-2021-44228](https://alas.aws.amazon.com/cve/html/CVE-2021-44228.html) 或 [CVE-2021-45046](https://alas.aws.amazon.com/cve/html/CVE-2021-45046.html) 影响的版本。

 AL2023 提供了相关指导，[正在更新 AL2023](updating.md)以便您可以及时了解最新的安全补丁。安全通告发布在 [Amazon Linux 安全中心](https://alas.aws.amazon.com/alas2023.html)上。

# 确定性升级用于提高稳定性
<a name="compare-deterministic-upgrades"></a>

借助通过版本控制存储库进行确定性升级功能，默认情况下，每个 AL2 023 AMI 都锁定到特定的存储库版本。您可以使用确定性升级来提高软件包版本和更新之间的一致性。每个版本，无论是主要版本还是次要版本，都包含一个特定的存储库版本。

 AL2023 的新增功能，默认启用确定性升级。这是对和其他早期版本中 AL2 使用的手动增量锁定方法的改进。

有关更多信息，请参阅 [通过版本控制的存储库进行确定性升级 AL2023](deterministic-upgrades.md)。

# `gp3` 作为默认 Amazon EBS 卷类型
<a name="continuing-al2-filesystem"></a>

 AL2023 AMI 和 AL2 两者都使用根XFS文件系统上的文件系统。对于 AL2 023，根设备文件系统的`mkfs`选项已针对 Amazon EC2 进行了进一步优化。 AL2023 还支持许多其他文件系统，您可以在其他卷上使用这些文件系统来满足您的特定要求。

AL2023 默认 AMIs 使用亚马逊 EBS `gp3` 卷，而默认使用 AL2 AMIs 亚马逊 EBS `gp2` 卷。您可以在启动实例时更改卷类型。

有关 Amazon EBS 卷类型的更多信息，请参阅 [Amazon EBS 通用型卷](https://aws.amazon.com//ebs/general-purpose/)。

有关启动亚马逊 EC2 实例的更多信息，请参阅*亚马逊 EC2 用户指南*中的[启动实](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance)例。

# 统一控制组层次结构 (cgroup v2)
<a name="cgroupv2"></a>

 控制组 (cgroup) 是 Linux 内核的一项功能，用于分层组织进程并在进程之间分配系统资源。控制组被广泛用于通过 `systemd` 实现容器运行时系统。

 AL2 支持cgroupv1，以及 AL2 023 支持cgroupv2。在运行容器化工作负载时（例如[使用基于 AL2023 的 Amazon ECS AMI 托管容器化工作负载](ecs.md)时），这一点值得注意。

 尽管 AL2 023 仍然包含可以让系统使用运行的代码cgroupv1，但这不是推荐或支持的配置，并且将在未来的 Amazon Linux 主要版本中完全删除。

 有大量关于[低级 Linux 内核接口](https://docs.kernel.org/admin-guide/cgroup-v2.html)的文档以及 [systemd cgroup 委派文档](https://systemd.io/CGROUP_DELEGATION/)。

 容器之外的一个常见使用案例是创建对可以使用的系统资源施加限制的 `systemd` 单元。有关更多信息，请参阅 [systemd.resource-control](https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html)。

# `systemd` 计时器取代 `cron`
<a name="cron"></a>

默认情况下，该`cronie`软件包安装在 AL2 AMI 上，为定期任务的传统计划`crontab`方式提供支持。在 AL2 023 中，`cronie`默认不包括在内。因此，默认不再提供对 `crontab` 的支持。

您可以选择安装 `cronie` 软件包以使用经典的 `cron` 作业。由于 `systemd` 提供附加功能，建议您迁移到 `systemd` 计时器。

# 改进的工具链：gcc、binutils 和 glibc
<a name="glibc-gcc-and-binutils"></a>

AL2023 包含许多与. 相同的核心软件包。 AL2

我们为 AL2 023 更新了以下三个核心工具链包。


| 软件包名称 | AL2 | AL2023 | 
| --- | --- | --- | 
| glibc |  2.26  | 2.34 | 
|  gcc  |  7.3  |  11.3  | 
|  binutils  |  2.29  |  2.39  | 

有关更多信息，请参阅 [Core 工具链软件包 glibc、gcc、binutils](core-glibc.md)。

有关 C、C\$1\$1 和 Fortran 语言运行时的更多信息（包括更新的默认语言标准），请参阅 [AL2023 中的 C、C\$1\$1 和 Fortran](c-cplusplus.md)。

有关优化的更多信息，请参阅[性能和操作优化](performance-optimizations.md)。

# `systemd` 日志取代 `rsyslog`
<a name="journald"></a>

在 AL2 023 中，日志系统包已更改为。 AL2 AL2默认情况下，023 不会安装，因此`rsyslog`默认情况下，基于文本`/var/log/messages`的日志文件（例如中提供的文件） AL2 不可用。 AL2023 的默认配置是`systemd-journal`，可以使用进行检查。`journalctl`尽管在 AL2 023 中`rsyslog`是可选的软件包，但我们建议使用`systemd`基于新的`journalctl`接口和相关软件包。有关更多信息，请参阅 [https://www.freedesktop.org/software/systemd/man/journalctl.html](https://www.freedesktop.org/software/systemd/man/journalctl.html) 手册页面。

 下表列出了一些常用 syslog 命令对应的 systmed journal 等效命令。


| AL2 syslog 命令 | AL2等同于 023 systemd journal | 
| --- | --- | 
| <pre>[ec2-user ~]$ cat /var/log/messages</pre> | <pre>[ec2-user ~]$ journalctl</pre> | 
| <pre>[ec2-user ~]$ tail -f /var/log/messages</pre> | <pre>[ec2-user ~]$ journalctl -f</pre> | 
| <pre>[ec2-user ~]$ grep foo /var/log/messages</pre> | <pre>[ec2-user ~]$ journalctl | grep foo</pre> | 

# 最小化程序包依赖
<a name="minimized-pkg-dependencies"></a>

 Amazon Linux 2023 对许多程序包的依赖关系图进行了最小化处理，以降低应用程序占用空间。与之相比，值得注意的变化 AL2 包括`curl-minimal`和`gnupg-minimal`软件包，它们在保留常用功能的同时，显著减少了所需软件包的数量。

**Topics**
+ [`curl` 和 `libcurl` 的软件包变更](curl-minimal.md)
+ [GNU Privacy Guard (GNUPG)](gnupg-minimal.md)

# `curl` 和 `libcurl` 的软件包变更
<a name="curl-minimal"></a>

 AL2023 将和的常用协议和功能分离出来，`libcurl`打包成`curl``curl-minimal`和。`libcurl-minimal`这减少了大多数用户的磁盘、内存和依赖占用空间，并且是 AL2 023 AMIs 和容器的默认软件包。

如果需要 `curl` 的全部功能（例如为了获得 `gopher://` 支持），请运行以下命令来安装 `curl-full` 和 `libcurl-full` 软件包。

```
$ dnf swap libcurl-minimal libcurl-full
```

```
$ dnf swap curl-minimal curl-full
```

# GNU Privacy Guard (GNUPG)
<a name="gnupg-minimal"></a>

 AL2023 将软件包的最小和完整功能分离到`gnupg2-minimal`和`gnupg2`打包中。`gnupg2-full`默认情况下仅安装 `gnupg2-minimal` 软件包。这提供了验证 `rpm` 软件包上的数字签名所需的最低功能。

 要从 `gnupg2` 获得更多功能，例如从密钥服务器下载密钥，请确保已安装 `gnupg2-full` 软件包。运行以下命令，将 `gnupg2-minimal` 交换为 `gnupg2-full`。

```
$ dnf swap gnupg2-minimal gnupg2-full
```

# Amazon Corretto 作为默认 JVM
<a name="compare-al2-java"></a>

AL2023 附带[亚马逊 Corretto](https://aws.amazon.com/corretto/) 作为默认（也是唯一的）Java 开发套件 (JDK)。 AL2023 中所有Java基于的软件包都是使用Amazon Corretto 17构建的。

 如果要从中迁移 AL2，则可以顺利地从等效`OpenJDK`版本过渡 AL2 到Amazon Corretto。

# AWS CLIv2
<a name="awscli2"></a>

 AL2023 附带AWS CLI版本 2，而 AL2 随版本 1 一起提供。AWS CLI

# UEFI 首选和安全启动
<a name="uefi-preferred"></a>

默认情况下，在支持 UEFI 固件的实例类型上使用 AL2 023 AMI 启动的任何实例都将在 UEFI 模式下启动。这是通过将启动模式 AMI 参数设置为 `uefi-preferred` 来完成的。有关更多信息，请参阅 *Amazon EC2 用户指南*中的[启动模式](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html)。

 在支持 UEFI 安全启动的亚马逊 EC2 实例类型上，可以在亚马逊 Linux 2023 中启用安全启动。有关更多信息，请参阅 [UEFI 安全启动已开启 AL2023](uefi-secure-boot.md)。

# SSH 服务器默认配置更改
<a name="ssh-host-key"></a>

对于 AL2 023 AMI，我们更改了随版本生成的`sshd`主机密钥的类型。我们还删除了一些旧密钥类型，以避免在启动时生成它们。客户端必须通过使用 `ed25519` 密钥支持 `rsa-sha2-256` 和 `rsa-sha2-512` 协议或 `ssh-ed25519`。默认情况下，`ssh-rsa` 签名处于禁用状态。

此外，默认`sshd_config`文件中的 AL2 023 配置设置包含`UseDNS=no`。这一新设置意味着 DNS 受损不太可能阻碍您与实例建立 `ssh` 会话。但代价在于，`authorized_keys` 文件中的 `from=hostname.domain,hostname.domain` 行条目将无法解析。由于 `sshd` 不再尝试解析 DNS 名称，因此必须将每个以逗号分隔的 `hostname.domain` 值转换为对应的 IP address。

有关更多信息，请参阅 [默认 SSH 服务器配置](ssh-host-keys-disabled.md)。

# AL2023 内核更改自 AL2
<a name="compare-with-al2-kernel"></a>

AL2023 带来了 6.1 内核以及许多配置更改，以进一步优化 Amazon Linux 的云环境。对于大多数用户而言，这些变化应该是完全透明的。

## IPv4 TTL
<a name="ipv4-ttl"></a>

的 TTL IPv4 是通过配置的`sysctl`，默认值显示在中。`/etc/sysctl.d/00-defaults.conf`此值可通过通常的 `sysctl` 方法进行自定义。有关更多信息，请参阅 `sysctl` `man` 页面。

 AL2 将该`net.ipv4.ip_default_ttl`值设置为 255，同时将其 AL2023 设置为 127。这使得 Amazon Linux 的默认值与其他主流 Linux 发行版保持一致。若无明确需求，不建议更改此默认值。

## 注重安全的内核配置变化
<a name="security-kernel-config-changes"></a>


| `CONFIG` 选项 | AL2/4.14/aarch64 | AL2/4.14/x86\$164 | AL2/5.10/aarch64 | AL2/5.10/x86\$164 | AL2023/6.1/aarch64 | AL2023/6.1/x86\$164 | AL2023/6.12/aarch64 | AL2023/6.12/x86\$164 | AL2023/6.18/aarch64 | AL2023/6.18/x86\$164 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
|  [`CONFIG_BUG_ON_DATA_CORRUPTION`](kernel-hardening.md#CONFIG_BUG_ON_DATA_CORRUPTION)  |  n  |  y  |  n  |  y  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_DEFAULT_MMAP_MIN_ADDR`](kernel-hardening.md#CONFIG_DEFAULT_MMAP_MIN_ADDR)  |  4096  |  4096  |  4096  |  4096  |  65536  |  65536  |  65536  |  65536  |  65536  |  65536  | 
|  [`CONFIG_DEVMEM`](#CONFIG_DEVMEM)  |  n  |  y  |  n  |  y  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_DEVPORT`](#CONFIG_DEVPORT)  |  n  |  y  |  n  |  y  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_FORTIFY_SOURCE`](#CONFIG_FORTIFY_SOURCE)  |  n  |  y  |  n  |  y  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_HARDENED_USERCOPY_FALLBACK`](kernel-hardening.md#CONFIG_HARDENED_USERCOPY_FALLBACK)  | 不适用 | 不适用 |  y  |  y  | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 | 
|  [`CONFIG_INIT_ON_ALLOC_DEFAULT_ON`](kernel-hardening.md#CONFIG_INIT_ON_ALLOC_DEFAULT_ON)  | 不适用 | 不适用 |  n  |  n  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_INIT_ON_FREE_DEFAULT_ON`](kernel-hardening.md#CONFIG_INIT_ON_FREE_DEFAULT_ON)  | 不适用 | 不适用 |  n  |  n  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_IOMMU_DEFAULT_DMA_STRICT`](kernel-hardening.md#CONFIG_IOMMU_DEFAULT_DMA_STRICT)  | 不适用 | 不适用 | 不适用 | 不适用 |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_LDISC_AUTOLOAD`](#CONFIG_LDISC_AUTOLOAD)  |  y  |  y  |  y  |  y  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_SCHED_CORE`](kernel-hardening.md#CONFIG_SCHED_CORE)  | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 |  y  | 不适用 |  y  | 不适用 |  y  | 
|  [`CONFIG_SCHED_STACK_END_CHECK`](kernel-hardening.md#CONFIG_SCHED_STACK_END_CHECK)  |  n  |  y  |  n  |  y  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_DMESG_RESTRICT`](#CONFIG_SECURITY_DMESG_RESTRICT)  |  n  |  n  |  n  |  n  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_SELINUX_DISABLE`](#CONFIG_SECURITY_SELINUX_DISABLE)  |  y  |  y  |  y  |  y  |  n  |  n  | 不适用 | 不适用 | 不适用 | 不适用 | 
|  [`CONFIG_SHUFFLE_PAGE_ALLOCATOR`](kernel-hardening.md#CONFIG_SHUFFLE_PAGE_ALLOCATOR)  | 不适用 | 不适用 |  y  |  y  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SLAB_FREELIST_HARDENED`](kernel-hardening.md#CONFIG_SLAB_FREELIST_HARDENED)  |  n  |  y  |  y  |  y  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SLAB_FREELIST_RANDOM`](kernel-hardening.md#CONFIG_SLAB_FREELIST_RANDOM)  |  n  |  n  |  y  |  y  |  y  |  y  |  y  |  y  |  y  |  y  | 

### x86-64 特定安全相关内核配置变更
<a name="security-kernel-config-changes-x86-64-specific"></a>


| `CONFIG` 选项 | AL2/4.14/x86\$164 | AL2/5.10/x86\$164 | AL2023/6.1/x86\$164 | AL2023/6.12/x86\$164 | AL2023/6.18/x86\$164 | 
| --- | --- | --- | --- | --- | --- | 
|  [`CONFIG_AMD_IOMMU`](kernel-hardening.md#CONFIG_AMD_IOMMU)  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_AMD_IOMMU_V2`](kernel-hardening.md#CONFIG_AMD_IOMMU_V2)  |  m  |  m  |  y  | 不适用 | 不适用 | 
|  [`CONFIG_RANDOMIZE_MEMORY`](kernel-hardening.md#CONFIG_RANDOMIZE_MEMORY)  | 不适用 |  y  |  y  |  y  |  y  | 

### aarch64（ARM/Graviton）特定安全相关内核配置变更
<a name="security-kernel-config-changes-aarch64-specific"></a>


| `CONFIG` 选项 | AL2/4.14/aarch64 | AL2/5.10/aarch64 | AL2023/6.1/aarch64 | AL2023/6.12/aarch64 | AL2023/6.18/aarch64 | 
| --- | --- | --- | --- | --- | --- | 
|  [`CONFIG_ARM64_PTR_AUTH`](kernel-hardening.md#CONFIG_ARM64_PTR_AUTH)  | 不适用 |  y  |  y  |  y  |  y  | 
|  [`CONFIG_ARM64_PTR_AUTH_KERNEL`](kernel-hardening.md#CONFIG_ARM64_PTR_AUTH_KERNEL)  | 不适用 | 不适用 |  y  |  y  |  y  | 
|  [`CONFIG_ARM64_SW_TTBR0_PAN`](kernel-hardening.md#CONFIG_ARM64_SW_TTBR0_PAN)  |  y  |  y  |  y  |  y  |  y  | 

### `/dev/mem`、`/dev/kmem` 和 `/dev/port`
<a name="CONFIG_DEVMEM"></a>

 Amazon Linux 2023 在已有的限制的基础上完全禁用`/dev/mem``CONFIG_DEVMEM`和`/dev/port`（而且`CONFIG_DEVPORT`）。 AL2

 在 5.13 内核中，该`/dev/kmem`代码已从 Linux 中完全删除，虽然它在中被禁用 AL2，但现在不适用于 AL2023。

此选项是[内核自我保护项目推荐设置](https://kspp.github.io/Recommended_Settings)之一。

### `FORTIFY_SOURCE`
<a name="CONFIG_FORTIFY_SOURCE"></a>

 AL2023 `CONFIG_FORTIFY_SOURCE`在所有支持的架构上启用。此功能是一项安全强化功能。在编译器可以确定和验证缓冲区大小的情况下，此功能可以检测常见字符串和内存函数中的缓冲区溢出。

此选项是[内核自我保护项目推荐设置](https://kspp.github.io/Recommended_Settings)之一。

### 行规程自动加载（`CONFIG_LDISC_AUTOLOAD`）
<a name="CONFIG_LDISC_AUTOLOAD"></a>

 除非请求来自具有`CAP_SYS_MODULE`权限的进程，否则 AL2023 内核不会自动加载线路规范 `TIOCSETD``ioctl`，例如通过使用中的软件加载。

此选项是[内核自我保护项目推荐设置](https://kspp.github.io/Recommended_Settings)之一。

### 非特权用户对 `dmesg` 的访问 (`CONFIG_SECURITY_DMESG_RESTRICT`)
<a name="CONFIG_SECURITY_DMESG_RESTRICT"></a>

 默认情况下， AL2023 不允许非特权用户访问。`dmesg`

此选项是[内核自我保护项目推荐设置](https://kspp.github.io/Recommended_Settings)之一。

### SELinux `selinuxfs`禁用
<a name="CONFIG_SECURITY_SELINUX_DISABLE"></a>

 AL2023 禁用已弃用的`CONFIG_SECURITY_SELINUX_DISABLE`内核选项，该选项启用了一种在加载策略 SELinux 之前禁用的运行时方法。

此选项是[内核自我保护项目推荐设置](https://kspp.github.io/Recommended_Settings)之一。

## 其他内核配置变化
<a name="general-kernel-config-changes"></a>


| `CONFIG` 选项 | AL2/4.14/aarch64 | AL2/4.14/x86\$164 | AL2/5.10/aarch64 | AL2/5.10/x86\$164 | AL2023/6.1/aarch64 | AL2023/6.1/x86\$164 | AL2023/6.12/aarch64 | AL2023/6.12/x86\$164 | AL2023/6.18/aarch64 | AL2023/6.18/x86\$164 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
|  [`CONFIG_HZ`](#CONFIG_HZ)  |  100  |  250  |  100  |  250  |  100  |  100  |  100  |  100  |  100  |  100  | 
|  [`CONFIG_NR_CPUS`](#CONFIG_NR_CPUS)  |  4096  |  8192  |  4096  |  8192  |  4096  |  8192  |  4096  |  8192  |  4096  |  8192  | 
|  [`CONFIG_PANIC_ON_OOPS`](#CONFIG_PANIC_ON_OOPS)  |  y  |  n  |  y  |  n  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_PANIC_ON_OOPS_VALUE`](#CONFIG_PANIC_ON_OOPS_VALUE)  |  1  |  0  |  1  |  0  |  1  |  1  |  1  |  1  | 不适用 | 不适用 | 
|  [`CONFIG_PPP`](#CONFIG_PPP)  |  m  |  m  |  m  |  m  |  m  |  m  |  m  |  m  |  m  |  m  | 
|  [`CONFIG_SLIP`](#CONFIG_SLIP)  |  m  |  m  |  m  |  m  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_XEN_PV`](#CONFIG_XEN_PV)  | 不适用 |  y  | 不适用 |  n  | 不适用 |  n  | 不适用 |  n  | 不适用 |  n  | 

### CONFIG\$1HZ
<a name="CONFIG_HZ"></a>

 AL2023 `CONFIG_HZ`在两个`aarch64`平台上都`x86-64`设置为 100。

### CONFIG\$1NR\$1CPUS
<a name="CONFIG_NR_CPUS"></a>

 AL2023 设置`CONFIG_NR_CPUS`为一个接近 Amazon EC2 中最大 CPU 内核数的数字。

### 内核错误处理
<a name="CONFIG_PANIC_ON_OOPS"></a>

 内 AL2023 核在运行时会出现紧急情况。此功能等同于在内核命令行上使用 `oops=panic` 引导。

 内核错误是指内核检测到可能影响系统的进一步可靠性的内部错误。

### PPP 和 SLIP 支持
<a name="CONFIG_PPP"></a>

 AL2023 不支持 SLIP 协议，但可以在最新 AL2023 内核中支持 PPP 协议。

### Xen PV 访客支持
<a name="CONFIG_XEN_PV"></a>

 AL2023 不支持以 Xen PV 访客身份运行。

## 内核文件系统支持
<a name="kernel-fs-changes"></a>

内核支持挂载的文件系统发生了几处变化，内核 AL2 将要解析的分区方案也发生了变化。


| `CONFIG` 选项 | AL2/4.14/aarch64 | AL2/4.14/x86\$164 | AL2/5.10/aarch64 | AL2/5.10/x86\$164 | AL2023/6.1/aarch64 | AL2023/6.1/x86\$164 | AL2023/6.12/aarch64 | AL2023/6.12/x86\$164 | AL2023/6.18/aarch64 | AL2023/6.18/x86\$164 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
|  [`CONFIG_AFS_FS`](#CONFIG_AFS_FS)  |  n  |  m  |  n  |  m  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_AF_RXRPC`](#CONFIG_AF_RXRPC)  |  n  |  m  |  n  |  m  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_BSD_DISKLABEL`](#CONFIG_BSD_DISKLABEL)  |  y  |  y  |  y  |  y  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_CRAMFS`](#CONFIG_CRAMFS)  |  m  |  m  |  m  |  m  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_CRAMFS_BLOCKDEV`](#CONFIG_CRAMFS_BLOCKDEV)  | 不适用 | 不适用 |  y  |  n  | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 | 不适用 | 
|  [`CONFIG_DM_CLONE`](#CONFIG_DM_CLONE)  | 不适用 | 不适用 |  n  |  n  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_DM_ERA`](#CONFIG_DM_ERA)  |  m  |  n  |  m  |  n  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_DM_INTEGRITY`](#CONFIG_DM_INTEGRITY)  |  n  |  m  |  n  |  m  |  m  |  m  |  m  |  m  |  m  |  m  | 
|  [`CONFIG_DM_LOG_WRITES`](#CONFIG_DM_LOG_WRITES)  |  n  |  n  |  m  |  m  |  m  |  m  |  m  |  m  |  m  |  m  | 
|  [`CONFIG_DM_SWITCH`](#CONFIG_DM_SWITCH)  |  m  |  n  |  m  |  n  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_DM_VERITY`](#CONFIG_DM_VERITY)  |  m  |  n  |  m  |  n  |  m  |  m  |  m  |  m  |  m  |  m  | 
|  [`CONFIG_ECRYPT_FS`](#CONFIG_ECRYPT_FS)  |  n  |  m  |  n  |  m  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_EXFAT_FS`](#CONFIG_EXFAT_FS)  | 不适用 | 不适用 |  m  |  m  |  m  |  m  |  m  |  m  |  m  |  m  | 
|  [`CONFIG_EXT2_FS`](#CONFIG_EXT2_FS)  |  n  |  m  |  n  |  m  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_EXT3_FS`](#CONFIG_EXT3_FS)  |  n  |  m  |  n  |  m  |  n  |  n  |  n  |  n  | 不适用 | 不适用 | 
|  [`CONFIG_GFS2_FS`](#CONFIG_GFS2_FS)  |  m  |  m  |  m  |  m  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_HFSPLUS_FS`](#CONFIG_HFSPLUS_FS)  |  n  |  m  |  n  |  m  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_HFS_FS`](#CONFIG_HFS_FS)  |  n  |  m  |  n  |  m  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_JFS_FS`](#CONFIG_JFS_FS)  |  n  |  n  |  n  |  n  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_LDM_PARTITION`](#CONFIG_LDM_PARTITION)  |  n  |  y  |  n  |  y  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_MAC_PARTITION`](#CONFIG_MAC_PARTITION)  |  n  |  y  |  n  |  y  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_NFS_V2`](#CONFIG_NFS_V2)  |  n  |  m  |  n  |  m  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_NTFS_FS`](#CONFIG_NTFS_FS)  |  n  |  m  |  n  |  n  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_ROMFS_FS`](#CONFIG_ROMFS_FS)  |  n  |  m  |  n  |  m  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_SOLARIS_X86_PARTITION`](#CONFIG_SOLARIS_X86_PARTITION)  |  n  |  y  |  n  |  y  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_SQUASHFS_ZSTD`](#CONFIG_SQUASHFS_ZSTD)  |  n  |  y  |  n  |  y  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SUN_PARTITION`](#CONFIG_SUN_PARTITION)  |  n  |  y  |  n  |  y  |  n  |  n  |  n  |  n  |  n  |  n  | 

### Andrew 文件系统支持 (AFS)
<a name="CONFIG_AFS_FS"></a>

内核在构建时不再支持`afs`文件系统。 AL2 未附带的用户空间支持。`afs`

### cramfs 支持
<a name="CONFIG_CRAMFS"></a>

 内核不再支持 `cramfs` 文件系统。中的继任者 AL2023 是`squashfs`文件系统。

### 支持 BSD 磁盘标签
<a name="CONFIG_BSD_DISKLABEL"></a>

 内核不再支持 BSD 磁盘标签。如果需要读取带有 BSD 磁盘标签的卷，则 BSDs可以启动各种卷标。

### 设备映射器更改
<a name="device-mapper"></a>

 对 AL2023 内核中配置的设备映射器目标进行了几处更改。

### eCryptFs 支持
<a name="CONFIG_ECRYPT_FS"></a>

 Amazon Linux 中已弃用了 `ecryptfs` 文件系统。的用户空间组件`ecryptfs`已存在于 AL1、已移除中 AL2，并且 AL2023 不再在`ecryptfs`支持下构建内核。

### exFAT
<a name="CONFIG_EXFAT_FS"></a>

 在 5.10 内核中 AL2添加了对`exFAT`文件系统的支持。它在 4.14 内核 AL2 发布时不存在。 AL2023 继续支持`exFAT`文件系统。

### ext2、ext3 和 ext4 文件系统
<a name="ext4"></a>

 AL2023 随附`CONFIG_EXT4_USE_FOR_EXT2`选项，这意味着`ext4`文件系统代码将用于读取传统`ext2`文件系统。

### CONFIG\$1 \$1FS GFS2
<a name="CONFIG_GFS2_FS"></a>

 该内核不再是使用 CONFIG\$1 GFS2 \$1FS 构建的。

### Apple Extended HFS 文件系统支持 (HFS\$1)
<a name="CONFIG_HFSPLUS_FS"></a>

 在中 AL2，只有内`x86-64`核是在支持`hfsplus`文件系统的情况下构建的。 AL2 5.15 内核不`hfsplus`支持任何架构。在中 AL2023，我们完成了对亚马逊 Linux `hfsplus` 支持的弃用。

### HFS 文件系统支持
<a name="CONFIG_HFS_FS"></a>

 在中 AL2，只有内`x86-64`核是在支持`hfs`文件系统的情况下构建的。 AL2 5.15 内核不`hfs`支持任何架构。在中 AL2023，我们完成了对亚马逊 Linux `hfs` 支持的弃用。

### JFS 文件系统支持
<a name="CONFIG_JFS_FS"></a>

 较旧的 AL2 `x86-64`内核是在支持`jfs`文件系统的情况下构建的。 AL2 5.15 内核不`jfs`支持任何架构。两者都不是， AL1 AL2 或者与 JFS 用户空间一起提供。在中 AL2023，我们完成了对亚马逊 Linux `jfs` 支持的弃用。

 上游 Linux 内核正在[考虑移除 `JFS`](https://lore.kernel.org/lkml/Y8DvK281ii6yPRcW@infradead.org/)。因此，如果您在 `JFS` 文件系统上存有数据，应将其迁移到其他文件系统。2024 年，`JFS` 已从所有当前版本的 Amazon Linux 内核中移除。

### Windows 逻辑磁盘管理器（动态磁盘）支持（`CONFIG_LDM_PARTITION`）
<a name="CONFIG_LDM_PARTITION"></a>

 AL2023 不再支持Windows 2000Windows XP、或带有MS-DOS样式分区的Windows Vista*动态磁盘*。此代码从来不支持 Windows Vista 所引入的基于 GPT 的较新的动态磁盘。

### Macintosh 分区映射支持
<a name="CONFIG_MAC_PARTITION"></a>

 AL2023 不再支持经典的 Macintosh 分区图。默认情况下，现代 macOS 版本会创建现代 GPT 分区表，以取代这种较旧的类型。

### NFSv2 支持
<a name="CONFIG_NFS_V2"></a>

 AL2023 不再支持 NFSv2，但继续支持 NFSv3、 NFSv4、 NFSv4 .1 和 NFSv4 .2。我们建议您迁移到 NFSv3 或更新版本。

### NTFS (`CONFIG_NTFS_FS`)
<a name="CONFIG_NTFS_FS"></a>

 从5.10内核`ntfs`开始，在亚马逊 Linux 上访问 NTFS 文件系统的`ntfs3`代码已被替换。 AL2 AL2023 不再包含该`ntfs`代码，而是完全依赖该`ntfs3`代码来访问 NTFS 文件系统。

### romfs 文件系统
<a name="CONFIG_ROMFS_FS"></a>

 在 `squashfs` Amazon Linux 中，`romfs`文件系统是文件系统的继任者，并且该 AL2023 内核的构建不再支持了`romfs`。

### Solaris x86 硬盘分区格式
<a name="CONFIG_SOLARIS_X86_PARTITION"></a>

 AL2023 不再支持 Solaris x86 硬盘分区格式。

### `squashfs`zstd压缩
<a name="CONFIG_SQUASHFS_ZSTD"></a>

 AL2023 在所有支持的架构上添加了对zstd压缩`squashfs`文件系统的支持。

### Sun 分区表支持
<a name="CONFIG_SUN_PARTITION"></a>

 AL2023 不再支持 Sun 分区表格式 (`CONFIG_SUN_PARTITION`)。

# `/tmp` 现在是 `tmpfs`
<a name="compare-al2-al2023-tmp"></a>

 与 Amazon Linux 2 相比，Amazon Linux 2023 引入了 `/tmp` 行为方式的更改。的默认配置 AL2 是，`/tmp`和`/var/tmp`都在根文件系统上。Amazon Linux 2023 默认使用 `tmpfs` 作为 `/tmp`，限制为 RAM 的 50% 且最多一百万个 inodes。这些更改使 Amazon Linux 的行为与其他 Linux 发行版保持一致。

 有关 AL2 023 文件系统布局的完整详细信息，请参阅[文件系统布局](filesystem.md)部分[`/var/tmp`](filesystem-slash-var.md#filesystem-slash-var-tmp)中的[`/tmp`](filesystem-slash-tmp.md)和。

# AMI 和容器映像变化
<a name="w2aac11c69"></a>

 AMIs 和容器中包含的包裹已发生一些变化。

**Topics**

 Amazon Linux 2023 引入了[AL2023 最小容器镜像](minimal-container.md)，并支持构建[构建基本容器镜像 AL2023](barebones-containers.md)。有关更多信息，请参阅 [AL2023 在容器中使用](container.md)。

# 比较 Amazon Linux 2 和 Amazon Linux 2023 AMI 上安装的软件包
<a name="amzn2-al2023-ami"></a>

Amazon Linux 2 与 AL2023 标准 AMI 中存在的 RPM 程序包比较。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/linux/al2023/ug/amzn2-al2023-ami.html)

# 比较 Amazon Linux 2 和 Amazon Linux 2023 Minimal AMI 上安装的软件包
<a name="amzn2-al2023-minimal-ami"></a>

Amazon Linux 2 与 AL2023 AMI 最低版本中存在的 RPM 程序包比较。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/linux/al2023/ug/amzn2-al2023-minimal-ami.html)

# 比较 Amazon Linux 2 和 Amazon Linux 2023 基础容器映像上安装的软件包
<a name="amzn2-al2023-container"></a>

Amazon Linux 2 与 AL2023 基础容器映像中存在的 RPM 程序包比较。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/linux/al2023/ug/amzn2-al2023-container.html)