Remix.run Logo
__d a day ago

XNU has some interesting features.

It’s Mach based, so it has Mach ports, which are an IPC system that is fairly heavily used by macOS.

It has DriverKit, which is a C++ framework for drivers that’s got morecsuppirt than the usual Unix driver model.

Mach-O does more than ELF, and enables the two-layer namespacing that makes macOS able to manage dynamic linking dependencies better than ELF.

Nothing really earth-shattering but interesting enough. And far easier to build a macOS environment on than FreeBSD.

yjftsjthsd-h a day ago | parent | next [-]

> Mach-O does more than ELF, and enables the two-layer namespacing that makes macOS able to manage dynamic linking dependencies better than ELF.

I've always admired that mach-o supports fat binaries.

mike_hearn 16 hours ago | parent [-]

It's more that Darwin does. A fat binary is just two independent Mach-O binaries concatenated with a small header.

yjftsjthsd-h 7 hours ago | parent [-]

Maybe, but ELF doesn't support doing so

kevans91 7 hours ago | parent [-]

One might be interested in the not-very-alive FatELF implementation, though: https://icculus.org/fatelf/

yjftsjthsd-h 5 hours ago | parent [-]

Yep, that sounds like the same idea:

> The format is very simple: it adds some accounting info at the start of the file, and then appends all the ELF binaries after it, adding padding for alignment. The end of the file isn't touched, so you can still do things like self-extracting .zip files for multiple architectures with FatELF.

But I would indeed call it very-not-alive; their demo image is Ubuntu 9.04

fithisux 9 hours ago | parent | prev [-]

Is it possible to write device drivers for Ravynos with Driver kit?