How About an InstallSqueak Image?

Dan Ingalls Dan.Ingalls at disney.com
Tue Jun 15 16:06:51 UTC 1999


Andrew, I like this idea a lot.  Plus, along the way, we ought to be able to to knock off the single-file app configuration for at least some platforms.

VM gurus:  How would the following play on your favorite platform...?

1.  Assume we have a single app file consisting of three sections:
	VM (need not have all features, nor be very latest release)
	Installer image (Can be a small subset of release, somewhere between
		our tiny (240K) and mini (540K) images)
	Installer data (compressed images of all files)

2.  The VM, when it starts up, looks at how big it is.  If it is bigger than some
	amount then, before looking for another image, it scans itself
	for the start of an image and, if found, loads that and runs it.
	Note that this is just what is needed for single-file clickable apps.

3.  Finally, the installer reads the last section of the same file, performing
	the decompression and any other appropriate organizational stuff.

It would appear that the only missing piece is how to glue arbitrary data (installer image and compressed files) onto the end of an executable file (a Squeak VM) in such a way that the host OS will only load the first part, and won't be unhappy about the presence of the second part.

We discussed this briefly over a year ago WRT single-file apps and there was concern at the time that this approach would run afoul of many virus protection schemes.  Anyone know what's possible and what's not here?

If there is a viable approach for each of the major platforms, then we should certainly give this a try.

	- Dan

>Why not use a tiny Squeak to bootstrap a bigger Squeak?
>
>Here's my observation: (1) the Squeak source files (both original and 
>changes), and my image itself compress under gzip really, really, 
>well.  (16M -> about 6M)  (2) Squeak has a very nice little 
>gzipstream decompression routine already built in.  (A simple test 
>shows it works quite nicely).
>
>So, why not make an absolutely ultra-minimum image that is capable, 
>say, of supporting a window, progress bar and the stream.  Save the 
>gzip versions of the  target files in ByteArrays.  Teach 
>installSqueak to quietly ignore its inability to load sources 
>(trivial change to openSources), and upon startUp, to automatically 
>decompress, perhaps while displaying a nice logotype and some pretty 
>progress bars: (1) an image; (2) the image's change file; and (3) the 
>original sources.  (Or whatever else we programmed the installSqueak 
>image to deliver).





More information about the Squeak-dev mailing list