[prev in list] [next in list] [prev in thread] [next in thread]
List: tuhs
Subject: [TUHS] Re: [simh] Announcing the Open SIMH project
From: Chris Hanson <cmhanson () eschatologist ! net>
Date: 2022-06-07 23:41:06
Message-ID: 931C40D7-F780-454F-B51B-747C713CD31C () eschatologist ! net
[Download RAW message or body]
On Jun 7, 2022, at 10:00 AM, Paul Winalski <paul.winalski@gmail.com> wrote:
>
> Windows and OS X rarely had problems with upward compatibility (newer
> versions able to run executables built for older versions), but Linux
> was living hell. Shared library compatibility was the biggest
> problem. Not only were shared libraries often incompatible between
> different Linux distributions, they were sometimes incompatible even
> between different versions of the same distribution.
That's because, at least when it comes to macOS (nee OS X, nee Mac OS X, nee \
OPENSTEP/Mach, nee NEXTSTEP in various capitalizations) we treat treat binary \
compatibility as something for the operating system as a whole to maintain, not just \
the kernel or the kernel userspace.
Linux's ABI compatibility is itself kind of bare-bones; it achieves userspace \
compatibility by having a fixed set of system call numbers with well-specified \
calling sequences that get compiled into every binary for a particular architecture, \
and it doesn't even attempt to provide the kernel ABI compatibility needed by \
commercial driver vendors.
We handle userspace ABI compatibility in macOS by actually putting the syscalls on \
the other side of a shared library (libSystem.dylib) so the calling sequences and \
syscall numbers are entirely hidden from userspace. We've historically taken a \
different approach to kernel ABI compatibility but have provided it too, though not \
to the same extent as userspace.
As an example of where this helps, things like Linux-derived containers would be much \
faster on non-Linux platforms if the container system could swap in its own \
"libsyscall.so" instead of having to run atop a VM of some sort to handle the Linux \
syscall traps.
-- Chris
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic