SO4: OBJECT-ORIENTED OPERATING SYSTEM

 

The adoption of object-oriented technologies in current environments suffers from impedance-mismatch problems when object-oriented elements interact with existing non-OO ones. Moreover, there is also an interoperability problem when two object-oriented elements have different object models.

An integral object-oriented system (IOOS) tries to eliminate these problems by offering support for a common kind of object-orientation as the only abstraction in the system. An IOOS ideally provides a "world of objects" environment: a virtually infinite space where objects live indefinitely and exchange messages regardless of its location. The evolution of CORBA and Java is pointing towards this kind of heterogeneous distributed interoperable object environment.

 

Oviedo3: an Integral Object-Oriented System

Oviedo3 is an example of an IOOS being under development at the University of Oviedo. The common object model for the system intentionally follows the object model of the most popular OO methodologies. The goal is to take advantage of well-established OO concepts as well as carrying all the semantics of the object model (used in analysis and design phases) all the way to the implementation phase. The features the model includes are:

  • Unique object identity (used by references);

  • Encapsulation (access to an object only through methods)

  • Classes (which are also used to derive types)

  • Multiple inheritance (is-a) relationships

  • Aggregation (is-part-of) relationships

  • General association (related-to) relationships

  • Polymorphism and type checking including run-time checking

  • Exceptions

  • Concurrency

  • Persistence

  • Distribution

  • Protection

Figure 1 shows the structure of the Oviedo3 system. It is based on an OO abstract machine called Carbayonia, which implements the basic object model for the system and an operating system which extends the machine transparently providing objects with added properties. The SO4 operating system is implement as a set of normal user objects which transparently provide selected properties from the above list: concurrency, global persistence and distribution. Unlike the JavaOS system, it is aimed to be a general-purpose multi-user and extensible OS.


Figure 1: Structure of the Oviedo3 Integral Object-Oriented System.

 

So4: The Oviedo3 Object-Oriented Operating System

The heart of the Oviedo3 system is the operating system, which is called SO4. The OS offers the abstraction of a single object space where objects exist indefinitely, virtually infinite, and where objects placed in different machines cooperate transparently by means of method invocation through unique object references. Besides, the OS supports some important features: security, persistence, distribution and concurrency.

Security ensures that only authorized objects are allowed to send messages to other objects. Persistence makes objects stay in the system until they are no longer needed. Distribution permits object invocation regardless its location. Concurrency gives the object model the ability to execute tasks in parallel.

The master guidelines of the design of SO4 are:

  • Object as the only abstraction. The unique existing entity is the object, of any granularity.
  • Intentionally "standard" object model, with the more common features found in OO programming languages: encapsulation, inheritance, and polymorphism.
  • Exclusively OO working mode. An object can only create classes inheriting from others, create objects from a class, and send messages to other objects.
  • Simpleness. To adhere to the above guidelines, whilst achieving maximum simpleness.

These are some important characteristics we wish to impose on objects, in accordance with these guidelines:

  • Homogeneous objects. All objects, including OS ones, are treated the same. There are no special objects. OS objects themselves are not different from other objects.
  • Transparency. Objects must not be aware of the existence of OS mechanisms to achieve features as persistence, message passing, distribution, etc.
  • Self-contained objects. All the information about an object is encapsulated in its state, including computation, thus favouring an active object model. The behaviour must not be dependent on other objects. This is conceptually simpler, and makes easier to obtain transparent persistence, distribution, etc. mechanisms.
  • Complete semantics. Objects have all the semantics embedded in the object model. They are not considered just as a contiguous memory space.
  • Object identity. Each object has a unique identifier, which used as a reference is the only means to access it. Objects have no physical address: the concept of memory address space does not exist.
 

See Also