An in-depth understanding of the history of the JVM virtual machine – virtual machine
The content is basically from understanding the JVM Virtual Machine in Depth. Kind of a personal summary of development history.
Summary:
- The history and progress of the JVM
- Why can Hotspot dominate martial arts
- Hotspot and JRocket merged, with mixed results
- The challenges facing the JVM and what lies ahead
Mind mapping:
History of virtual machine development
Classic VM – The first official commercial JAVA virtual machine
On January 23, 1996, Sun released JDK1.0, which is the first JVM virtual machine in the true sense of JAVA
Features:
- Only pure interpreters are supported
- Conditional compilation intelligent plug-in (Sun WJIT). The interpreter and compiler do not work together.
- The inner workings are quite simple
Meaning:
- Before jdk1.2, only specified VMS
- Jdk1.2 can mix hotspot and exact VM
The equivalent of hotspot: Exact Vm
Features:
- Accurate memory management (you can know the exact data type of that piece of memory). Discard the handle – based approach to object lookup
- Hot spot detection, two-level just-in-time compilation, compilation and interpretation mix
Meaning:
- Due to the emergence of the better HotSpot virtual machine, it was not officially commercialized and was short-lived
- In jdk1.2, sun provides this virtual machine to work with classic
Martial Arts Overlord: Hotspot Vm
Features:
- It provides all the features of the exact VM
- Support for hot code exploration
- Precise memory management
- Standard for high-frequency code even compilation and stack replacement (important)
Meaning:
- HotRocket: Jdk8 Hotspot is merged with JRocket
- It didn’t work out very well, and many of JRocket’s features didn’t work out.
Mobile VIRTUAL machine: Embeded VM
A JVM designed specifically for mobile smartphones, but ultimately failed. Directly replaced by Android.
No. 2: JRocket and IBM J9VM
JRocket:
Features:
- JRockit was acquired by Oracle in 2008 and is now no longer in development. It remains in R28, which is the code name for JRockit 6 of the JDK.
- JRockit does not contain an interpreter implementation. All code is compiled and executed by a just-in-time compiler
- The vm is highly optimized for server hardware and server application scenarios
Meaning:
- In JDK1.8, oracle integrated JRockit into the HotSpot virtual machine, but due to the big difference between the two features, only some features were integrated, and the result was not very good
- As a good JVM implementation has been ahead of the JVM forefront
- Along with the excellent component Java Mission Control troubleshooting suite.
IBM J9VM
Features:
- Originally called: IT4J, J9 is more widely known due to its hard to remember name
- Extended from K8, the name comes from an 8bit error problem
- Claims to be the fastest Java Virtual Machine in the world (official definition)
- It is very influential in the field of commercial virtual machines
Meaning:
Around 2017, IBM released the open source J9 VM
OpenJ9 is administered by the Eclipse Foundation, also known asEcilpse openJ9
Requires special platform to run: Bea Liquid/Azulejo VM (dedicated VIRTUAL machine)
Bea liquid:
Features:
- It implements a specialized operating system. Running on your own Hypervisor system
- Terminated due to the development of JRocket.
Meaning:
- The Liquid VM project was discontinued with the termination of the JRockit virtual machine.
Azule VM:
Features:
- A number of improvements have been made to HotSpot, which runs the Java virtual machine on top of the Azul System proprietary System
- Provides a huge memory range for pause times and garbage collection times: PIC collector C4 collector
Meaning:
- Finally the production line is put into the Zing VM virtual machine
- Low latency
- Rapid warm-up
- Easy to monitor
Challenge: Apache Harmony/Google Android Dalvik VM
The Apache Harmony:
Features:
- A number of improvements have been made to HotSpot, which runs the Java virtual machine on top of the Azul System proprietary System
- Provides a huge memory range for pause times and garbage collection times: PIC collector C4 collector
Meaning:
- Once because of the TCK and SUN and angrily quit the JCP organization
- Quietly exiting the market due to the advent of the Open Jdk. But much of the internal code was absorbed into the IBM Open JDK7 implementation
google android dalvik vm
Features:
- Before android 4, it was the mainstream virtual machine platform, and since 5, it has been replaced by the ART virtual machine that supports pre-compilation
- A virtual machine that used to be very powerful
- You can’t run classes directly, but it has a close relationship with JAVA.
- The DEX file can be converted using the Class file
Meaning:
- After Android 5, it was replaced by the ART virtual machine that supports pre-compilation
Other JVM VMS
Here are some non-critical JVM virtual machines not covered in the book
- Micronsoft JVM: Once the best performing virtual machine for the Windows platform. After being sanctioned by Sun for infringement, Microsoft turned against JAVA and developed the subsequent.NET language to counter the JAVA ecosystem.
- KVM: Emphasizes light weight, simplicity, and high portability. Running speed is relatively slow. It was popular before IOS and Android
- JAVA Card VM: A subset of the JAVA Virtual machine that is responsible for Applet interpretation and execution
- Squarewk VM: Developed by Sun, runs on Sun SPot and was used for Java Card. Is a JAVA specific gravity is very high virtual machine.
- JavaInJava: Sun developed an experimental virtual machine in 1997-98 that must run on a host JVM. The value lies in the self – proof element circulation, which has certain research value
- Maxine VM: Very similar to JavainJava, it runs almost entirely on the JVM. Graal editor takes it a step further, and Graal is also a good auxiliary virtual machine as Graal editor
- Jikes RVM: A project developed by IBM that specializes in JAVA virtual machine technology. It is also a meta-cyclic virtual machine
- IKVM.NET: based on. NET framework Java virtual machine, with MONO to get a certain cross-platform capability