Image Builder (Re: Mythical small kernel images?)

Alejandro F. Reimondo aleReimondo at smalltalking.net
Wed Feb 12 01:16:31 UTC 2003


Hi,

> > Out images can determine the minimum requirements for the VM...
> > They can also be used to build the minimum VM that can run them.
>     Would you please elaborate on this.

You can know the primitives that the image use and build
 the VM contaning only this primitives.

>     BTW, I put your 'sample2.image' thru the analyzer :
>         1/- There are 124 classes in the image.

They are not the minimal set of classes...
An image with minimal classes are aprox 15kb.
Here I attach an image that do a garbageCollect and exit
 and a "3+4" image (only do 3+4 and exit)

>         1/-  34 classes with 0 instances  (so shouldn't be in the image):
>                 - ProtoObject Class
>                 -ArrayedCollection
.....
>                 -Win32Console
>                 -Win32Handle

Most classes are mantained to preserve Squeak hierarchy.
The only thing you must preserve is the critic classes shape
 for the VM to work as usual.

>         2/- Consequently :
>                 - 33 classes of above classes respectively
>                     are not needed in the image.
........
>         3/- The rest of the classes (57) and number of instances are:
>                 (What is that sole instance of Float, Point is doing
>                   in this sample2.image ?

They are prototipycal instances required by the VM; but they can be replaced
by nil in this images because we do not instantiate the classes during
runtime...

>                   For that matter, would you please verify that these 57
>                   classes are really needed ?

There are classes that can be removed, but other are really needed to build
the image (e.g. MethodDictionary, Array, Symbol)

>and what does Fenix mean ?)
It is our extension to environments (simple changes to work as we want).
(Smalltalk is a FenixEnvironment in our image)

>     If you can spare sometime, would you please confirm or deny
>     the validity of this analysis. It would be very helpful for me
>     to fine tune the analyzer.

The contents are provably fine, but some classes can´t be
 removed without breaking the image.

>     Also, if the analysis is correct, can your technology create an
>     image without 'cruft' and micro-kitchen-sink ;-)
>
>     I heard a lot about the '3 + 4' image but never saw one.

Here I attach our very first running image (15kb).
It only has the quitPrimitive method and do 3+4.
We use this image to test the proper initialization
 of running process and context; and it run during
 the second try!
It was VERY exiting.
Debuggin the VM and seen de bytecodes for 3+4
 was lived as an unique event!

>     Thanks a lot for your time and effort, my dream
>     of an ImageBuilder is now coming true.

cheers,
Ale.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: minis.zip
Type: application/x-zip-compressed
Size: 12311 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030211/533dd28f/minis.bin


More information about the Squeak-dev mailing list