Hacker News new | ask | show | jobs
by djhworld 2040 days ago
I'm really not holding out much hope that Linux will natively run on these M1s, even if we get it to boot there's all the driver issues for the integrated GPU, audio, wifi etc.

I'd imagine there is a lot of power management stuff on there too.

4 comments

The bootloader and drivers aren't the only problems holding Linux back from being ported to these SoCs, it's that Apple's ARM SoCs have the same challenges all ARM SoCs have when it comes to Linux ports.

ARM servers are similar to x86 machines in that they use UEFI and have enumerable buses for hardware discovery.

ARM SoCs use custom bootloaders, and lack enumerable buses. Hardware configurations are almost always unique between ARM SoCs, and each of those configurations need their own Linux port.

Here's an idea of just some of the work that is required to port Linux to each individual ARM SoC[1].

[1] https://elinux.org/images/a/ad/Arm-soc-checklist.pdf

Bootcamp only really worked because Apple did the work. I'm sure they could do the same for Linux, but it would be harder because there's less commoditized hardware and possibly less demand because fewer people run Linux on their laptops than Windows.
There's also just less reason to run Linux for most consumers. Bootcamp was valuable because there's a lot of legacy, proprietary software and drivers that some people must use, which bootcamp gives them access to on the same device.

On the other hand, notable software on Linux are all FOSS. If there was sufficient demand there's nothing stopping someone from making a MacOS compatible release. And indeed, most FOSS developer tools do have MacOS binaries.

> If there was sufficient demand there's nothing stopping someone from making a MacOS compatible release

That assumes that it's something that can reasonably be ported. Granted, that does cover most software, but there are exceptions that for whatever reason are difficult to port. Docker is the poster child for this since it uses Linux kernel primitives; the way it runs "on" Darwin is to run Linux in a VM.

Docker's never been quite as portable as imagined because of this. I wonder if this will make people rethink it as a model for containerization.

Interestingly, FreeBSD has native Docker support because it has a Linux compatibility layer that adds/maps/implements(?) Linux system calls so it FreeBSD can run Linux binaries. Looks like FreeBSD Docker support is also broken right now.

The annoying thing is that it should be that portable - docker is modular enough that you should be able to replace containerd/runc with a jail-based version and everything just works, and the OCI image format outright talks about features to make the system OS-agnostic. It's just that nobody's bothered to actually implement it:(
The bootloader isn't a problem, Apple even gave instructions on how to do it.

Drivers are a problem. Somehow doubt Apple is going to document those.

Is anyone working on this right now? I would be interested to follow the development.