>As an example, REBOL modules seem to want to reside in a single home
>directory. Perl uses a mechanism where module naming structure and directory
>structure are parallel.
Microware's OS9 embedded operating system uses a concept of
"Memory Modules". Memory could be EPROM/FLASH/RAM in this
context.
There is a "Module Directory" much like your standard "DIR".
You load memory modules as you need them, they get entered
in to the Module Directory so that other processes can locate
them (their contents are relocatable).
The header of a module has a Revision Number. Say 8006 for
example. At boot time the kernel searches out any modules
and links the one with the highest Rev in to the MDIR.
This allows you to burn in newer code in to EPROM with out
having to erase the old code.
There is also a link count of a module, as things need to
use the resources of that module the link count is
incremented (requested via MDIR search/link). They
decrement the link count when done with what they needed.
If the count becomes zero that memory is freed (when in
RAM).
My system is set up so that normally every thing is running
from FLASH, but when debugging I can load a module with
higher Rev into RAM to debug it.
There is also a CRC 'wrapper' to check the integrity of the
module at load time.
Just some ideas to be pondered...
>This mechanism evolved to meet the problem of
>managing a growing body of standard modules - it wasn't gratuitous. While