关键特性
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 等相应的 AI 框架软件,支持 AI 应用在 openEuler 上高效开发与运行。
openEuler AI 软件栈容器化封装优化环境部署过程,并面向不同场景提供以下三类容器镜像。
SDK 镜像:以 openEuler 为基础镜像,安装相应硬件平台的 SDK,如 Ascend 平台的 CANN 或 NVIDIA 的 CUDA 软件。
AI 框架镜像:以 SDK 镜像为基础,安装 AI 框架软件,如 PyTorch 或 TensorFlow。
模型应用镜像:在 AI 框架镜像的基础上,包含完整的工具链和模型应用。
相关使用方式请参考openEuler AI 容器镜像用户指南。
AI for OS:当前,openEuler 和 AI 深度结合,一方面使用基础大模型,基于大量 openEuler 操作系统的代码和数据,训练出 EulerCopilot,初步实现代码辅助生成、智能问题智能分析、系统辅助运维等功能,让 openEuler 更智能。
- EulerCopilot 智能问答:EulerCopilot 智能问答平台目前支持 web 和智能 shell 两个入口。
Web 入口:操作简单,可咨询操作系统相关基础知识,openEuler 动态数据、openEuler 运维问题解决方案、openEuler 项目介绍与使用指导等等。
智能 Shell 入口:自然语言和 openEuler 交互,启发式的运维。
相关使用方式请参考EulerCopilot 智能问答服务使用指南。
openEuler Embedded
openEuler 发布面向嵌入式领域的版本 openEuler 24.03 LTS Embedded,支持 5.10 和 6.6 双内核,构建了一个相对完整的综合嵌入系统软件平台,在南北向生态、关键技术特性、基础设施、落地场景等方面都有显著的进步。
南向生态:openEuler Embedded Linux 当前主要支持 Arm64、x86-64、Arm32、RISC-V等多种芯片架构,未来计划支持龙芯等架构,24.03 LTS 版本的南向支持大幅改善,已经支持树莓派、海思、瑞芯微、瑞萨、德州仪器、飞腾、赛昉、全志等厂商的芯片。
嵌入式弹性虚拟化底座:openEuler Embedded 的弹性虚拟化底座是为了在多核片上系统(SoC, System On Chip)上实现多个操作系统共同运行的一系列技术的集合,包含了裸金属、嵌入式虚拟化、轻量级容器、LibOS、可信执行环境(TEE)、异构部署等多种实现形态。
混合关键性部署框架:openEuler Embedded 打造了构建在融合弹性底座之上混合关键性部署框架,并命名为 MICA(MIxed CriticAlity),旨在通过一套统一的框架屏蔽下层弹性底座形态的不同,从而实现 Linux 和其他 OS 运行时便捷地混合部署。依托硬件上的多核能力使得通用的 Linux 和专用的实时操作系统有效互补,从而达到全系统兼具两者的特点,并能够灵活开发、灵活部署。
北向生态:600+ 嵌入式领域常用软件包的构建;支持 ROS2 humble 版本,集成 ros-core、ros-base、SLAM 等核心包,并提供 ROS SDK,简化嵌入式 ROS 开发;提供软实时能力,软实时中断响应时延微秒级;集成 OpenHarmony 的分布式软总线和 hichain 点对点认证模块,实现 openEuler 嵌入式设备之间互联互通、openEuler 嵌入式设备和 OpenHarmony 设备之间互联互通;支持 iSula 容器,可以实现在嵌入式上部署 openEuler 或其他操作系统容器,简化应用移植和部署。支持生成嵌入式容器镜像,最小大小可到 5MB,可以部署在其他支持容器的操作系统之上。支持 Kubeedge,可以更好地实现“云-边-端”协同。
UniProton 硬实时系统:是一款实时操作系统,具备极致的低时延和灵活的混合关键性部署特性,可以适用于工业控制场景,既支持微控制器 MCU,也支持算力强的多核 CPU。目前关键能力如下。
支持 Cortex-M、Arm64、x86_64、riscv64 架构,支持 M4、RK3568、RK3588、x86_64、Hi3093、树莓派 4B、鲲鹏 920、昇腾 310、全志 D1s。
支持树莓派 4B、Hi3093、RK3588、x86_64 设备上通过裸金属模式和 openEuler Embedded Linux 混合部署。
支持通过 gdb 在 openEuler Embedded Linux 侧远程调试。
支持 890+ POSIX 接口,支持文件系统、设备管理、shell 控制台、网络。
openEuler 6.6 内核中的特性
openEuler 24.03 LTS 基于 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,从而提升整体系统性能。
EEVDF 调度:EEVDF 全称“Earliest Eligible Virtual Deadline First”。EEVDF 调度器将调度时延作为任务调度的考虑因素之一,在保障任务运行时间分配公平的同时,优先在没有满足应得运行时间的任务中,选择任务 deadline 最近的任务,从而保障任务的调度时延,解决了原有的 CFS 调度器只能公平分配任务运行时间,不能满足任务时延要求的问题。
cgroup v2 特性:cgroup v2 相比 v1,具有统一的层级结构、更完善的线程模式管理、更安全的子树委派以及更丰富的特性支持。具体包含:
统一层级结构:简化 cgroup 的层级管理,用户不需要为不同的资源管理配置多个独立的 cgroup 树,降低多个控制器协同工作控制难度。提供了更一致和简化的接口,使得配置更简单易懂。更高的安全性,避免父子 cgroup 资源竞争:cgroup v2 新增只有父 cgroup 内部无进程时才能启用子 cgroup 控制器的限制。
更完善的线程模式管理:cgroup v2 引入线程模式(threaded),对可线程化管理的子系统进行限制。线程可以被独立于进程其他线程分配到不同的 cgroup 中,对单个线程的资源使用进行更精细的控制。
更安全的子树委派:通过委派机制允许非特权用户创建和管理自己的 cgroup 层次结构。通过合理利用委派,系统管理员可以提供给用户或应用程序必要的控制权限,提供更细粒度的资源管理,同时保持系统的稳定性和安全性。
更丰富的特性支持:基于统一的文件树管理,支持 psi、页面缓存回写、跨多个资源的增强资源分配管理和隔离、统一核算不同类型的内存分配,MemoryQoS 等特性。
Maple Tree 和 Per VMA Lock 特性:使用 Maple Tree 替代红黑树管理进程的地址空间,并使用 RCU 友好的设计以及 Per VMA Lock 等机制,可以减少锁争用问题,提升 page fault 的扩展性,可以加速应用启动等并发场景的性能。
PCP high 自适应调节:对于不同工作负载,页面分配/释放的性能要求通常也是不同的。通过 PCP high 自适应的调节,可以自动调整每个 CPU 的页面集的大小以优化页面分配/释放性能,可以优化内核多并发构建等并发场景的性能。
MGLRU 特性:多层级的 LRU 机制,更精确地识别页面的冷热信息,提升高内存压力场景下的系统性能,降低 OOM 的概率。
DAMON 特性:轻量级内存访问监控框架,可在用户态实现虚拟地址或物理地址的访问监控,实现轻量精确的在线监控,助力性能提升。
Memory-tiering 特性:内存分层特性,目标以最高效和成本效益的方式满足内存的使用需求,降低内存的使用成本。
hugetlb vmemmap 特性:新增适配支持 Arm64 架构上的 hugetlb vmemmap 特性,节省内存管理结构的开销,降低内存底噪。
huge vmalloc 特性:对于超过了 huge-page 的最小 size 的空间的 vmalloc/vmap 分配,将会尝试使用 huge page 而不是 base page,减少 tlb miss,显著提高了 vmalloc 使用场景的性能。
支持 memfd_secret 系统调用:Linux 上创建“秘密内存区域”的新接口,允许用户空间进程创建其他任何人(包括内核)都无法访问的内存范围,可以用于存储私钥等用途,减少在系统内存中暴露的可能性。
BIG TCP 特性:允许协议栈发送更大的 TSO/GRO 数据包,实现更好的网络吞吐量性能和更低的延迟。
XDP multi-buffer 支持:允许 Jumbo frame 场景下使用 XDP 提升性能。
Thread-based NAPI polling 支持:允许网卡 NAPI polling 移到内核线程处理,使 CPU 调度器可以合理调度提升性能。
bpf 新增 kfunc 特性:允许 bpf 通过符号方式直接调用内核和 ko 提供的函数,ko 可以通过注册 kfunc 的方式来动态提供 bpf 接口。
bpf 新增 dynamic pointer 特性:在 bpf 中引用动态分配的内存,此前 bpf 使用的内存必须在 verifier 检查时已静态指定。
perf 新增特性支持:新增支持 ARM SPE 事件的获取;支持用户态直接读取 pmu counter;显示锁的竞争情况;减少生成的 pmu 数据,提升平均处理时间。
openEuler 关键贡献:
ext4 文件系统支持 Large folio:
iomap 框架回写流程支持批量映射 block。
支持 ext4 默认模式下批量申请 block,大幅优化各类 benchmark 下 ext4 性能表现。
ext4 buffer io 读写流程以及 pagecache 回写流程弃用老旧的 buffer_head 框架,切换至 iomap 框架,并通过 iomap 框架实现ext4支持large folio。
潮汐 affinity 调度特性:提供高效内存回收和加载机制,支持 per-memcg 的 swap 设备隔离,在业务负载低时回收冷数据,在业务负载升高时快速加载数据,实现内存可用空间和业务性能的提升,从而达到同等内存成本下更高的服务质量效果。感知业务负载动态调整业务 CPU 亲和性:
当业务负载低时使用 prefered cpus 处理,增强资源的局部性。
当业务负载高时,突破 preferred cpus 范围限制,通过增加CPU核的供给提高业务的 QoS。
MPAM 特性:MPAM(内存系统组件隔离监控)是用于解决服务器系统中,混部不同类型业务时,由于共享资源的竞争而带来的关键应用性能下降或者系统整体性能下降的问题。另外,对于业务共享资源的使用,以 CPU 或者 PID 为粒度,进行实时跟踪监控。OLK 6.6 下 MPAM 重构的版本提供若干新特性:
完整支持 L2 cache 分区隔离和监控功能,其中关于监控功能,支持统计缓存占用量,同时监控缓存带宽流量。
支持任务之间根据优先级的差异,动态调整共享资源配置。
支持任务共享资源的保底设置。
CPU QoS 优先级负载均衡特性:在离线混部 CPU QoS 隔离增强, 支持多核 CPU QoS 负载均衡,进一步降低离线业务 QoS 干扰。
SMT 驱离优先级反转特性:解决混部 SMT 驱离特性的优先级反转问题,减少离线任务对在线任务 QoS 的影响。
混部多优先级:允许 cgroup 配置 -2~2 的 cpu.qos_level,即多个优先级,使用 qos_level_weight 设置不同优先级权重,按照 CPU 的使用比例进行资源的划分,并提供唤醒抢占能力。
可编程调度:基于 eBPF 的可编程调度框架,支持内核调度器动态扩展调度策略,以满足不同负载的性能需求。
支持 arm64 vcpu hotplug:在线热插拔虚拟机 CPU 而不影响虚拟机正常运行,动态调整虚拟机的计算能力,提供安全可靠的虚拟机动态扩容。
负载算力协同:在多核服务器中运行用户体验敏感应用(如云桌面系统)时,通过负载算力协同技术能够保障算力供给的及时性和有效性。负载算力协同技术具有以下特性:高负载场景下,支持轻量级的任务搜索算法,提高空闲 CPU 拉取 runnable 任务的效率,实现多核间快速负载均衡,最大化 CPU 资源利用率;算力竞争场景下,支持按优先级对业务进行分级管控,有效避免优先级翻转的问题,实现高优先级的前台任务绝对压制低优级的后台任务,保障关键任务的算力供给。
已挂载文件系统设备写访问控制:支持块设备(分区设备)挂载文件系统后的写访问控制,为高危写访问操作提供告警信息,防止文件系统损坏。
riscv bpf 新特性支持:支持 trampoline 特性、Zbb 扩展特性、kfunc 支持特性、cpu-v4 指令特性和原子操作指令特性等,扩展了 bpf 的能力。
arm64 bpf 新特性支持:新增 bpf 栈变量 ldr/str 优化、pac 支持、trampoline 支持与 cpuv4 指令支持等特性,扩展了 bpf 的能力。
内存可靠性分级(继承特性):支持使用者按照需求分配在对应可靠性的内存上,并对部分可能的 UCE 或 CE 故障影响进行一定程度的缓解,达到部分 MR 内存(address range mirror)的情况下,支撑业务整体可靠性不下降。
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 运行期间的完整性与安全性。
AArch64 平台 vCPU 热插拔
vCPU 热插拔是指在虚拟机处于运行状态下,为虚拟机增加或减少 CPU 数量而不影响虚拟机业务正常运行的方案。当虚拟机内部业务压力不断增大,出现所有 CPU 均处于较高负载的情况下,可以使用 vCPU 热插功能提升虚拟机的计算能力,保障业务吞吐量稳定。当业务负载下降时,可以使用 vCPU 热拔功能去除多余的计算能力,从而降低计算成本。
特性增强:老版本已具备 vCPU 热插能力,该版本新增了对 vCPU 热拔的支持,适应更多使用场景。相对老版本,热插拔协议发生了一些变化,新老版本的热插拔不能兼容运行,即 Guest 内核版本和主机侧 QEMU 版本需配套才能实现热插拔功能。
对外接口:保持和老版本一致,使用 libvirt setvcpus 接口完成热插拔操作。
A-Ops 智能运维
A-Ops 是一款基于操作系统维度的故障运维平台,提供从数据采集,健康巡检,故障诊断,故障修复到修复任务回退的智能运维解决方案。A-Ops 项目包括了诺干子项目:覆盖故障发现(aops-gala),故障定位支撑(aops-X-diagnosis),缺陷修复(aops-apollo)等。
本次发布的 aops-apollo 项目是智能补丁管理框架,集成了漏洞扫描、CVE 修复(冷补丁/热补丁)、热补丁回退等核心功能。系统可以对发布的安全公告实行定时下载同步,可设置定时任务执行漏洞扫描,保证系统平稳运行的同时,运维人员可通过 A-Ops 工具实现对漏洞的修复和回退。
aops-apollo内核智能补丁管理:
热补丁源管理:openEuler 的漏洞信息通过安全公告对外发布时,会同时在 update 源中发布修复所用的软件包。 默认 openEuler 系统安装后自带对应OS版本的冷补丁 update 源,用户也可以通过设置 repo 来自行配置冷/热补丁的 update 源。
缺陷扫描:通过对集群手动和定时扫描,检查集群是否受 CVE 影响,并提供冷/热补丁修复选择。
冷热补丁混合管理:支持冷补丁、热补丁独立修复,也支持冷热补丁混合修复,实现在网热补丁静默收编,减少热补丁维护成本。
热补丁生命周期管理:热补丁移除,回退,查询等生命周期管理。
aaops-gala 项目:
在线应用性能抖动诊断:提供数据库类应用性能在线诊断能力,包括网络类(丢包、重传、时延、TCP零窗等)问题、 I/O 类(磁盘慢盘、I/O 性能下降等)问题,调度类(包括 sysCPU 冲高、死锁等)问题、内存类(OOM、泄漏等)问题等。
系统性能诊断:提供通用场景的 TCP、I/O 性能抖动问题诊断能力。
系统隐患巡检:提供内核协议栈丢包、虚拟化网络丢包、TCP 异常、I/O 时延异常、系统调用异常、资源泄漏、JVM 异常、应用 RPC 异常(包括 8 种常见协议的错误率、时延等)硬件故障(UCE、磁盘介质错误等)等秒级巡检能力。
系统全栈 I/O 观测:提供面向分布式存储场景的 I/O 全栈观测能力,包括 GuestOS 进程级、Block 层的 I/O 观测能力,以及虚拟化层存储前端 I/O 观测能力,分布式存储后端 I/O 观测能力。
精细化性能 Profiling:提供多维度(包括系统、进程、容器、Pod 等多个维度)、高精度(10ms 采样周期)的性能(包括 CPU 性能、内存占用、资源占用、系统调用等类型)火焰图、时间线图,可实时在线持续性采集。
K8S Pod 全栈可观测及诊断:提供 K8S 视角的 Pod 集群业务流实时拓扑能力,Pod 性能观测能力、DNS 观测能力、SQL 观测能力等。
Gazelle 特性增强
Gazelle 是一款高性能用户态协议栈。它基于 DPDK 在用户态直接读写网卡报文,共享大页内存传递报文,使用轻量级 LwIP 协议栈。能够大幅提高应用的网络 I/O 吞吐能力。专注于数据库网络性能加速,兼顾高性能与通用性。本次版本新增 UDP 协议及相关接口支持,丰富用户态协议栈。
高性能(超轻量):基于 dpdk、lwip 实现高性能轻量协议栈能力。
极致性能:基于区域大页划分、动态绑核、全路径零拷贝等技术,实现高线性度并发协议栈。
硬件加速:支持 TSO/CSUM/GRO 等硬件卸载,打通软硬件垂直加速路径。
通用性(posix 兼容):接口完全兼容 posix api,应用零修改,支持 udp 的 recvfrom 和 sendto 接口。
通用网络模型:基于 fd 路由器、代理式唤醒等机制实现自适应网络模型调度,udp 多节点的组播模型,满足任意网络应用场景。
易用性(即插即用):基于 LD_PRELOAD 实现业务免配套,真正实现零成本部署。
易运维(运维工具):具备流量统计、指标日志、命令行等完整运维手段。
新增特性:
新增支持单 vlan 模式、bond4 与 bond6 模式、网线插拔后网卡自愈功能。
全面支持鲲鹏 920 虚拟机单实例 redis 应用,最大支持链接数 5k+,性能提升约 30%+。
支持 netperf TCP_STREAM/TCP_RR(包长 1463 Byte 以下)参数测试。
对 gazelle 的 lstack、lwip、gazellectl 模块日志增强,便于定位。
支持 UDP 用户态协议栈,相比较内核协议栈性能提升约 50%。
iSulad 特性增强
iSulad 是一个由 C/C++ 编写实现的轻量级容器引擎,具有轻、灵、易、快的特点,不受硬件规格和架构限制,底噪开销更小,可应用的领域更为广泛。iSulad 采用统一的架构设计,支持云、边、端等多个场景,同时为不同场景提供不同的性能和底噪开销,以满足不同场景的容器化需求。本次版本新增 iSulad 对 CRI V1.29、cgroup v2 以及 CDI 的支持。
CRI V1.29:CRI(Container Runtime Interface, 容器运行时接口)是 kublet 与容器引擎通信使用的主要协议。在本次版本中,iSulad将支持CRI V1.29。
cgroup v2:cgroup 是 linux 中用于限制进程组资源的机制,目前包括两个版本,cgroup v1 和 cgroup v2。cgroup v2 相较于 cgroup v1 具有层次结构统一、资源控制精确、资源分配高效等特点。iSulad 在 cgroup v1 的基础之上,新增了对 cgroup v2 的支持,能够让 Kubernetes 委派更安全的 cgroup 子树给容器,支持跨多个资源的增强资源分配管理和隔离。
CDI:CDI(Container Device Interface,容器设备接口)是容器运行时支持第三方设备的一种标准接口。设备供应商可以根据 CDI 规范,为设备编写设备描述文件,容器引擎可以根据描述文件对设备进行加载。iSulad 新增了对 CDI 的支持,支持用户加载符合 CDI 标准的设备。
约束限制:
CRI V1.29 的新增特性仅支持 runc 运行时。
由于 cgroup oom 会同时触发容器 cgroup 路径删除,若 iSulad 对 oom 事件处理发生在 cgroup 路径删除之后,iSulad 则无法成功捕捉容器 oom 事件,可能导致 ContainerStatus 中 reason 字段设置不正确。
iSulad 不支持交叉使用不同的 cgroup 驱动管理容器,启动容器后 iSulad 的 cgroup 驱动配置不应该发生变化。
iSulad 只识别挂载在 /sys/fs/cgroup 目录下的 cgroup。
iSulad 不支持 cgroup v1 与 cgroup v2 混用场景,仅根据 /sys/fs/cgroup 目录下的 cgroup 版本决定 iSulad 内部使用的 cgroup 版本。
iSulad 目前仅支持 CRI 方式使用 CDI 特性。
安全启动
为支持“开箱即用”的安全启动能力,核心是在 openEuler 社区建立以 PKI 为基础的软件构建签名体系,在软件构建阶段,自动为目标文件添加数字签名,并在关键组件中预置公钥证书,从而在用户安装 openEuler 镜像后,可以直接开启相关的签名校验机制,提升系统安全性。
openEuler Signatrust 是社区基础设施 SIG 组针对操作系统常见的签名场景推出的高效、便捷、安全的签名服务,可支持 openPGP 及 X509 体系的密钥管理,同时对接了 EFI、RPM、KO、ISO 等多种目标文件格式,支持大批量的软件包签名,可极大提升社区密钥管理及软件包签名效率。
openEuler 签名平台生成并管理签名公私钥和证书,同时通过 Signatrust 提供签名服务。
EulerMaker 构建系统在执行软件包构建阶段,调用 Signatrust 签名接口为目标文件执行添加数字签名。
具备签名验证功能的组件(如 shim、kernel 等),在构建阶段预置相应的验签证书。
用户安装 openEuler 镜像后,开启安全启动、内核模块校验、IMA、RPM 校验等按机制,在系统启动和运行阶段使能相应的签名验证功能,保障系统组件的真实性和完整性。
openEuler 签名根证书可在证书中心获取。
约束限制:
当前社区签名平台只支持对 openEuler 社区内部构建的组件进行签名,暂不支持对外部工程构建的文件及客户文件进行签名。
当前签名平台提供的签名算法只支持国际 RSA 算法,密钥长度为 4096。
GreatSQL 数据库
GreatSQL 数据库是一款开源免费数据库,可在普通硬件上满足金融级应用场景,具有高可用、高性能、高兼容、高安全等特性,可作为 MySQL 或 Percona Server for MySQL 的理想可选替换。
高可用:针对 MGR 进行了大量改进和提升工作,新增支持地理标签、仲裁节点、读写节点可绑定动态 IP、快速单主模式、智能选主,并针对流控算法、事务认证队列清理算法、节点加入&退出机制、recovery 机制等多项 MGR 底层工作机制算法进行深度优化,进一步提升优化了 MGR 的高可用保障及性能稳定性。
高性能:相对 MySQL 及 Percona Server For MySQL 的性能表现更稳定优异,支持高性能的内存查询加速 AP 引擎、InnoDB 并行查询、并行 LOAD DATA、事务无锁化、线程池等特性,在 TPC-C 测试中相对 MySQL 性能提升超过 30%,在 TPC-H 测试中的性能表现是 MySQL 的十几倍甚至上百倍。
高兼容:支持大多数常见 Oracle 用法,包括数据类型、函数、SQL 语法、存储程序等兼容性用法。
高安全:支持逻辑备份加密、CLONE 备份加密、审计日志入表、表空间国密加密等多个安全提升特性,进一步保障业务数据安全,更适用于金融级应用场景。
AO.space 项目发布
AO.space 是一个以保护个人数据安全和隐私为核心的解决方案。通过端对端加密、基于设备认证等技术,确保用户完全掌控个人账号和数据。同时,采用平台透明转发、点对点加速、局域网直连等技术,让用户随时随地的极速访问个人数据。利用 PWA 和云原生技术,设计并打造前后端一体的应用生态。
AO.space 系统由三个主要部分构成:服务端、客户端和平台端。服务端为个人空间的核心,部署于个人长期运行的并且联网的设备中,如个人服务器、个人计算机等。客户端为个人日常使用的电子设备,如手机、平板、个人电脑等,目前 AO.space 提供 Web、iOS 和 Android 等客户端。平台端在无法解析用户数据的前提下,为个人空间提供基础网络访问、安全防护等服务。
服务端:AO.space 的核心部分,一般部署在个人设备中,由空间软件、空间服务、容器运行时、基础操作系统(openEuler 等操作系统)和硬件组成。在基础操作系统之上,以容器方式部署空间的服务和应用。
客户端:整个系统的前端,负责用户在不同的个人设备上与空间的交互,使用户能够随时随地访问空间的所有功能。目前提供 Web、iOS 和 Android 客户端,
平台端:平台提供基本网络资源和相关管理能力。
migration-tools 增强
migration-tools 是由统信软件开发的一款操作系统迁移软件,面向已部署业务应用于其他操作系统且具有国产化替换需求的用户,帮助其快速、平滑、稳定且安全地迁移至 openEuler 系操作系统。现已支持在 web 端迁移 openEuler 操作系统。迁移软件的系统架构分为:Server 模块、Agent 模块、配置模块、日志模块、迁移评估模块、迁移功能模块。
Server 模块:Server 模块为迁移的软件的核心,采用 pythonflaskweb 框架研发,负责接收任务请求,同时处理相关 执行指令并分发至各 Agent。
Agent 模块:Agent 模块安装在待迁移的操作系统中,负责接收 Server 发出的任务请求,执行迁移等功能。
配置模块:为 Server 模块和 Agent 模块提供配置文件的读取功能。
日志模块:提供迁移的全部运行过程记录日志。
迁移评估模块:提供迁移前的基础环境检测、软件包对比分析、ABI 兼容性检测等评估报告,为用户的迁移工作提供依据。
迁移功能模块:提供一键迁移、迁移进度展示、迁移结果判断等功能。
DDE 组件更新支持服务器场景
统信桌面环境(DDE)是统信软件为统信操作系统(UniontechOS)开发的一款桌面环境,统信桌面操作系统、统信操作系统服务器版和统信操作系统专用设备版均在使用统信桌面环境。
统信桌面环境专注打磨产品交互、视觉设计,拥有桌面环境的核心技术,主要功能包含:登录锁屏、桌面及文件管理器、 启动器、任务栏(DOCK)、窗口管理器、控制中心等。由于界面美观、交互优雅、安全可靠、尊重隐私,一直是用户首选桌面环境之一, 用户可以使用它进行办公与娱乐,在工作中发挥创意和提高效率,和亲朋好友保持联系,轻松浏览网页、 享受影音播放。
统信桌面环境的核心技术是拥有统一界面元素设计、讲究细节交互设计的 DTK 框架及 Qt、GTK+ 等三方图形库。 显示服务、 输入管理、资源管理较为底层,一般是基于 golang 开发的后端服务,为上层 GUI 程序提供桌面环境中所需功能接口,如创建用户、 设置屏幕亮度、设置设备音量、管理网络连接等功能。 显示管理、桌面接口、桌面服务属于 shell 层,一般是基于 DBus 接口协议 与后端服务进行通信,为定义用户界面、交 互操作提供支撑,如登录界面、窗口外观、GUI 应用程序控件等。
kiran-desktop 2.6 版本
Kiran 是一款麒麟信安自研桌面环境产品,包含登录锁屏、开始菜单、控制中心等多种自研组件,采用模块化的设计风格,致力于提供界面友好、简单易用的人性化用户操作界面。该版本支持在 openEuler 中使用 Kiran2.6。Kiran 提供了操作系统的用户界面,包括了用户登录、桌面图标、控制面板、系统面板、文件管理器、桌面应用等功能。
用户登录:Kiran 提供用户名和密码登录功能,在输入框输入用户名 -> 回车 -> 输入密码后回车进行登录。同时 Kiran 还具备多因子登录认证功能,用户可选择认证的类型有指纹、指静脉、Ukey、虹膜和人脸,在控制面板 -> 认证管理可录入信息,并配置是否启用。
桌面图标:登录系统后,桌面图标说明如下。
计算机:双击可以显示从本计算机访问的所有本地和远程磁盘和文件夹。
主文件夹:双击可以显示用户家目录下的内容。
回收站:存放已删除的文件。
控制面板:系统面板位于桌面下方区域,包括了任务栏、托盘区域和日期与时间。任务栏用于查看系统启动应用,默认放置开始菜单、文件管理器、Firefox 浏览器、工作区,也可通过鼠标右键点击应用,选择固定到任务栏添加其他应用到任务栏,可以进行应用程序打开、关闭、放大、最小化等操作。托盘区域可以设置输入法、调节音量、设置网络,托盘区域右边显示日期和时间。
系统面板:控制面板是 Kiran 中提供的一个高度集成的图形化配置环境,几乎包含所有的配置和管理工具,包括桌面定制、系统配置管理工具以及网络服务配置工具等。它主要包括以下功能:
执行系统配置和管理任务。
运行网络服务配置。
定制具有个人特色的桌面环境。
文件管理器:文件管理器是 Kiran 中提供的一款文件和目录管理工具,用户可通过文件管理器对系统中的文件与目录进行新增、编辑、复制、移动、删除、打开、剪切、重命名等操作。
UKUI 支持
UKUI 是由麒麟团队开发的基于 Linux 发行版的轻量级桌面环境,将视觉和交互舒适自然的结合在一起,全面兼容 x86、Arm64 等多种主流架构,拥有更美观的 UI 界面、更友好的一致性交互体验,提供 4K 支持、夜间模式、任务栏预览等多种功能。
控制面板:进行系统的基本设置如日期与时间、个性化设置、设备管理等。
开始菜单:管理系统中已安装的所有应用。可在默认和全屏尺寸两者之间切换,支持汉字、英文、拼音或首字母等多种检索方式。
任务栏:支持深浅双色主题和毛玻璃效果,支持文件、文件夹、终端、网页、图片等窗口的实时预览。
侧边栏:侧边栏一分为二,上半部分专管通知,下半部分提供了诸如截图、系统设置等快捷按钮。
文件管理器:支持多标签页显示,将文件管理器的搜索栏和地址栏合二为一,重构的搜索功能,可以更加快速精准的搜索所需要的文件。
OpenStack Wallaby、Antelope 多版本
OpenStack 是一个开源的云计算管理平台项目,旨在提供一个可扩展的、灵活的云计算服务,支持私有云和公有云环境。OpenStack 提供了一系列的服务和工具,用于构建和管理公共云、私有云和混合云。其主要功能包括:
计算服务:提供虚拟机的创建、管理和监控等功能。它允许用户快速创建、部署和销毁虚拟机和容器实例,从而实现对计算资源的灵活管理和高效利用。
存储服务:提供对象存储、块存储和文件存储等多种存储服务。块存储服务(如 Cinder)允许用户动态分配和管理持久性块存储设备,如虚拟机硬盘。对象存储服务(如 Swift)则提供了可扩展的、分布式的对象存储解决方案,用于存储大量非结构化数据。
网络服务:提供虚拟网络的创建、管理和监控等功能,包括网络拓扑规划、子网管理、安全组配置等,这使得用户能够轻松构建复杂的网络结构,并确保网络的安全性和可靠性。
身份认证服务:提供用户、角色和权限等身份管理功能,管理用户、角色和权限的访问控制。这使得用户能够安全地访问和管理云资源,并确保数据的机密性和完整性。
镜像服务:提供虚拟机镜像的创建、管理和共享等功能,包括创建、上传、下载和删除镜像。这使得用户能够轻松地创建和管理虚拟机镜像,并快速部署新的虚拟机实例。
编排服务:提供自动化部署和管理应用程序的功能,支持多个服务之间的协作和集成。通过编排服务(如 Heat),用户可以定义应用程序的部署模板,并自动执行相关的部署和管理任务。
RISC-V 架构 Penglai TEE 支持
蓬莱 TEE 补丁为 RISC-V openEuler 操作系统提供了可信执行环境(TEE)的支持,利用 RISC-V 架构下的硬件安全机制(例如:Physical Memory Protection),使能高安全性要求的应用场景:如安全通信、密钥保护、代码鉴权等。
蓬莱 TEE 系统的主要组件包括开发工具 SDK、安全监控器(Secure monitor)、Enclave 实例以及 PMP 硬件扩展支持。安全监控器作为蓬莱 TEE 的核心,管理 Enclave 实例的生命周期和资源分配。Enclave 实例运行在用户态 (U-mode),其内存受到 PMP 的保护。
约束限制:
当前蓬莱应用只支持 C 或者 C++ 代码。
对于 syscall 的支持依赖 secGear 中对 POSIX 接口的转发功能。
蓬莱系统实现需要 RISC-V 硬件支持 PMP 机制。
在资源受限的场景下,蓬莱 TEE 补丁当前能够同时支持 14 个 Enclave 实例,但具体数量可能受限于硬件资源,未来会扩展支持更多实例。
当前蓬莱 Enclave 默认使用 4MB 大小的安全内存,可以在蓬莱 Enclave Driver 中修改。
当前引入的蓬莱 TEE SDK 不包括 secGear 的代码,但用户可以参考 secGear 开发框架,自行下载与编译。
RISC-V 架构内核热补丁能力
RISC-V 热补丁特性,是 openEuler 既有(x86-64/aarch64)内核热补丁机制、代码和制作工具,在 RISC-V 架构上的移植,功能、应用场景、约束等相同。内核或应用程序不重启的情况下打补丁,是操作系统在服务器领域重要的性能和安全保障手段。
以函数为基本修复单位,制作热补丁代码模块,在不重启机器/应用情况下,利用指令替换方式,将缺陷函数替换为修复函数,实现热补丁功能。主要包括内核热补丁机制(kernel)、内核态热补丁制作工具(kpatch)、用户态热补丁制作工具(libcareplus)、热补丁服务管理工具(syscare)。
约束限制:同 Syscare、kpatch 等,主要包含以下几点。
仅支持 64 位系统。
仅支持 ELF 格式。
主要支持 C 语言。
有限支持修改全局/静态变量。
不支持多个文件、符号均同名。
内核安全增强补丁 HAOC
HAOC (Hardware-Assisted OS Compartmentalization) 全称硬件辅助的操作系统分治技术,旨在通过对操作系统内部结构进行安全增强,以提升内核的抗攻击能力。HAOC 的核心技术是依据最小特权原则,对扁平化的 Linux 内核架构进行安全改造,形成核内再次分层的架构,即复式内核架构。复式内核架构基于现有处理器硬件机制在特权级内部实现多层次的系统隔离,能够有效阻止内核攻击的横向移动和权限提升能力。
复式内核架构的最内层,即中枢核心层,是复式内核架构的可信计算基(Trusted Computing Base,TCB),其可以在不信任 Linux 内核的前提下提供一个安全高效的隔离执行环境。中枢核心层不仅作为基础提供其他层次之间的隔离能力,而且还可以保护 Linux 核心内核中最安全敏感的资源,守住最后一道防线。
当前版本的 HAOC 技术,基于 Arm 处理器机制打造了复式内核架构的中枢核心层,并利用其保护了 Linux 内核的页表结构和进程凭证,可以有效缓解针对该类敏感资源的内核提权攻击。在未来 HAOC 将持续集成新功能,包括利用中枢核心层保护更多的敏感资源、构建复式内核高风险层实现设备驱动和内核扩展的安全管控、实现 x86 版本的复式内核架构等。
HAOC 技术在 Linux 内核的地址空间内部构建了严格的隔离执行环境,即复式内核架构的中枢核心层。中枢核心基于 Arm 处理器 PAN 和 HPD 机制设计了访存门和执行门,分别实现了中枢核心的内存访问和代码执行隔离。访问中枢核心只允许通过安全门才可以:访存门用来阻止外层内核对中枢核心内存的直接读写访问,执行门用来阻止外层内核对中枢核心内敏感/特权指令的任意执行。安全门的设计不依赖外层内核的防护机制,其可以独立确保安全门执行的原子性和确定性。
中枢核心内部提供了不依赖 Linux 内核的完整运行环境,具备独立的堆栈和安全的中断处理能力。当前中枢核心支持对内核页表和进程凭证进行安全保护,攻击者无法绕过安全门来修改这类敏感资源。为了进一步阻止潜在的混淆代理攻击,即攻击者滥用安全门接口非法使用敏感资源,中枢核心还对这类敏感资源的所有访问接口进行了安全检查。
GCC for openEuler
GCC for openEuler 基线版本已经从 GCC 10.3 升级到 GCC 12.3 版本,支持自动反馈优化、软硬件协同、内存优化、SVE 向量化、矢量化数学库等特性。
GCC 版本升级到 12.3,默认语言标准从 C14/C++14 升级到 C17/C++17 标准,支持 Armv9-a 架构,x86 的 AVX512 FP16 等更多硬件架构特性。
支持结构体优化,指令选择优化等,充分使能ARM架构的硬件特性,运行效率高,在 SPEC CPU 2017 等基准测试中性能大幅优于上游社区的 GCC 10.3 版本。
支持自动反馈优化特性,实现应用层 MySQL 数据库等场景性能大幅提升。
功能描述:
支持 Arm 架构下 SVE 矢量化优化,在支持 SVE 指令的机器上启用此优化后能够提升程序运行的性能。
支持内存布局优化,通过重新排布结构体成员的位置,使得频繁访问的结构体成员放置于连续的内存空间上,提升 Cache 的命中率,提升程序运行的性能。
支持冗余成员消除优化,消除结构体中从不读取的结构体成员,同时删除冗余的写语句,缩小结构体占用内存大小,降低内存带宽压力,提升性能。
支持数组比较优化,实现数组元素并行比较,提高执行效率。
支持 Arm 架构下指令优化,增强 ccmp 指令适用场景,简化指令流水。
支持自动反馈优化,使用 perf 收集程序运行信息并解析,完成编译阶段和二进制阶段反馈优化,提升 MySQL 数据库等主流应用场景的性能。