From 467ec790f4a4ac05c16e8556b1e998d05cf03905 Mon Sep 17 00:00:00 2001 From: Davin McCall Date: Wed, 18 Nov 2015 17:13:05 +0000 Subject: [PATCH] Documentation updates --- README | 7 +++++++ doc/COMPARISON | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 doc/COMPARISON diff --git a/README b/README index ec7bb54..cf1a03a 100644 --- a/README +++ b/README @@ -19,6 +19,13 @@ service, and re-start it if it dies. It does this in an intelligent way, first "rolling back" all dependent services (which it will later re-start, if configured to do so). +Dinit is designed to work on POSIXy operating systems such as Linux and +OpenBSD. It is written in C++ and uses the "libev" event handling library. + +See doc/COMPARISON for a comparison of Dinit with similar software packages. + +The primary author of Dinit is Davin McCall . + Introduction to services =-=-=-=-=-=-=-=-=-=-=-=- diff --git a/doc/COMPARISON b/doc/COMPARISON new file mode 100644 index 0000000..f6a70e9 --- /dev/null +++ b/doc/COMPARISON @@ -0,0 +1,48 @@ +Comparison of Dinit with other supervision / init systems +========================================================= + +This is intended to be an objective description of the differences between Dinit +and several other similar software packages. + + +OpenRC (Gentoo) +-=-=-=-=-=-=-=- +The OpenRC system used in Gentoo Linux is a dependency-managing service supervision +system with funcionality similar in some respects to Dinit. It provides parallel +startup of services (like Dinit). Compared to Dinit: + - OpenRC is configured using, and relies largely on, shell scripts + - OpenRC cannot be used as a direct replacement for /sbin/init; instead it is + intended that OpenRC be started by init. + - Although the build system seems to have some support for BSD OSes, it did not + build successfully on OpenBSD when tested (revision 33d3f33). + + +Systemd +-=-=-=- +Systemd is probably the most widely used init system on Linux as of the last year +or two. Compared to Dinit: + - Systemd provides a range of functionality not provided by Dinit, such as: + - setting UID, priority, and other attributes of the service process. Dinit does + not support this yet. + - seat/session management + - syslogd replacement (or at least, partial replacement) + - ability to run tasks at certain times + - inetd replacement (lazily launch services to handle connection to IP ports) + - asynchronous filesystem check/mount + - control group (cgroup) / container management + - system time management + Some of this functionality can be found in other daemons/packages which can be + be used to supplement the functionality of Dinit. + - Systemd running in "system" mode does not properly support running with a PID + other than 1 [1]. That is, it must replace /sbin/init. Systemd can however be run in + "user" mode where it (most likely) provides the same level of functionality of + Dinit, though in a more complex package. + - Systemd exposes a D-Bus API. + - Systemd makes no attempt to be portable to operating system kernels other than + Linux. The maintainers consider it infeasible to port to non-Linux-based OSes + and will refuse patches designed to do so [2]. Dinit, by comparison, strives to be + portable. + +[1] http://freedesktop.org/software/systemd/man/systemd.html as at 18/11/2015 +[2] http://freedesktop.org/wiki/Software/systemd/InterfacePortabilityAndStabilityChart/ + as at 18/11/2015 -- 2.25.1