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:

  1. The history and progress of the JVM
  2. Why can Hotspot dominate martial arts
  3. Hotspot and JRocket merged, with mixed results
  4. 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 VMOpenJ9 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