Is anyone else ever saddened when they think about the man hours spent on projects like this (reversing software or hardware to accomplish what should be a simple goal) when all it would take is the teensiest bit of cooperation to not waste all those hours? I use waste in the sense of like trying to assemble something complicated with the instructions just out of arms reach, not in the sense of doing something pointless.
In some cases all companies would have to do is not actively hide or obfuscate things. In others it may take more effort but still just a drop in the huge bucket compared to developing a system in the first place.
I love Apple's hardware, I even (mostly) love the OS. If they too believe that it is solid - why prevent people from running what they want? The majority will come back anyway - I've run Linux for years and still ended up on MacOS for simplicity. I'll still buy Macs and run MacOS because it works for me, it's not like letting me run Linux will cost them money or something. The vast majority of people don't know what Linux even is, there is no threat there.
Please note that this comment is not directed at people who choose to spend their time on projects like this. You're awesome, I just wish you didn't have to put so much effort in.
It's cheaper to not make it work for anything else.
While this is commonly said about PC and Windows, Microsoft actually publishes pretty clear standards that Linux even reuses, because they do not control the hw vendors.
Apple has both hardware and software in one house. On one side, this means that they can escape the trap that cripples performance of competing mobile SoCs (as they don't have to deal with price competition for SoC itself), but it also means that they don't have to follow any form of standard with hw/sw interface.
Thus you have the reason for majority of hackintosh tricks, special cases in Linux for running on Macs, and Bootcamp. Because if it's quicker to "quirk it" in Mac OS X than fix it properly, it will be quirked. This goes all the way to simple things like putting HDA configuration data in wrong place in memory (so standard HDA driver is lost trying to init hw on mac, and macos is lost trying to init it on standard-compliant machine), to things like making such a hash out of boot process (in order to implement similar behaviour to old Macs) that in some models if you accidentally used standard boot interfaces you'd brick the laptop.
Similar issues are how ARM is still, effectively, not an usable open platform, especially open source boards, because making an SBSA-compliant machine that has properly done ACPI and UEFI is much harder than slapping minimal effort on top of uboot where the only reason you can run a kernel not specifically built for the device is that people complained about lack of upstream kernel, and kernel devs refused to add more machine defs. It's still a giant hack in the end.
I don't think this is the reason. It is ingrained in Apple's ethos to prevent users from tinkering with their "perfect" devices, it was a core belief instilled by Jobs from the earliest days of the organization.
Certainly, that could change given that he's no longer around, but change in a large organization often takes a long time or some external force. Since it's the most profitable company in the world, I don't expect them to go to the trouble of changing something that works for them.
Edit: I obviously don't or have never worked there, so I am willing to stand corrected if anyone who has refutes this.
Don't forget that Apple reversed course when Jobs realized that Apple was losing control with unfavorable OS licensing deals circa 1997 [1]. It's clear that since then, exclusivity and absolute control has been their mantra.
They were, and then there was NuBus, Apple's own floppy format, OS used a mix of Object Pascal and Assembly, Quickdraw, Quickdraw3D, NuBus, NetTalk,...
I don’t think those are good examples. The. ‘80s were an era of rapid evolution, in which about everybody had its own low-level stuff.
NuBus, being a standard predating it’s use in the Mac (https://en.wikipedia.org/wiki/NuBus) technically was more open than the ISA bus on the PC (https://en.wikipedia.org/wiki/Industry_Standard_Architecture: “The ISA term was coined as a retronym by competing PC-clone manufacturers in the late 1980s or early 1990s as a reaction to IBM attempts to replace the AT-bus with its new and incompatible Micro Channel architecture”)
In 1984, floppy formats were still changing all the time, so Apple picking something non standard for hardware that wasn’t used much by anybody else wasn’t unheard of.
Writing an OS in assembly was normal, too. Shipping graphics libraries with it wasn’t, but you can’t blame them for writing their own. What should they have picked? X Windows is from June 1984.
Quickdraw 3D, one could argue, should have been based on OpenGL, I don’t think it was clear that would be a winner on the desktop in 1995. Also, they started with usability in mind, supporting easy copy-paste of models working, something OpenGL doesn’t aim for (https://en.m.wikipedia.org/wiki/OpenGL%2B%2B did, but it started after QuickDraw 3D (and, like it, died))
AppleTalk, similarly, started with usability in mind, leading to the use of thinner cabling (at the time, ethernet cables had a diameter of almost 1 cm https://en.wikipedia.org/wiki/10BASE5, required terminators, etc), easier configuration (plug in the cable, and you’re good) and also predates the realization that TCP/IP is the winner, networking wise.
> It's cheaper to not make it work for anything else.
If I understand correctly, seeing the rest of the comment, your point is that it's cheaper to not have it adhere to some fixed standard.
While I fully understand this position, and think that it's actually something that can help a vertically integrated company such as Apple, I think that the situation isn't an either or.
Rather, things could be shades of grey. The way I see it, Apple could keep on doing their specific things because it's better for them. But once a given system (which can be as restrictive as a given combination of laptop size, generation and spec-level) is out to mass manufacturing, it becomes its own standard of sorts. As in each and every "late 2020 MBA 13" 8 GB RAM 256 GB SSD rev 1" or whatever are exactly the same. I suppose this has to be, since macOS has to know how to handle them.
If I'm not mistaken this is what DSDT patching was/is about in the Hackintosh community: make the hardware present a "known" interface, such as MBP 15 13,1 so that macOS knows what quirks to load.
So instead of Apple adhering to some "fixed" standard for all of their models for several years, they could just publish the "quirks" of each model.
You want to run Linux on your MBA? This is how it works. You're on your own adapting Linux to this, mind, but this is how it works. And of course, you want next year's model? Better get busy adapting again.
I think that would still be immensely better than the current situation and would help prevent the waste GP was talking about. I always concur with the claim that this would probably not lose Apple money. They don't make money any more through selling macOS itself and people looking to run Linux are probably not the biggest spenders on the mac app store either. But they could probably sell more macs.
Publishing such quirks list would require tracking them better, and possibly making sure they don't reveal anything bad about your devices.
As is, they remain locked somewhere on Apple's institutional secrecy and they don't have to care except for Bootcamp as they do not officially support anything else, and just publishing a "quirk database" possibly means more support calls (not that anyone will pick them up)
> It's cheaper to not make it work for anything else.
It's done also to protect the brand, make it fancy, exclusive and costly for sure. Some fashion brands even destroys tons of wear just to not let them out with cheap price. "Walled garden" is very helpful here.
Apple did put in the effort to cooperate when they added support to boot other OSes. Apple hasn’t prevented anyone from running Linux, they simply haven’t written Linux drivers for their hardware or provided a manual to do so.
Most of the effort in Asahi Linux is going to be writing drivers for hardware that hasn’t had Linux drivers written for it. It makes sense that a Linux driver doesn’t exist, because this hardware is new and no one has tried to run Linux on it before.
Incorrect. Apple's original presentations on Arm Macs suggested that booting other operating systems would be supported, and recently this has been confirmed by two of the engineers who worked on it.
Although you cannot turn off secure boot on Arm Macs, Apple has deliberately provided a path by which you can prove that you really want to chainload to a user provided bootloader not signed by Apple. From there, obviously, it will be possible to load the kernel of another operating system, such as Linux.
It'd be impossible to boot other OS if Apple didn't put a lot of work into opening the device. It'd be like iPhone and need a jailbreak if they didn't.
Er, like the vast majority of phones at the time. It only took them one more year to prepare and release both a dev kit and an App Store that revolutionised the industry. One year.
J2ME was an utter nightmare, I know because I worked in telecoms back then. Mobile app development as an utter shitshow in 2007 with no signs of it getting any better.
It just seems weird to complain that the company that made mobile apps mainstream "didn't allow it" earlier. The only reason they delayed a year is because the SDK wasn't publication ready yet. They hadn't even finalised the APIs yet and they were still very buggy at the launch of the first phones. We know that from interviews from former employees, the iPhone OS changed hugely between launch and the second phone a year later. A lot of the internal apps were extensively rewritten. Not a great time to push third party development.
Also in a similar idea, I think PostMarketOS, LineageOS, /e/ foundation, etc. are nice for privacy minded people on the short-term, but on the long term if we want things to truly change, we have to take both hardware & software independence like PinePhone & Librem 5 are doing.
If the foundations you build upon are too hostile towards you, on the long run you'll spend all your time & money fighting them instead of achieving you original goal.
However sometimes it becomes near impossible to do your own thing. Google has infected the whole manufacturing world with their own Android HAL & specific drivers and now it's impossible to find any competitive modern SOC running standard Linux decently (with GPU, Linux drivers, etc.). Which is why PinePhone has an old crappy chip and Purism took an automobile chip for their phone. And even that might disappear as IoT/Cars/Planes/etc. are using more&more Android instead of Linux. Even Microsoft is moving to their own chip.
The situation is very sad and extremely anti-competitive, but soon, the only way to run your own platform on some modern hardware might be reverse Eng (if that's even still legal by then)
Yeah, it sucks. Why are these companies so uncooperative? I have a Clevo laptop and I actually emailed them asking for documentation or some kind of help. They replied with an Ubuntu help page. I had to reverse engineer it in order to implement some features on Linux and I didn't manage to figure out everything.
It's very hard work and I have immense respect for people who are able to reverse engineer entire systems. There would be no need for this activity if companies just played nice but since they don't I'm glad that there are people out there doing this work.
I would say that I wouldn't use Apple hardware if it didn't have an OS that doesn't prevent developers from working properly - like Linux.
But really, the state of their support is so garbage I don't care what the performance of their systems is like. I know their warranties aren't worth anything and their disregard for consumer laws is absolute.
The triple negative has me confused, are you saying macOS prevents developers from working properly? I know very few developers that don't use macs, is this what you're actually saying?
What support of theirs is "garbage"? Their documentation for some aspects of iOS/macOS frameworks has been pretty bad for a few years, but that's probably not what you're referring to?
in this perspective, I'm saddened of all the electricity Bitcoin burns for futile intents. Imagine putting all these electricity for good purposes rather than making people rich.
Back when Apple was a PowerPC platform I worked for a company that ported Linux to their devices (Yellow Dog Linux). It made sense because the PowerPC was a cheap RISC alternative so it was great for scientific applications that didn't want to pay out the nose for full-blown RISC hardware. At the time Apple saw this as putting an ugly, buggy OS on their awesome sexy hardware and it damaged their brand. Many people in Apple saw the benefit of selling more hardware but most weren't incredibly helpful because we were diluting their brand. We were allowed to do it, but Apple wasn't exactly psyched about it.
During the early years, most MkLinux development occurred either at Apple or at The Open Group Research Institute in Grenoble, France. MkLinux Developer Release 1 (DR1) was released in early 1996.
I am quite saddened by I also see it as highly challenging and reverse engineering is one of those excruciating tasks. Sadly, I am not a good C programmer and I just can't get myself to write C code.
That said, with the rise of RISC-V architecture, I believe there will be viable alternatives to Apple silicon which are much more open. Building a new linux variant for those computers might be a lot less excruciating than reverse engineering Apple silicon. However, the timeline for RISC-V computers is a huge unknown.
Did Apple ever try to prevent people from running Linux on Macs? It sounds like that is what you're saying, but my impression is quite the opposite, the made Bootcamp etc.
Yes, but the effort they put into that clearly shows that they are not against people installing other OSs, so there are other reasons, like the fact that the M1 macs have only been out for a month.
It's like with iPhones. There was someone who run Linux with a framebuffer on iPhone 3GS. It worked but was useless. Additional security added in newer iPhones made it impossible to do again. And users are happy, saying that their locked out iPhone is secure and they want only apple-approved software to run on their devices...
"Oh, there's this hardware where the vendor tries actively to lock people out of other platforms and lock them into their own, they're real nasty guys.. Know what we should do? We should spend a lot of time making their product better, so more people will buy it, so they can continue their policies."
Does Apple allow this? Don’t you need a jailbreak?
Apple allows booting unsigned/custom kernels on Apple Silicon macs without a jailbreak! This isn’t a hack or an omission, but an actual feature that Apple built into these devices. That means that, unlike iOS devices, Apple does not intend to lock down what OS you can use on Macs (though they probably won’t help with the development).
In some cases all companies would have to do is not actively hide or obfuscate things. In others it may take more effort but still just a drop in the huge bucket compared to developing a system in the first place.
I love Apple's hardware, I even (mostly) love the OS. If they too believe that it is solid - why prevent people from running what they want? The majority will come back anyway - I've run Linux for years and still ended up on MacOS for simplicity. I'll still buy Macs and run MacOS because it works for me, it's not like letting me run Linux will cost them money or something. The vast majority of people don't know what Linux even is, there is no threat there.
Please note that this comment is not directed at people who choose to spend their time on projects like this. You're awesome, I just wish you didn't have to put so much effort in.