6 .Nd systemd compatibility layer
10 .Nm provides the functionality of hostnamed, localed, timedated and
11 (eventually) logind, four systemd daemons.
13 .Nm systembsd emulates the DBus behavior of several afforementioned
14 systemd daemons by exposing matching interfaces on the system bus. The
15 systembsd executables themselves are run dynamically, as a call to a
16 DBus method/property listed in a .service file will cause DBus to
17 execute the systembsd binary with proper permissions. The resulting
18 proccess, after a period of inactivity, will exit() safely.
20 .Nm systembsd was written to provide compatibility for large codebases
21 (e.g. GNOME) that depend on Linux's systemd. Systemd is decidedly
22 incompatibile on *BSD systems. Systembsd does not intend to bring
23 systemd philosphy or practices to its target platform.
25 Hostnamed manages setting the system's hostnames, which comprise of the
26 dynamic hostname via sethostname(3), the static hostname via
27 sethostname(3) and /etc/myname, and the pretty hostname, a UTF-8 string
28 contained in /etc/machine-info.
30 Hostnamed also handles determining the physical machine's
31 characteristics, which it reciprocates through the Chassis and IconName
32 properties. IconName is a string following the XDG naming specification
33 and is set based off the information from the Chassis property. The
34 Chassis property is a string, one of "desktop", "laptop", "server",
35 "tablet", "handset", "vm" or "container". Chassis determination involves
36 analyzing hwctl, dmesg, and uname output.
38 The remaining Kernel* properties and OperatingSystemPrettyName are
39 analogous to corresponding uname(3) calls. OperatingSystemCPEName is a
40 string following the Common Platform Enumeration specification.
46 Not implemented yet, work ongoing.
50 .Nm systemd-*d will return 0 on success, 1 on failure.
52 systembsd was written as a Google Summer of Code project in 2014,
53 OpenBSD's first year participating.
55 Mentored by Antoine Jacoutot and Landry Breuil.
57 .Nm Ian Sutton <ian@kremlin.cc>