[haiku-bugs] Re: [Haiku] #15120: Linux binary compatibility

  • From: "Haiku" <trac@xxxxxxxxxxxx>
  • To: undisclosed-recipients: ;
  • Date: Fri, 21 Jun 2019 15:53:31 -0000

#15120: Linux binary compatibility
----------------------------+----------------------------
   Reporter:  megastallman  |      Owner:  nobody
       Type:  enhancement   |     Status:  closed
   Priority:  normal        |  Milestone:  Unscheduled
  Component:  System        |    Version:  R1/Development
 Resolution:  invalid       |   Keywords:
 Blocked By:                |   Blocking:
Has a Patch:  0             |   Platform:  All
----------------------------+----------------------------
Changes (by waddlesplash):

 * status:  new => closed
 * resolution:   => invalid


Comment:

Haiku already has BeOS compatibility layer in 32-bit versions, so is it
 possible to implement Linux compatibility for 64-bit versions?

 No. The BeOS compatibility is not a "layer", it was that the Haiku ABI
 began as the BeOS ABI, and we extended it for GCC4 versions (but kept the
 ability to build a BeOS-compatible ABI on GCC2 versions.) BeOS syscalls
 were not public, which meant that Haiku syscalls and BeOS syscalls are
 very different; only the libc API was stable.

 Linux, on the other hand, has public-facing syscalls that anyone can (and
 does) use. So to make a FreeBSD-style Linuxulator, we would need to do the
 same thing they did, and implement a syscall compatibility layer.

Of course, it would require the ELF-parser

 Haiku already uses ELF format for binaries. Did you do any research at all
 before requesting this?

half of the Linux syscalls implementation

 Half? Which half is that? It would require an entire syscalls
 implementation, just like FreeBSD does.

networking for Linux

 I don't know what this means...

a VFS layer

 All kernels have a VFS layer. We would not need a new one for this.
 FreeBSD's Linuxulator does not have its own, IIRC.

pulseaudio client, X11 DDX-component

 These are not part of Linux. Were you really referring to "Linux GUI apps
 binary compatibility"? That is a completely different thing (and perhaps
 possible without doing an in-kernel syscalls emulation, as most GUI apps
 use a shared glibc or the like.)

 But it is actually even more work than just the straight "Linux syscalls
 emulation." FreeBSD gets away with just that because, indeed, they use
 X11, and so Linux apps can talk to X like normal. We do not, so indeed we
 would have to port an X11 server.

That is a big amount of work, but it can attract more new users to
 Haiku, especially those, relying on the software that is unavailable for
 Haiku.

 If there is software unavailable for Haiku, we should just port it. That's
 all.

 So, we have no interest in this; it is a massive amount of work for
 little, if any, benefit.

-- 
Ticket URL: <https://dev.haiku-os.org/ticket/15120#comment:1>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.

Other related posts: