Progress on Syndicate at the System Layer
I’ve been making good progress on my current overarching project, Structuring the System Layer with Dataspaces.
I’ve written a few scripts to create an initrd
from Alpine Linux
packages (based on my experience working for the
FRμIT testbed project), with a custom
init
script that installs the system onto a (virtual) hard disk and
configures it for booting.
The second-stage init
is just syndicate-server
, configured to start system services that
self-assemble into
the correct startup ordering as a result of monitoring their
dependencies using assertions in the dataspace.
I’ve also been studying the various pieces of existing system layers (like s6, systemd, SysV init, inetd and so on) to try to map the design landscape a bit.
In addition, I’ve explored use of PF_NETLINK
sockets to subscribe to
kernel-originated device plug-and-play events (like udev
does). It
seems straightforward.
The things I’ve written as a result of all this aren’t quite ready for public viewing yet. I’ll post again when the repository is available.