The architecture of the JVM.
Realistically, the architecture of Oracle/Hotspot, and sometimes Azul. There are many other JVMs, and they often make very different choices.
What follows is super-incomplete. I'd love a set of overviews at varying levels. The first few chapters of Scott Oak's Java Performance have some material on the JIT and Garbage Collection, but is not focused on architecture.
A JVM Does What?
By Cliff Click on the development of JVM services. Discusses several things that we'd want either the kernel or the JVM to provide.
- OS support for monotonic time, for instance.
- OS thread priorities (says Azul fakes this)
- JVM support for fixnums
- Application support for resource reclamation
Additionally, he claims bytecodes are slow and a poor way to describe program semantics. TODO: look into this more..is it bytecode vs. native, or some other distinction?
Understanding How Graal Works - a Java JIT Compiler Written in Java
Java Anatomy Park
Mini-posts on JVM architecture by Aleksey Shipilëv.
Skimming the JEPs targeted to new versions of Java is a good way to keep up on new developments.