On how Apple silently upgraded to AFPS

dada_dave

Elite Member
Posts
2,063
Reaction score
2,043
1681165829563.png



Found this little note about how they did the file system transition interesting. Apple doesn’t always get it right, but sometimes they really nail it. I mean someone out there probably had a problem as a result but how seamlessly it went is quite an accomplishment.
 

dada_dave

Elite Member
Posts
2,063
Reaction score
2,043
Yep. At the other place, i repeatedly pointed this out whenever the naysayers would claim apple never did anything cool.
Having to have that same conversation over and over again, often with the same subset of people, is one of the reasons I no longer post there. Even though I know the reach of those forums is higher, I just lack the emotional/mental bandwidth. And to be honest it drowns out legitimate criticisms of Apple when everyone is hyperventilating about minutiae or just simply constantly complaining.
 

Nycturne

Elite Member
Posts
1,109
Reaction score
1,417
When it comes to upgrades and the file system, the folks Apple has are some of the biggest perfectionists I’ve seen, but also some of the most ingenious problem solvers when it comes to making transitions.

I poked around at what Archive & Install did back in the day over a couple major releases, and it was rather interesting. They had built a process for archiving the old system, installing the new one fresh, and then identifying what could be safely deleted and what could be safely imported into the new system (the interesting bit). After a few iterations, this became the default way of upgrading the OS, this identification step became so reliable. And more recently, the migration to sealed & signed system partitions may have nullified the point of such a system, but even that migration is interesting as Archive & Install likely helped inform the design of the migration to the layered FS. Just absolutely impressive stuff that they’ve evolved this, brought along tens of millions (if not more) Mac users to APFS and protected system partitions without people noticing in their day to day.

I used to work on a team that owned engineering processes for an OS-scale project. One of the axioms we had was that “nobody notices when everything is going perfectly, but they will be extremely loud the moment something doesn’t”. Unfortunately, it meant that sometimes we didn’t get budget to address certain scaling issues until it was starting to break, because fixing something and not having the work go noticed was considered a bad thing. I think these folks deserve respect for making such large underlying changes, and having the users be so quiet in response.

But yeah, this sort of testing approach is about the only way to get a real representation of what users are doing and find the edge cases you don’t have internal coverage for. This is one of the reasons companies go all in on telemetry, although the quality of that telemetry varies a lot.
 

throAU

Site Champ
Posts
253
Reaction score
273
Location
Perth, Western Australia
Rosetta (both versions) is like this. Seamless.

When I had my first Mac (an intel mini) I tried out my old copy of Diablo.

It ran great. I had no idea it was a ppc classic application running on intel OS X 10.5

If there is one thing apple have repeatedly nailed it is seamless software and hardware architecture migration.
 

throAU

Site Champ
Posts
253
Reaction score
273
Location
Perth, Western Australia
I’d say that the problem is sometimes they are TOO good at it. Witness all the crying when Rosetta v1 was deprecated. Everybody had perfectly functional software that ran just fine and seamlessly suddenly break.

Sometimes you need just a little pain to encourage people to get rid of the old stuff before it breaks entirely.
 

Nycturne

Elite Member
Posts
1,109
Reaction score
1,417
Rosetta (both versions) is like this. Seamless.

When I had my first Mac (an intel mini) I tried out my old copy of Diablo.

It ran great. I had no idea it was a ppc classic application running on intel OS X 10.5

If there is one thing apple have repeatedly nailed it is seamless software and hardware architecture migration.

Sometimes, developers following good practices help. I think I was the most impressed by an old copy of The Bard's Tale (1985) which ran up until the Intel switch (68K code). So something that was written before System 3.0 running on 10.4.11. Not bad at all.
 

mr_roboto

Site Champ
Posts
272
Reaction score
432
Rosetta (both versions) is like this. Seamless.

When I had my first Mac (an intel mini) I tried out my old copy of Diablo.

It ran great. I had no idea it was a ppc classic application running on intel OS X 10.5

If there is one thing apple have repeatedly nailed it is seamless software and hardware architecture migration.
I remember trying games on Rosetta 1 and having a less-than-seamless experience. They generally worked OK, but frame rate stutters and other timing related oddities were common.

Rosetta 2, on the other hand, has been much better. Aside from the first-launch delay, it's nearly transparent in most cases.

These results make sense to me as Rosetta 1 was a pure JIT, while Rosetta 2 primarily uses AOT recompilation (hence the first-launch delay) and only falls back to JIT for cases not possible to handle with AOT. JIT emulators suffer from timing issues; any time the JIT engine has to switch from executing recompiled code to "recompile some code" or "optimize some code", as far as the software running under the JIT is concerned, it's as if the CPU paused for no clear reason. If said software magnifies the effect of "occasionally this loop takes a lot longer to execute than other times", as games are wont to do, users may notice.

AOT gets rid of that because it doesn't add more unexpected pauses. The emulated CPU makes forward progress with a reasonably even pace.
 
Top Bottom
1 2