Meltdown and Spectre are all over the news, and, for once, share prices of Intel and AMD have been moving in opposite directions for a visible reason.
As of Friday, the software fix for Intel-mostly (as far as has been confirmed so far) Meltdown bug is rapidly being rolled out, the consequences don't seem particularly dire, and Intel's share price seems to be recovering. Meanwhile...
The Spectre bug, confirmed on multiple vendors' chips already, remains a looming menace - and, if it is indeed exploitable, it's the much greater menace than Meltdown.
There are a couple of things I don't grok, with regard to Meltdown, mainly relating to the presence of kernel memory in the userspace page table.
In My Day, back when dinosaurs roamed the Earth and we carried our bits in a bucket, kernel address space was always separate from user address space (on a machine with a paged MMU, anyway), except for a few pages mapped from kernel to user space - never the other way around. From the perspective of the user process, kernel memory simply didn't exist, and system calls invoked the Service Fairy who lived somewhere out in hyperspace.
But, then, if the kernel had shared address space with the user process, it would have eaten considerably into the 64K bytes of user address space.
When these newfangled 32-bit superminis were coming in, I had the impression that it was now practical to have the kernel running way up near the top of the 4G byte address space, with the entirety of one-each user process mapped into a lower region at any given time, but that this mapping was a function of the kernel page table, and the user page table still didn't map to kernel space at all. But maybe I have this wrong; I never actually worked on the context-management code for these systems, though I did study the MMU architecture for a few of them, long enough ago that I've long since forgotten the details.
The thing I really don't grok is the reason that not including kernel address space in the user page table would cause a performance hit. My assumption would be that it's an artifact of the crufty evolution of the x86 memory management architecture, except that apparently it's also an issue on some ARM cores...?
Wait a minute. What would the kernel be doing with plaintext passwords, anyway, other than as things that pass through random I/O buffers at random times, often in fragments? Isn't authentication normally handled by a privileged user process?
Which brings up the point that Spectre, if it is indeed exploitable, is the much greater menace. Being able to read the memory of another process means actually having access to sensitive data, even with a microkernel OS.
So, yeah: Meltdown is largely fixed already, modulo performance issues, if you're keeping current on your patches. Spectre may be haunting us for quite some time yet.
And here I thought IBM had solved all these problems back in the 1970s.
I also don't understand why Intel's CEO would have done a share dump when he allegedly did, unless he was expecting a total catastrophe. And was his share dump big enough to shift the share price noticeably? I'm too lazy to check this morning. It's 0510 on a Saturday; I should be watching cartoons.
Update: See the comments for a bit of clarification from Jeffrey Bell, who's been paying closer attention.
Also, see the quantum trolley explanation at xkcd. Yeah, it's... sort of like Schrödinger's page fault. It both happens and doesn't, because that's how you squeeze extra performance out of a CPU.