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.
Prerequisites
What you'll learn
- Fuchsia component design principles
- Declaring components and capabilities
- Testing and debugging a component
What you'll need
- A development machine running Linux
- Fuchsia emulator (FEMU)
- A successful Fuchsia build
configured with
fx set workstation_eng.x64