Tom Horsley writes:
On Thu, 19 Jan 2017 10:41:41 -0500
Matthew Miller wrote:
> I don't think that's really a better question, because actually most of
> the complex other stuff _does_ happen in other processes. Take a look
> at /usr/lib/systemd for a variety of discrete parts.
>
> There are plenty of things which could be improved in systemd, but I
> don't see what tilting at entirely imaginary windmills accomplishes.
An old system:
root@ubuntu8d04x:~# ldd /sbin/init
linux-vdso.so.1 => (0x00007fff8b3ff000)
libc.so.6 => /lib/libc.so.6 (0x00007ff582d2a000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff58308c000)
A new system:
[root@tomh ~]# ldd /usr/lib/systemd/systemd
linux-vdso.so.1 (0x00007ffc78d2b000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fe219ddd000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007fe219bd8000)
librt.so.1 => /lib64/librt.so.1 (0x00007fe2199cf000)
libseccomp.so.2 => /lib64/libseccomp.so.2 (0x00007fe21978e000)
libpam.so.0 => /lib64/libpam.so.0 (0x00007fe21957f000)
libaudit.so.1 => /lib64/libaudit.so.1 (0x00007fe219356000)
libkmod.so.2 => /lib64/libkmod.so.2 (0x00007fe219140000)
libmount.so.1 => /lib64/libmount.so.1 (0x00007fe218ef6000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fe218cde000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe218ac2000)
libc.so.6 => /lib64/libc.so.6 (0x00007fe218700000)
/lib64/ld-linux-x86-64.so.2 (0x0000563248d57000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fe21848c000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fe218288000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007fe218083000)
libcap-ng.so.0 => /lib64/libcap-ng.so.0 (0x00007fe217e7c000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fe217c56000)
libz.so.1 => /lib64/libz.so.1 (0x00007fe217a40000)
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fe2177fc000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fe2175f7000)
Doesn't look imaginary to me.
And before someone starts claiming that /usr/lib/systemd/systemd is not
/sbin/init (it is), or that most of these are indirect dependencies: nope,
about half of these are direct required for PID 1. Scary.
[root@octopus ~]# objdump -p /sbin/init | grep NEED
NEEDED libsystemd-shared-231.so
NEEDED libselinux.so.1
NEEDED librt.so.1
NEEDED libseccomp.so.2
NEEDED libpam.so.0
NEEDED libaudit.so.1
NEEDED libkmod.so.2
NEEDED libmount.so.1
NEEDED libgcc_s.so.1
NEEDED libpthread.so.0
NEEDED libc.so.6
VERNEED 0x000000000000a3fc
VERNEEDNUM 0x0000000000000007
A bug in any of those (including the indirect dependencies) is going to
bring down the whole house of cards.
And it's going to be FUN when an update to libpcre results in a completely
unbootable brick (not meant to diss libpcre, it's a very dependable library,
but crap happens, and when it does, it won't be libpcre that'll be held
responsible for the fallout).