The Long Journey Ahead For Linux On Apple Silicon

An old joke from the Linux community about its prevalence in computing quips that Linux will run on anything, including some animals. While the joke is a little dated, it is true that Linux can run on just about any computing platform with a certain amount of elbow grease. The current exception is the new Apple M1 silicon, although one group called Asahi Linux is currently working to get Linux running on this novel hardware as well.

While the Apple M1 is specifically built to run macOS, there’s no technical reason why Linux couldn’t run on it once all of the kinks are ironed out. This progress report from last month outlines some of the current areas of focus, especially around booting non-Mac kernels. The new Apple silicon runs on an ARM processor and because of this it functions more like an embedded device than a PC with standardized BIOS or UEFI. This means a lot of workarounds to the proprietary boot process have to be created to get a Linux kernel to boot. Luckily there are already versions of Linux that run on ARM so a lot of work has already been done, but there’s still much ahead.

While it’s probably best to buy an x86 machine for the time being if you need a Linux on your own personal machine, it seems like only a matter of time until all of the barriers to Linux are overcome on the M1 silicon. If Linux is able to take advantage of some of the efficiency and performance benefits of these chips, it could be a game-changer in the Linux world and at least give us all another option for hardware. Of course, we will still be needing software that can run on ARM, too.

Thanks to [Mark] for the tip!

41 thoughts on “The Long Journey Ahead For Linux On Apple Silicon

  1. Why bother? Apple does almost everything possible to prevent you from installing it in any case. Years ago, it used to be good and open hardware, ripe for removing that top-layer crap and installing some other *nix. Now I would just call it closed/proprietary, uninteresting hardware.

    1. “Apple does almost everything possible to prevent you from installing it in any case.”
      That may be the easiest answer to your question. When there’s a challenge someone will take it. Even if it’s just for the sake of proving that it’s possible.

    2. They really work hard on turning their name into a 4 letter word!
      I think they already have reached that goal, others may need longer to see it.

    3. Apple actually isn’t doing anything to prevent people from installing Linux or any other OS. The M1 Macs are explicitly allowed to run unsigned kernels (full support was added with the macOS 11.2 update). So the Asahi team isn’t facing an issue with circumventing any platform security measures.

      The major obstacle here is just a lack of information about the platform. Apple isn’t publishing an architecture manual or anything, but there’s a much better argument against that (trade secrets).

      They aren’t explicitly trying to stop you from running Linux – indeed the exact opposite. They just haven’t published information that would make it easier.

      1. that’s just because they knew people would break the embedded t2 chip open in record time this time around if they stood in the way of linux hackers. it’s still apple being an evil corporation as per usual. no brownie points to earn.

        1. They added support with a patch and they can take it away with another. PS3 other os situation all over again. it’s time for an antitrust suit against apple over their actions in the deployment and education markets as well. I shouldn’t have to ask for the cloud’s permission to erase an internal disk on a fucking mac.

    4. Does almost everything possible? On pre-T2 Macs its a breeze OOB, and on T2 macs Apple themselves have released a utility to tweak the security on the T2 to allow linux to boot. The state of Linux on apple hardware is pretty good now.

    1. That’s just not true. Apple gave us LLVM and may still be the biggest contributor.
      Almost every modern compiled language is using LLVM and not GCC (and the support for various MCUs and niche architectures may also be bigger than in GCC).
      Ou and they also started Clang.
      I do not care about Apple’s hardware and other things though.

      1. @Grawp said: “Apple gave us LLVM and may still be the biggest contributor.”

        COMPLETELY FALSE: “The LLVM project started in 2000 at the University of Illinois at Urbana–Champaign, under the direction of Vikram Adve and Chris Lattner. LLVM was originally developed as a research infrastructure to investigate dynamic compilation techniques for static and dynamic programming languages. LLVM was released under the University of Illinois/NCSA (UofI/NCSA) Open Source License[1], a permissive free software licence. In 2005, Apple Inc. hired Lattner and formed a team to work on the LLVM system for various uses within Apple’s development systems.[2][3]”

        LLVM already existed under the UofI/NCSA permissive free open source software license before the carrion-breathed vultures at Apple took interest in it. In fact if LLVM wasn’t “easy-pickings” for Apple due to the pre-existing UofI/NCSA license, I doubt they would have ever touched it. So Apple did not “give us” LLVM, and if they could I guarantee Apple would kill off LLVM’s UofI/NCSA license and lock LLVM up in a vault.

        And don’t forget, with NextStep as a minor stepping stone macOS is at its core the Berkely System Distribution (BSD) Unix released under the permissive and free BSD License.[4] And to my knowledge Apple continues to take from the BSD Unices while never contributing anything back.

        Also, Apple condones slave labor.[5] Long story short: If you have anything to do with Apple, you are supporting a truly Evil company.

        1. “LICENSE.TXT”. llvm.org

        https://releases.llvm.org/9.0.0/LICENSE.TXT

        2. LLVM

        https://en.wikipedia.org/wiki/LLVM

        3. Adam Treat (February 19, 2005), mkspecs and patches for LLVM compile of Qt4

        https://web.archive.org/web/20111004073001/http://lists.trolltech.com/qt4-preview-feedback/2005-02/msg00691.html

        4. File:Unix timeline.en.svg

        https://en.wikipedia.org/wiki/File:Unix_timeline.en.svg

        5. Apple is lobbying against a bill aimed at stopping forced labor in China

        https://www.washingtonpost.com/technology/2020/11/20/apple-uighur/

          1. Insomuch as Oreo was a completely original creation after Hydrox had already been a fixture in the sandwich cookie community, I guess you have a point.

    2. Time did teach fishermen and farmers that they can take too much.
      Currently we are seeing how Apple tries how much they can take.
      The nasty thing is that this time we, humans, are the ones that get depleted.

        1. Didn’t Apple buy the proprietary rights to Cups where it was already available as OSS before they ever touched it? At least they didn’t fork it and close the fork so there’s that I guess.

          Webkit was based on the open source KHTML from the KDE project.

          I used to use KHTML a lot because contrary to many Linux users I liked the fact that Konqueror (KDE’s web browser which used KHTML) tabs could also be a file browser and the window could split into two frames with a console in the bottom. (in which I could run a text editor) With the fish:// protocol installed that file browser could even be a remote filesystem via ssh. That made Konqueror the perfect tool for the sort of web development I did back in the day. I liked that behavior so much that when Konqueror stopped getting love from KDE and KDE started becoming too bloated I switched to a tiling window manager and never went back.

          Anyway, KHTML had the best HTML and CSS support out there. It passed all the Acid tests before even the big name commercial browsers did. But the javascript support was awful! So many important websites just didn’t function or had annoying glitches. It was very frustrating.

          Apple as I understand it fixed the javascript support in creating Webkit so they did give us something good. And they made Webkit popular enough that web designers had to code for it, so no more browsing as a second class citizen just because one was on Linux.

          On the other hand as I read it they were total d1cks to the KHTML developers. Rather than cooporate as good members of the OSS community and the grateful recipients of all the hard work that had already gone into KHTML, at first they tried to keep their improvements to themselves. When pressed on the matter and the GPL which they had agreed to by using KHTML in the first place they gave it up not as a series of organized patches checked into KHTML’s codebase but just a raw snapshot of Webkit with no history, a tangled mess of new and old code where the new code didn’t even follow any of the established coding conventions.

          Ultimately the KHTML folks gave up on merging the Webkit changes back in and everyone just started forking Webkit themselves.

          At least that’s the story as I remember reading it. I definitely never read anything written by Apple’s point of view.

      1. Isn’t Bonjour that stupid USB media thing that wouldn’t exist in the first place, if Apple had just used the mass storage class? That way we could have just dragged mp3s (or ANY file) to an ipod instead of having to install a bunch of extra drivers/software?

        1. Bonjour is the protocol that has become more widely known as mDNS – i.e. the service discovery protocol things like Spotify use to discover chromecasts, devices use to discover printers, casting to TVs etc.

          I think Apple’s justification for that was that you didn’t have to do the indexing on the device, which at the time of the first few iPods was a bit of a slow task – the index could be built on the computer and updated with the songs going over. I remember various players I had at the time taking *ages* to reindex libraries if you didn’t just want to browse them as folder stores. They did add Disk mode (hold MENU when connecting AFAIK), but this was just to use them as a hard drive for other files – you couldn’t add any media to the library on the device this way.

          1. Thanks for the info Ben. I never had an iPod, all I remember is a couple of friends trying to use them in the early 2000s to copy ripped TV shows from the university network, back when regular USB storage was so expensive. As I remember, at the time there was some kind of 3rd party software required in order to put anything that wasn’t itunes-compatible on the ipod. This was before itunes itself could handle video, obviously. I never had an issue with indexing files myself, didn’t Winamp playlists handle all that? Now get off my lawn :-)

    1. “Screw Linux, get FreeBSD running. ”

      Been there, done that.

      It makes a nice server but it’s a lousy desktop w/ no good way to watch Netflix or Hulu.

      There’s directions out there to make it work but they are the kind with a million steps and totally dependent on the exact versions of every package that was current at the exact moment the author ran their last update before writing the article. The kind of thing that never works if you try to follow the same steps even a month later.

  2. Then publish under GPL. To quote Wiki on the matter:
    Steve Ballmer declared that code released under GPL is useless to the commercial sector (since it can only be used if the resulting surrounding code becomes GPL), describing it thus as “a cancer that attaches itself in an intellectual property sense to everything it touches”.

    Why are you picking “free&libre” licenses that allow commercial use if you “hate” it?
    This is just a philosophical post. Everyone is of course free to pick any license they love.
    But it must be pointed out to learn what your license actually does!

  3. Obviously when you search “due” on an English dictionary, you get the English word as in “your taxes are due”.

    The Italian word “due” means “two” (like “uno” means “two”) and it is not pronounced the same as English – it’s more like “doo-ay”, see this Italian pronunciation dictionary: https://forvo.com/word/due/#it

  4. “The new Apple silicon runs on an ARM processor and because of this it functions more like an embedded device than a PC with standardized BIOS or UEFI.”

    I couldn’t but laugh reading this. There is a big difference between a Cortex M and a Cortex A which are the type of general purpose CPU used in phones and Apple M1. There is no problem running a linux kernel on those CPU. It already does on Raspberry Pi and all mobiles phones and some laptop. The Problem with the M1 is that Apple doesn’t release detailed information about their new CPU.

    1. I also thought that this statement was a strange one indeed. If your norm is the x86 PC world with its BIOS and UEFI, then yes, the ARM world is different. Most of us knew that, but for some I guess it is a surprise.

  5. “If Linux is able to take advantage of some of the efficiency and performance benefits of these chips, it could be a game-changer in the Linux world and at least give us all another option for hardware. ”

    Sort of a reverse Hackintosh. Funny how people have been wanting all things apple*, but don’t want to commit to apple.

    *Run their OS, use their hardware.

  6. The Apple M1’s ARM architecture poses some challenges for running Linux, but progress is being made. For now, sticking with x86 machines might be easier, but in time, M1 support could change the game. Meanwhile, exploring unique tech on sites like thingsfrommars.de is always a good idea!

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.