Apple Adds ARM Support to MacOS Sierra Kernel
iclarified.com
iclarified.com
They even reference sparc, vax, and several more ancient architectures.
Take a look at the full file here: http://opensource.apple.com//source/xnu/xnu-3248.60.10/osfmk...
So this is not a sign of ARM support in macOS.
[1] https://developer.apple.com/library/prerelease/content/relea...
I am going to assume future model will likely be ARM based, and therefore moving towards iOS as well.
My understanding of bitcode is that this is incorrect. The bitcode 'intermediate representation' isnt source code that can just be recompiled into a completely different instruction set. Rather, it's to take advantage of optimisations when there are minor changes in the same arch.
An Intel to ARM switch would still require developers to update and resubmit their apps in order to be compatible.
Edit: As pointed out below, Mac App Store/macOS doesn't even support bitcode, so this entire point is moot.
The other part that's missing is that Apple only has Bitcode for Mac apps distributed through the Mac App Store, which leaves out most that people actually use.
Does it even have that? As far as I know bitcode is a requirement for watchOS and tvOS, an option (enabled by default) on iOS, I've found no reference to it even existing on MAS/macOS.
Now if Apple wanted to close up "the desktop" and shift it to ARM, what could/would make sense would be scaling iOS further up from its current position: revive the iBook brand (or create a new brand) as a Chromebook-type laptop on ARM with a new iOS form factor, possibly with a touch-enabled display or as a convertible. That would be a relatively natural extension of the iPad Pro concept, would have precedent in the aforementioned Chromebooks, and could provide an acceptable entry-level (sub-$1000) laptop replacement to the 11" Air, at least for students and the like. It could even have a cellular option.
I'm not sure why moving to MAS only software on desktop OS would be such a stretch of imagination on ARM MacBooks?
Because MAS is a failure and a graveyard and restricting freedom on the mac tends to be seen in a bad light. Why break that ecosystem when you can get the same result by building up the other one, in which a restricted ARM laptop fits naturally?
Where would it live? The bitcode uploaded to the AppStore is the one produced by the local toolchain, AFAIK there's no evidence that it's a fork with its own custom platform-independent bitcode.
The point of bitcode is that Apple can the compile separate packages for ARM32 and ARM64 devices, can easily drop ARM32, and can eventually migrate Watch software to ARM64 without involving developers (hence bitcode being required for WatchOS and tvOS, but optional for iOS). It also lets them perform higher-level static validation of software, or add new transformation/optimisation passes.
Incidentally, the whole thing is irrelevant because bitcode is an appstore feature, I've found no reference to it being used for MAS.
And again the whole discussion is nonsensical considering bitcode is an appstore thing, MAS doesn't use it, it's not a thing on macOS at all.
I don't, so it makes sense to speculate.
Nothing prevents Apple to make the MAS a requirement for thr desktop as well.
Except they haven't because the market and plenty of other realities prevent them from doing this.
Strawman. He didn't claim that, just that the bitcode out of XCode is the same as that out of LLVM directly.
No need for access behind "Apple walls".
Parents didn't mention some "future" or "behind the walls" Apple technology. They said the current bitcode as produced by the current version of XCode on people's laptops now, is the same as LLVM bitcode.
Not sure if that's the case myself (haven't checked) but if so, it has nothing to do with secret access to Apple's future technologies and is easily proven or disproven.
Given that in the past there were features coming to Xcode compilers that only several months later appeared on the open source ones, I don't see why one believes that Apple isn't already preparing something into this direction.
Whatever, I don't care about the downvotes, lets see who is right in a couple of months.
In fact Apples requirement for submitting bitcode for tvOS and watchOS confounds me, b/c as far as I can tell it only gives them a minor set of instructions that they can actually change. Then on top of that it locks you into their toolchain, see this discussion on Rust around this: https://users.rust-lang.org/t/ios-rust-integration/6928/2
Isn't that moot, as all platforms used by Apple are 64-bit by now?
"PNaCl bitcode is based to a large extent on LLVM IR as of version 3.3" (https://developer.chrome.com/native-client/reference/pnacl-b...)
It's targeting x86, amd64, arm and mips and shipping for a good while. Seems a bit quiet lately though.
No need to speculate, the big two cores in A10 are Hurricane (the little two are Zephyr).
[1] http://www.forbes.com/companies/apple/
[2] http://www.forbes.com/companies/intel/
Apple is able to outbid Samsung for Samsung made chips.
Can't say I find that much of a problem these days (VMs are plentiful in the cloud), so the prospect of having thinner, lighter laptops seems a decent trade-off.
I just wish they'd actually fix their bugs, though.
Most wouldn't even notice a change I guess, unless they need to install Windows, for example.
They'd get a big battery life improvement for the typical case once people migrate away from x86-only software, and developers would have an incentive to port to ARM, while people who absolutely need x86 software won't get left behind.
Apple would have to get the GPU vendors to write drivers for their processors though, which would be a tremendous engineering effort. Intel would likely resist any such proposal for their Iris GPUs though, they're having enough of an existential crisis as it is without worrying about one of their largest customers moving away from their main product.
They do very different things on those. Both GPUs "speak" opengl/metal/whatever, and both core types of the iPhone 7 speak ARMv8. Handling concurrent ISA in the same machine is a very different problem (early PS3 did it to retain PS2 compatibility, they actually embedded PS2 hardware directly).
But given Apple's experience with their A-series CPUs it could make strategic sense although it might certainly hurt them on many ends, e.g. possible loss of Bootcamp functionality, inefficient virtualization for VMware or Parallels, loss of many old and loved / needed but unmaintained applications, maybe issues with Docker (?).
Not sure that the developer community (one of their key target audiences) would love to digest this at this point in time (possibly later). We have had this issue already when Apple made the switch from Motorola's 68k to Intel.
So I would give it a 50% likelihood for a switch in the next 12 months but not more at this time.
Now we supposedly have an ARM processor "good enough" to compete with x86 (while consuming several times less power)
The G5 was certainly fast (I'd guess things like video playing wasn't that good because of unoptimized software) but it consumed a lot of power
For example IBM Watson, which was featured of Jeopardy, was built on a POWER system.
If you look at performance per watt, I don't think the G5 is that far behind the NetBurst architecture Intel was pursuing at the time. Pentium 4 Mobile laptops were absolute beasts to handle the power and cooling needs of the chip. Pentium M laptops used a completely different CPU design which evolved from the Pentium 3 and later became the basis of the Core/Core 2 series of chips.
The main issue for Apple was that IBM couldn't make a processor that could work in a laptop (both for power and cooling reasons), and Motorola/Freescale were seriously behind schedule in shipping a dual core G4. Freescale eventually shipped their dual core in 2007. [1]
So the main reason for Apple's switch was an immediate availability of mobile CPUs (which greatly outperformed the single core G4). The first Apple Intel products actually used the Core Duo, which was actually a laptop part.
PowerPC always sounded good on paper. But it was definitely a dead end for Apple.
Some rump stump of the Amiga community seems obsessed with PowerPC still for some reason.
It is nice to imagine an alternative timeline in which Apple pivoted directly to ARM instead of to x86 when the switch happened. It was only a couple or three years after the Intel switch that the iPhone came out.
That's why the laptops never got further than the G4 - the G5s were so hot and power hungry a laptop probably would have melted on the spot.
I wish Apple would bring the aluminium Mac Pro form factor back - it was a beast, but looked great and was as expandable as anything.
I guess this is somehow related to the LLVM toolchain. Is now intermediate code submitted and Apple really generates the final one? Can anyone elaborate how this works and how realistic this it is that Apple would generate two/fat binaries?
Essentially, developers submit the LLVM intermediate representation to the App Store. This means that chip-specific optimisations can be made by Apple (such as expanding the number of registers used, or swapping a few small operations for one slightly bigger instruction), however the LLVM IR is already architecture specific, so a change from x86 to ARM would require re-compilation from source.
LLVM used by Apple isn't 100% like the open source project.
For example the set of available optimisation passes, or for a long time not all Objective-C features were available on on the public clang one.
This bit is very expected, along with Arm architecture. It makes sense for Apple to lock down entire ecosystem. It is also terrible if you use Mac to develop anything except iOS/Mac apps, which is what I do. No more windows and half working Linux is not what I need. How long before you can't even compile Obj C or Swift code without going trough app store route?
I don't know if they will do all the steps in a few days or years but I know they will. Also not sure if it will backfire because people need occasional Windows app to run, I suspect huge majority won't care at all.
Lenovo, I know you think I neglected you but I am starting to look your way once again.
Can you please elaborate what are 'high barriers'?
'Very little reason' - really?
I guess everyone knows about Android, and on Windows case at least for .NET, version 8.x introduced AOT compilation to native code on the store, which was then improved to .NET Natt in 10.
One day we will have mainframes on our pockets. :)
http://atp.fm/episodes/122 http://lowlevelbits.org/bitcode-demystified/
The new MacBook Pro are expected to ship with the Magic Toolbar and TouchID. For the Magic Toolbar it would make sense to allow it to display basic notifications whilst the laptop itself is asleep e.g. remaining battery or current time. For the TouchID it is going to need the secure enclave.
Hence it makes sense to have a dedicated ARM chipset.
And for TouchID I imagine it would be easier to lift/shift working platforms from iOS rather than port to OSX.
Am I going to be able to just "make install" for any package I download?
Since it's going to be the Mac, I need the entire XCode development environment there, along with things like Postgres, Python, web servers, etc..
(I don't know what percentage of open source projects have already been converted to ARM architectures...)
These days I have no trouble running most common Linux desktop software on ARM. Even Docker works (with ARM binaries inside the containers, of course).
I'd say the only sticking points would be graphics/assembly/hardware-related stuff, and all of them surmountable.