4 ms·
At first I thought this was being done to pump us up for new Mac Pro hardware that might be on the horizon, but then I wasn't sure, but now I'm also still not s
by aa-jv 3y ago
At first I thought this was being done to pump us up for new Mac Pro hardware that might be on the horizon, but then I wasn't sure, but now I'm also still not sure it isn't .. ;)
But, regardless, the subject of using a Mac to host a plethora of different platforms (in my case, for build-server duties) is indeed a fascinating subject. If I can get my target/builds set up on the next Mac Pro, whatever that is going to be, I'll be quite happy to do so .. especially if it isn't just doing MacOS/iOS builds, but whatever else my framework of choice (JUCE/Tracktion) supports (Android, Linux .. Windows .. etc.)
- detourdog 3y agoI think this is being done because the Mach microkernel was designed to run multiple OS's at the same time. I think Apple finally has enough developers to start pushing into new areas such as a framework to advantage Mach.
- saagarjha 3y agoVirtualization is, of course, based on a very standard KVM-like API. There's not much Mach in its design at all.
- detourdog 3y agoMach is down below. This is what Mach is for the BSD that was originally part of the DARPA deliverable was just to prove that Mach could run on OS.
- saagarjha 3y agoThere's not much down below it. It calls into the Hypervisor APIs, which directly touch platform virtualization features.
- detourdog 3y agoWe are obviously talking past each other. On MacOS Mach provides all the resources. Mach was designed to abstract Operating systems from the underlaying hardware. It could also run more then one operating system at time since that was normal expectation.
- saagarjha 3y agoRight, but that has nothing to do with the Virtualization framework.
- aa-jv 3y ago"Being done", I'm not sure anything is happening here other than a happy user pointing out that Apple have some advances in this area, but .. your point is that this has been there all along. Alas, if only there were the hardware at scale which supported Apples' Mach implementation, at favourable economies. One way this is favourable to this dev is if Apple finally give me a machine which I can use to Build All the Things™, including iOS and MacOS and Windows and Linux and Android, oh my!, virtually and/or with x86/ARM cores onboard, oh yeah!, without having to resort to the typically draconian bollocks on other platforms, or rent someone elses hardware, or whatever. A new Mac Pro that can be loaded to the gills and host several competing OS's at once, for the purpose of software development? Sign me up, because I'm tired of build-box'ing rigs and fighting that darn license ..
- detourdog 3y agoWhen Mach was defined it was considered a centralized campus computer that could run all the needed operating systems on top of centralized memory and processing using IPC. https://en.wikipedia.org/wiki/Mach_%28kernel%29 https://en.wikipedia.org/wiki/Mach_%28kernel%29
- aa-jv 3y agoSure, Mach is great. No argument from me here. Well except that, a new developer-focused Mac Pro with that centralized campus feeling, sounds great to me. I can only wish it would have both x86 and ARM cores onboard, though, to get that true all-round Mach prowess...
- sroussey 3y agoI build windows and Linux and iOS and macOS all on my MacBook Pro.
- ch_123 3y agoMach was designed to run multiple OS interfaces in the same way that Windows NT was - multiple compatibility layers on top of a common kernel (e.g. WSL1). What is being discussed here is virtualization, for which Mach is no more suited than Linux, Windows, Sys V Unix etc.
- detourdog 3y agoMach was designed to make clean separation between operating systems and hardware. Notice how easily Apple moves between hardware? The unsung hero is Mach and the design patterns that NeXT/Apple framework built on top of it.
- foldr 3y agoIt’s easy from the user’s point of view. It’s not easy to write Rosetta.
- glhaynes 3y agoI'm certainly not an xnu specialist but from what I understand, you've basically got a BSD kernel (a "macrokernel") running in privileged mode that (roughly) just has a few services replaced by or connected to Mach ones. So I'm not really sure they get much portability benefit specifically from Mach versus "more traditional" kernels.
- tedunangst 3y agoEvery modern operating system was designed to easily move hardware. (It also helps a lot that all hardware is basically the same thing.)
- astrange 3y agoThere is nothing special about Mach/xnu here and it is not helping anything.
- ch_123 3y agoThat is largely due to a mix of Apple's investment in emulation technologies, and Apple's ability to exert influence on third party developers and vendors to keep up with their latest tooling. Very little to do with the Mach kernel. The ability to move between hardware platforms also has very little do with the ability to run operating systems in virtualization. Case in point is that Apple is one of the last major OSes to include a hypervisor in the OS.