mirror of
https://github.com/pygos/init.git
synced 2024-11-25 04:20:42 +01:00
Add README file
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
This commit is contained in:
parent
1b3b98135e
commit
8216cedecb
1 changed files with 68 additions and 0 deletions
68
README
Normal file
68
README
Normal file
|
@ -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.
|
||||
|
Loading…
Reference in a new issue