Hey,

Since I just recently figured that stuff out, my perspective might be useful.

I do not think it is a good idea to push external VCS too much at this point. 
They are important to collaboration, so they should be mentioned, but they add 
a lot of complexity.

Taking into account the feedback from Sven, and my own ideas, here's how I 
would write it. I hope this helps.

The virtual machine (VM) provides the environment where the Pharo system lives. 
It is different for each operating system and hardware architecture, and runs 
as a machine language executable in the operating system. It implements the 
details of managing memory, executing Pharo byte-code, and communicating with 
the world outside of the Pharo system: files, other operating system process, 
and the network.
The image is the state of all objects in a running Pharo system: classes, 
method as source and byte-code, windows, VM processes. All of those are 
objects. The virtual machine can load image files, and save running images back 
to disk.
The sources file is a way to save space by putting the source code of classes 
outside of the image. Since an image contains byte-compiled methods, it can run 
without its associated sources files. This file only provides information that 
useful to the programmer. It is generated once per major release of Pharo, and 
is usually stored in the same directory as the image. Several images can use 
the same sources file.
The changes file logs all source code changes since the generation of the 
sources file. It lets you examine and revert source code changes. It also 
serves as a journal so you can recover changes you made but did not save to the 
disk image, by mistake or because of a crash. An image does not need its 
changes file to run. Each change file belong to a single image.

NOTE: Some virtual machines run in web browsers, and are Javascript programs 
instead of machine language. They provide the same services as other virtual 
machines, they just treat Javascript as the machine language and the browser as 
the operating system.

The image, sources and changes files are portable across operating systems, and 
can be copied and run on any appropriate virtual machine. The format of the 
sources and changes file is defined by code stored in the image, not the VM.

A complete Pharo release contains the following files:

An executable virtual machine, named:
Pharo.exe for Windows;
pharo for Linux;
Pharo for OS X (inside a package named Pharo.app).
An image, named after the release: Pharo4.0.image
A sources file, named after the release: PharoV40.sources.
A nearly empty changes file, named after the image: Pharo4.0.changes

They are starting point for a live environment that you adapt to your needs. 
The .image file containes the byte-compiler of the language, the language 
parser, the IDE tools, many libraries and provide a virtual operating system 
that runs on top of a virtual machine.

As you work in Pharo, the .image and .changes files are modified, so you need 
to make sure that they are writable. The .image and .changes files are 
intimately linked and should always be kept together, with matching filenames. 
Never edit them directly with a text editor, as .images holds your live object 
runtime memory, which indexes into the .changes files for the source.

It is a good idea to keep a backup copy of the downloaded .image and .changes 
files so you can always start from a fresh image and reload your code. But to 
manage changes on larger projects you should also use a version control system 
that will provide more control to record and communicate your changes.

The four main component files above can be placed in the same directory, 
although it’s also possible to put the Virtual Machine and sources file in a 
separate directory where everyone has read-only access to them.

If more than one image file is present in the same directory pharo will prompt 
you to choose an image file you want to load.

Do whatever works best for your style of working and your operating system.

Reply via email to