<<../_v2_banner.md>>
The component manager is the heart of the component framework. It maintains the component topology, manages component lifecycle, provides components with the capabilities they require at runtime, and keeps them isolated from one another.
The component manager is responsible for starting most processes in the system. It is one of the first processes created when the system boots and it is one of the last processes destroyed when the system shuts down.
The component manager coordinates the execution of all components, beginning with the root component that is launched at boot. The root component then asks the component manager to start other components such as the device manager, filesystems, network stack, and other essential services.
The component manager intermediates all introductions between components at runtime.
For example, when a component connects to a protocol, the component manager validates the request, uses capability routing to find the component that exposes the desired service, starts it if needed, establishes a direct connection between the client and the service, and continues to monitor the relationship so that the client and service are held accountable for their behavior.
The component manager has a highly privileged role in the system. Through intermediation, it makes many critical decisions for system security and stability.
The component manager offers a variety of framework capabilities to components. Components use these capabilities to interact with their environment with the help of the component manager. For more details, see the corresponding capabilities documentation:
The component manager supports a variety of framework extensions that components can implement to integrate new functionality with their environment.