Pretty fascinating deep dive intoAsahi Linux's endeavors reverse engineering how the M1 works. There's been a few technical overviews of the M1, but this really focuses on that innermost layer of...
Pretty fascinating deep dive intoAsahi Linux's endeavors reverse engineering how the M1 works. There's been a few technical overviews of the M1, but this really focuses on that innermost layer of interaction between hardware and software (as you'd expect from an OS project).
Personally, this might be the most interesting thing to come out of the project, since I have an academic interest in it but no real personal desire to ever use the final product.
Honestly, I was a bit disappointed to read all of that and not actually have anything written about the status of the GPU reverse engineering. That's going to be one of the most exciting things...
Honestly, I was a bit disappointed to read all of that and not actually have anything written about the status of the GPU reverse engineering. That's going to be one of the most exciting things for me because it's the only thing that's giving me any hesitation for buying an M1 Mac. I want to be able to buy it with the expectation that I can continue to use it with Linux, and I don't want to have to deal with software displays and the lack of 3D acceleration. 3D is everywhere nowadays; even in webpages.
There are a few reasons Some people ideologically refuse to run software that isn't FOSS (now, you can wonder about how well that flies in the face of proprietary hardware, but idk, don't ask me)...
There are a few reasons
Some people ideologically refuse to run software that isn't FOSS (now, you can wonder about how well that flies in the face of proprietary hardware, but idk, don't ask me)
Some people just prefer the modern Linux experience, systemd and all.
Better packaging support - brew works, and macports is more hygienic, but neither are quite as integrated as apt or pacman.
Using the same OS as your server deployment
For fun. The author also worked on Linux for PS4, PS3, and Wii Homebrew. I think they just like hacking around systems. And it definitely produces interesting details about a fascinating chip that wouldn't otherwise exist.
Why do all this effort just for the M1? Because it's fucking amazing. The M1 MacBook Air is currently what I think is near the apex of what 13'' laptops have been. It's does everything insanely well that a portable laptop does.
Now, personally, I don't foresee myself using it. I have no love for any of the Linux DE's; currently using Gnome, have tried KDE and XFCE among others, Gnome is "okay", but I prefer macOS as a DE. If I need Linux, QEMU can virtualize an ARM linux distro with good performance and I can ssh into it. And certainly, some things will never work as well on macOS; the fantastic trackpad experience, for instance. Or Rosetta 2.
Those all make perfect sense. I guess part of my confusion lies in that I thought darwin was open, so why can’t the m1 parts from that be easily ported to linux?
Those all make perfect sense.
I guess part of my confusion lies in that I thought darwin was open, so why can’t the m1 parts from that be easily ported to linux?
Is there a port of the Linux userland to Darwin, and a simple way to strip all the proprietary components out of macOS? Most people who run Linux as a daily driver do so for two reasons, they like...
Is there a port of the Linux userland to Darwin, and a simple way to strip all the proprietary components out of macOS? Most people who run Linux as a daily driver do so for two reasons, they like the desktop experience and the programs that comprise it, and/or they're free software ideologues. Beyond that, "Why bother?" is a question antithetical to most hacker-types, they just want to try and see if they can.
To answer this: there were projects to do this, like OpenDarwin and PureDarwin, in the 2000s. Wikipedia notes, however, that OpenDarwin ended with the team announcing in 2006 that they had failed...
Is there a port of the Linux userland to Darwin, and a simple way to strip all the proprietary components out of macOS?
To answer this: there were projects to do this, like OpenDarwin and PureDarwin, in the 2000s. Wikipedia notes, however, that OpenDarwin ended with the team announcing in 2006 that they had failed as a result of "availability of sources, interaction with Apple representatives, difficulty building and tracking sources, and a lack of interest from the community". PureDarwin hasn't been able to get X11 to run on anything later than a version from 2007. The so-called GNU-Darwin meanwhile is not actually a distribution at all, apparently, but instead some sort of package collection that now appears as though it may be some sort of front for the author's stolen-election Trumpism. Darwin is not really viable separate from OS X, or at least has not been viable for quite some time.
For me, Linux/FreeBSD vs. Mac OS is less about the desktop experience than about everything else. I largely prefer the OS X desktop experience. But when trying to run software for research, OS X always seems to have enough of a specific Apple-workflow-focused design, and a Unix-style environment that often seems like an afterthought, that trying to keep things working stably becomes a nuisance and collection of workarounds and replacement systems like brew. To this is added the difficulty that quite a bit of research/server/computational software is written from a Linux-first perspective, with OS X support decidedly second-tier.
These questions must seem dumb. I thought Darwin was foss, but you’re suggesting at least parts of it aren’t? I also thought one of the points of foss was to be able to build whatever, wherever....
These questions must seem dumb. I thought Darwin was foss, but you’re suggesting at least parts of it aren’t?
I also thought one of the points of foss was to be able to build whatever, wherever. Such that whatever parts you want from one kernel could be built on another with minimal fuss (I acknowledge this is a simplistic view). Why can’t you just take the m1 parts out of the darwin source code?
While that is somewhat within the ideals of Free software, the reality tends to fall short of that ideal. One problem is that it is not uncommon for nominally open source projects to release...
I also thought one of the points of foss was to be able to build whatever, wherever.
While that is somewhat within the ideals of Free software, the reality tends to fall short of that ideal.
One problem is that it is not uncommon for nominally open source projects to release sources that are outdated, incomplete, undocumented, inflexible or disorganized enough that the project is not easily usable. Some examples are Signal (server sources are apparently out of date enough that the current client won't work with them), Raspberry Pi 2/3 (available sources can't actually boot without closed source components), or Darwin. You can also have situations where sources are nominally available, but the authors are hostile to people trying to use it (Chromium, Signal), whether through legal threats, licence peculiarities, patents, technical restrictions, intentionally breaking previous features, simple hostility, or other means. This doesn't even consider software that has nominally available source but is licensed specifically to cripple ability for others to use the source (MongoDB, Redis Commons Clause, and many corporate shared/available-source situations).
The concept of Free software, and to some extent open source, came out of an era where sources were simpler, where new restriction methods had not yet been devised, and where participants, prior to the extent of modern commercialization in computing, were arguably acting in better faith.
At some very basic level, source code is just another, easier to understand form of instructions for a computer than the machine code itself: just having the source code doesn't mean that the code can be understood or used without a significant amount of work. Consider a situation, for example, where someone released all their source code, but kept all documentation about how it worked private, or, as often happens in entirely good faith in research software, where complicated and esoteric numerical algorithms meant to be extremely fast are written in extremely clever and incomprehensible ways. I've had difficulties understanding and working with such code even when collaborating with the author of the code, who themselves had difficulty understanding what they had written ten years before!
Such that whatever parts you want from one kernel could be built on another with minimal fuss (I acknowledge this is a simplistic view).
Even within good-faith Free/open software communities, and setting aside licence incompatibilities, this can actually involve quite a bit of fuss. Different systems can have enormously different approaches and environments.
Why can’t you just take the m1 parts out of the darwin source code?
Apple would likely find a way to sue you, in part because the critical portions needed are probably not open source. Asahi appears quite concerned about this risk, judging by their Reverse Engineering Policy.
Thank you for that detailed answer. I see now the difficulties a little better. I am familiar with the perils of poor documentation (including having perpetrated them myself), but that is from a...
Thank you for that detailed answer. I see now the difficulties a little better. I am familiar with the perils of poor documentation (including having perpetrated them myself), but that is from a life long ago.
It sounds to me (based on more than this information) like at least part of the problem is the way intellectual property works.
Side note-that Apple tries so hard to prevent alternative os’s from running should dispel anyone of the notion that Apple is a “hardware company. “
Pretty fascinating deep dive intoAsahi Linux's endeavors reverse engineering how the M1 works. There's been a few technical overviews of the M1, but this really focuses on that innermost layer of interaction between hardware and software (as you'd expect from an OS project).
Personally, this might be the most interesting thing to come out of the project, since I have an academic interest in it but no real personal desire to ever use the final product.
Honestly, I was a bit disappointed to read all of that and not actually have anything written about the status of the GPU reverse engineering. That's going to be one of the most exciting things for me because it's the only thing that's giving me any hesitation for buying an M1 Mac. I want to be able to buy it with the expectation that I can continue to use it with Linux, and I don't want to have to deal with software displays and the lack of 3D acceleration. 3D is everywhere nowadays; even in webpages.
Merely geeky here. Why bother? Why is linux preferable to darwin, which presumably has an m1 fork?
There are a few reasons
Some people ideologically refuse to run software that isn't FOSS (now, you can wonder about how well that flies in the face of proprietary hardware, but idk, don't ask me)
Some people just prefer the modern Linux experience, systemd and all.
Better packaging support - brew works, and macports is more hygienic, but neither are quite as integrated as apt or pacman.
Using the same OS as your server deployment
For fun. The author also worked on Linux for PS4, PS3, and Wii Homebrew. I think they just like hacking around systems. And it definitely produces interesting details about a fascinating chip that wouldn't otherwise exist.
Why do all this effort just for the M1? Because it's fucking amazing. The M1 MacBook Air is currently what I think is near the apex of what 13'' laptops have been. It's does everything insanely well that a portable laptop does.
Now, personally, I don't foresee myself using it. I have no love for any of the Linux DE's; currently using Gnome, have tried KDE and XFCE among others, Gnome is "okay", but I prefer macOS as a DE. If I need Linux, QEMU can virtualize an ARM linux distro with good performance and I can ssh into it. And certainly, some things will never work as well on macOS; the fantastic trackpad experience, for instance. Or Rosetta 2.
But hey, some people do.
Those all make perfect sense.
I guess part of my confusion lies in that I thought darwin was open, so why can’t the m1 parts from that be easily ported to linux?
Is there a port of the Linux userland to Darwin, and a simple way to strip all the proprietary components out of macOS? Most people who run Linux as a daily driver do so for two reasons, they like the desktop experience and the programs that comprise it, and/or they're free software ideologues. Beyond that, "Why bother?" is a question antithetical to most hacker-types, they just want to try and see if they can.
To answer this: there were projects to do this, like OpenDarwin and PureDarwin, in the 2000s. Wikipedia notes, however, that OpenDarwin ended with the team announcing in 2006 that they had failed as a result of "availability of sources, interaction with Apple representatives, difficulty building and tracking sources, and a lack of interest from the community". PureDarwin hasn't been able to get X11 to run on anything later than a version from 2007. The so-called GNU-Darwin meanwhile is not actually a distribution at all, apparently, but instead some sort of package collection that now appears as though it may be some sort of front for the author's stolen-election Trumpism. Darwin is not really viable separate from OS X, or at least has not been viable for quite some time.
For me, Linux/FreeBSD vs. Mac OS is less about the desktop experience than about everything else. I largely prefer the OS X desktop experience. But when trying to run software for research, OS X always seems to have enough of a specific Apple-workflow-focused design, and a Unix-style environment that often seems like an afterthought, that trying to keep things working stably becomes a nuisance and collection of workarounds and replacement systems like brew. To this is added the difficulty that quite a bit of research/server/computational software is written from a Linux-first perspective, with OS X support decidedly second-tier.
These questions must seem dumb. I thought Darwin was foss, but you’re suggesting at least parts of it aren’t?
I also thought one of the points of foss was to be able to build whatever, wherever. Such that whatever parts you want from one kernel could be built on another with minimal fuss (I acknowledge this is a simplistic view). Why can’t you just take the m1 parts out of the darwin source code?
While that is somewhat within the ideals of Free software, the reality tends to fall short of that ideal.
One problem is that it is not uncommon for nominally open source projects to release sources that are outdated, incomplete, undocumented, inflexible or disorganized enough that the project is not easily usable. Some examples are Signal (server sources are apparently out of date enough that the current client won't work with them), Raspberry Pi 2/3 (available sources can't actually boot without closed source components), or Darwin. You can also have situations where sources are nominally available, but the authors are hostile to people trying to use it (Chromium, Signal), whether through legal threats, licence peculiarities, patents, technical restrictions, intentionally breaking previous features, simple hostility, or other means. This doesn't even consider software that has nominally available source but is licensed specifically to cripple ability for others to use the source (MongoDB, Redis Commons Clause, and many corporate shared/available-source situations).
The concept of Free software, and to some extent open source, came out of an era where sources were simpler, where new restriction methods had not yet been devised, and where participants, prior to the extent of modern commercialization in computing, were arguably acting in better faith.
At some very basic level, source code is just another, easier to understand form of instructions for a computer than the machine code itself: just having the source code doesn't mean that the code can be understood or used without a significant amount of work. Consider a situation, for example, where someone released all their source code, but kept all documentation about how it worked private, or, as often happens in entirely good faith in research software, where complicated and esoteric numerical algorithms meant to be extremely fast are written in extremely clever and incomprehensible ways. I've had difficulties understanding and working with such code even when collaborating with the author of the code, who themselves had difficulty understanding what they had written ten years before!
Even within good-faith Free/open software communities, and setting aside licence incompatibilities, this can actually involve quite a bit of fuss. Different systems can have enormously different approaches and environments.
Apple would likely find a way to sue you, in part because the critical portions needed are probably not open source. Asahi appears quite concerned about this risk, judging by their Reverse Engineering Policy.
Thank you for that detailed answer. I see now the difficulties a little better. I am familiar with the perils of poor documentation (including having perpetrated them myself), but that is from a life long ago.
It sounds to me (based on more than this information) like at least part of the problem is the way intellectual property works.
Side note-that Apple tries so hard to prevent alternative os’s from running should dispel anyone of the notion that Apple is a “hardware company. “