Introduction
更新时间: 2025/01/07
在Gitcode上查看源码

  • As a full-stack intelligent management software foundation, openUBMC carries core server management technologies such as intelligent O&M, fault diagnosis, and energy conservation. It provides integrated product management capabilities for various server products with different architectures and forms. From the perspective of product integration, openUBMC has the following design goals: 1. Flexible extension and customization for developers: Northbound interfaces support customer extension and customization (Web, Redfish, IPMI). Southbound hardware management supports rapid integration of new hardware and boards through configuration. Component applications support low-code extension of applications and extensions to quickly implement differentiated features. 2. Open and independent software build capabilities: Product developers (system vendors), independent feature developers (ISVs), and individual community developers contribute components to build a component application ecosystem. openUBMC facilitates multi-party collaboration and component sharing, streamlines the release of applications and hardware configuration libraries, and simplifies referencing workflows. Furthermore, it enables rapid tailoring at the component level. 3. Efficient development workflows through tooling: The all-scenario development toolchain integrates customization, development, compilation, debugging, and product-level simulation to reduce costs and boost efficiency.

Flexible Extension and Customization

  • openUBMC utilizes a comprehensive component-based architecture where all components follow a unified build model. Shared resource interface specifications are defined via D-Bus to separate interfaces from implementations, realizing decoupling between components for the development system. The implementation of interfaces allows components to achieve convenient customization and resource access. Northbound interfaces and southbound hardware management access shared resources via configuration-based structures, enabling rapid integration and extension.

Open and Independent Software Building

  • The Conan package manager is introduced into the openUBMC build strategy. It encapsulates common build frameworks (such as CMake, Make, Autotools, Meson, and custom build functions implemented via Python scripts) to provide a unified build perspective (building, publishing, and downloading) and a Conan repository for storing build scripts and artifacts.
  • Developers can extend their components flexibly based on D-Bus and assemble them using components provided by the open source community. These components are referenced via unified configuration files provided by the build framework. After secondary building by the build system and product verification, an HPM product package is generated that can be recognized and deployed in the openUBMC environment.

Efficient Development Workflows through Tooling

  • While a component-based architecture provides superior decoupling and flexible extension, it faces pressure regarding environment deployment and version dependencies. To address this, openUBMC provides a one-stop development platform with unified engineering tools, constraints, and best practices. It offers developers key capabilities such as unified integrated development commands, configuration strategies, and push-button environment initialization, significantly reducing product development costs.
  • Furthermore, openUBMC provides developers with a flexible and customizable visual configuration tool. This includes common operation modules like data models, interface extension configurations, and hardware self-description models. It also supports syntax correctness, consistency checks, and dependency management for each model. Advanced capabilities such as product simulation verification and multi-person collaborative configuration are also continuously evolving.