Why does Manjaro use init and systemd?

This is not exactly a support issue. I just did not know where else to put this question. I am currently reading an operating systems book where it is stated that Linux system either use init or systemd as first proces with pid = 1. I was checking this and realized that on Manjaro init is the first process with pid = 1. When call pstree though I see systemd as the first process. This is a little confusing. Is Manjaro running on top of another Linux or is init still used to wait upon zombie processes?

1 Like

Manjaro uses only systemd. However the Pid 1 is started by systemd via /sbin/init which is a softlink to systemd.

3 Likes

I see. For what reason does this softlink exist?

I believe because /sbin/init is traditionally the path of the init process.

2 Likes

It is part of the systemd-sysvcompat comparability package.

1 Like

GNU/Linux can use a whole variety of init systems, but the kernel needs to know what to look for when it initiates userspace, and the UNIX default for PID 1 is init, traditionally located in /sbin. systemd is an init replacement, and therefore the symbolic link is needed to allow the kernel to find it.


Note: Manjaro, like Arch, has adopted the /usr merge, which means that /sbin, /bin and /lib are now all symbolic links to their counterparts under the /usr hierarchy. This allows for all binaries to reside under /usr, which is a directory structure that under normal circumstances ─ updates not included ─ never gets written to, and this in turn allows for /usr to reside on a separate and read-only-mounted filesystem, so that it can be exported to other machines on the local network.

This change away from the traditional UNIX filesystem layout, too, was introduced by the systemd developers, because as technological evoluttion required support for more hardware and technologies, more and more stuff was being added to /lib, requiring the root filesystem to grow larger with every new release, and the root filesystem itself is not normally read-only ─ the boot process requires writing to /etc, and all shell sessions started by the root user also write to the root filesystem, because the root user’s home directory is /root, and it lives on the root filesystem.

If you have your system installed in only a single partition ─ with or without a separate /home ─ then you need not worry about any of the above, and chances are that it’ll all be meaningless to you. But in a UNIX operating system, everything that’s not required for booting can in theory be split off from the root filesystem. I myself always install my systems that way. :wink:

3 Likes

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.