Virtual Machine (Overview)
Last updated at 6:30 am UTC on 11 February 2020
The virtual machine (VM) is an executable program you need to run the Squeak .image file.
- It has a Squeak mouse icon in your visual filer or directory viewer
- It is included in the base release
- It constitutes the platform dependent part of a Squeak system (even though most of the different VMs code is the same on all platforms)
- It is the binary executable for Squeak (on Windows platforms, it is the .exe file)
- see The Squeak Virtual Machine for info relating to the application aspects of the VM
Different types of Virtual Machines
image from: http://fast.org.ar/uploads/2016/11/Friday_16h00_Eliot_Miranda_Cog_in_Motion.pdf
- Interpreter VM (Linux), but available for all platforms.
- StackInterpreter VM An improved version of the Interpreter introduced in Squeak 3.10 that uses stack instead of heap for Context objects.
- Cog VM Introduced in Squeak 4.0. It adds a JIT compiler (Cogit), CoInterpreter (a variant of StackInterpreter that coexists with Cogit) and 64-bit executables.
- Spur VM Improves on Cog with new object representations for both 32-bit and 64-bit words. Released in Squeak 5.0
- SistaV1 VM (not yet standard VM in Squeak 5.3)
Currently, the VM executables share the same name but are not backward compatible for images. Each image type needs a matching VM. The utility ckformat prints the image format code for a given image. On Linux ports, VM run utility script, uses this utility to launch a compatible VM.
A Tour of the Squeak Object Engine