关键特性
异构通用内存管理框架(GMEM)特性
异构通用内存管理框架 GMEM (Generalized Memory Management),提供了异构内存互联的中心化管理机制,是面向 OS For AI 的终极内存管理解决方案。GMEM 革新了 Linux 内核中的内存管理架构,其中逻辑映射系统屏蔽了 CPU 和加速器地址访问差异,remote_pager内存消息交互框架提供了设备接入抽象层。在统一的地址空间下,GMEM可以在数据需要被访问或换页时,自动地迁移数据到OS或加速器端。GMEM API与Linux原生内存管理API保持统一,易用性强,性能与可移植性好。
逻辑映射系统: 在内核中提供 GMEM 高层 API,允许加速器驱动直接获取内存管理功能,建立逻辑页表。逻辑页表将内存管理的高层逻辑与 CPU 的硬件相关层解耦,从而抽象出能让各类加速器复用的高层内存管理逻辑。
Remote Pager 内存消息交互框架:实现可供主机和加速器设备交互的消息通道、进程管理、内存交换和内存预取等模块。通过 remote_pager 抽象层可以让第三方加速器很容易的接入 GMEM 系统,简化设备适配难度。
用户API: 使用 OS 的 mmap 分配统一虚拟内存,GMEM 在 mmap 系统调用中新增分配统一虚拟内存标志(MMAP_PEER_SHARED)。同时 libgmem 用户态库提供内存预取语义 hmadvise 接口,协助用户优化加速器内存访问效率。
开源大模型原生支持(LLaMA和ChatGLM)
llama.cpp 和 chatglm-cpp 是基于 C/C++ 实现的模型推理框架,通过模型量化等手段,支持用户可以在CPU机器上完成开源大模型的部署和使用。llama.cpp 支持多个英文开源大模型的部署,如 LLaMa/LLaMa2/Vicuna 等。chatglm-cpp 支持多个中文开源大模型的部署,如 ChatGLM-6B/ChatGLM2-6B/Baichuan-13B等。
基于 ggml 的 C/C++ 实现。
通过 int4/int8 量化、优化的 KV 缓存和并行计算等多种方式加速内存高效 CPU 推理。
使用方法请参考openEuler 支持部署大模型。
openEuler 6.4 内核中的特性
openEuler 23.09 基于 Linux Kernel 6.4 内核构建,在此基础上,同时吸收了社区低版本的有益特性及社区创新特性。
潮汐 affinity 调度特性:感知业务负载动态调整业务 CPU 亲和性,当业务负载低时使用 preferred cpus 处理,增强资源的局部性;当业务负载高时,突破 preferred cpus 范围限制,通过增加CPU核的供给提高业务的 QoS。
CPU QoS优先级负载均衡特性:在离线混部 CPU QoS 隔离增强, 支持多核 CPU QoS 负载均衡,进一步降低离线业务 QoS 干扰。
SMT 驱离优先级反转特性:解决混部 SMT 驱离特性的优先级反转问题,减少离线任务对在线任务 QoS 的影响。
混部多优先级:允许 cgroup 配置-2~2的cpu.qos_level,即多个优先级,使用 qos_level_weight 设置不同优先级权重,按照 CPU 的使用比例进行资源的划分,并提供唤醒抢占能力。
可编程调度:基于 eBPF 的可编程调度框架,支持内核调度器动态扩展调度策略,以满足不同负载的性能需求。
Numa Aware spinlock:基于 MCS 自旋锁在锁传递算法上针对多 NUMA 系统优化,通过优先在本 NUMA 节点内传递,能大量减少跨 NUMA 的 Cache 同步和乒乓,从而提升锁的整体吞吐量,提升业务性能。
支持 TCP 压缩:在 TCP 层对指定端口的数据进行压缩后再传输,收包侧把数据解压后再传给用户态,从而提升分布式场景节点间数据传输的效率。
内核热补丁:主要针对内核的函数实现的 bug 进行免重启修复,原理主要在于如何完成动态函数替换,采用直接修改指令的方法,而非主线基于 ftrace 实现,在运行时直接跳转至新函数,无需经过查找中转,效率较高。
Sharepool 共享内存:一种在多个进程之间共享数据的技术。它允许多个进程访问同一块内存区域,从而实现数据共享。
memcg 异步回收:一种优化机制,它可以在系统负载较低的时候,异步地回收 memcg 中的内存,以避免在系统负载高峰期间出现内存回收的延迟和性能问题。
支持 filescgroup:Cgroup files 子系统提供对系统中一组进程打开的文件数量(即句柄数)进行分组管理,相比于已有的 rlimit 方法,能更好的实现文件句柄数的资源控制(资源申请及释放、资源使用动态调整、实现分组控制等)。
cgroupv1 使能 cgroup writeback:cgroup writeback 用于控制和管理文件系统缓存的写回行为,提供了一种灵活的方式来管理文件系统缓存的写回行为,以满足不同应用场景下的需求。主要功能包括:缓存写回控制、IO 优先级控制、写回策略调整等。
支持核挂死检测特性:解决 PMU 停止计数导致 hardlockup 无法检测系统卡死的问题,利用核间 CPU 挂死检测机制,让每个 CPU 检测相邻 CPU 是否挂死,保障系统在部分 CPU 关中断挂死场景下能够自愈。
嵌入式
openEuler 23.09 Embedded 支持嵌入式虚拟化弹性底座,提供 Jailhouse 虚拟化方案、openAMP 轻量化混合部署方案,用户可以根据自己的使用场景选择最优的部署方案。同时支持 ROS humble 版本,集成 ros-core、rosbase、SLAM 等核心软件包,满足 ROS2 运行时要求。
南向生态:openEuler Embedded Linux 当前主要支持 ARM64、x86-64 两种芯片架构,支持 RK3568、Hi3093、树莓派 4B、x86-64 工控机等具体硬件,23.09 版本新增支持 RK3399、RK3588 芯片。初步支持 ARM32、RISC-V 两种架构具体通过 QEMU 仿真来体现。
嵌入式弹性虚拟化底座:openEuler Embedded 的融合弹性底座是为了在多核片上系统(SoC,System On Chip)上实现多个操作系统/运行时共同运行的一系列技术的集合,包含了裸金属、嵌入式虚拟化、轻量级容器、LibOS、可信执行环境(TEE)、异构等多种实现形态。
混合关键性部署框架:构建在融合弹性底座之上,通过一套统一的框架屏蔽下层融合弹性底座形态的不同,从而实现 Linux 和其他 OS 运行时便捷地混合部署。
北向生态:350+ 嵌入式领域常用软件包的构建;支持 ROS2 humble 版本,集成 ros-core、ros-base、SLAM 等核心包,并提供 ROS SDK,简化嵌入式 ROS 开发;基于 Linux 5.10 内核提供软实时能力,软实时中断响应时延微秒级;集成 OpenHarmony 的分布式软总线和 hichain 点对点认证模块,实现欧拉嵌入式设备之间互联互通、欧拉嵌入式设备和 OpenHarmony 设备之间互联互通。
硬实时系统(UniProton):是一款实时操作系统,具备极致的低时延和灵活的混合关键性部署特性,可以适用于工业控制场景,既支持微控制器 MCU,也支持算力强的多核 CPU。
SysCare 热补丁能力
SysCare 是一个系统级热修复软件,为操作系统提供安全补丁和系统错误热修复能力,主机无需重新启动即可修复系统问题。SysCare 将内核态热补丁技术与用户态热补丁技术进行融合统一,用户仅需聚焦在自己核心业务中,系统修复问题交予 SysCare 进行处理。后期计划根据修复组件的不同,提供系统热升级技术,进一步解放运维用户提升运维效率。
支持容器内构建补丁:
通过使用 ebpf 技术监控编译器进程,实现无需创建字符设备、纯用户态化获取热补丁变化信息,并允许用户在多个不同容器内进行并行热补丁编译。
用户可以通过安装不同 rpm 包(syscare-build-kmod 或 syscare-build-ebpf)来选择使用 ko 或者 ebpf 实现,syscare-build 进程将会自适应相应底层实现。
GCC for openEuler
GCC for openEuler 基线版本从 GCC 10.3 升级到 GCC 12.3 版本,支持自动反馈优化、软硬件协同、内存优化、SVE向量化、矢量化数学库等特性。
GCC 版本升级到 12.3,默认语言标准从 14 升级到 C17/C++17 标准,支持 Armv9-a 架构,X86 的 AVX512 FP16 等更多硬件架构特性。
支持结构体优化,指令选择优化等,充分使能 ARM 架构的硬件特性,运行效率更高,在 SPEC CPU 2017 等基准测试中性能大幅优于上游社区的 GCC 10.3 版本。
支持自动反馈优化特性,实现应用层 MySQL 数据库等场景性能大幅提升。
A-Ops智能运维
IT基础设施和应用产生的数据量快速增长(每年增长2~3倍),应用大数据和机器学习技术日趋成熟,驱动高效智能运维系统产生,助力企业降本增效。openEuler 智能运维提供智能运维基本框架,支持 CVE 管理、异常检测(数据库场景)等基础能力,支持快速排障和运维成本降低。
智能补丁管理:支持补丁服务、内核热修复、智能补丁巡检、冷热补丁混合管理。
异常检测:提供 MySQL、openGauss 业务场景中出现的网络 I/O 时延、丢包、中断等故障以及磁盘 I/O 高负载故障检测能力。
配置溯源:支持集群配置收集和基线能力,实现配置可管可控。对整体集群实现配置检查,实时与基线进行对比,快速识别未经授权的配置变更,实现故障快速定位。
A-Ops gala 特性
GALA 项目将全面支持 K8s 场景故障诊断,提供包括应用 drill-down 分析、微服务& DB 性能可观测、云原生网络监控、云原生性能 Profiling、进程性能诊断等特性,支撑 OS 五类问题(网络、磁盘、进程、内存、调度)分钟级诊断。
DDE服务器版本优化K8s环境易部署:gala-gopher 提供 daemonset 方式部署,每个 Work Node 部署一个 gala-gopher 实例;gala-spider、gala-anteater 以容器方式部署至 K8S 管理 Node。
应用drill-down分析:提供云原生场景中亚健康问题的故障诊断能力,分钟级完成应用与云平台之间问题定界能力。
全栈监控:提供面向应用的精细化监控能力,覆盖语言运行时(JVM)、GLIBC、系统调用、内核(TCP、I/O、调度等)等跨软件栈观测能力,实时查看系统资源对应用的影响。
全链路监控:提供网络流拓扑(TCP、RPC)、软件部署拓扑信息,基于这些信息构建系统 3D 拓扑,精准查看应用依赖的资源范围,快速识别故障半径。
GALA因果型AI:提供可视化根因推导能力,分钟级定界至资源节点。
微服务&DB性能可观测:提供非侵入式的微服务、DB 访问性能可观测能力,包括 HTTP 1.x 访问性能可观测,性能包括吞吐量、时延、错误率等,支持 API 精细化可观测能力,以及 HTTP Trace 能力,便于查看异常 HTTP 请求过程。
PGSQL访问性能可观测:性能包括吞吐量、时延、错误率等,支持基于 SQL 访问精细化观测能力,以及慢 SQL Trace 能力,便于查看慢 SQL 的具体 SQL 语句。
云原生应用性能Profiling:提供非侵入、零修改的跨栈 profiling 分析工具,并能够对接 pyroscope 业界通用UI前端。
云原生网络监控:针对 K8s 场景,提供 TCP、Socket、DNS 监控能力,具备更精细化网络监控能力。
进程性能诊断:针对云原生场景的中间件(比如 MySQL、Redis 等)提供进程级性能问题诊断能力,同时监控进程性能 KPI、进程相关系统层 Metrics(比如I/O、内存、TCP等),完成进程性能 KPI 异常检测以及影响该KPI的系统层 Metrics。
sysMaster 特性
sysMaster 是一套超轻量、高可靠的服务管理程序集合,是对 1 号进程的全新实现,旨在改进传统的 init 守护进程。它使用 Rust 编写,具有故障监测、秒级自愈和快速启动等能力,从而提升操作系统可靠性和业务可用度。本次发布的 0.5.0 版本,支持在容器、虚机两种场景下,以 sysMaster 的方式管理系统中的服务。
支持devMaster组件,用于管理设备热插拔。
支持sysMaster热升级、热重启功能。
支持在虚机中以1号进程运行。
utsudo 项目
utsudo 是一个采用 Rust 重构 Sudo 的项目,旨在提供一个更加高效、安全、灵活的提权工具,涉及的模块主要有通用工具、整体框架和功能插件等。
访问控制:根据需求限制用户可以执行的命令,并规定所需的验证方式。
审计日志:记录和追踪每个用户使用 utsudo 执行的命令和任务。
临时提权:允许普通用户通过输入自己的密码,临时提升为超级用户执行特定的命令或任务。
灵活配置:设置参数如命令别名、环境变量、执行参数等,以满足复杂的系统管理需求。
utshell 项目
utshell 是一个延续了 bash 使用习惯的全新 shell,它能够与用户进行命令行交互,响应用户的操作去执行命令并给予反馈。并且能执行自动化脚本帮助运维。
命令执行:执行部署在用户机器上的命令,并将执行的返回值反馈给用户。
批处理:通过脚本完成自动任务执行。
作业控制:能够将用户命令作为后台作业,从而实现多个命令同时执行。并对并行执行的任务进行管理和控制。
历史记录:记录用户所输入的命令。
别名功能:能够让用户对命令起一个自己喜欢的别名,从而个性化自己的操作功能。
migration-tools 项目
migration-tools 是由统信软件开发的一款操作系统迁移软件,面向已部署业务应用于其他操作系统且具有国产化替换需求的用户,帮助其快速、平滑、稳定且安全地迁移至 openEuler 系操作系统。迁移软件的系统架构分为以下模块。
Server 模块:迁移的软件的核心,采用 Flask(Flask是一个轻量级的基于Python的web框架) 框架研发,负责接收任务请求,同时处理相关执行指令并分发至各 Agent。
Agent模块:安装在待迁移的操作系统中,负责接收Server发出的任务请求,执行迁移等功能。
配置模块:为 Server 模块和 Agent 模块提供配置文件的读取功能。
日志模块:提供迁移的全部运行过程记录日志。
迁移评估模块:提供迁移前的基础环境检测、软件包对比分析、ABI 兼容性检测等评估报告,为用户的迁移工作提供依据。
迁移功能模块:提供一键迁移、迁移进度展示、迁移结果判断等功能。
DDE组件
统信桌面环境(DDE)专注打磨产品交互、视觉设计,拥有桌面环境的核心技术,主要功能包含:登录锁屏、桌面及文件管理器、启动器、任务栏(DOCK)、窗口管理器、 控制中心等。由于界面美观、交互优雅、安全可靠、尊重隐私,一直是用户首选的桌面环境之一,用户可以使用它进行办公与娱乐,在工作中发挥创意和提高效率,和亲朋好友保持联系,轻松浏览网页、享受影音播放。
Kmesh 项目
Kmesh 基于可编程内核,将服务治理下沉OS,实现高性能服务网格数据面,服务间通信时延对比业界方案提升5倍。
支持对接遵从 XDS 协议的网格控制面(如 istio)。
流量编排能力,支持轮询等负载均衡策略;支持L4、L7路由规则;支持百分比灰度方式选择后端服务策略。
sockamp 网格加速能力,以典型的 service mesh 场景为例,使能 sockmap 网格加速能力之后,业务容器和 envoy 容器之间的通信将被ebpf程序短接,通过缩短通信路径从而达到加速效果,对于同节点上 Pod 间通信也能通过 ebpf 程序进行加速。
RISC-V 架构 QEMU 镜像
openEuler 23.09 版本中发布了官方支持的 RISC-V 架构的操作系统。该版本的操作系统底座旨在为上层应用程序提供基础支持,具备高度可定制性、灵活性和安全性。它为 RISC-V 架构的计算平台提供稳定、可靠的操作环境,方便用户进行上层应用的安装和验证,共同推动 RISC-V 架构下软件生态的丰富和质量的提升。
该操作系统底座的功能包括升级到 6.4.0 版本的内核,与主流架构保持一致。
提供稳定的基础系统底座,包括处理器管理、内存管理、任务调度、设备驱动等核心功能,以及常用的工具等。
使用方法请参考在 QEMU 环境中启动 openEuler for RISC-V。
动态完整性度量特性
DIM(Dynamic Integrity Measurement)动态完整性度量特性通过在程序运行时对内存中的关键数据(如代码段)进行度量,并将度量结果和基准值进行对比,确定内存数据是否被篡改,从而检测攻击行为,并采取应对措施。
支持度量用户态进程、内核模块、内核内存代码段数据。
支持将度量结果扩展至 TPM 2.0 芯片 PCR 寄存器,用于对接远程证明。
支持配置度量策略,支持度量策略签名校验。
支持工具生成并导入度量基线数据,支持基线数据签名校验。
支持配置国密 SM3 度量算法。
Kuasar 统一容器运行时特性
Kuasar 是一款支持多种类型沙箱统一管理的容器运行时,可同时支持业界主流的多钟沙箱隔离技术,openEuler 基于 Kuasar 统一容器运行时并结合已有 openEuler 生态中 iSulad 容器引擎和 StratoVirt 虚拟化引擎技术,打造面向云原生场景轻量级全栈自研的安全容器极低底噪、极速启动的关键竞争力。
本次发布的 Kuasar 0.1.0 版本,支持 StratoVirt 类型轻量级虚拟机沙箱,支持通过 K8s+iSulad 创建 StratoVirt 类型的安全容器实例。
支持 iSulad 容器引擎对接 Kuasar 容器运行时,兼容 K8s 云原生生态。
支持基于 StratoVirt 类型轻量级虚拟机沙箱技术创建安全容器沙箱。
支持 StratoVirt 类型安全容器进行资源精准限制管理。
sysBoost 项目
sysBoost 是一个为应用进行系统微架构优化的工具,优化涉及汇编指令、代码布局、数据布局、内存大页、系统调用等方面。
二进制文件合并:目前只支持全静态合并场景,将应用与其依赖的动态库合并为一个二进制,并进行段级别的重排,将多个离散的代码段/数据段合并为一个,提升应用性能。
sysBoost 守护进程服务:sysBoost 使用注册 systemd 服务的方式使性能开箱最优,系统启动后,systemd将会拉起sysBoost守护进程,sysBoost 守护进程读取配置文件获取需要优化的二进制以及对应的优化方式。
rto二进制加载内核模块:采用新增二进制加载模块的方法,在内核加载二进制时自动加载优化的二进制。
二进制代码段/数据段大页预加载:sysBoost 提供大页预加载的功能,在二进制优化完成后立即将其内容以大页形式加载到内核中,在应用启动时将预加载的内容批量映射到用户态页表,减少应用的缺页中断和访存延迟,提升启动速度和运行效率。
CTinspector 项目
CTinspector 是天翼云科技有限公司基于 ebpf 指令集自主创新研发的语言虚拟机运行框架。基于 CTinspector 运行框架可以快速拓展其应用实例用于诊断网络性能瓶颈点,诊断存储 I/O 处理的热点和负载均衡等,提高系统运行时诊断的稳定性和时效性。
采用一个 ebpf 指令集的语言虚拟机 Packet VM,它最小只有 256 字节,包含所有虚拟机应有的部件:寄存器、堆栈段、代码段、数据段、页表。
Packet VM 支持自主的 migration,即 packet VM 内的代码可以调用 migrate kernel function,以将 packet VM 迁移至它自己指定的节点。
Packet VM 同时支持断点续执行,即 packet VM 迁移至下一个节点后可以沿着上一个节点中断的位置继续执行下一条指令。
CVE-ease 项目
CVE-ease 是天翼云自主创新开发的一个专注于CVE信息的平台,它搜集了多个安全平台发布的各种 CVE 信息,并通过邮件、微信、钉钉等多种渠道及时通知用户。CVE-ease 平台旨在帮助用户快速了解和应对系统中存在的漏洞,在提高系统安全性和稳定性的同时,用户可以通过 CVE-ease 平台查看 CVE 信息的详细内容,包括漏洞描述、影响范围、修复建议等,并根据自己的系统情况选择合适的修复方案。
目前 CVE-ease 主要包括以下功能:
CVE 信息动态获取和整合,实时跟踪多平台 CVE 披露信息,并进整合放入 CVE 数据库。
CVE 信息提取和更新,对收集到的 CVE 信息提取关键信息并实时更新发生变更的 CVE。
CVE 数据保存和管理,自动维护和管理 CVE 数据库。
历史 CVE 信息查看,通过交互方式查询各种条件的 CVE。
CVE 信息实时播报,通过企业微信、钉钉、邮箱等方式实时播报历史CVE信息。
PilotGo运维管理平台特性
PilotGo 是 openEuler 社区原生孵化的运维管理平台,采用插件式架构设计,功能模块轻量化组合、独立迭代演进,同时保证核心功能稳定;同时使用插件来增强平台功能,并打通不同运维组件之间的壁垒,实现了全局的状态感知及自动化流程。
PilotGo核心功能模块包括:
用户管理:支持按照组织结构分组管理,支持导入已有平台账号,迁移方便。
权限管理:支持基于 RBAC 的权限管理,灵活可靠。
主机管理:状态前端可视化、直接执行软件包管理、服务管理、内核参数调优、简单易操作。
批次管理:支持运维操作并发执行,稳定高效。
日志审计:跟踪记录用户及插件的变更操作,方便问题回溯及安全审计。
告警管理:平台异常实时感知。
平台异常实时感知:支持扩展平台功能,插件联动,自动化能力倍增,减少人工干预。
CPDS 支持对容器 TOP 故障、亚健康检测的监测与识别
云原生技术的广泛应用,致使现代应用部署环境越来越复杂。容器架构提供了灵活性和便利性,但也带来了更多的监测和维护挑战。CPDS(容器故障检测系统)应运而生,旨在为容器化应用提供可靠性和稳定性的保障。
集群信息采集:在宿主机上实现节点代理,采用 systemd、initv、ebpf 等技术,对容器关键服务进行监控,采集集群基础服务类数据;对节点网络、内核、磁盘 LVM 等相关信息进行监控,采集集群 OS 类异常数据;采用无侵入的方式在节点、容器内设置跨NS的代理,针对对应用状态、资源消耗情况、关键系统函数执行情况、IO 执行状态等执行异常进行监控,采集业务服务异常类数据。
集群异常检测:处理各节点原始数据,基于异常规则对采集的原始数据进行异常检测,提取关键信息。同时基于异常规则对采集数据进行异常检测,后将检测结果数据和原始据进行在线上传,并同步进行持久化操作。
节点、业务容器故障/亚健康诊断:基于异常检测数据,对节点、业务容器进行故障/亚健康诊断,将分析检测结果进行持久化存储,并提供 UI 层进行实时、历史的诊断数据查看。
EulerMaker 构建系统
EulerMaker 构建系统是一款软件包构建系统,完成源码到二进制软件包的构建,并支持开发者通过搭积木方式,组装和定制出适合自己需求的场景化 OS。主要提供增量/全量构建,分层定制与镜像定制的能力。
增量/全量构建:基于软件包变化,结合软件包依赖关系,分析影响范围,得到待构建软件包列表,按照依赖顺序并行下发构建任务。
构建依赖查询:提供工程中软件包构建依赖表,支持筛选及统计软件包依赖及被依赖的软件包内容。
分层定制:支持在构建工程中,通过选择与配置层模型,实现对软件包的patch,构建依赖,安装依赖,编译选项等内容的定制,完成针对软件包的场景化定制。
镜像定制:支持开发者通过配置 repo 源,生成 iso、qcow2、容器等 OS 镜像,并支持对镜像进行软件包列表定制。