Image Builder (Re: Mythical small kernel images?)
Alejandro F. Reimondo
aleReimondo at smalltalking.net
Wed Feb 12 01:16:31 UTC 2003
> > 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
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
> 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.
-------------- next part --------------
A non-text attachment was scrubbed...
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