- Source code:
syndicate-server program has a number of closely-related functions. In many ways, it is a
reification of the system layer concept itself.
A root system bus service for use by other programs. In this way, it is analogous to D-Bus.
A general-purpose service dependency tracking facility.
A gatekeeper service, for exposing capabilities to running objects as (potentially long-lived) macaroon-style "sturdy references", plus TCP/IP- and Unix-socket-based transports for accessing capabilities through the gatekeeper.
Process startup and supervision services for running external programs.
The program can also be used as an "inferior" bus. For example, there may be a per-user bus, or a per-session bus, or both. Each bus would appropriately scope the lifetime of its supervised processes.
Finally, it can be used completely standalone, outside a Synit context.
synit-pid1 program invokes
syndicate-server like this:
/usr/bin/syndicate-server --inferior --config /etc/syndicate/boot
The first flag,
--inferior, tells the server to expect to be able to communicate on its
stdin/stdout using the standard wire protocol. This lets
the community of actors running within the system dataspace.
The second flag,
--config /etc/syndicate/boot, tells the server to start monitoring the
directory tree rooted at
/etc/syndicate/boot for changes. Files whose names end with
within that tree are loaded as configuration script files.
Almost all of Synit is a consequence of careful use of the configuration script files in