ubs-engine.git

module
v0.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 14, 2026 License: MulanPSL-2.0

README

UBS Engine (UB Service Core Engine)

软件定义计算 · 资源按需组合与分配

UBS Engine(UB Service Core Engine, 简称UBS Engine)提供了ubse daemon程序及其相应的SDK开发库。开发者可以利用该SDK访问ubse daemon 提供的服务,从而实现对MEM(内存)等资源的调度与管理,执行关键运维操作。

本项目已在 openEuler 社区开源,欢迎贡献与使用!


📌 快速开始

环境要求
  • 操作系统:推荐 openEuler 24.03 LTS SP3或更高版本
  • 编译工具链:CMake ≥ 3.22, GCC ≥ 9.3
  • 依赖库:详见 构建指导文档
获取源码
git clone https://gitee.com/openeuler/ubs-engine.git
cd ubs-engine
构建项目
# 默认 Release 构建(生产环境)
./build.sh

# Debug 构建(含调试信息)
./build.sh -D

# 构建并生成 RPM 包
./build.sh package

构建产物位于 cmake-build-* 目录下,RPM 包输出至 output/


🧩 核心功能

  • 内存资源池化:将物理内存抽象为可调度资源池。
  • 按需分配与回收:支持细粒度、低延迟的内存分配策略。
  • SDK 支持:提供 C/C++ SDK,便于集成到上层应用。
  • 高可用与安全机制:内置 HA 模块、权限控制与加密支持。

详细功能说明请参阅 API 文档设计架构


📂 项目结构概览

## 📌 快速开始
UBSEngine/
├── 3rdparty                    //第三方软件
├── conf                        //配置文件
├── doc                         //文档
├── scripts                     //脚本
├── src                         
│   ├── include                 //全局头文件
│   ├── apiserver               //北向接口暴露
│   ├── cli                     //cli代码
│   │   ├──ubse_cli_framework   //命令注册和结果回显辅助builder类
|   │   └──ubse_cert            //证书相关
│   │   
│   ├── controllers             //控制器
│   │   ├── include             //头文件  
│   │   ├── mem                 //内存池化控制器
│   │   |    ├── algorithm      //mem调度算法
│   │   │    ├── memcontroller  //内存池化控制器---文件
│   │   │    └── memscheduler   //内存池化调度器---文件
│   │   └── node                //内存池化控制器---节点的采集信息
│   │        └── nodecontroller //内存池化控制器---文件
│   │  
│   ├── framwork                //软件框架
│   │   ├── com                 //通信组件,与hcom对接,线程切换,回调
│   │   ├── config              //配置模块
│   │   ├── context             //上下文模块
│   │   ├── event               //事件中心
│   │   ├── ha                  //ha模块
│   │   ├── http                //http组件
│   │   ├── ipc                 //ipc
│   │   ├── log                 //日志组件
│   │   ├── misc                //杂项:智能指针、锁、环形队列、CRC
│   │   ├── plugin_mgr          //插件管理
│   │   ├── security            //安全组件,开源只需提权,商用版本支持使用KMC加解密
│   │   ├── serde               //序列化反序列化
│   │   ├── thread_pool         //线程池操作库,fram自身系统线程池
│   │   ├── timer               //定时器
│   │   └── xml                 //xml解析处理
│   │   
│   ├── message                 //消息
│   ├── node                    //创建数据链路
│   ├── ras                     //故障处理
│   ├── res_plugins
│   │   ├── syssentry           //syssentry对接
│   │   ├── mti                 //lcne对接
│   │   └── mmi                 //内存资源接口
│   │   
│   └── sdk                     //sdk模块
│       ├── include             //sdk的对外接口声明
│       └── sample              //sdk示例
└── test
    ├── IT
    └── UT

各模块详细说明请查看对应目录下的 README.mddocs 目录


🧪 开发者测试

项目包含完整的单元测试(UT)与集成测试(IT):

# 运行全部测试
./build.sh test

# 仅运行 UT
./build.sh ut

# 运行特定测试用例
./build.sh ut -- --gtest_filter="TestMemScheduler.*"

# 生成代码覆盖率报告(HTML 可视化)
./build.sh ut -C -H
# 启动后终端会输出类似:http://localhost:8000/coverage/index.html

测试开发指南见 单元测试开发指南


📚 文档索引

所有技术文档位于 docs/ 目录,包括:


🤝 参与贡献

我们欢迎社区开发者提交 Issue、PR 或参与讨论!
请先阅读 贡献指南,并遵守 openEuler 社区行为准则。


📄 许可证

本项目采用 Mulan PSL v2 开源许可证。


UBS Engine —— 让硬件资源像软件一样灵活调度。
项目主页:https://gitee.com/openeuler/ubs-engine

Directories

Path Synopsis
src
sdk/go/dlopen
Package dlopen
Package dlopen
sdk/go/engine
Package engine
Package engine
sdk/go/example command
Package main
Package main
sdk/go/urma
Package urma
Package urma

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL