5 ms·
Do you think they can make a Pi Hackingtosh now?
by interactivecode 6y ago
Do you think they can make a Pi Hackingtosh now?
- jeroenhd 6y agoNot any time soon. Apple Silicon implements additional instructions not found on other boards, making software compiled for it potentially (read: probably) incompatible. There's also the presence of the security chips which Apple will likely assume to be present as it's not optional on ARM boards, so you'd need to patch checks and calls to that out. Even if it does work, there'd be little use in it. Hackintoshes are popular because they offer performance beyond what you can buy for a reasonable price as a consumer. Alternative ARM devices are nowhere near as fast as M1, so that use case disappears completely. There's also the bootloader issue. On x86 and x64 the boot process has been standardized into either BIOS or UEFI mode. On ARM there are standards comparable to UEFI, but most chip vendors have their own custom bootloader code to boot an OS. Most chipsets are compatible with Android or Linux but there's only one manufacturer who develops bootloaders for the macOS platform.
- my123 6y agoIt's possible to get macOS arm64 working on Arm hardware (except Rosetta on Arm cores that don't implement TSO/SC, or you're stuck with a single core). However, Arm macOS assumes an Armv8.3-A architecture baseline. Patching at runtime from Armv8.3-A to v8.2-A is quite feasible, to 8.0-A like an RPi4 is another matter. Of course, this will apply to VMs only (for now at least). https://alephsecurity.com/2019/06/17/xnu-qemu-arm64-1/ https://alephsecurity.com/2019/06/17/xnu-qemu-arm64-1/ was a good starting point for me.
- mobilio 6y agoThat's not correct! Apple have ARM IP for instructions. So Apple Silicon is 100% ARM compatible.
- gjsman-1000 6y agoYes, but Apple has added additional instructions to it. Any app that relies on those Apple-specific additional instructions would crash running on different chips.
- als0 6y agoThey are additional model specific registers, not instructions.
- my123 6y agoThere are additional instructions too. However, they aren't documented and Apple's compilers do not include them at all. They can only be used in Accelerate.framework or in the kernel, which checks and is able to work without them.
- als0 6y agoCan you provide a source? Everywhere I've looked just shows MRS and MSR instructions, which are standard ARM instructions with platform specific operands/results. It can only be a custom instruction if the disassembly shows it's in the reserved instruction opcode space.