blob: abe2164d91f26e1aa8a543f0568e3b1240a273bd [file] [log] [blame] [view]
# sysmgr
Reviewed on: 2020-03-19
sysmgr is one of the two major pieces of the v1 Component Runtime (appmgr being
the other). It is responsible for hosting the 'sys' realm/environment that
contains 'global' system services. Most components on Fuchsia today still run
under the 'sys' realm (until they are migrated to the newer v2 Component
Runtime) though there are many components run in child realms under 'sys', such
as components launched and managed by the Modular framework.
This application runs quite early in the Fuchsia boot process. See the [boot
sequence](/docs/concepts/framework/boot_sequence.md)
for more information.
sysmgr is designed to be fairly robust. If any of the services dies, they
will be restarted automatically the next time an application attempts to
connect to that service.
By default, sysmgr reads all configuration files from `/config/data/`. The
configuration format as well as instructions for adding to the sysmgr
configuration are [documented here](sysmgr-configuration.md).
## Building
This project is typically included in Fuchsia builds by default, but it can be
added to a build by adding `--with //src/sys/sysmgr` to the `fx set`
invocation.
## Running
Sysmgr will be running on any system with [appmgr](../appmgr/README.md).
## Testing
Config unit tests are available in the `sysmgr_tests` package.
```
$ fx test sysmgr_tests
```
Integration tests are available in the `sysmgr-integration-tests` package.
```
$ fx test sysmgr-integration-tests
```
## Source layout
The entrypoint is located in `main.cc`, and all code lives in top-level `.cc`
and `.h` files.