Web site: www.csl.sony.co.jp/project/Apertos/ (not active)
Desktop environment: CLI
Architecture: Sony PWS-1550
Based on: Independent
The last version | Released: unknown
Apertos – the Apertos operating systems is targeted at the operating system for constructing very large scale, open, distributed system featured by mobile computing.
It is designed based on the framework proposed in previous section, an object is the only constituent of the system, whereas each object has a metaspace consisting of metaobjects. Since the system is based on object/metaobject separation and metahierarchy, every system service is implemented by metaobjects, each of which is a member of a metaspace defined within metahierarchy. For example, an object’s virtual storage is a collection of segment metaobjects and managed by a virtual segment manager metaobject. These metaobjects are also implemented as objects, i.e., there are metaspaces for these’metaobjects. Here we have a question of who provides local storage for the segment metaobjects. The answer in the implementation is that we provide a paged virtual memory manager metaobject for these metaobjects. In turn, local storage for a page virtual memory manager metaobject is given by the physical memory
For creation of an object, Apertos has several class systems each of which is tailored for individual programming languages. A class system is a metaspace in which metaobjects provide services such as creating an object and giving immutable properties of a class. In the implementation, a class is defined as a static and immutable template for objects [Yokote et al. 891. Although a class system supports a multiple inheritance mechanism, the mechanism is only available at compile time, i.e. class hierarchy is collapsed when an object is compiled. When an object is created by operation New provided by each metaspace, the request is forwarded to a class system, and a new object is created by that class system.
Then, a class system moves a new object to the original metaspace the request is sent.
We (developers) have made the following design decisions upon the Apertos design:
– We introduce a mechanism to define a metaspace which is represented within metahierarthy.
– We introduce a compile time facility to help metaobject programming.
– We introduce a mechanism to check compatibility between metaspaces.
– We define the common primitives for objects to accommodate object heterogeneity and allow us to implement object migration.