Skip to content

Support Matrix

netbsduser edited this page Sep 27, 2021 · 11 revisions

Support Matrix

InitWare's features vary across its supported platforms. Enumerated below are details on which features are supported on which platforms:

Support Matrix
Platform Min. ver. Notify Tracking System Auxiliary Session
NetBSD 9.0 Datagram/Implicit CGrpFS Yes Yes Yes
FreeBSD 13.0 Datagram/Implicit CGrpFS Yes Yes Yes
DragonFly BSD 5.8 Datagram/Explicit None [3] No Not recently tested No
OpenBSD 6.9 Insecure [1] CGrpFS No Yes No [2]
macOS 10.12 Insecure [1] CGrpFS No Not recently tested No
GNU/Linux 3.6 Datagram/Implicit CGroup Yes Yes Yes
[1] (1, 2) OpenBSD and macOS have no way to determine the credentials of the sender of a datagram in the UNIX domain.
[2] OpenBSD doesn't use PAM, but rather BSD/OS's BSD Auth subsystem. We maun write a BSD Auth module to handle session setup.
[3] DragonFly BSD doesn't have FUSE which CGrpFS uses. A port of CGrpFS to the PUFFS framework will help alleviate this in the future.

Note that while InitWare was ported to macOS and DragonFly BSD, it has not recently been tested on these platforms; it may not build or work right at the moment.

Explanation

SD-Notify

This is the kind of sd_notify(3) interface supported. The three kinds are:

  • Datagram/Implicit: Uses a datagram socket with implicit credential passing.
  • Datagram/Explicit: Uses a datagram socket with explicit credential passing.
  • Insecure: Uses a datagram socket without credential passing. Insecure as the sender reports their own PID, and this could be falsified.

Datagram/Implicit is binary-compatible with systemd's interface, while Datagram/Explicit and Insecure are source compatible with systemd's interface only if the provided sd_notify(3) functions are used.

Tracking

Whether the service manager can track processes across forks, including notification on their exit. Either:

  • CGroup: CGroups are used.
  • CGrpFS: The CGrpsFS FUSE filesystem is used, which internally uses Kernel Queues, attaching a PROC event filter to watched processes to provide tracking of forks and exits.
  • None: No advanced process tracking is available.

System

Whether InitWare may run as system manager.

Auxiliary

Whether InitWare may run as an auxiliary service manager under another init system.

Session

Whether InitWare's session manager may run.

Clone this wiki locally