Architecture
Understand how OpenBMC is designed and how its components work together.
What You’ll Learn
- OpenBMC’s overall architecture and design philosophy
- The D-Bus communication system that connects all services
- State management for BMC, chassis, and host
- How to navigate the codebase and find components
Key Concepts
D-Bus: The Nervous System
OpenBMC uses D-Bus as the central communication backbone. All services expose their data and functionality through D-Bus interfaces, enabling:
- Loose coupling between components
- Dynamic service discovery
- Language-agnostic communication
- Easy debugging and introspection
Phosphor Services
The “phosphor-*” repositories contain the core OpenBMC services:
- phosphor-state-manager: System state control
- phosphor-logging: Event and error logging
- phosphor-dbus-interfaces: Standard interface definitions
- And many more…
Guides in This Section
| Guide | Description | Difficulty |
|---|---|---|
| OpenBMC Overview | Architecture, build system, community | Beginner |
| D-Bus Fundamentals | D-Bus concepts and usage | Beginner |
| State Management | BMC/Chassis/Host states | Intermediate |
| Custom D-Bus Services | Build your own D-Bus service with sdbus++ | Intermediate |
| Systemd Boot Ordering | Service dependencies and boot sequence | Intermediate |
Prerequisite Knowledge
Before diving into architecture:
- Complete the Getting Started section
- Have a working QEMU environment
- Basic understanding of Linux services (systemd)