diff --git a/docs/en/server/development/application_dev/preparations_for_development_environment.md b/docs/en/server/development/application_dev/preparations_for_development_environment.md
index 552430ea7ed7b3acf0e85ec2e139152a00020ea6..684f03e3549f3b9240c6f2090c7672a09d6ff38e 100644
--- a/docs/en/server/development/application_dev/preparations_for_development_environment.md
+++ b/docs/en/server/development/application_dev/preparations_for_development_environment.md
@@ -209,7 +209,7 @@ The software required varies in different development environments. However, the
5. Install the JDK software package as the **root** user. Run `dnf install java-{version}-openjdk-devel.aarch64`.
-6. Query information about the JDK software by running `java -version`.
+6. Query the JDK software version by running `java -version`.
Check the command output. If the command output contains "openjdk version", the JDK has been correctly installed.
diff --git a/docs/en/server/development/application_dev/using_make_for_compilation.md b/docs/en/server/development/application_dev/using_make_for_compilation.md
index 2c77c59c7d63824e84207a04a14ed0fb2dcdba36..d315f1c1f409189c2aeacd86766f05dd89e4bd77 100644
--- a/docs/en/server/development/application_dev/using_make_for_compilation.md
+++ b/docs/en/server/development/application_dev/using_make_for_compilation.md
@@ -202,7 +202,7 @@ _target_ : target specified in Makefile.
## Makefiles
-Make is a tool that uses makefiles for compilation, linking, installation, and cleanup, so as to generate executable files and other related files from source code files. Therefore, makefiles describe the compilation and linking rules of the entire project, including which files need to be compiled, which files do not need to be compiled, which files need to be compiled first, which files need to be compiled later, and which files need to be rebuilt. The makefiles automate project compilation. You do not need to manually enter a large number of source files and parameters each time.
+make is a tool that uses makefiles for compilation, linking, installation, and cleanup, so as to generate executable files and other related files from source code files. Therefore, makefiles describe the compilation and linking rules of the entire project, including which files need to be compiled, which files do not need to be compiled, which files need to be compiled first, which files need to be compiled later, and which files need to be rebuilt. The makefiles automate project compilation. You do not need to manually enter a large number of source files and parameters each time.
This chapter describes the structure and main contents of makefiles. For more information about makefiles, run the **info make** command.
@@ -246,7 +246,7 @@ A makefile file consists of the following contents:
The file indicator consists of three parts:
- - Inclusion of other makefiles, for example, include xx.md
+ - Include of other makefiles, for example, include xx.md
- Selective execution, for example, \#ifdef
- Definition of multiple command lines, for example, define...endef. \(define ... endef\)
diff --git a/docs/en/server/security/secharden/authentication_and_authorization.md b/docs/en/server/security/secharden/authentication_and_authorization.md
index 9baa3855c4f11c0bec78420214cc0c592c43fd45..b997086a6c8d928211fa302c8869fb8a76b57af0 100644
--- a/docs/en/server/security/secharden/authentication_and_authorization.md
+++ b/docs/en/server/security/secharden/authentication_and_authorization.md
@@ -75,7 +75,7 @@ The **umask** value is used to set default permission on files and directories
2. Set the ownership and group of the **/etc/bashrc** file and all files in the **/etc/profile.d/** directory to **root**.
```shell
- chown root.root $FILE
+ chown root:root $FILE
```
> [!NOTE]NOTE
diff --git a/docs/zh/server/administration/administrator/using_dnf_to_manage_software_packages.md b/docs/zh/server/administration/administrator/using_dnf_to_manage_software_packages.md
index f47245fe7e1276690895fe4b5d683a1d1cad8e91..95755347c0f1d3e73b118ab94a9d5e335ebc3f91 100644
--- a/docs/zh/server/administration/administrator/using_dnf_to_manage_software_packages.md
+++ b/docs/zh/server/administration/administrator/using_dnf_to_manage_software_packages.md
@@ -295,7 +295,7 @@ repository部分允许您定义定制化的openEuler软件源仓库,各个仓
```
> **说明:**
->安装RPM包过程中,若出现安装失败,可参考[安装时出现软件包冲突、文件冲突或缺少软件包导致安装失败](./FAQ-54.md#安装时出现软件包冲突文件冲突或缺少软件包导致安装失败)。
+>安装RPM包过程中,若出现安装失败,可参考[问题5:安装时出现软件包冲突、文件冲突或缺少软件包导致安装失败](https://docs.openeuler.openatom.cn/zh/docs/common/faq/server/administration_faqs.html#%E9%97%AE%E9%A2%985-%E5%AE%89%E8%A3%85%E6%97%B6%E5%87%BA%E7%8E%B0%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%86%B2%E7%AA%81%E3%80%81%E6%96%87%E4%BB%B6%E5%86%B2%E7%AA%81%E6%88%96%E7%BC%BA%E5%B0%91%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%AF%BC%E8%87%B4%E5%AE%89%E8%A3%85%E5%A4%B1%E8%B4%A5)。
### 下载软件包
diff --git a/docs/zh/server/installation_upgrade/installation/installation_guide.md b/docs/zh/server/installation_upgrade/installation/installation_guide.md
index aa39e307963e738afbc4a1a74d7f47dd1077cbed..fb0243ad0c7d1cd02579a1f67c9ace1feb5566c0 100644
--- a/docs/zh/server/installation_upgrade/installation/installation_guide.md
+++ b/docs/zh/server/installation_upgrade/installation/installation_guide.md
@@ -273,6 +273,7 @@
>- 在“Root帐户”界面若选择“禁用Root帐户”则Root帐户将禁用。
**图 16** Root帐户
+

### 密码复杂度
diff --git a/docs/zh/server/installation_upgrade/installation/riscv_olk6.6_homologous_version.md b/docs/zh/server/installation_upgrade/installation/riscv_olk6.6_homologous_version.md
index 56805fd8b7e7c7ef00350f5874ee643cfa87b69c..5cfe97a97056826b32e6fd595f0e0714ed3e6f21 100644
--- a/docs/zh/server/installation_upgrade/installation/riscv_olk6.6_homologous_version.md
+++ b/docs/zh/server/installation_upgrade/installation/riscv_olk6.6_homologous_version.md
@@ -7,6 +7,7 @@
目前项目主要依托在 的 OLK-6.6 分支进行开发,并且会进一步回合到 OLK 的源码仓和制品仓上。

+
目前项目已经基本完成 SG2042 的同源工作,并且完成 TH1520 的基础同源工作。
## 支持的特性
diff --git a/docs/zh/server/quickstart/quickstart/quick_start.md b/docs/zh/server/quickstart/quickstart/quick_start.md
index 0bd367d14a0dc06138d648f8188c230a21046e3b..36febca0412104b4e833f4eda7eaed6a4b662c83 100644
--- a/docs/zh/server/quickstart/quickstart/quick_start.md
+++ b/docs/zh/server/quickstart/quickstart/quick_start.md
@@ -85,9 +85,9 @@
在校验发布包完整性之前,需要准备如下文件:
-iso文件:openEuler-24.03-LTS-SP1-aarch64-dvd.iso
+- iso文件:openEuler-24.03-LTS-SP1-aarch64-dvd.iso
-校验文件:ISO对应完整性校验值,复制保存对应的ISO值
+- 校验文件:ISO对应完整性校验值,复制保存对应的ISO值
### 操作指导
diff --git a/docs/zh/server/releasenotes/releasenotes/contribution.md b/docs/zh/server/releasenotes/releasenotes/contribution.md
index 24acc55accae0102936a25dc451dbdb40d222b41..9018baf864bad44a8f402d2099b7a98d6674e976 100644
--- a/docs/zh/server/releasenotes/releasenotes/contribution.md
+++ b/docs/zh/server/releasenotes/releasenotes/contribution.md
@@ -1,6 +1,6 @@
# 参与贡献
-作为openEuler用户,你可以通过多种方式协助openEuler社区。参与社区贡献的方法请参见[贡献攻略](https://www.openeuler.org/zh/community/contribution/),这里简单列出部分方式供参考。
+作为openEuler用户,你可以通过多种方式协助openEuler社区。参与社区贡献的方法请参见《[贡献攻略](https://www.openeuler.org/zh/community/contribution/)》,这里简单列出部分方式供参考。
## 特别兴趣小组
@@ -20,4 +20,4 @@ openEuler将拥有共同兴趣的人们聚在一起,组成了不同的特别
## IRC
-openEuler也在IRC开辟了频道,作为提供社区支持和交互的额外渠道。详情请参见[openEuler IRC](https://gitee.com/openeuler/community/blob/master/zh/communication/IRCs.md)。
+openEuler也在IRC开辟了频道,作为提供社区支持和交互的额外渠道。详情请参见《[openEuler IRC](https://gitee.com/openeuler/community/blob/master/zh/communication/IRCs.md)》。
diff --git a/docs/zh/server/releasenotes/releasenotes/key_features.md b/docs/zh/server/releasenotes/releasenotes/key_features.md
index 3bacff5a478264cd349fa285c36cc723a48e46c8..1b25c6dc4cb5b31f965c70485ce3910063671efc 100644
--- a/docs/zh/server/releasenotes/releasenotes/key_features.md
+++ b/docs/zh/server/releasenotes/releasenotes/key_features.md
@@ -3,6 +3,7 @@
## AI专项
智能时代,操作系统需要面向AI不断演进。一方面,在操作系统开发、部署、运维全流程以AI加持,让操作系统更智能;另一方面,openEuler已支持Arm,x86,RISC-V等全部主流通用计算架构,在智能时代,openEuler也率先支持NVIDIA、昇腾等主流AI处理器,成为使能多样性算力的首选。
+
- **OS for AI**:openEuler兼容NVIDIA、Ascend等主流算力平台的软件栈,为用户提供高效的开发运行环境。通过将不同AI算力平台的软件栈进行容器化封装,即可简化用户部署过程,提供开箱即用的体验。同时,openEuler也提供丰富的AI框架,方便大家快速在openEuler上使用AI能力。
- openEuler已兼容CANN、CUDA等硬件SDK,以及TensorFlow、PyTorch、MindSpore等相应的AI框架软件,支持AI应用在openEuler上高效开发与运行。
- openEuler AI软件栈容器化封装优化环境部署过程,并面向不同场景提供以下三类容器镜像。
@@ -12,23 +13,24 @@
相关使用方式请参考《[openEuler AI 容器镜像用户指南](https://forum.openeuler.org/t/topic/4189/4)》。
- **AI for OS**:当前,openEuler和AI深度结合,一方面使用基础大模型,基于大量openEuler操作系统的代码和数据,训练出openEuler Copilot System,初步实现代码辅助生成、智能问题智能分析、系统辅助运维等功能,让openEuler更智能。
- - 智能问答:openEuler Copilot System智能问答平台目前支持web和智能shell两个入口。
- 1. 工作流调度:原子化智能体操作流程:通过采用“流”的组织形式,openEuler Copilot System允许用户将智能体的多个操作过程组合成一个内部有序、相互关联的多步骤“工作流”;即时数据处理:智能体在工作流的每个步骤中生成的数据和结果能够立即得到处理,并无缝传递到下一个步骤;智能交互:在面对模糊或复杂的用户指令时,openEuler Copilot System能主动询问用户,以澄清或获取更多信息。
- 2. 任务推荐:智能响应:openEuler Copilot System能够分析用户输入的语义信息;智能指引:openEuler Copilot System综合分析当前工作流的执行状况、功能需求以及关联任务等多维度数据,为用户量身定制最适宜的下一步操作建议。
- 3. RAG:openEluer Copilot System中的RAG技术能更强的适应多种文档格式和内容场景,在不为系统增加较大负担的情况下,增强问答服务体验。
- 4. 语料治理:语料治理是openEuler Copilot System中的RAG技术的基础能力之一,其通过片段相对关系提取、片段衍生物构建和OCR等方式将语料以合适形态入库,以增强用户查询命中期望文档的概率。
-
- 相关使用方式请参考《[openEuler Copilot System 智能问答用户指南](https://gitee.com/openeuler/docs/tree/stable2-22.03_LTS_SP3/docs/zh/docs/AI/openEuler_Copilot_System/%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97)》
- - 智能调优:openEluer Copilot System 智能调优功能目前支持智能shell入口。
-在上述功能入口,用户可通过与openEluer Copilot System进行自然语言交互,完成性能数据采集、系统性能分析、系统性能优化等作业,实现启发式调优。
- - 智能诊断:
- 1. 巡检:调用Inspection Agent,对指定IP进行异常事件检测,为用户提供包含异常容器ID以及异常指标(cpu、memory等)的异常事件列表。
- 2. 定界:调用Demarcation Agent,对巡检结果中指定异常事件进行定界分析,输出导致该异常事件的根因指标TOP3。
- 3. 定位:调用Detection Agent,对定界结果中指定根因指标进行Profiling定位分析,为用户提供该根因指标异常的热点堆栈、热点系统时间、热点性能指标等信息。
- - 智能容器镜像:openEuler Copilot System目前支持通过自然语言调用环境资源,在本地协助用户基于实际物理资源拉取容器镜像,并且建立适合算力设备调试的开发环境。当前版本支持三类容器,并且镜像源已同步在dockerhub发布,用户可手动拉取运行:
- 1. SDK层:仅封装使能AI硬件资源的组件库,例如:cuda、cann等。
- 2. SDK + 训练/推理框架:在SDK层的基础上加装tensorflow、pytorch等框架,例如:tensorflow2.15.0-cuda12.2.0、pytorch2.1.0.a1-cann7.0.RC1等。
- 3. SDK + 训练/推理框架 + 大模型:在第2类容器上选配几个模型进行封装,例如llama2-7b、chatglm2-13b等语言模型。
+ - 智能问答:openEuler Copilot System智能问答平台目前支持web和智能shell两个入口。
+ 1. 工作流调度:原子化智能体操作流程:通过采用“流”的组织形式,openEuler Copilot System允许用户将智能体的多个操作过程组合成一个内部有序、相互关联的多步骤“工作流”;即时数据处理:智能体在工作流的每个步骤中生成的数据和结果能够立即得到处理,并无缝传递到下一个步骤;智能交互:在面对模糊或复杂的用户指令时,openEuler Copilot System能主动询问用户,以澄清或获取更多信息。
+ 2. 任务推荐:智能响应:openEuler Copilot System能够分析用户输入的语义信息;智能指引:openEuler Copilot System综合分析当前工作流的执行状况、功能需求以及关联任务等多维度数据,为用户量身定制最适宜的下一步操作建议。
+ 3. RAG:openEluer Copilot System中的RAG技术能更强的适应多种文档格式和内容场景,在不为系统增加较大负担的情况下,增强问答服务体验。
+ 4. 语料治理:语料治理是openEuler Copilot System中的RAG技术的基础能力之一,其通过片段相对关系提取、片段衍生物构建和OCR等方式将语料以合适形态入库,以增强用户查询命中期望文档的概率。
+
+ 相关使用方式请参考《[openEuler Copilot System 智能问答用户指南](https://gitee.com/openeuler/docs/tree/stable2-22.03_LTS_SP3/docs/zh/docs/AI/openEuler_Copilot_System/%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97)》。
+
+ - 智能调优:openEluer Copilot System 智能调优功能目前支持智能shell入口。
+ 在上述功能入口,用户可通过与openEluer Copilot System进行自然语言交互,完成性能数据采集、系统性能分析、系统性能优化等作业,实现启发式调优。
+ - 智能诊断:
+ 1. 巡检:调用Inspection Agent,对指定IP进行异常事件检测,为用户提供包含异常容器ID以及异常指标(cpu、memory等)的异常事件列表。
+ 2. 定界:调用Demarcation Agent,对巡检结果中指定异常事件进行定界分析,输出导致该异常事件的根因指标TOP3。
+ 3. 定位:调用Detection Agent,对定界结果中指定根因指标进行Profiling定位分析,为用户提供该根因指标异常的热点堆栈、热点系统时间、热点性能指标等信息。
+ - 智能容器镜像:openEuler Copilot System目前支持通过自然语言调用环境资源,在本地协助用户基于实际物理资源拉取容器镜像,并且建立适合算力设备调试的开发环境。当前版本支持三类容器,并且镜像源已同步在dockerhub发布,用户可手动拉取运行:
+ 1. SDK层:仅封装使能AI硬件资源的组件库,例如:cuda、cann等。
+ 2. SDK + 训练/推理框架:在SDK层的基础上加装tensorflow、pytorch等框架,例如:tensorflow2.15.0-cuda12.2.0、pytorch2.1.0.a1-cann7.0.RC1等。
+ 3. SDK + 训练/推理框架 + 大模型:在第2类容器上选配几个模型进行封装,例如llama2-7b、chatglm2-13b等语言模型。
## openEuler Embedded
@@ -39,9 +41,9 @@ openEuler Embedded围绕以制造、机器人为代表的OT领域持续深耕,
- **混合关键性部署框架**: openEuler Embedded打造了构建在融合弹性底座之上混合关键性部署框架,并命名为MICA(MIxed CriticAlity),旨在通过一套统一的框架屏蔽下层弹性底座形态的不同,从而实现Linux和其他OS运行时便捷地混合部署。依托硬件上的多核能力使得通用的Linux和专用的实时操作系统有效互补,从而达到全系统兼具两者的特点,并能够灵活开发、灵活部署。
- **北向生态**:600+嵌入式领域常用软件包的构建;提供软实时能力,软实时中断响应时延微秒级;集成 OpenHarmony 的分布式软总线和hichain点对点认证模块,实现欧拉嵌入式设备之间互联互通、欧拉嵌入式设备和 OpenHarmony 设备之间互联互通;支持iSula容器,可以实现在嵌入式上部署openEuler或其他操作系统容器,简化应用移植和部署。支持生成嵌入式容器镜像,最小大小可到5MB,可以部署在其他支持容器的操作系统之上。
- **UniProton硬实时系统**:UniProton 是一款实时操作系统,具备极致的低时延和灵活的混合关键性部署特性,可以适用于工业控制场景,既支持微控制器 MCU,也支持算力强的多核 CPU。目前关键能力如下:
- 1. 支持Cortex-M、ARM64、X86_64、riscv64架构,支持M4、RK3568、RK3588、X86_64、Hi3093、树莓派4B、鲲鹏920、昇腾310、全志D1s。
- 2. 支持树莓派4B、Hi3093、RK3588、X86_64设备上通过裸金属模式和openEuler Embedded Linux混合部署。
- 3. 支持通过gdb在openEuler Embedded Linux侧远程调试。
+ 1. 支持Cortex-M、ARM64、X86_64、riscv64架构,支持M4、RK3568、RK3588、X86_64、Hi3093、树莓派4B、鲲鹏920、昇腾310、全志D1s。
+ 2. 支持树莓派4B、Hi3093、RK3588、X86_64设备上通过裸金属模式和openEuler Embedded Linux混合部署。
+ 3. 支持通过gdb在openEuler Embedded Linux侧远程调试。
## DevStation 开发者工作站支持
@@ -62,6 +64,7 @@ epkg是一款新型软件包,支持普通用户在操作系统中安装及使
- **多版本兼容**:支持普通用户安装,支持安装不同版本的软件包,不同版本的同一软件包安装不冲突。使能用户在同一个节点上,快速安装同一软件包的不同版本,实现多版本软件包的共存。
- **环境管理**:支持环境环境实现环境的创建/切换/使能等操作,用户通过环境的切换,在环境中使用不同的channel,实现在不同的环境中使用不同版本的软件包。用户可以基于环境,快速实现软件包版本的切换。
- **普通用户安装**:epkg支持普通用户安装软件包,普通用户能够自行创建环境,对个人用户下的环境镜像管理,无需特权版本。降低软件包安装引起的安全问题。
+
## GCC 14多版本编译工具链支持
为了使能多样算例新特性,满足不同用户对不同硬件特性支持的需求,在 openEuler 24.03 LTS SP1 版本推出 openEuler GCC Toolset 14编译工具链,该工具链提供一个高于系统主 GCC 版本的副版本 GCC 14编译工具链,为用户提供了更加灵活且高效的编译环境选择。通过使用 openEuler GCC Toolset 14副版本编译工具链,用户可以轻松地在不同版本的 GCC 之间进行切换,以便充分利用新硬件特性,同时享受到 GCC 最新优化所带来的性能提升。
@@ -73,36 +76,38 @@ epkg是一款新型软件包,支持普通用户在操作系统中安装及使
openEuler 24.03 LTS SP1基于 Linux Kernel 6.6内核构建,在此基础上,同时吸收了社区高版本的有益特性及社区创新特性。
- **内存管理folio特性**:Linux内存管理基于page(页)转换到由folio(拉丁语 foliō,对开本)进行管理,相比page,folio可以由一个或多个page组成,采用struct folio参数的函数声明它将对整个(1个或者多个)页面进行操作,而不仅仅是PAGE_SIZE字节,从而移除不必要复合页转换,降低误用tail page问题;从内存管理效率上采用folio减少LRU链表数量,提升内存回收效率,另一方,一次分配更多连续内存减少page fault次数,一定程度降低内存碎片化;而在IO方面,可以加速大IO的读写效率,提升吞吐。全量支持匿名页、文件页的large folio,提供系统级别的开关控制,业务可以按需使用。对于ARM64架构,基于硬件contiguous bit技术(16个连续PTE只占一个 TLB entry),可以进一步降低系统TLB miss,从而提升整体系统性能。24.03 LTS SP1版本新增支持anonymous shmem分配mTHP与支持mTHP的lazyfree,进一步增加内存子系统对于large folio的支持;新增page cache分配mTHP的sysfs控制接口,提供系统级别的开关控制,业务可以按需使用。
-
+
- **MPTCP特性支持**:MPTCP协议诞生旨在突破传统 TCP 协议的单一路径传输瓶颈,允许应用程序使用多个网络路径进行并行数据传输。这一设计优化了网络硬件资源的利用效率,通过智能地将流量分配至不同传输路径,显著缓解了网络拥塞问题,从而提高数据传输的可靠性和吞吐量。
-目前,MPTCP 在下述网络场景中已经展现出了其优秀的性能:
- 1. 网络通路的选择:在现有的网络通路中,根据延迟、带宽等指标评估,选择最优的通路。
- 2. 无缝切网:在不同类型网络之间切换时,数据传输不中断。
- 3. 数据分流:同时使用多个通道传输,对数据包进行分发实现并发传输,增加网络带宽。
- 在实验环境中,采用MPTCP v1技术的RSYNC文件传输工具展现出了令人满意的效率提升。具体而言,传输1.3GB大小的文件时,传输时间由原来的114.83 s缩短至仅14.35s,平均传输速度由原来的11.08 MB/s提升至88.25 MB/s,可以极大程度的缩减文件传输时间。同时,实验模拟了传输过程中一条或多条路径突发故障而断开的场景,MPTCP在此种场景下可以将数据无缝切换至其他可用的数据通道,确保数据传输的连续性与完整性。
+ 目前,MPTCP 在下述网络场景中已经展现出了其优秀的性能:
+
+ 1. 网络通路的选择:在现有的网络通路中,根据延迟、带宽等指标评估,选择最优的通路。
+ 2. 无缝切网:在不同类型网络之间切换时,数据传输不中断。
+ 3. 数据分流:同时使用多个通道传输,对数据包进行分发实现并发传输,增加网络带宽。
+
+ 在实验环境中,采用MPTCP v1技术的RSYNC文件传输工具展现出了令人满意的效率提升。具体而言,传输1.3GB大小的文件时,传输时间由原来的114.83 s缩短至仅14.35s,平均传输速度由原来的11.08 MB/s提升至88.25 MB/s,可以极大程度的缩减文件传输时间。同时,实验模拟了传输过程中一条或多条路径突发故障而断开的场景,MPTCP在此种场景下可以将数据无缝切换至其他可用的数据通道,确保数据传输的连续性与完整性。
+
在openEuler 24.03 LTS SP1中,已经完成了对linux主线内核6.9中MPTCP相关特性的全面移植与功能优化。
-- **ext4文件系统支持Large folio**:iozone性能总分可以提升80%,iomap框架回写流程支持批量映射block。支持ext4默认模式下批量申请block,大幅优化各类benchmark下ext4性能表现(华为贡献)。ext4 buffer io读写流程以及pagecache回写流程弃用老旧的buffer_head框架,切换至iomap框架,并通过iomap框架实现ext4支持large folio。24.03 LTS SP1版本新增对于block size < folio size场景的小buffered IO(<=4KB)的性能优化,性能提升20%。
-- **xcall/xint特性**:随着Linux内核的发展,系统调用成为性能瓶颈,尤其是在功能简单的调用中。AARCH64平台上的SYSCALL共享异常入口,包含安全检查等冗余流程。降低SYSCALL开销的方法包括业务前移和批量处理,但需业务适配。XCALL提供了一种无需业务代码感知的方案,通过优化SYSCALL处理,牺牲部分维测和安全功能来降低系统底噪,降低系统调用处理开销。
-内核为了使中断处理整体架构统一,将所有中断处理全部归一到内核通用中断处理框架中,同时随着内核版本演进,通用中断处理框架附加了很多与中断处理自身的功能关系不大的安全加固和维测特性,这导致中断处理的时延不确定性增大。xint通过提供一套精简的中断处理流程,来降低中断处理的时延和系统底噪。
+
+- **ext4文件系统支持Large folio**:iozone性能总分可以提升80%,iomap框架回写流程支持批量映射block。支持ext4默认模式下批量申请block,大幅优化各类benchmark下ext4性能表现(华为贡献)。ext4 buffer io读写流程以及pagecache回写流程弃用老旧的buffer_head框架,切换至iomap框架,并通过iomap框架实现ext4支持large folio。24.03 LTS SP1版本新增对于block size < folio size场景的小buffered IO(<=4KB)的性能优化,性能提升20%。
+- **xcall/xint特性**:随着Linux内核的发展,系统调用成为性能瓶颈,尤其是在功能简单的调用中。AARCH64平台上的SYSCALL共享异常入口,包含安全检查等冗余流程。降低SYSCALL开销的方法包括业务前移和批量处理,但需业务适配。XCALL提供了一种无需业务代码感知的方案,通过优化SYSCALL处理,牺牲部分维测和安全功能来降低系统底噪,降低系统调用处理开销。内核为了使中断处理整体架构统一,将所有中断处理全部归一到内核通用中断处理框架中,同时随着内核版本演进,通用中断处理框架附加了很多与中断处理自身的功能关系不大的安全加固和维测特性,这导致中断处理的时延不确定性增大。xint通过提供一套精简的中断处理流程,来降低中断处理的时延和系统底噪。
- **按需加载支持failover特性**:cachefiles在按需模式下,如果守护进程崩溃或被关闭,按需加载相关的读取和挂载将返回-EIO。所有挂载点必须要在重新拉起 daemon 后重新挂载后方可继续使用。这在公共云服务生产环境中发生时是无法接受的,这样的I/O错误将传播给云服务用户,可能会影响他们作业的执行,并危及系统的整体稳定性。cachefiles failover 特性避免了守护进程崩溃后重新挂载所有挂载点,只需快速重新拉起守护进程即可,用户和服务是不感知守护进程崩溃的。
- **可编程调度特性**:支持可编程调度功能,为用户态提供可编程的调度接口,是CFS算法的扩展。用户可以根据实际的业务场景定制化调度策略,bypass原有的CFS调度算法。提供的功能包括支持标签机制、支持任务选核可编程、支持负载均衡可编程、支持任务选择可编程、支持任务抢占可编程以及kfunc接口函数。
- **支持 SMC-D with loopback-ism 特性**:SMC-D (Shared Memory Communication over DMA) 是一种兼容 socket 接口,基于共享内存,透明加速 TCP 通信的内核网络协议栈。SMC-D 早期只能用于 IBM z S390 架构机器,SMC-D with loopback-ism 技术通过创建虚拟设备 loopback-ism 模拟 ISM 功能,使得 SMC-D 可用于非 S390 架构机器,成为内核通用机制。SMC-D with loopback-ism适用于采用TCP协议进行OS内进程间或容器间通信的场景,通过旁路内核TCP/IP协议栈等方法,实现通信加速。结合使用smc-tools工具,可以通过LD_PRELOAD预加载动态库的方法实现TCP协议栈透明替换,无需更改原有应用程序。根据社区反馈结果,与原生TCP相比,SMC-D with loopback-ism能够提升网络吞吐量提升40%以上。
- **IMA RoT特性**:当前,Linux IMA(Integrity Measurement Architecture)子系统主要使用 TPM 芯片作为可信根(Root of Trust,RoT)设备,针对度量列表提供完整性证明,其在编码上也与 TPM 的操作紧耦合。而机密计算等新场景要求 IMA 可使用新型 RoT 设备,例如 openEuler 已支持的 VirtCCA。本特性为一套 IMA RoT 设备框架,在 IMA 子系统和 RoT 设备之间实现一个抽象层,既简化各类 RoT 设备对 IMA 子系统的适配,也方便用户和 IMA 子系统对各类 RoT 设备实施配置和操作。
- **支持脚本类病毒程序防护**:目前勒索病毒主要是脚本类文件(如JSP文件),而当前内核防御非法入侵的IMA完整性保护技术,主要针对ELF类病毒文件。脚本类病毒文件通过解释器运行,能够绕开内核中的安全技术实施攻击。为了支持内核中的IMA完整性保护技术可以检查系统中间接执行的脚本类文件,通过系统调用execveat()新增执行检查的flags,查验其执行权限,并在检查中调用IMA完整性度量接口以实现对脚本类文件的完整性保护。经测试验证,目前已经支持脚本解释器主动调用execveat()系统调用函数并传入AT_CHECK参数对脚本文件进行可执行权限检查(包括IMA检查),只有当权限检查成功后,才可继续运行脚本文件。
- **haltpoll特性**:haltpoll特性通过虚拟机guest vcpu在空闲时进行轮询的机制,避免vcpu唤醒时发送IPI中断,降低了中断发送和处理的开销,并且由于轮询时虚拟机不需要陷出,减少了陷入陷出的开销,该特性能够降低进程间通信时延,显著提升上下文切换效率,提升虚机性能。
-
- **内核TCP/IP协议栈支持CAQM拥塞**:内核TCP/IP协议栈支持CAQM拥塞控制算法:CAQM是一种主动队列管理算法,一种网络拥塞控制机制,主要运行于数据中心使用TCP传输数据的计算端侧节点和传输路径上的网侧交换机节点。通过网侧交换节点主动计算网络空闲带宽和最优带宽分配,端侧协议栈与网侧交换机协同工作,在高并发场景下获得网络交换机“零队列“”拥塞控制效果和极低传输时延。CAQM算法通过在以太链路层增加拥塞控制标记字段,实现动态调整队列长度,减少延迟和丢包,提高网络资源的利用率。对于数据中心低延时通算场景,可极大减少延迟和丢包的发生,增强用户体验。在数据中心典型场景下,对比经典Cubic算法,关键指标提升:1)传输时延:CAQM vs Cubic 时延降低92.4%。2)带宽利用率:在交换机队列缓存占用降低90%的情况下,仍保持TCP传输带宽利用率逼近100%(99.97%)。CAQM算法使用说明:1)本算法需要端侧服务器和网侧交换机协同配合,故中间节点交换机,需要支持CAQM协议(协议头识别,拥塞控制字段调整等);2)本算法通过内核编译宏(CONFIG_ETH_CAQM)控制,默认不使能,用户需通过打开编译宏,重新编译替换内核后,使能算法功能。
## NestOS容器操作系统
NestOS是在openEuler社区孵化的云底座操作系统,集成了rpm-ostree支持、ignition配置等技术。采用双根文件系统、原子化更新的设计思路,使用nestos-assembler快速集成构建,并针对K8S、OpenStack等平台进行适配,优化容器运行底噪,使系统具备十分便捷的集群组建能力,可以更安全的运行大规模的容器化工作负载。
- - **开箱即用的容器平台**:NestOS集成适配了iSulad、Docker、Podman等主流容器引擎,为用户提供轻量级、定制化的云场景OS。
- - **简单易用的配置过程**:NestOS通过ignition技术,可以以相同的配置方便地完成大批量集群节点的安装配置工作。
- - **安全可靠的包管理**:NestOS使用rpm-ostree进行软件包管理,搭配openEuler软件包源,确保原子化更新的安全稳定状态。
- - **友好可控的更新机制**:NestOS使用zincati提供自动更新服务,可实现节点自动更新与重新引导,实现集群节点有序升级而服务不中断。
- - **紧密配合的双根文件系统**:NestOS采用双根文件系统的设计实现主备切换,确保NestOS运行期间的完整性与安全性。
+- **开箱即用的容器平台**:NestOS集成适配了iSulad、Docker、Podman等主流容器引擎,为用户提供轻量级、定制化的云场景OS。
+- **简单易用的配置过程**:NestOS通过ignition技术,可以以相同的配置方便地完成大批量集群节点的安装配置工作。
+- **安全可靠的包管理**:NestOS使用rpm-ostree进行软件包管理,搭配openEuler软件包源,确保原子化更新的安全稳定状态。
+- **友好可控的更新机制**:NestOS使用zincati提供自动更新服务,可实现节点自动更新与重新引导,实现集群节点有序升级而服务不中断。
+- **紧密配合的双根文件系统**:NestOS采用双根文件系统的设计实现主备切换,确保NestOS运行期间的完整性与安全性。
## syscare特性增强
@@ -144,8 +149,10 @@ KubeOS是针对云原生场景而设计、轻量安全的云原生操作系统
KubeOS新增配置能力、定制化镜像制作能力和rootfs完整性保护dm-verity如图所示,具体能力如下:
- KubeOS支持集群参数统一配置,支持通过KubeOS统一settings配置,支持如下配置:
+
(1)KubeOS支持limits.conf文件参数统一配置;
(2)KubeOS支持containerd、kubelet等集群参数统一配置。
+
- KubeOS支持镜像定制化,镜像制作时支持systemd服务、grub密码、系统盘分区、用户/用户组、文件、脚本和persist分区目录的自定义配置。
- KubeOS支持静态完整性保护dm-verity,支持在虚拟机镜像制作时开启dm-verity,对rootfs进行完整行校验,并支持dm-verity开启时的升级和配置。
@@ -224,6 +231,7 @@ Sudo 是 Unix 和 Linux 操作系统中常用的工具之一,它允许用户
utsudo 是一个采用 Rust 重构 Sudo 的项目,旨在提供一个更加高效、安全、灵活的提权工具,涉及的模块主要有通用工具、整体框架和功能插件等。
**基本功能**
+
- 访问控制:可以根据需求,限制用户可以执行的命令,并规定所需的验证方式。
- 审计日志:可以记录和追踪每个用户使用 utsudo 执行的命令和任务。
- 临时提权:允许普通用户通过输入自己的密码,临时提升为超级用户执行特定的命令或任务。
@@ -240,6 +248,7 @@ utsudo在openEuler 24.09版本中是0.0.2版本,当前版本主要功能有:
utshell 是一个延续了 bash 使用习惯的全新 shell,它能够与用户进行命令行交互,响应用户的操作去执行命令并给予 反馈。并且能执行自动化脚本帮助运维。
**基本功能**
+
- 命令执行:可以执行部署在用户机器上的命令,并将执行的返回值反馈给用户。
- 批处理:通过脚本完成自动任务执行。
- 作业控制:能够将用户命令作为后台作业,从而实现多个命令同时执行。并对并行执行的任务进行管理和控制。
@@ -251,7 +260,7 @@ utshell在openEuler24.09版本中是0.5版本,当前版本主要功能有:
- 实现对shell脚本的解析。
- 实现对第三方命令的执行。
-
+
## GCC for openEuler
GCC for openEuler基线版本已经从GCC 10.3升级到GCC 12.3版本,支持自动反馈优化、软硬件协同、内存优化、SVE向量化、矢量化数学库等特性。
@@ -271,7 +280,7 @@ GCC for openEuler基线版本已经从GCC 10.3升级到GCC 12.3版本,支持
- 支持if语句块拆分优化,增强程序间常量传播能力。
- 增强SLP矢量优化,覆盖更多矢量化场景,提升性能。
- 支持自动反馈优化,使用perf收集程序运行信息并解析,完成编译阶段和二进制阶段反馈优化,提升MySQL数据库等主流应用场景的性能。
-
+
## Gazelle特性增强
Gazelle是一款高性能用户态协议栈。它基于DPDK在用户态直接读写网卡报文,共享大页内存传递报文,使用轻量级LwIP协议栈。能够大幅提高应用的网络I/O吞吐能力。专注于数据库网络性能加速,兼顾高性能与通用性。本次版本新增容器场景xdp部署模式及openGauss数据库tpcc支持,丰富用户态协议栈。
@@ -296,16 +305,19 @@ Gazelle是一款高性能用户态协议栈。它基于DPDK在用户态直接读
virtCCA机密虚机特性基于鲲鹏920系列S-EL2能力,在TEE侧实现机密虚机能力,实现现有普通虚机中的软件栈无缝迁移到机密环境中。基于Arm CCA标准接口,在Trustzone固件基础上构建TEE虚拟化管理模块,实现机密虚机间的内存隔离、上下文管理、生命周期管理和页表管理等机制,支持客户应用无缝迁移到机密计算环境中。
1. 设备直通:
-设备直通是基于华为鲲鹏920新型号通过预埋在PCIE Root Complex里的PCIE保护组件,在PCIE总线上增加选通器,对CPU与外设间的通信进行选通,即对SMMU的Outbound Traffic和Inbound Traffic的控制流和数据流进行控制,以此保证整体数据链路的安全性。
-基于virtCCA PCIPC的设备直通能力,实现对PCIE设备的安全隔离和性能提升,存在以下优势:
-(1)安全隔离
-TEE侧控制设备的访问权限,Host侧软件无法访问TEE侧设备;
-(2)高性能
-机密设备直通,相比业界加解密方案,数据面无损耗;
-(3)易用性
-兼容现有开源OS,无需修改开源OS内核驱动代码。
+
+ 设备直通是基于华为鲲鹏920新型号通过预埋在PCIE Root Complex里的PCIE保护组件,在PCIE总线上增加选通器,对CPU与外设间的通信进行选通,即对SMMU的Outbound Traffic和Inbound Traffic的控制流和数据流进行控制,以此保证整体数据链路的安全性。
+ 基于virtCCA PCIPC的设备直通能力,实现对PCIE设备的安全隔离和性能提升,存在以下优势:
+ (1)安全隔离
+ TEE侧控制设备的访问权限,Host侧软件无法访问TEE侧设备;
+ (2)高性能
+ 机密设备直通,相比业界加解密方案,数据面无损耗;
+ (3)易用性
+ 兼容现有开源OS,无需修改开源OS内核驱动代码。
+
2. 国密硬件加速:
-国密硬件加速是基于华为鲲鹏芯片,通过KAE加速器能力复用到安全侧,并采用openEuler UADK用户态加速器框架,提供客户机密虚机内国密加速性能提升以及算法卸载的能力。
+
+ 国密硬件加速是基于华为鲲鹏芯片,通过KAE加速器能力复用到安全侧,并采用openEuler UADK用户态加速器框架,提供客户机密虚机内国密加速性能提升以及算法卸载的能力。
## 海光CSV3支持
@@ -414,19 +426,22 @@ CFGO-BOLT在基线版本的基础上,新增aarch64架构软件插桩、inline
AI4C(AI for Compiler)代表AI辅助编译优化套件,是一个使用AI技术优化编译选项和优化遍关键决策的软件框架,旨在突破当前编译器领域的两个关键业务挑战:
-1. 性能提升困难:传统编译器优化开发周期长,新的编译优化技术与已有编译优化过程难以兼容达到1+1>=2的效果,导致性能提升无法达到预期效果。
+1. 性能提升困难:传统编译器优化开发周期长,新的编译优化技术与已有编译优化过程难以兼容达到1+1>=2的效果,导致性能提升无法达到预期效果。
2. 调优效率低下:硬件架构或者软件业务场景变更,需要根据新的负载条件投入大量人力成本,重新调整编译优化的成本模型,导致调优时间长。
AI4Compiler框架提供编译选项自动调优和AI模型辅助编译优化两个主要模块。
框架上层调度模块驱动中层编译器核心优化过程,通过不同编译器各自的适配模块调用底层AI模型和模型推理引擎,以优化特性相关数据和硬件架构参数作为模型输入特征运行模型推理,获得编译过程关键参数最佳决策,从而实现编译优化。
- 编译自动调优(Autotuner)
+
AI4C的自动调优基于OpenTuner(2015 Ansel et al.)开发,通过插件驱动编译器采集优化特性相关参数信息,通过搜索算法调整关键决策参数(例如循环展开系数),通过插件注入编译过程修改决策,运行编译输出二进制获得反馈因子,迭代自动调优。
(1)已集成一系列搜索算法,动态选择算法并共享搜索进;
(2)支持用户配置yaml自定义搜索空间和扩展底层搜索算法;
(3)支持细粒度代码块调优与粗粒度编译选项自动调优;
(4)在cormark、dhrystone、Cbench等benchmark上获得3%~5%不等的收益。
+
- AI辅助编译优化(ACPO)
+
ACPO提供全面的工具、库、算法,为编译器工程师提供简单易用的接口使用AI模型能力,替代或增强编译器中启发式优化决策算法。在编译器优化过程中,使用插件提取优化遍的输入结构化数据作为模型输入特征,getAdvice运行预训练模型获得决策系数,编译器使用模型决策结果替代部分启发式决策,获得更好的性能。
(1)解耦编译器与AI模型和推理引擎,帮助算法开发者专注AI算法模型开发,简化模型应用成本,同时兼容多个编译器、模型、AI推理框架等主流产品,提供AI模型的热更新能力;
(2)实践落地IPA Loop Inline、RTL Loop Unroll等不同优化阶段和优化过程,获得相对显著的收益。
diff --git a/docs/zh/server/security/secharden/account_passwords.md b/docs/zh/server/security/secharden/account_passwords.md
index 032fdbf17faea1d7b86f3c8f4db79fdf47151c57..4dd33b9f28c5d73fd34652a7e163f7037f047b9f 100644
--- a/docs/zh/server/security/secharden/account_passwords.md
+++ b/docs/zh/server/security/secharden/account_passwords.md
@@ -1,33 +1,33 @@
-# 帐户口令
+# 账户口令
-## 屏蔽系统帐户
+## 屏蔽系统账户
### 说明
-除了用户帐户外,其他帐号称为系统帐户。系统帐户仅系统内部使用,禁止用于登录系统或其他操作,因此屏蔽系统帐户。
+除了用户账户外,其他账号称为系统账户。系统账户仅系统内部使用,禁止用于登录系统或其他操作,因此屏蔽系统账户。
### 实现
-将系统帐户的Shell修改为/sbin/nologin。
+将系统账户的Shell修改为/sbin/nologin。
-```
+```sh
usermod -L -s /sbin/nologin $systemaccount
```
> **说明:**
-> $systemaccount 指系统帐户。
+> $systemaccount 指系统账户。
-## 限制使用su命令的帐户
+## 限制使用su命令的账户
### 说明
-su命令用于在不同帐户之间切换。为了增强系统安全性,有必要对su命令的使用权进行控制,只允许root和wheel群组的帐户使用su命令,限制其他帐户使用。
+su命令用于在不同账户之间切换。为了增强系统安全性,有必要对su命令的使用权进行控制,只允许root和wheel群组的账户使用su命令,限制其他账户使用。
### 实现
su命令的使用控制通过修改/etc/pam.d/su文件实现,配置如下:
-```
+```sh
auth required pam_wheel.so use_uid
```
@@ -42,7 +42,7 @@ auth required pam_wheel.so use_uid
use_uid
|
-基于当前帐户的uid。
+ | 基于当前账户的uid。
|
@@ -75,14 +75,14 @@ auth required pam_wheel.so use_uid
-至少一个特殊字符:\`\~!@\#$%^&\*\(\)-\_=+\\|\[\{\}\];:'",<.\>/?和空格
-3. 口令不能和帐号或者帐号的倒写一样。
+3. 口令不能和账号或者账号的倒写一样。
4. 不能修改为过去5次使用过的旧口令。
**配置实现**
在/etc/pam.d/password-auth和/etc/pam.d/system-auth文件中password配置项的前两行添加如下配置内容:
-```
+```sh
password requisite pam_pwquality.so minlen=8 minclass=3 enforce_for_root try_first_pass local_users_only retry=3 dcredit=0 ucredit=0 lcredit=0 ocredit=0
password required pam_pwhistory.so use_authtok remember=5 enforce_for_root
```
@@ -137,7 +137,7 @@ pam\_pwquality.so和pam\_pwhistory.so的配置项请分别参见[表2](#table201
enforce_for_root
|
-本设置对root帐户同样有效
+ | 本设置对root账户同样有效
|
@@ -159,7 +159,7 @@ pam\_pwquality.so和pam\_pwhistory.so的配置项请分别参见[表2](#table201
enforce_for_root
|
-本设置对root帐户同样有效
+ | 本设置对root账户同样有效
|
@@ -219,7 +219,7 @@ pam\_pwquality.so和pam\_pwhistory.so的配置项请分别参见[表2](#table201
> **说明:**
->login.defs是设置用户帐号限制的文件,可配置口令的最大过期天数、最大长度约束等。该文件里的配置对root用户无效。如果/etc/shadow文件里有相同的选项,则以/etc/shadow配置为准,即/etc/shadow的配置优先级高于/etc/login.defs。口令过期后用户重新登录时,提示口令过期并强制要求修改,不修改则无法进入系统。
+>login.defs是设置用户账号限制的文件,可配置口令的最大过期天数、最大长度约束等。该文件里的配置对root用户无效。如果/etc/shadow文件里有相同的选项,则以/etc/shadow配置为准,即/etc/shadow的配置优先级高于/etc/login.defs。口令过期后用户重新登录时,提示口令过期并强制要求修改,不修改则无法进入系统。
## 设置口令的加密算法
@@ -231,7 +231,7 @@ pam\_pwquality.so和pam\_pwhistory.so的配置项请分别参见[表2](#table201
口令的加密算法设置通过修改/etc/pam.d/password-auth和/etc/pam.d/system-auth文件实现,添加如下配置:
-```
+```sh
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
```
@@ -299,7 +299,7 @@ auth sufficient pam_faillock.so authsucc audit deny=3 even_deny_root u
even_deny_root
|
-同样限制root帐户。
+ | 同样限制root账户。
|
@@ -315,6 +315,6 @@ auth sufficient pam_faillock.so authsucc audit deny=3 even_deny_root u
通过修改/etc/login.defs实现,配置如下:
-```
+```sh
ALWAYS_SET_PATH=yes
```
diff --git a/docs/zh/server/security/secharden/authentication_and_authorization.md b/docs/zh/server/security/secharden/authentication_and_authorization.md
index 607d8f8487fd5c5b468edced8ce7110f9af099c0..3519e68c93420cf1ebaac3dac12cb06a27841767 100644
--- a/docs/zh/server/security/secharden/authentication_and_authorization.md
+++ b/docs/zh/server/security/secharden/authentication_and_authorization.md
@@ -76,7 +76,7 @@ umask值用于为用户新创建的文件和目录设置缺省权限。如果uma
2. 设置/etc/bashrc文件和/etc/profile.d/目录下所有文件的属主为root,群组为root。
```shell
- chown root.root $FILE
+ chown root:root $FILE
```
> **说明:**