haader wrote:Hey, mdeininger, don't get discouraged. Please keep up the good work! Honestly i haven't gotten einit to work for me so far, but i'll keep an eye on it.
But to be honest, i guess there are more developers behind upstart right now, so maybe it'll get there faster? What do you think?
Maybe you could also explain what the main focus of einit is, maybe especially compared to upstart and how you will implement the event handling.
Thank you very much.
Hey sure thing

I wasn't so much discouraged as a bit annyed. Not at this discussion, really, I was just cleaning up einit and writing more documentation just now to make it easier to try it out

Next release (first proper beta) is scheduled for the end of this week/start of next week, so i'm hurrying a bit
The main focus of einit is to be fast and to keep a small memory footprint. Also, it's intended for embedded devices, cluster nodes and servers and it'll contain a "just-shuddup-and-get-it-somewhat-running"-mode once it's done. (this should come in handy on headless boxes... i hate it when i boot my server after an update, just to find out it doesn't work, and i have to attach a monitor and keyboard just to find out something wants me to press "y".)
Now, we all know that the ubuntu guys are good at hacking software that "just works", but if we look at the latest ubuntu releases, i'm sure we all agree that they're not exactly being "mild" on hardware resources, am i right?
Also, the ubuntu guys said that one of the primary goals of upstart would be to be compatible with the current sysv init: this is all nice and good for administrators and others that are used to this system, but it produces useless overhead on embedded devices, for example. Now, this could easily be implemented using einit's current module system (v0.01 actually had a module for that), but it's definitely not a high priority on my list.
To sum it up: i want this thing to be fast and small but still "intelligent" ( that's why, for example, things that are to be enabled are specified using abstract "service names", like "xdm": xdm could be anything from gdm over kdm to entrance; whatever works first wins and stays enabled. )
as for those events: einit currently has an internal event systems, but it's only used for user-feedback (and some other internal things): modules emit a "feedback"-event, and feedback modules display appropriate data (or vocalise it... yes, i already added a tts module that uses festival, it's rather handy too).
so, the next step will be to enhance the event-system with more events that can be emitted, so that modules can scan the hardware and network status and they can then emit appropriate events (link change, new hosts available, power failure). then i'll add an interface for this in the configuration file... in a way, that'll be able to replace (x)inetd among other services, just like upstart plans to.
ah, one more thing i should point out: while einit is intended to replace /sbin/init, it is not limited to that function alone. you could run einit like any other ordinary daemon. for example, if i got the xinetd-workalike module done, you could run einit as a standalone xinetd replacement while, for example, the computer is using upstart as its init system...