The authors are developing an operating system to support distributed object processing. The operating system can be viewed as an extension of the runtime for concurrent object oriented C (cooC). The original runtime for cooC supported network transparent execution of Smalltalk/Objective-C like objects. The notion of a cooC machine served as the logical unit of distribution and resource allocation. Objects that share the same runtime are in the same cooC machine and are supported by a common resource. This model has now evolved into a three layer software architecture: object space (application layer); runtime space (operating system); and network and memory space (kernel). The object space is realized as cooC. The runtime is a resource boundary, possessing a number of threads and a mail queue, and allows for various scheduling and evaluation alternatives. The network and memory level provides a distributed object name space, support for runtime mobility, and persistence.< >
Fred J. PollackKevin C. KahnTania DennisG. HolzhammerHerman D'HoogeStephen Tolopka