The Law Of Mutating Binary Images

From IsSmalltalkWithoutGraphicsAnyGood

Wherever mutating binary images are employed, there will exist components in the image which cannot be generated from source code or other textual representation.

The discussion that inspired this was (in regard to Smalltalk):

...many significant instances of various classes were impossible to create from source code -- they had been hand-munged from earlier development images, during initial bootstrap. The root of the process tree, for example, was an instance of Process that lived for more than a decade. I am under the impression that a ceremony of sorts was held when it finally died.

I hadn't heard that, but had always assumed so, because such things always seem to happen to non-static binary images that are not continually regenerated from source, no matter what kind of image it is. (This should be somebody's law.)


For a bit of historic context: The SmalltalkLanguage was originally like this.

When major changes were needed to the image, such as for changes to the floating point representation, they customized operations to "serialize all objects to disk" and to restore them.


I came to this page expected something about inevitable corruption seeping in as well. Imagine your hard drive as a mutating binary image containing, among other things, your Operating System, and note that every single OS image, if in constant use from installing and uninstalling programs, will eventually decay. Various OSs do so at varying rates under varying usages, but unless you freeze the image at some point, it will decay past some point of usability.

Bit rot is implied, yes. But not necessarily past the point of usability -- not if people are willing and able to patch the binary, which happens way more than most people realize.


The KeyKos folks report never having had a significant problem with this in a system with OrthogonalPersistence, which raises much the same issues:

<http://www.agorics.com/Library/KeyKos/checkpoint.html>


See also BitRot, PowerOfPlainText

EditText of this page (last edited January 1, 2005) or FindPage with title or text search