3 ms·
> In which ways is OpenBSD more in control of userspace applications, and in which ways is Linux more loosely coupled? One of the major differences between Uni
by merlincorey 7y ago
> In which ways is OpenBSD more in control of userspace applications, and in which ways is Linux more loosely coupled?
One of the major differences between Unix and Linux is which parts of the system are in the source tree.
Linux is technically just the kernel, and a Linux distribution will put together the base libraries and userland programs and kernel along with various tools for installing and managing.
Kernel space programs are generally the kernel itself and device drivers.
Base userland programs are things like `cat` and `ls` and more that allow for manipulating and inspecting parts of the system. User-space programs are any userland program which is not in kernel-space, including third party packages and custom software written by the user.
Userland programs need to be linked against libraries, which is where libc comes in.
In most BSD Unix systems, the source tree will include the kernel and the base userland programs together.
That means that OpenBSD's versions of `libc` and `ls` are maintained in the same source tree as the kernel, allowing for much tighter coupling and integration for changes.
By contrast, the Linux distributions are generally using some versions of GNU C and GNU Coreutils, perhaps with patches downstream.
So a core change to the Linux kernel must make its way upstream to the user space application and then downstream from that, the distribution must integrate both.
This is much more loosely coupled and should hopefully illustrate the difficulty in coordinating such a change in Linux.
- saagarjha 7y agoThe coupling here is specifically the lockstep of the kernel syscall ABI and libc.