I’ve been watching a few videos recently about the impact of Apple’s move to its own ARM ISA based silicon and the impact that change will have on the rest of the industry. Gary Explains goes into great details regarding the transition from a ‘top level’ perspective:
Just as Apple set trends in the past such as removing the floppy disk, turning USB into the ‘the one connector to rule them all’ with the launch of the first iMacs, the move to ARM will force others within the industry to look at taking ARM as a serious contender to x86. The one thing to keep in mind is that the various ARM vendors don’t necessarily have to meet or beat Apple’s own silicon but as long as they can produce an SoC that can scale up and beat Intel when it comes to power/performance (achieve the same level of performance as Intel but consume less power). Fujitsu for example has their Fujitsu A64FX as a replacement for the SPARC V which shouldn’t surprise me if in the long run we start seeing Oracle reconsider whether it makes sense staying with SPARC or whether they’re better off moving to ARM and working with Fujitsu.
The one thing I am reminded of was what the former CEO if Sun Microsystems said when Solaris came back to the x86 platform where he noted that the world runs on GET (Good Enough Technology) – “it ain’t pretty but it gets the job done”. This is the reason why, as long as the ARM alternatives good enough performance wise but beat Intel when it comes to power consumption then it’ll be good enough for the vast majority of end users.
Regarding software, if the rumours about Windows 10X turn out to be correct then there is a good chance that we’ll see ARM based ‘ChromeOS’-like devices being made available – win32 support appears to be added (link) although I could imagine the various frameworks that make up ‘Project Reunion’ (link) forming the modern foundation for Windows going forward. Microsoft (in the linked article) talks about Windows 10X being side by side with Windows 10 ‘Classic’ but I think long term what we’re going to see is win32 either delivered in the form of cloud based virtual desktop or possibly in the form of a virtual machine but what ever the case maybe long term they appear to be wanting to unburdern themselves of having to support legacy code considering that long term revenue and profits will be lower thus the cost of maintaining the code base will need to be reduced. Regarding whether ARM based Windows Server will be something available to the market or whether it’ll be a cloud only facility – I guess only time will tell but given the direction of cloud computing and changes in laws in many countries which now allow cloud to be available for industries that once considered cloud computing ‘off limits’, it’ll be interesting to see whether ‘on premises’ servers have a future.
As for what might be in the future:
ARM based games consoles, desktops, workstations etc. might be on the cards – maybe even Intel reentering the ARM market because it is clear they have the engineering talent but the ISA itself is becoming increasingly an impediment to improved efficiency (variable instruction length being one factor which makes optimisation a lot more difficult). This video goes into a lot more detail than what I could do the topic justice:
The other part of the equation is Clang/LLVM (or LLVM combined with the other various frontends depending on the language one wishes to use) which appears to be gaining greater traction when compared to the GNU toolchain which was pretty much the industry standard open source toolchain up until that point. What I think will be interesting will be the work that Google is doing to create a ground up replacement for libc where the goal is to write it in pure C rather than falling back to assembly for the sake of performance which will hopefully mean a greater focus on improving code optimisation when compiling so that not only will this new libc performs better but also all C based code perform better thanks to the investment made. With that being said, I think the interesting part will be what Apple does with the kernel with its removal of KEXT for third parties – I wouldn’t be surprised if we ended up seeing Apple moving as much stuff out of kernel space as they can given that the cost of context switching (in terms of performance hit) is a lot lower on ARM than on x86-64.