4 ms·
Systemd in my opinion is a great idea with bad implementation like polkit. It is needed as modern systems are dynamic so global system state keep changes variou
by marcthe12 7y ago
Systemd in my opinion is a great idea with bad implementation like polkit. It is needed as modern systems are dynamic so global system state keep changes various types of events suck device, path, socket, ipc calls, network, etc.
There are 3 ways to deal with this:
> Assume things are static or hack the support. Sysvint and openrc does this. It tends to hacky as you are create a static setting in a dynamic environmet. This is analogous to using synchronous api to deal with async operations.
> Create a monolithic suite of daemons which handle the state as internal api. Example is systemd and launchd. It tend to be feature creep as you can't replace internal component so you need to deal every use case.
> Have state daemon with each class of state and event is handle independently but a protocol to make sure state is share properly. No init I know of does this.
A great example is if you want do some recuring action on an external network drive. The service manager must know the program the has been run. the Timer program must know if the drive has been mounted. The mount manager must know the network is on or off. The network manager must know if the device interface is on or off. So there is complex dep trail which is very dynamic. the 3rd option is best but 2nd is a compromise and thats what systemd does.
EDIT: Fixed the formating
- blt 7y agoI know nothing about init systems, but I hope someone well-informed can comment on your idea. It sounds interesting.