blob: d45d37a9661114213b4544d63755aef16a687bec [file] [log] [blame] [view]
A component is a program that runs on Fuchsia in its own sandbox.
Each component is a composable module that interacts with other components
through their capabilities. All software on Fuchsia is defined as a component
except for the kernel image, bootstrapping processes, and the Component Manager.
Fuchsia's component framework is responsible for running nearly all user space
software in the system. The Component Manager is a system process that coordinates
the execution and lifecycle of all component instances, maintains the component
topology, provides components with their capabilities, and keeps them isolated
from one another.
Components obtain privileges to access various parts of the wider system through
capabilities. Each component can declare new capabilities that they offer to the
system and capabilities provided by other components (or the framework) that
they require to function. Component Manager resolves and validates all capability
requests between components to ensure they match capabilities that the component
has been properly granted.