systemd
pros of systemd:
- faster boot process - flexible and easy to adapt new custom items - simple interface - fancy additional features.
cons of systemd:
- personality conflicts and leadership issues - feature creep and software bloat - logs are stored in binary - too many interlocking dependencies - acts like its own mini os - hard to replace, avoid, or use in part
How does systemd work?
All the items that can operate together start up together in parallel which makes the boot process faster. it uses dependencies between units.
poweroff.target
Halts the system (run level 0)
init process
The first user lever process that runs until the system shuts down. It starts all processes needed for logging in.
What was the problem with sysvinit?
The main issue was that it was too slow for modern computers.
target
a package of units that run collectively
graphical.target
graphical session. starts up pretty much all services. ( like run level 5)
SysVinit was designed for __________, barely rebooted. Which was why fast and efficient start up was not a priority.
mainframes
run level 3
multi user, NFS and network, only text login
multi-user.target
multi-user mode w/ text console
run level 2
multi-user, no NFS, only text login
run level 5
multi-user, with NFS and network, graphical login w/ x or wayland
which run level was standard?
run level 5
run level S,s
same as 1
run level 1
single user mode
rescue.target
single user mode( like run level 1)
sound.target
started when a sound card is detected
suspend.target
suspend machine
default.target
symlink to either multi-user.target or graphical.target ( pick 1 to for start up)
run level 0
system in halt state.
The init process always gets a PID of
1
sytemd features
1. socket listening 2. Every executed process gets its own cgroup (currently by default in the debug subsystem, since that subsystem is not otherwise used and does not much more than the most basic process grouping), and it is very easy to configure systemd to place services in cgroups that have been configured externally, for example via the libcgroups utilities. 3. As mentioned, we provide compatibility with SysV init scripts.
run levels
In UNIX and Linux systems, runlevels indicate the type of state the system is in ( a mode or operation a unix would run in [0-6]
What is SysVinit?
It is an older init process that loads tasks into system memory in the same order as originally specified.
How to did SysVinit work?
It ran a series of scripts that setup a number of systems and processes.
How did Sysvinit know which process/system to setup?
It uses runlevels
$ runlevel
displays the current run level.
sudo /sbin/telnit 5
changes a run level to 5
run level 4
not used [custom]
What happens when you change run levels with telnit?
old items that were not in the new level would be shut down. Then all the items for the new run level would start up.
hibernate.target
puts machine in hibernation
run level 6
reboots the system
reboot.target
reboots the system ( run level 6)
what does sytemd use instead of run levels?
targets
Telnit
used to change the level of a system