关键特性
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:当前,欧拉和AI深度结合,一方面使用基础大模型,基于大量欧拉操作系统的代码和数据,训练出EulerCopilot,初步实现代码辅助生成、智能问题智能分析、系统辅助运维等功能,让openEuler更智能。
智能问答:openEuler Copilot System智能问答平台目前支持web和智能shell两个入口。openEluer Copilot System中的RAG技术能更强的适应多种文档格式和内容场景,在不为系统增加较大负担的情况下,增强问答服务体验。通过片段关系提取、片段衍生物构建、OCR等语料治理手段,增强问答服务在多轮对话、内容完整性和图文展示上的体验。
相关使用方式请参考openEuler Copilot System 智能问答用户指南
智能调优:openEluer Copilot System 智能调优功能目前支持智能shell入口。 在上述功能入口,用户可通过与openEluer Copilot System进行自然语言交互,完成性能数据采集、系统性能分析、系统性能优化等作业,实现启发式调优。
智能诊断:
- 巡检:调用Inspection Agent,对指定IP进行异常事件检测,为用户提供包含异常容器ID以及异常指标(cpu、memory等)的异常事件列表。
- 定界:调用Demarcation Agent,对巡检结果中指定异常事件进行定界分析,输出导致该异常事件的根因指标TOP3。
- 定位:调用Detection Agent,对定界结果中指定根因指标进行Profiling定位分析,为用户提供该根因指标异常的热点堆栈、热点系统时间、热点性能指标等信息。
智能部署:openEuler Copilot System目前支持通过自然语言调用环境资源,在本地协助用户基于实际物理资源拉取容器镜像,并且建立适合算力设备调试的开发环境。 当前版本支持三类容器,并且镜像源已同步在dockerhub发布,用户可手动拉取运行:
- SDK层:仅封装使能AI硬件资源的组件库,例如:cuda、cann等。
- SDK + 训练/推理框架:在SDK层的基础上加装tensorflow、pytorch等框架,例如:tensorflow2.15.0-cuda12.2.0、pytorch2.1.0.a1-cann7.0.RC1等。
- SDK + 训练/推理框架 + 大模型:在第2类容器上选配几个模型进行封装,例如llama2-7b、chatglm2-13b等语言模型。
openEuler Embedded
openEuler Embedded 围绕工业和机器人领域持续深耕,通过行业项目垂直打通,不断完善和丰富嵌入式技术栈和生态。openEuler 22.03 LTS SP4 Embedded 支持嵌入式虚拟化弹性底座,提供 Jailhouse 虚拟化方案、openAMP 轻量化混合部署方案,用户可以根据自己的使用场景选择最优的部署方案。同时支持 ROS humble 版本,集成 ros-core、ros-base、SLAM 等核心软件包,满足 ROS2 运行时要求。未来 openEuler Embedded 将协同 openEuler 社区生态伙伴、用户、开发者,逐步扩展支持 RISC-V、龙芯等芯片架构,丰富工业中间件、ROS 中间件、仿真系统等能力,打造嵌入式领域操作系统解决方案。
- 南向生态: openEuler Embedded Linux当前主要支持ARM64、x86-64、ARM32、RISC-V等多种芯片架构,未来计划支持龙芯等架构,从24.03 版本开始,南向支持大幅改善,已经支持树莓派、海思、瑞芯微、瑞萨、德州仪器、飞腾、赛昉、全志等厂商的芯片。
- 嵌入式弹性虚拟化底座 :openEuler Embedded的弹性虚拟化底座是为了在多核片上系统(SoC, System On Chip)上实现多个操作系统共同运行的一系列技术的集合,包含了裸金属、嵌入式虚拟化、轻量级容器、LibOS、可信执行环境(TEE)、异构部署等多种实现形态。
- 混合关键性部署框架: openEuler Embedded打造了构建在融合弹性底座之上混合关键性部署框架,并命名为MICA(MIxed CriticAlity),旨在通过一套统一的框架屏蔽下层弹性底座形态的不同,从而实现Linux和其他OS运行时便捷地混合部署。依托硬件上的多核能力使得通用的Linux和专用的实时操作系统有效互补,从而达到全系统兼具两者的特点,并能够灵活开发、灵活部署。
- 北向生态:600+嵌入式领域常用软件包的构建;提供软实时能力,软实时中断响应时延微秒级;实现欧拉嵌入式设备之间互联互通、欧拉嵌入式设备和 OpenHarmony 设备之间互联互通;支持iSula容器、支持生成嵌入式容器镜像、支持Kubeedge。
- UniProton硬实时系统:是一款实时操作系统,具备极致的低时延和灵活的混合关键性部署特性,可以适用于工业控制场景,既支持微控制器 MCU,也支持算力强的多核 CPU。目前关键能力如下:
- 支持Cortex-M、Arm64、x86_64架构,支持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控制台和网络。
DevStation 开发者工作站支持
DevStation 是一款openEuler专为开发者打造的 Linux 桌面发行版,旨在简化软件开发和部署流程。它预装了广泛的开发工具和 IDE,支持多语言编程,适合前后端、全栈开发者使用。DevStation 集成了容器技术(如 Docker、Isula),帮助开发者快速搭建测试环境。针对 AI 开发,它内置了 TensorFlow 和 PyTorch 等框架,并优化了对硬件加速器的支持。DevStation 提供图形化编程环境、调试和自动化测试工具,为开发者提供从初学到高级项目的全方位支持,是一款高效、便捷的开发利器。
- 开发者友好的集成环境:发行版预装了广泛的开发工具和 IDE,如 VS Code系列等。支持多种编程语言,满足从前端、后端到全栈开发的需求。
- 软件包管理与自动部署:提供简单便捷的软件包管理工具,支持通过一键安装和更新多种开发环境。同时,内置 Docker、Isula 等容器技术,方便开发者进行应用容器化与自动化部署。
- 图形化编程环境:集成了图形化编程工具,降低了新手的编程门槛,同时也为高级开发者提供了可视化编程的强大功能。
- AI开发支持:针对 AI 领域的开发者,预装了 TensorFlow、PyTorch 等机器学习框架,同时优化了硬件加速器(如 GPU、NPU)的支持,提供完整的 AI 模型开发与训练环境。
- 调试与测试工具:内置 GDB、CUnit、gtest、perf等调试工具和测试、调优工具,帮助开发者快速调试和自动化测试,提升开发效率。
- 版本控制和协作:集成 Git、SVN 等版本控制工具,并支持多种远程协作工具,如 Slack、Mattermost 和 GitLab,使得团队开发和远程协作更加顺畅。
- 安全与合规检查:提供安全扫描和代码合规性检查工具,帮助开发者在开发阶段就能发现并修复潜在的安全漏洞和代码问题。
epkg新型软件包
epkg是一款新型软件包,支持普通用户在操作系统中安装及使用。新的软件包格式相比现有软件包,主要解决多版本兼容性问题,用户可以在一个操作系统上通过简单地命令行安装不同版本的软件包。同时支持环境环境实现环境的创建/切换/使能等操作,来使用不同版本的软件包。目前epkg主要支持非服务类的软件包的安装和使用。
- 多版本兼容:支持普通用户安装,支持安装不同版本的软件包,不同版本的同一软件包安装不冲突。使能用户在同一个节点上,快速安装同一软件包的不同版本,实现多版本软件包的共存。
- 环境管理:支持环境环境实现环境的创建/切换/使能等操作,用户通过环境的切换,在环境中使用不同的channel,实现在不同的环境中使用不同版本的软件包。用户可以基于环境,快速实现软件包版本的切换。
- 普通用户安装:epkg支持普通用户安装软件包,普通用户能够自行创建环境,对个人用户下的环境镜像管理,无需特权版本。降低软件包安装引起的安全问题。
LTO for openEuler
LTO(Link-Time Optimization)全称链接时优化,是一项将编译优化延后到链接时进行的编译技术。该技术由于拥有链接时的全程序视角,相比传统编译流程中的单文件编译优化,往往可以提供更多的优化机会,做出更激进的优化决策,带来更强的性能与更小的二进制体积。 LTO 设计的初衷是希望能够在链接时,即拥有跨编译单元的调用信息时,进行编译优化,提供更多的优化机会。为了达到这个目的,LTO 需要将编译优化所需的 IR 信息保留到链接时。在链接时,链接器会调用 LTO 插件,执行全程序分析,生成更加有效的优化决策,再经由编译优化生成更高效的IR,进一步转成包含汇编代码的目标对象文件,最后由链接器完成常规的链接工作。
GCC 14多版本编译工具链支持
为了使能多样算例新特性,满足不同用户对不同硬件特性支持的需求,在 openEuler 24.09 版本推出 openEuler GCC Toolset 14编译工具链,该工具链提供一个高于系统主 GCC 版本的副版本 GCC 14编译工具链,为用户提供了更加灵活且高效的编译环境选择。通过使用 openEuler GCC Toolset 14副版本编译工具链,用户可以轻松地在不同版本的 GCC 之间进行切换,以便充分利用新硬件特性,同时享受到 GCC 最新优化所带来的性能提升。 为了与系统默认主版本 GCC 解耦,防止副版本 GCC 安装与主版本GCC 安装的依赖库产生冲突,openEuler GCC Toolset 14工具链的软件包名均以前缀“gcc-toolset-14-”开头,后接原有GCC软件包名。 此外,为便于版本切换与管理,本方案引入SCL版本切换工具。SCL工具的核心就是会在/opt/openEuler/gcc-toolset-14 路径下提供一个enable脚本,通过注册将 gcc-toolset-14 的环境变量注册到 SCL 工具中,从而可以使用 SCL 工具启动一个新的 bash shell,此 bash shell 中的环境变量即为 enable 脚本中设置的副版本环境变量,从而实现主副版本 GCC 工具链的便捷切换。
内核创新
openEuler 24.09基于 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.09版本新增支持anonymous shmem分配mTHP与支持mTHP的lazyfree,进一步增加内存子系统对于large folio的支持;新增page cache分配mTHP的sysfs控制接口,提供系统级别的开关控制,业务可以按需使用。
MPTCP特性支持: MPTCP协议诞生旨在突破传统 TCP 协议的单一路径传输瓶颈,允许应用程序使用多个网络路径进行并行数据传输。这一设计优化了网络硬件资源的利用效率,通过智能地将流量分配至不同传输路径,显著缓解了网络拥塞问题,从而提高数据传输的可靠性和吞吐量。 目前,MPTCP 在下述网络场景中已经展现出了其优秀的性能:
- 网络通路的选择:在现有的网络通路中,根据延迟、带宽等指标评估,选择最优的通路。
- 无缝切网:在不同类型网络之间切换时,数据传输不中断。
- 数据分流:同时使用多个通道传输,对数据包进行分发实现并发传输,增加网络带宽。
- 在实验环境中,采用MPTCP v1技术的RSYNC文件传输工具展现出了令人满意的效率提升。具体而言,传输1.3GB大小的文件时,传输时间由原来的114.83 s缩短至仅14.35s,平均传输速度由原来的11.08 MB/s提升至88.25 MB/s,可以极大程度的缩减文件传输时间。同时,实验模拟了传输过程中一条或多条路径突发故障而断开的场景,MPTCP在此种场景下可以将数据无缝切换至其他可用的数据通道,确保数据传输的连续性与完整性。
- 在openEuler 24.09中,已经完成了对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.09版本新增对于block size < folio size场景的小buffered IO(<=4KB)的性能优化,性能提升20%。
按需加载支持failover特性 :cachefiles在按需模式下,如果守护进程崩溃或被关闭,按需加载相关的读取和挂载将返回-EIO。所有挂载点必须要在重新拉起 daemon 后重新挂载后方可继续使用。这在公共云服务生产环境中发生时是无法接受的,这样的I/O错误将传播给云服务用户,可能会影响他们作业的执行,并危及系统的整体稳定性。cachefiles failover 特性避免了守护进程崩溃后重新挂载所有挂载点,只需快速重新拉起守护进程即可,用户和服务是不感知守护进程崩溃的。
支持CLANG编译的PGO优化:PGO(Profile-Guided Optimization)是一种编译器反馈优化技术,通过收集程序运行时的信息,指导编译器的优化决策。根据业界经验,对于数据中心大型应用(如MySQL、Nginx、Redis等)通过反馈优化技术优化应用本身和Linux kernel有较好优化效果。经过测试,LLVM PGO可以在Nginx上有20%+性能提升,其中优化kernel提升10+%。
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运行期间的完整性与安全性。
syscare特性增强
SysCare是一个系统级热修复软件,为操作系统提供安全补丁和系统错误热修复能力,主机无需重新启动即可修复该系统问题。 SysCare将内核态热补丁技术与用户态热补丁技术进行融合统一,用户仅需聚焦在自己核心业务中,系统修复问题交予SysCare进行处理。后期计划根据修复组件的不同,提供系统热升级技术,进一步解放运维用户提升运维效率。
- 热补丁制作:用户仅需输入目标软件的源码RPM包、调试信息RPM包与待打补丁的路径,无需对软件源码进行任何修改,即可生成对应的热补丁RPM包。
- 热补丁生命周期管理:SysCare提供一套完整的,傻瓜式补丁生命周期管理方式,旨在减少用户学习、使用成本,通过单条命令即可对热补丁进行管理。依托于RPM系统,SysCare构建出的热补丁依赖关系完整,热补丁分发、安装、更新与卸载流程均无需进行特殊处理,可直接集成放入软件仓repo。
- 内核热补丁与用户态热补丁融合:SysCare基于upatch和kpatch技术,覆盖应用、动态库、内核,自顶向下打通热补丁软件栈,提供用户无感知的全栈热修复能力。
iSula支持NRI插件式扩展
NRI (Node Resource Interface), 是用于控制节点资源的公共接口, 是CRI兼容的容器运行时插件扩展的通用框架。它为扩展插件提供了跟踪容器状态,并对其配置进行有限修改的基本机制。允许将用户某些自定的逻辑插入到OCI兼容的运行时中,此逻辑可以对容器进行受控更改,或在容器生命周期的某些时间点执行 OCI 范围之外的额外操作。iSulad新增对NRI插件式扩展的支持,减少k8s场景下对于容器资源管理维护成本,消除调度延迟,规范信息的一致性。
NRI插件通过请求isula-rust-extension组件中启动的NRI runtime Service服务与iSulad建立连接后,可订阅Pod与Container的生命周期事件:
- 可订阅Pod生命周期事件,包括:creation、stopping和removal。
- 可订阅Container生命周期事件,包括creation、post-creation、starting、post-start、updating、post-update、stopping和removal。
iSulad在接收到k8s下发的CRI请求后,对于所有订阅了对应生命周期事件的NRI插件都发送的请求,NRI插件可在请求中获得Pod与Container的元数据与资源信息。之后NRI插件可根据需求更新Pod与Container的资源配置,并将更新的信息传递给iSulad,iSulad将更新后的配置传递给容器运行时,生效配置。
oeAware 支持本地网络加速
Linux的SMC-D内核特性主要涉及共享内存通信(SMC)在操作系统内部的优化和加速,特别是在进程间通信(IPC)方面的应用。oeAware在这特性基础上做到无感使能,使得tcp传输能够无感加速到smc-d上。
SMC-D引入了loopback设备,作为系统全局设备,可以被所有容器访问,从而加速本地进程间的TCP通信。这种设计使得SMC-D能够在不同的虚拟环境中提供一致的性能表现。
- 高效通信:SMC-D利用内部共享内存(ISM)技术,避免了传统网络通信的开销,从而实现低延迟和高吞吐量的通信。
- 透明替换:SMC-D可以透明地替换现有的TCP协议栈,无需对应用进行大规模修改。
- 自动协商:SMC-D具备自动协商和动态回退到TCP的能力,确保在不同环境下的兼容性和稳定性。 oeAware在这特性基础上做到无感使能,使得tcp传输能够无感加速到smc-d上。
KubeOS支持串、并行多种升级策略、状态更新等声明式API
KubeOS是针对云原生场景而设计、轻量安全的云原生操作系统及运维工具,提供基于kubernetes的云原生操作系统统一运维能力。KubeOS设计了专为容器运行的云原生操作系统,通过根目录只读,仅包含容器运行所需组件,dm-verity安全加固,减少漏洞和攻击面,提升资源利用率和启动速度,提供云原化的、轻量安全的操作系统。KubeOS支持使用kubernetes原生声明式API,统一对集群worker节点OS的进行升级、配置和运维,从而降低云原生场景的运维难度、解决用户集群节点OS版本分裂,缺乏统一的OS运维管理方案的问题。
KubeOS基于统一运维框架新增运维策略:
- KubeOS支持配置运维时间窗口和时间间隔: (1) KubeOS支持在升级/配置时设置时间窗,在指定时间内升级/配置。 (2) KubeOS支持在升级/配置时设置时间间隔,一次升级/配置完成后,间隔指定时间再次下发升级/配置。
- KubeOS支持配置串行或者并行运维策略:并行升级/配置为每次升级/配置会有n个节点(用户指定)同时被下发升级/配置任务(已支持),串行升级/配置为每次升级/配置会有n个节点(用户指定)串行被下发升级/配置任务,当所有节点完成升级/配置后,下发下一批节点。
- KubeOS支持集群OS多版本管理: (1) 支持单个集群内可以有多个os cr,指定多个OS的版本,根据os cr中的nodeselector字段指定的node label和节点进行对应。 (2) 支持在升级/配置的时候根据node label进行升级/配置。
IMA摘要列表支持三方PKI证书导入
IMA,全称 Integrity Measurement Architecture(完整性度量架构),是内核中的一个安全子系统,能够基于策略对通过execve()、mmap()和open()等系统调用访问的文件进行度量,度量结果可被用于本地校验或远程证明,从而实现对系统的文件完整性保护。
IMA Digest Lists(IMA摘要列表)是openEuler对内核原生IMA机制的增强,从openEuler 21.03版本开始支持,通过RPM包构建预生成摘要列表并签名的方式,对整体的性能、安全性和易用性进行提升。
openEuler 24.09版本实现了对导入用户证书的支持,即支持用户在编译内核阶段,预置自定义的签名证书,并在后续的流程中,支持使用自定义证书对摘要列表文件执行签名验证。
构建远程证明统一框架,支持部署远程证明服务
secGear远程证明统一框架是机密计算远程证明相关的关键组件,屏蔽不同TEE远程证明差异,提供Attestation Agent和Attestation Service两个组件,Agent供用户集成获取证明报告,对接证明服务;Service可独立部署,支持iTrustee、virtCCA远程证明报告的验证。
远程证明统一框架聚焦机密计算相关功能,部署服务时需要的服务运维等相关能力由服务部署第三方提供。远程证明统一框架的关键技术如下:
- 报告校验插件框架:支持运行时兼容iTrustee、vritCCA、CCA等不同TEE平台证明报告检验,支持扩展新的TEE报告检验插件。
- 证书基线管理:支持对不同TEE类型的TCB/TA基线值管理及公钥证书管理,集中部署到服务端,对用户透明。
- 策略管理:提供默认策略(易用)、用户定制策略(灵活)。
- 身份令牌:支持对不同TEE签发身份令牌,由第三方信任背书,实现不同TEE类型相互认证。
- 证明代理:支持对接证明服务/点对点互证,兼容TEE报告获取,身份令牌验证等,易集成,使用户聚焦业务。
容器干扰检测,分钟级完成业务干扰源(CPU/IO)识别与干扰源发现
gala-anteater是一款基于AI的操作系统灰度故障的异常检测平台,集成了多种异常检测算法,通过自动化模型预训练、线上模型的增量学习和模型更新,可以实现系统级故障发现和故障点上报。
在线容器高密部署场景下,存在资源无序竞争现象,导致容器实例间相互干扰,使用gala-anteater可以分钟级完成业务干扰源(CPU/IO)识别与干扰源发现,辅助运维人员快速跟踪并解决问题,保障业务Qos。
gala-anteater通过线上线下相结合,利用在线学习技术,实现模型的线下学习,线上更新,并应用于线上异常检测。
- Offline: 首先,利用线下历史KPI数据集,经过数据预处理、特征选择,得到训练集;然后,利用得到的训练集,对无监督神经网络模型(例如Variational Autoencoder)进行训练调优。最后,利用人工标注的测试集,选择最优模型。
- Online: 将线下训练好的模型,部署到线上,然后利用线上真实的数据集,对模型进行在线训练以及参数调优,然后利用训练好的模型,进行线上环境的实时异常检测。
Aops支持智能运维助手
Aops基于EulerCopilot plugins 功能,实现智能运维助手,通过自然语言交互实现cve巡检和配置溯源的功能。
- 统一用户登录中心:Aops和EulerCopilot实现统一用户登录中心authhub,统一用户身份鉴权。
- cve巡检和配置溯源:通过配置cve巡检和配置溯源的业务场景flow模板,支持自然语言对接,实现启发式cve巡检和配置溯源。
微服务性能问题分钟级定界/定位(TCP,IO,调度等)
基于拓扑的根因推导技术提供了大规模集群情况下的故障检测、根因定位服务,新增云原生场景故障定界定位能力,特别是针对网络L7层协议,如HTTPS、PGSQL、MYSQL等。这项技术通过 gala-gopher 和 gala-anteater实现,新增内容提供了更细粒度的故障定界能力,通过这种能力运维团队可以快速定位问题源头,从而提高系统的稳定性和可靠性。该服务主要功能如下:
- 指标采集服务:gala-gopher 通过 ebpf 技术提供网络、IO相关的指标采集上报功能。
- 集群拓扑构建服务:gala-spider 通过接受指标采集服务上报的数据信息,构建容器、进程级别的调用关系拓扑图构建。
- 故障检测服务:gala-anteater通过故障检测模型对应用上报的指标采集进行分类, 判断是否发生异常。
- 根因定位服务:gala-anteater 通过节点异常信息和拓扑图信息, 定位导致此次异常的根因节点。
utsudo项目发布
Sudo 是 Unix 和 Linux 操作系统中常用的工具之一,它允许用户在需要超级用户权限的情况下执行特定命令。然而, 传统 Sudo 在安全性和可靠性方面存在一些缺陷,为此 utsudo 项目应运而生。
utsudo 是一个采用 Rust 重构 Sudo 的项目,旨在提供一个更加高效、安全、灵活的提权工具,涉及的模块主要有通用工具、整体框架和功能插件等。
基本功能
- 访问控制:可以根据需求,限制用户可以执行的命令,并规定所需的验证方式。
- 审计日志:可以记录和追踪每个用户使用 utsudo 执行的命令和任务。
- 临时提权:允许普通用户通过输入自己的密码,临时提升为超级用户执行特定的命令或任务。
- 灵活配置:可以设置参数如命令别名、环境变量、执行参数等,以满足复杂的系统管理需求。
增强功能 utsudo在openEuler 24.09版本中是0.0.2版本,当前版本主要功能有:
- 提权流程:把普通用户执行命令的进程,提权为root权限。
- 插件加载流程:实现了对插件配置文件的解析,以及对插件库的动态加载。
utshell 项目发布
utshell 是一个延续了 bash 使用习惯的全新 shell,它能够与用户进行命令行交互,响应用户的操作去执行命令并给予 反馈。并且能执行自动化脚本帮助运维。
基本功能
- 命令执行:可以执行部署在用户机器上的命令,并将执行的返回值反馈给用户。
- 批处理:通过脚本完成自动任务执行。
- 作业控制:能够将用户命令作为后台作业,从而实现多个命令同时执行。并对并行执行的任务进行管理和控制。
- 历史记录:记录用户所输入的命令。
- 别名功能:能够让用户对命令起一个自己喜欢的别名,从而个性化自己的操作功能。
增强功能 utshell在openEuler24.09版本中是0.5版本,当前版本主要功能有:
- 实现对shell脚本的解析。
- 实现对第三方命令的执行。
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的命中率,提升程序运行的性能。
- 支持SLP转置优化,在循环拆分阶段增强对连续访存读的循环数据流分析能力,同时在SLP矢量化阶段,新增转置操作的分析处理,发掘更多的矢量化机会,提升性能。
- 支持冗余成员消除优化,消除结构体中从不读取的结构体成员,同时删除冗余的写语句,缩小结构体占用内存大小,降低内存带宽压力,提升性能。
- 支持数组比较优化,实现数组元素并行比较,提高执行效率。
- 支持ARM架构下指令优化,增强ccmp指令适用场景,简化指令流水。
- 支持自动反馈优化,使用perf收集程序运行信息并解析,完成编译阶段和二进制阶段反馈优化,提升MySQL数据库等主流应用场景的性能。
麒麟可信镜像构建管理工具
KTIB(Kylin Trust Image Builder)是一个包含静态合规扫描、单步构建镜像、一步构建镜像、镜像管理等组件的自研开源镜像构建工具,为用户提供了全方位的镜像构建解决方案,帮助用户确保镜像的安全性和合规性。
- 快速构建容器镜像rootfs文件系统 (1) KTIB支持自定义构建容器镜像rootfs文件系统。 (2) 用户可以通过配置文件轻松地定制和扩展rootfs,满足不同的业务需求。
- 静态合规扫描 (1) 支持在构建镜像前对Dockerfile 进行静态合规扫描。 (2) 提供默认的扫描策略文件,策略基于CIS规范制定。 (3) 策略文件支持自定义,用户可以根据独立需求,按照官方文档修改策略文件内容,自定义扫描项。 (4) 支持输出JSON 格式的扫描报告和相应的修改建议。
- 单步构建镜像 (1) KTIB 支持在 shell 终端通过命令行逐条执行 Dockerfile 中的指令,如 FROM、COPY、RUN 等。 (2) 这种单步构建的方式方便用户查看和调试每一个构建步骤,有助于排查问题和优化构建过程。 (3) 用户可以针对性地执行特定的构建指令,灵活地控制镜像的构建。
- 一步构建镜像 支持一键式的镜像构建,自动执行Dockerfile 中的所有指令,生成镜像。
- 镜像管理 KTIB支持命令行管理镜像,目前提供推送、拉取、列表、删除、登录等命令。
NDK
NKD(NestOS kubernetes deployer)是一款面向容器云场景的kubernetes集群部署工具,功能涵盖基础设施创建、Kubernetes集群部署以及配置管理等多个方面。
- 支持使用通用OS在libvirt、openstack虚拟化场景下自动化部署基础设施与kubernetes集群、扩展工作节点、销毁基础设施与kubernetes集群。
- 支持使用通用OS在裸金属场景下自动化安装操作系统与部署kubernetes集群、扩展工作节点。
- 支持containerd、cri-o、docker、iSulad容器运行时。
QSemOS-plugin
QSemOS-plugin是国创开发的一套适用于嵌入式OS开发场景插件,包括软实时、硬实时、混合部署三个插件;面向企业和个人开发者提供工程创建、开发、编译、调试、仿真、烧录等嵌入式开发全流程全家桶,帮助开发者迅速构建自定义开发环境和简化开发过程。
- 嵌入式软实时插件: 软实时插件是一个辅助嵌入式软实时操作系统内核、Yocto工程及应用开发的可视化开发工具,可一键实现嵌入式软实时OS(linux内核、bootloader、rootfs、OpenEuler Yocto)和应用(C/C++)开发的可视化辅助工具。同时,用户根据实际场景,通过组合各种工具,形成向导化、可视化集成开发的工具链,提高开发效率的效果。
- 嵌入式混合部署插件: 混合部署插件主要实现OS的部署业务,为了快速部署基于Jailhouse和xvisor框架下的虚拟化环境,在部署前准备好host和guest的配置文件及其相关镜像文件,用户可以通过IDE直接使用。
- 嵌入式硬实时插件: 硬实时插件能够在可视化图形界面下实现UniProton和zephyr实时操作系统的编译、烧录,调试等功能,达到利用工具链结合业务使用需求,提高开发效率。