Data objects are loosely divided into two categories: those which are described in a Process or Task environment, and those which are described in the System environment. Objects which are part of a Task or Process environment will be automatically destroyed when an application terminates. In contrast, objects described in the System environment will not be deallocated, and may remain defined indefinitely.
It is intended that the MagicEight system access long-term storage in several different manners:
Deallocation of persistent objects is problematic. Unlike the temporary data objects defined local to a process, it is difficult to determine when a persistent object is no longer needed. In a manner similar to existing disk filesystems, it is anticipated that occasional manual intervention will be necessary to remove unneeded data (e.g. something as simple as deleting all persistent data objects unused for more than several hours.)
The manner described above for deliberate file I/O will also be used for other physical device I/O. The ``device drivers'' will consist of publicly executable tasks located in the system environment for driving displays, peripherals, and audio outputs, as well as inputting video, audio, and sensor or other data.. It is expected that these drivers will be relatively generic, and that a list of common ones will become part of this document.