From 8216cedecbe10e623484c9219080a04934f78bd0 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Sun, 25 Mar 2018 01:00:00 +0100 Subject: [PATCH] Add README file Signed-off-by: David Oberhollenzer --- README | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 README diff --git a/README b/README new file mode 100644 index 0000000..b9b9528 --- /dev/null +++ b/README @@ -0,0 +1,68 @@ + + This directory contains the source code for a tiny init devised for + the Pygos system. + + The main goal of this project is to create a simple framework for: + - system boot up and initialization + - service supervision + + With the additional aims of having something that: + - simply works + - is easy to understand + - is easy to configure and maintain + + + The init process is intended to run on top of Linux and makes use of some + Linux specific features (e.g. signalfd), but if sufficient interest exists, + it should still be possible to make it run on some BSDs or whatever else. + + The init system tries to mimic the concept of unit files from systemd as + those were considered to be a good design choice. + + Right now, the system is in a "basically works" proof of concept stage and + needs some more work to become usable. + + There are plans for *maybe* *eventually* adding support for Linux name + spaces, seccomp filters and cgroups as needed in the medium future. + + + There are already a bunch of similar projects out there that have been + considered for use in the Pygos system. The reason for starting a new + one was mainly dissatisfaction with the existing ones. Other Projects + that have been considered include: + + - systemd + Contains a lot of good ideas, but it is HUGE. It has tons of + dependencies. It implements tons of things that it simply shouldn't. + It has a horrid, "modern", python based, hipster build system. + It's simply too damn large and complex. + + - SystemV init + A bad combination of unnecessary complexity where it isn't needed and a + complete lack of abstraction where it would be needed. Shell script + copy and paste madness. There are reasons people started developing + alternatives (other than "hurr-durr-parallel-boots"). + + - upstart + Seems nice overall, but needlessly big and complex for the intended + use case in Pygos. Would have needlessly added D-Bus to the system. + + - OpenRC + Was already integrated into Pygos. Things turned out to be broken. + Upstream developers did not accept fixes (after ignoring them for weeks + and preferring typo fixes instead). Complaints from other people who + tried to contribute fixes were observed on Github. Complaints from + package maintainers about deteriorating code quality were observed + on the official IRC channel. Documentation is non-existent. + + - daemontools and similar (runnit, s6, minit, ...) + The sixties are over. And even code from that era is more readable. The + source code for those projects should better be tossed out the window and + rewritten from scratch. If you are a first semester CS student and you + hand something like this in as a homework, the best you might get is a + well deserved slap on the back of your head. + + - busybox init + Nice and simple. Probably the best fit if the rest of your user space is + busybox as well. +