blob: 770c8d83567a4b597b0650fe13ba3192840de707 [file] [log] [blame] [view]
# Fuchsia components
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.
<aside class="key-point">
<b>Legacy components</b>
<p>This section focuses on modern components whose manifest declarations are
written in component manifest language (CML). The legacy framework based on
<code>appmgr</code> and declared using CMX manifests is not covered here.
<p>For more details on the legacy component framework, see
<a href="/docs/concepts/components/v1">legacy components</a>.
</aside>
## Prerequisites
* [Introduction to Fuchsia](/docs/get-started/learn/intro/README.md)
* [Building Fuchsia](/docs/get-started/learn/build/README.md)
## 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 or macOS.
* A configured build environment with the
[Fuchsia source code](/docs/get-started/get_fuchsia_source.md).
* A successful build of `workstation.qemu-x64`.