7 ms·
You might want static linking, but static link semantics are still stuck in 1978. We really need to teach the static linker a bunch of tricks that the dynamic
by cryptonector 3y ago
You might want static linking, but static link semantics are still stuck in 1978. We really need to teach the static linker a bunch of tricks that the dynamic linker knows.
Also, as u/singron notes, a debugger can do to a statically linked executable everything that TFA's unicorns.so can do. Static linking only makes that a wee bit harder, not that much harder, and recall that once a unicorns executable is published then the fact that static linking made it harder up to that time becomes completely irrelevant.
- Dwedit 3y agoMeanwhile in Windows land, "static linking" is very much a thing, but it means you dynamically link only to the basic Windows API libraries (Kernel32, User32, Gdi32, Ole32, Advapi32, etc...). You can't have a windows program that doesn't have some way to import API functions. System call numbers are shuffled with every version change of Windows.
- marcosdumay 3y ago> You might want static linking Personally, I really want to go the other way around, with microkernel-like userspace services. That way everybody can drop the pretense that the software author did any verification on his dependencies, and we can add real access controls to the ABI. But yeah, the current situation is close to the worst possible one. It would improve if we change things on any direction at all.
- cryptonector 3y ago> Personally, I really want to go the other way around, with microkernel-like userspace services. Yes! This requires very small protocols. Indeed, systemd has such a tiny protocol, and sshd did not need to link to libsystemd to use that protocol, but linking with libsystemd was what Debian had chosen to do.
- marcosdumay 3y agoExcept that when only systemd does it, everybody still keeps the pretense and nobody works on security. And the systemd protocol is made in a way completely unfit for using everywhere. (Not by systemd's fault.)