Description
Archiving Pharo / Squeak Image is not easy : it depends on a VM, that depends on a processor and an OS. Sometimes, we find old Pharo / Squeak Image that we cannot run because we have lost the appropriate VM. This is even more relevant when the project rely on a specifically built VM. Moreover, sometimes we have also lost the Pharo / Squeak Image sources from that image and we cannot read easily the code. I propose then to save the working image with its sources, changes file and VM into a virtual box image in order to have it working on top of virtual box easily forever. This way the archived image will only depends on the computer processor, and not on VM, OS, computer processor, source file, change file.
Technical Details
The student would have to identify a minimum linux kernel in order to run Pharo. Then, he would have to implement some Pharo code so that by entering 'Smalltalk saveAsVirtualBoxImage' in workspace it would create a virtual box image in the same folder, with the current VM, source file, change file, image and the minimum linux kernel. This command will probably go get some part of the virtual box image (for instance the linux micro kernel) or some external tool as Vagrant (http://www.vagrantup.com) somewhere on the internet. Running the virtual box image would directly run the Pharo image on the Pharo VM through a start-up process. Lastly, the student would have to set up a Jenkins job on the Pharo-contribution continuous integration server that create a Pharo virtual box image. If some time is remaining, the student would have to find a solution to manage the Pharo image crashes in virtual box.
Benefits to the Student
The student will learn some smalltalk (networking, commandLineHandler), how to set up a build in a Jenkins continuous integration server and some linux command line. He will also have a nice impressive open source tool to show.
Benefits to the Community
The community will benefit from the archiving tool. The Pharo virtual box image could also be interesting for some experiments.
|