tree: 4f7c60b2d5f59307ef809d3a538e4fc4307f8c7b [path history] [tgz]
  1. BUILD.gn
  2. OWNERS
  3. README.md
  4. app.cc
  5. app.h
  6. config.cc
  7. config.h
  8. config/
  9. integration_tests/
  10. main.cc
  11. meta/
  12. package_updating_loader.cc
  13. package_updating_loader.h
  14. sysmgr-configuration.md
  15. test/
src/sys/sysmgr/README.md

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 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.

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.

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.