blob: ffd802af04001c15e60bd914f32b9c0927b8d6fa [file] [log] [blame] [view]
# Component manager
The component manager is the heart of the component framework. It maintains the
[component topology][doc-topology], manages
[component lifecycle][doc-lifecycle], provides components with the
[capabilities][doc-capabilities] they require at runtime, and keeps them
isolated from one another.
## Booting the system
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.
## Intermediation
The component manager intermediates all introductions between components at
runtime.
For example, when a component connects to a [protocol][capability-protocol], the
component manager validates the request, uses
[capability routing][doc-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.
## Framework capabilities
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:
- [Protocol capabilities][capability-protocol]
- [Directory capabilities][capability-directory]
- [Event capabilities][capability-event]
## Framework extensions
The component manager supports a variety of framework extensions that
components can implement to integrate new functionality with their
[environment][doc-environments].
- [Runners][doc-runners]: Integrate programming language runtimes and
application frameworks.
- [Resolvers][doc-resolvers]: Integrate software delivery systems.
[capability-directory]: /docs/concepts/components/v2/capabilities/directory.md
[capability-event]: /docs/concepts/components/v2/capabilities/event.md
[capability-protocol]: /docs/concepts/components/v2/capabilities/protocol.md
[doc-capabilities]: /docs/concepts/components/v2/capabilities
[doc-capability-routing]: /docs/concepts/components/v2/topology.md#capability-routing
[doc-environments]: /docs/concepts/components/v2/environments.md
[doc-lifecycle]: lifecycle.md
[doc-resolvers]: /docs/concepts/components/v2/capabilities/resolver.md
[doc-runners]: /docs/concepts/components/v2/capabilities/runner.md
[doc-topology]: /docs/concepts/components/v2/topology.md