The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Chris Hanson <cmhanson@eschatologist.net>
To: The Eunuchs Hysterical Society <tuhs@tuhs.org>
Subject: [TUHS] Re: [simh] Announcing the Open SIMH project
Date: Tue, 7 Jun 2022 16:41:06 -0700	[thread overview]
Message-ID: <931C40D7-F780-454F-B51B-747C713CD31C@eschatologist.net> (raw)
In-Reply-To: <CABH=_VROO_Fp2F3B11UKx=yhRutM4KZ1t56VqTLm3ctMqgnApw@mail.gmail.com>

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


  reply	other threads:[~2022-06-07 23:41 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <BCDAF4C4-12EC-49D6-84A6-4592E245922F@comcast.net>
     [not found] ` <CAC20D2NGMK1NG3J+iR8t2rAzOc2uWCe9ZGRJzkZn6ECgMETJEQ@mail.gmail.com>
     [not found]   ` <CAC20D2OK9muQm=gCSeRzarV_HQF6vZ9VNuYRas4uCbMyxYKjJA@mail.gmail.com>
2022-06-03 20:00     ` [TUHS] Fwd: " Clem Cole
2022-06-03 20:12       ` [TUHS] " Blake McBride
2022-06-03 20:23       ` G. Branden Robinson
2022-06-03 21:06         ` Clem Cole
2022-06-03 21:20           ` Tom Ivar Helbekkmo via TUHS
2022-06-03 21:32             ` Larry McVoy
2022-06-03 21:34               ` Tom Ivar Helbekkmo via TUHS
2022-06-03 21:37                 ` Larry McVoy
2022-06-03 21:36               ` Tom Ivar Helbekkmo via TUHS
2022-06-03 21:40                 ` Larry McVoy
2022-06-03 22:16                   ` Tom Ivar Helbekkmo via TUHS
2022-06-03 22:30                     ` Larry McVoy
2022-06-03 22:52                       ` Warner Losh
2022-06-03 23:48                         ` Larry McVoy
2022-06-04  0:10                           ` Warner Losh
2022-06-04  1:05                             ` Larry McVoy
2022-06-04  1:46                               ` David Arnold
2022-06-06  0:32                               ` Theodore Ts'o
2022-06-06  0:47                                 ` George Michaelson
2022-06-06  1:17                                   ` Larry McVoy
2022-06-06  1:02                                 ` Warner Losh
2022-06-06  1:09                                 ` Dan Cross
2022-06-06  1:15                                 ` Larry McVoy
2022-06-06  1:40                                   ` Dan Cross
2022-06-06  2:36                                     ` Larry McVoy
2022-06-06 12:43                                       ` Dan Cross
2022-06-06 13:41                                         ` Larry McVoy
2022-06-06 14:27                                           ` Blake McBride
2022-06-06 14:33                                             ` Steve Nickolas
2022-06-06 14:53                                     ` Henry Bent
2022-06-06 23:28                                       ` David Arnold
2022-06-07 14:30                                     ` Theodore Ts'o
2022-06-07 15:08                                       ` Dan Cross
2022-06-07 15:25                                         ` Larry McVoy
2022-06-07 16:03                                           ` Will Senn
2022-06-07 16:38                                             ` Warner Losh
2022-06-07 16:45                                               ` Larry McVoy
2022-06-07 16:57                                                 ` Warner Losh
2022-06-07 17:05                                                   ` Larry McVoy
2022-06-07 16:46                                               ` Blake McBride
2022-06-07 17:26                                                 ` Paul Winalski
2022-06-07 20:09                                                   ` Blake McBride
2022-06-07 17:00                                               ` Paul Winalski
2022-06-07 23:41                                                 ` Chris Hanson [this message]
2022-06-07 15:55                                         ` Richard Salz
2022-06-03 23:56                         ` David Arnold
2022-06-04  0:30                           ` Yeechang Lee
2022-06-04  1:03                             ` Adam Thornton
2022-06-03 22:33                     ` Warner Losh
2022-06-03 22:40                       ` Tom Ivar Helbekkmo via TUHS
2022-06-03 22:56                         ` Warner Losh
2022-06-03 22:26               ` Warner Losh
2022-06-03 22:19             ` Warner Losh
2022-06-03 21:35         ` Ben Walton
2022-06-03 20:52       ` Will Senn
2022-06-03 21:06         ` [TUHS] " Adam Thornton
2022-06-04  9:09           ` Ralph Corderoy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=931C40D7-F780-454F-B51B-747C713CD31C@eschatologist.net \
    --to=cmhanson@eschatologist.net \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).