为什么大多数守护进程都是共享对象

为什么大多数守护进程都是共享对象

在 redhat 上,大多数 systemd 启动的服务都是作为共享对象实现的。为什么会这样呢?

例如:

file /usr/sbin/sshd
file /usr/sbin/squid 
file /usr/sbin/crond 
file /usr/sbin/rsyslogd

所有这些守护进程的输出是ELF 64-bit LSB shared object, x86-64。我可以理解为什么systemd它本身被实现为共享对象。当内核加载它时,用户空间中没有其他共享对象/可执行文件。所以很可能systemd是直接系统调用而不是经过libc

然而,上面列出的守护进程被实现为共享对象而不是可执行文件的原因是什么?

相关内容