49 comments

[ 1.3 ms ] story [ 110 ms ] thread
Has to do virt to pose any real challenge.
Universal Binary 2 does both Intel and ARM, and Rosetta 2.0 does Intel virtual machines to run Intel legacy code Universal Binary 1.
Rosetta 2 doesn't work via virtualization it's binary translation, which is very different.
I'm still wondering what makes it a fundamentally different problem ? Once you're able to have your computer translate instructions from one arch to another, what prevents you from running a whole suite of operating system binaries ?
Its a whole different ball game. The current solution recognizes Mac system calls and routes them (maybe with some exceptions) 1:1 to the host OS, so there is a single OS that knows all what’s happening in the system.

If you have two OSes, it gets complicated. You have two virtual memory maps, two structures tracking open files, two disk caches, two clipboards, two networking stacks, etc.

As an example, if an application on the guest OS tries to open a file for exclusive access, the guest OS checks it’s data structures to see whether that’s possible. That’s insufficient, as the file may be open on the host OS. Similarly, the guest OS may cache writes to a file, and the host OS won’t check the guest OS’s disk cache when an application on the host OS reads from that same file.

So, you either make that impossible by giving the guest OS a disk for its exclusive use (could be a virtual one), or you provide ways for the two OSes to co-exist on the same hardware. That can be made to work, (but isn’t ideal; copying files between the two OSes would be cumbersome) for disks, but is too impractical for other hardware (you’re not going to set aside one of your USB ports for exclusive use by the guest OS, just in case it needs it, and certainly aren’t going to require users to plug in a second keyboard and mouse or even a separate graphics card for use by the guest OS)

So, the two have to cooperate. I think http://cs.yale.edu/homes/aspnes/pinewiki/Virtualization.html lays out the options well.

The ideal goal to run any guest OS, unmodified, isn’t attainable, as it would require the host OS to, somehow, know how every possible guest OS, including ones yet to be written, accesses its hardware. So, you either support specific OSes (say only Mac OS), or set rules that guest OSes must follow to be supported.

Edit: the latter is what typically is done, and isn’t that bad, nowadays, as most OSes are made to run on PC hardware, where device discovery, etc. is standardized.

Virtualization requires that you have a complete copy of the entire OS running, and all code execution is opaque to the host. That means all execution of code is just in time - because it's not native - and you can't have any part of virtualization running optimized arm code - because you're in a virtualized x86 box.

Translation on the other hand involves basically parsing the object files, finding entry points, translating those, and then occasionally jit compiling when the code was doing something funky so your entry points were wrong (think obfuscation, compilers written the night before a compiler assignment was due :D ). And of course JITs themselves.

JITs (especially self modifying ones) are a particular pain point for all engines be they virtualization or translation, because they necessarily require you to recompile or invalidate pretty much entire pages of compiled code. Unfortunately virtualizing a machine with a different instruction set gives you an opaque view of what is happening so takes all executed code far closer to the JIT/interpret only end of the spectrum.

So the end result of this is you get a much because resource impact - you've loaded a full clone of the OS on a virtualised machine, so you may not even be able to leverage hardware virtualization support (I imagine with some skullduggery it could be possible), and even if you could you now have duplicate page tables as well. Then you have the perf impact which is because the outside environment is opaque to the VM you lose a lot of your ability to rely on code not changing, or to perform any AOT work.

Now some of these may be mitigable, but at some point you have to ask why you would bother when translation has lower resource usage, higher performance, and can be made much more seamless.

M1 already supports hardware virtualization, or do you mean full x86 emulation, a la Qemu, etc?
I think other poster is referring to the $500 must-return dev boxes that lacked virtualization.
It begs the question: what will happen to the server CPU market? Cooling is big deal on server farms. If these chips produce more power for less heat, it will win big for datacenters. Not even counting their power consumption for processors themselves - servers run round the clock...

Any server motherboards or the likes of XServe expected on M1?

Apple has massive DataCenters, after all Siri, Map, Speech Recognition is servicing over a billion customers. The question will be if Apple intend to have the chip they are going to be using in Mac Pro to be running inside their own DataCenter? It is highly unlikely Apple will be switching to macOS for their own Server infrastructure, so the question is would Apple make sure Linux works on their M1?

Would the model make sense? Even if Apple manage to sell 100K Mac Pro a year, it would barely make up the cost of a new CPU SKUs. So they will certainly need more volume to amortised those cost. And Server seems like a logical extension to it. Would Apple start using and selling XServe? Considering they are so far ahead of competition and it is extremely power efficient. Electricity cost contribute to a lot of the Datacenter running cost.

To me the M1 or A14X has always been the less exciting part, since everything is well known. You are limited by 10-20W TDP there is only so much you can do. The most interesting parts remains on the 100W+ TDP Apple Silicon.

Datacenters are usually operating under either I/O bottlenecks or memory bandwidth bottlenecks, it is rarely bound by compute. So I think if anything they'd just want to have more on-chip memory for the server chips, and keep them at a low TDP, which would massively safe on power and cooling.
There is a reason Amazon, Google, etc. are looking into ARM servers, with Amazon having developed server class ARM parts and selling instances on them via AWS.
I’m in the market for new machine. Does the MacBook Air M1 with 16GB ram is enough for dev machine, no gaming, nothing fancy?
In terms of raw power it should be able to handle most tasks and more efficiently as well; however in terms of “development” it has a few drawbacks with the whole virtualization aspect. So depends on what kinda dev you doing I guess
At the current job I don't need virtualization but might need it in future at which point most apps will be optimized and fixed I guess.
Check if your dev environment is supported - but if it is Apple looks really really good.

Why go for Air tho ? Pro looks like a better device (better screen, better battery, same dimensions) and it's marginally more expensive.

I use my computer mostly in the desktop mode with external screen, so I don't really care about screen quality, but I need certain mobility and I don't want mini.
I see no point choosing M1 Pro over M1 Air as a dev machine. $300 extra buys you mostly the TouchBar.

Air has a better form factor (no sharp edge under wrists). Better keyboard (real top row). Both have essentially the same specs. Battery life on both is an overkill. Active cooling makes relatively small difference and kicks in only in long workloads (longer than a reasonable build should take).

I use laptop keyboard 5% of the time, but I use the laptop screen as a secondary monitor constantly.

I can't judge the battery - but it's for sure going to stay useful for longer as capacity degrades.

As far as I can tell the Air and Pro get basically the same performance for the first 10 minutes. After that the Air will throttle. There is no task I would do that will max out the CPU for 10+ minutes so I don't see any reason to spend the extra for a slightly brighter (but otherwise the same) screen and two more hours of battery life (18 vs 20).
Well as I can tell from fan noise levels on my current MBP - running a device simulator or a VM along with a IDE is sustained load for sure.
(comment deleted)
You may want to check the Activity Monitor to make sure the CPU is actually at 100% when you're doing that. Apparently it's quite easy to get the fans going on the Intel Macs even on lighter loads compared to the new M1 ones.
I've moved all of my side project dev to a M1-based mini with 16GB. It's still lacking docker+virtualisation support, which is a bit of a headache, but I'm confident that'll be resolved soon. Other than that, everything I need either has been ported or runs great in Rosetta. I'm blown away by how responsive it is. I often have three JetBrains IDEs, XCode, java, and a node server for the React frontend all running at once, and it just flys. Not only do things build in what feels like half the time, I have yet to notice a heavy build slow down everything else, which happens all the time on my Intel MacBook Pro.

Edit to add one downside I forgot to mention: It's been a long time since I used a non-portable mac. One annoyance of the mini is that I feel like I'm being asked for my password every 6 seconds, which is much less of an annoyance on a portable because you have the touch sensor.

I'm not a fan of watches especially when typing, but Apple watch can help you with authentication.
It won't be "game over" for Intel for some time, though the sun is certainly setting for them. They really need to pull their collective head out of their metaphorical fanny immediately and completely unless they want to face a 20-year (at least) severe slump in market share.

The very same thing that Intel has done over the past decade or so (grown comfortable and lazy at the #1 position) will happen to Apple as well if they take the #1 position by any significant margin for any significant amount of time. Companies stop innovating the instant they no longer need to.

And, until these CPUs are available outside of the Apple ecosystem they are effectively non-existent to me. I can't stand OSX or Apple's recent laptop designs.

I don't think Apple will become comfortable and lazy due to hardware advantages.

Here's the more likely failure scenario:

As their hardware and cost structure advantages grow, they'll be anything but lazy. They'll be more energetic and and confidently push forward in locking down the Mac ecosystem. Newer or smaller open source apps will face larger and larger barriers.

Power users will hate it but feel torn since they want the hardware. It will be a long, difficult struggle because Apple will make it one.

I don't disagree. Let me elaborate a bit:

Historically, the instant any company has no real competition, they stop innovating. Most will also take measures to maintain their market position artificially; they will make it difficult for customers to leave and switch to a competitor rather than trying to keep their customers by continuing to provide a better product.

These are the hallmarks of comfort. Hubris and laziness.

> pull their collective head out of their metaphorical fanny

"pull your heid oot your cunt"

Apple is not marketing the M1 chip on any kind of dimensions of Ghz, cache size, etc. I guess deliberately not playing the Intel game.

I would love to know -- is an absolute Ghz metric meaningful at all with this line of chips then, for any type of user? Does that matter for some special application, or not at all? What happens when they want to increment the speed for next generation, does it become just M2?

And, in the manufacturing process, what happens to the chips with lower yield/performance? Do those get sold somehow and we don't know about it?

Has Apple ever done that ?

If they went to the specs it becomes a commodity hardware device that you can compare with competitors.

Apple is in the business of selling you Apple devices - and it's fast - unlabelled graph faster than previous generation.

Has Apple ever done that ?

Years ago Apple had a massive marketing campaign built around trying to "teach" people that you couldn't compare PPC GHz with X86 GHz, and on the whole it was a bit of a flop and people just went on assuming that a 2.5GHz processor was faster than a 2GHz processor.

I guess they learnt their lesson and instead of trying to convince people that smaller numbers actually sometimes are better than big numbers, they now just never mention the smaller number.

Considering that Air doesn't throttle without a fan - I'm hoping they cram a beefier chip into 13 inch - I don't mind reasonable fan level kicking in when doing heavy duty work - not the insane level of my current MBP, but from what I saw the new M1 MBP practically doesn't turn the fan on - seems like there's headroom for more power there.
Like it or not, Apple isn't going to sell M1 or subsequent processors separately. And a lot of people in the world will not pay a premium for an Apple laptop.

The short term threat to Intel is from AMD.

The long term threat is proliferation of 5nm tech and design lapses from Intel side.

Apple is not a competition to Intel, atleast directly.

Macs will never be a mass market product, unless Apple slashes prices. But that is not going to happen.

What will happen is Intel will pull through, for another decade or so, with mediocre but cheap processors, supplying mass market volumes, with AMD being a tough competitor.

This. The M1 achieves its remarkable performance through some good engineering and the extension of the SOC concept to include system memory and storage. The same reason that Qualcom could not match the A series processors. I do think the GPU team deserve a hearty pat on the back though!
Intel isn't some two-bit company and its products aren't mediocre. The company has above 90% market share in datacenters. It's not on life support by any stretch of the imagination.

AMD has been executing well for years and the market only recently took notice. That doesn't mean Intel can't benefit as the pie gets bigger, and it doesn't mean 10nm has to be a death knell for Intel.

Apple released a new chip to its own fanfare, but unless you bought an M1 device or made a shopping appointment in an Apple Store (they wouldn't even let me walk over to the MacBook when I went to pick up an online order), you don't have much reliable information outside of what some tech journalists have posted on the internet.

Intel has been unable to deliver. They need big changes for that to happen.

AMD is doing well indeed.

AWS and others are trying to push ARM because of better performance/watt in datacenters. Exactly the same metric for laptops.

> Macs will never be a mass market product, unless Apple slashes prices. But that is not going to happen.

They just have. The M1 range are $3000-$4000 worth of computer starting at around $1000.

I was expecting to fork over around €3000-€3500 for my new laptop. It's half. I was shocked by the low price.
1. Intel will lose Apple as a customer.

2. Others will imitate, Microsoft Windows on ARM.

3. The iPhone wasn't originally a mass market product.

By showing what is possible with an ARM CPU in terms of performance/power efficiency ratio on the CPU. Apple may trigger an increase of investment in ARM technology. The wave will not happen overnight. Intel has opportunities to adapt. But their are a lot of corporates (and consumers) that are waiting switch to greener, more power efficient computing.
I'm calling it now: Intel is still going to be a billion dollar company after Apple releases this chip. Which is to say- what a stupid headline. It's always annoyed me that Tech headlines seem to cater to 13 year old boys.
As a developer I'd happy LG Gram style MacBook Air with 16-17" screen that also bumps resolution a bit. Going from 15 to 16 inches made not much practical difference in terms of fitting more info on screen, it just made existing stuff larger.

I don't have a need for huge compute power, but I do want a large screen as I don't like using external screens...

Okay the M1 is already very fast, but what about the GPU?! This (I think) will be the point for the future MBP and iMac.
This headline is simply ridiculous. Why don't we try "OSX Big Sur leaked, it's game over for Microsoft."

Intel is a massive company with a dominating position in the dat center space. Chip sales to Apple were probably a rounding error.