Regarding the JVM I would also add, that it was common approach on mainframe architectures to use bytecodes + microcoded CPUs, with IBM and Unisys mainframes being the best examples still in production.
PCs and mobile OSes have been catching up with those designs.
PCs and mobile OSes have been catching up with those designs.