Thoughts for development from a lurker
hm.mosner at cityweb.de
Thu Oct 8 19:00:27 UTC 1998
Joe Davison wrote:
> If one were to be able to push the memory management into the operating
> system, would we still need unitary environments?
> Well, as soon as I wrote that, I realized that a better way to state it is
> that the VMs these environments provide differ from the implicit VMs
> provided by typical operating systems. The VMs define not only the memory
> management models, but also file system, process management, and
> intra- and inter-process communication mechanisms. Still, it seems the
> major hurdle is the memory management, because all the unitary environments
> I know, even modern Forth environments, can use the OS's filesystem and can
> interoperate with other OS processes.
> So, a question to consider: If NGOS (the Next Great Operating System) were
> to include generational garbage collection at the process level, would it
> still be advantageous to maintain the unitary environment, and why?
Having been in the Smalltalk VM porting business for over 10 years now I
can say that the more services you use from the underlying OS, the more
trouble you have. Eliot Miranda can probably tell you more about the
dubious pleasure of using the pthreads functions on half a dozen Unices
(hint: most of the implementations are incomplete or so buggy that you
need more code to work around them than to use them). The same goes for
supporting different file systems, different window systems, different
network communication systems etc.
In contrast, everything implemented within the VM (or better, in the
image) is very portable and debuggable.
> Or, thinking of MkLinux on my PPC machine, what if the SqueakVM were an
> alternative library to run on the Mach kernel...
Now that's a good concept! I've thought about that, too. Having Squeak
as a personality on a Mach Kernel is as good as a native SqueakOS, or
maybe even better because you can run it in parallel with other OSesthat
you might need. Too bad that my Performa does not yet run MkLinux,
otherwise I would probably have started that project already...
More information about the Squeak-dev