The tech news has had a lot of coverage recently of Microsoft’s proposed ‘Recall‘ system, which (as a very rough approximation) takes a screenshot of your display every five seconds, and uses their AI-type Copilot system to allow you to search it. “What was that cafe or restaurant that someone in the call recommended yesterday?”
At first glance, this is a very appealing feature. Back in the 90s, when I was working on human-computer interaction stuff, we used to say things like “the more a secretary knows about you, the more helpful he or she can be”. We were living in a world where your computer knew almost nothing about you except what you typed on your keyboard or clicked with your mouse.
Nowadays, however, users are more often concerned about your computer — or someone with access to your computer — knowing too much about you. The data used by Recall is only stored locally, but in a corporate environment, for example, somebody with admin access to your PC could scroll back to the last time you logged in to your online banking and see screenshots of your bank statements. So, potentially, could a piece of malware running with your access permissions (though that could also probably take snapshots of its own). You can tell the system not to record when you’re using certain apps, or visiting certain websites… as long as you’re using Microsoft’s browser, of course. Or you can opt-out completely… but all of these require you to take action to preserve your privacy – the defaults are for everything to be switched on.
This caused enough of a storm that Microsoft recently switched it from being part of their next general release to being available only through the ‘Windows Insider Program’, pending further discussion.
There’s been enough online debate that I won’t revisit the arguments here about whether such a system could be built securely, whether we’d trust it more if it came from someone other than Microsoft, what the appropriate level of paranoia actually is, and so on.
There are, however, a couple of things I’d like to point out.
The first is that this facility was to be available, in the immediate future at least, only on PCs that meet Microsoft’s ‘CoPilot+’ standard, meaning they had a neural processing unit (NPU) which allowed them to run the necessary neural network models at a sensible speed. And the only machines on the market that currently have that are ARM-based, not powered by AMD and Intel. I find it intriguing that the classic Intel x86 platform which has been so closely tied to Microsoft software for so long is not able to support such a headline feature of Windows. “We are partnering with Intel and AMD to bring Copilot+ PC experiences to PCs with their processors in the future.”
The second is that, ahem, I predicted such a system, right here on this blog, 21 years ago.
Actually, though, my idea wasn’t just based on screenshots. I wanted a jog-wheel that would allow you to rewind or fast-forward through the entire state of your machine’s history: filesystem, configuration and all. One key component for this we didn’t really have then, but it is much more readily available now: filesystems which can save an instantaneous snapshot without using much time or space to do it. As I wrote at the time,
The technology would need a quick way of doing “freeze! – duplicate entire storage! – continue!”.
And that, at least, is now possible with filesystems like ZFS (which I use on my Linux home server), BTRFS (used by my Synology), and APFS (used on my Macs, where such snapshots are a key part of the Time Machine backup system). So one of the key requirements for my wishlist is now on almost all my machines.
And my Linux server is running NixOS, which means that I can, should I so desire, at boot time, select any of the past configurations from the last few months and boot into that — Operating System, applications, configuration and all — instead of the current version.
I haven’t quite got my rewind/fast-forward jog-wheel yet, though. Oh, we do have that AI stuff… all very clever, I’m sure, but I’d rather have my jog-wheel. Let’s give it another 21 years…
I can’t comment about Intel, but Arm has added SVE2 (Scalable Vector Extension) and SME2 (Scalable Matrix Extension) instructions to recent Armv9 architectures, specifically for doing more AI/ML on-device, to avoid data being sent to the cloud for processing. Of course, as Microsoft have shown with Recall, this needs to be done securely (Apple have managed this much better than Microsoft so far).
This article has more info on SME2/SVE2: The Register and I know that Cortex-X925/Cortex-A725 referenced will shortly be supported by llvm19, and therefore C++/rust and other languages, as I committed the upstream change supporting these CPUs recently – commit id. I’m guessing the CoPilot PC specification requires a recent Arm architecture which provides SME2/SVE2, and Microsoft haven’t yet specified an x86_64 equivalent.
Thanks Jonathan – what it is to have knowledgeable friends!
Q