VME Broken on AMD Ryzen
os2museum.com
os2museum.com
We're long overdue for a simplification of the PC platform. Having CPUs out there with broken legacy features accelerates the migration away from those features. Hopefully this leads to dropping them outright at some point.
[1]: https://en.wikipedia.org/wiki/DOS_Protected_Mode_Interface#H...
Instead, now we have partially-backwards-compatible (and even slightly different) AMD64/Intel64 and at least two non-interoperable virtualisation extensions (AMD-V, VT-x).
(That doesn't mean the complexity is justified, just that it can be overcome. I think that people often assume that x86's dominance means that there's something inherently amazing about x86 from a microarchitectural point of view. That isn't true; rather it's simply that x86/Windows has historically earned Intel so much revenue that they've been able to fund the manpower needed to keep it alive and on top.)
But this is probably why Intel's efforts to extend x86 down to lower power processors haven't been huge successes.
The problem is it uses a different memory map than 32bit mode so a lot of write your own os manuals are just flat wrong.
A traditional BIOS is hardly suitable for describing a "modern" firmware; for chrissake it doesn't even use 32 bits!
And despite all that, as you say, a new architecture is badly needed.
Slight aside, there are a lot of reasons that Itanium failed, but certainly one of them was lack of backwards compatibility.
Itanium did not aim at the x86 market. The x86 translation layer was retrospectively seen as a mistake as well, because it wasn't relevant, but required transistors that limited the design's performance overall, which was relevant.
Maybe not. But x86 certainly took over the market Itanium was aiming for.
Server people care for 64-bit address spaces, and that's a feature introduced by AMD64 which is not available in x86.
Backwards compatibility straight back to 1964 is a big deal, there's lots of 50+ year old code still in production at banks, insurers, and the like.
But you certainly can natively run user-mode 16-bit DOS programs on a modern CPU.
It's much more incredible to me that our computers work, at all.
What I find more incredible is that this bug could get by without being noticed. A CPU literally has billions of possible regression tests --- all the world's existing software --- and of everyone working on the project, not a single one thought to try some older software (XP/2k3 is not even that old, as far as x86 compatibility is concerned) to see if it worked? This is an old feature too, meaning it should've been well-characterised by now. I'm particularly surprised that FreeDOS is affected, since it's commonly used as a minimal "non-OS" OS for running things like low-level diagnostics and debugging of hardware.
This begs the question: if old features are this broken, what about the new ones (for which there is far less software available to test them with)? I think the most recently discovered one was https://news.ycombinator.com/item?id=13924192
You can find so called "specification updates", which - as the name implies - update the specs to match actually released hardware ;)
Available for all CPU families from both Intel and AMD, easily go into tens or hundreds of positions. (Though I haven't seen the Ryzen one released yet).
And then somebody recently linked this (2010) - allegedly there are bugs exploitable for privilege escalation:
http://cs.dartmouth.edu/~sergey/cs258/2010/D2T1%20-%20Kris%2...
That comes from their end.
It's a conference presentation titled "Remote Code Execution through Intel CPU Bugs" by Kris Kaspersky and Alice Chang. Google finds copies elsewhere.
I can't say that I see how the "remote" part could possibly work, but as for local exploitation, errata often state that things like "data corruption" or "unpredictable behavior" can happen under "certain internal conditions" so this stuff may be exploitable if one can execute arbitrary instructions which trigger these internal conditions.
New features are actively used, and thus actively tested. They are likely much less broken than disused old ones.
And Windows XP might be out of support but it still is used in some places too. And even if it wasn't, somebody could still think of using it as a test case to increase coverage. It would be extremely lame if some bug which crashes newer Windows in 0.1% of cases turned out to be trivially detectable in XP.
IIRC Ryzen and Kaby Lake were both announced with "only Windows 10 is going to be officially supported"…
So no reason not to use Ryzen.
You don't catch ever bug with a suite of unit tests. But automated regression tests do ensure you don't replicate a failure condition.
Could you package a trimmed down version of that stack up and cause a reliable crash on Ryzens operating on a more typical platform?
Maybe it becomes a bit of a rube goldberg malware at that point...
Every x86 has had errata. Why should we expect Ryzen to be any different? “As incredible as it is...” seems a bit of an over-reaction to me.
Typically, the person reporting this sort of %^&* has an agenda, ranging from "fixit fixit fixit" to "I only buy the competition and so should you". The knowledge is good to have you just have if you are into doing crazy old things with new hardware. But the hyperbolic "the world is ending" bit you should just ignore.
https://pcpartpicker.com/product/9Q98TW/amd-ryzen-7-1700x-34...