[comp.os.research] object-oriented operating system references

jdb9608@uunet.UU.NET (J.D. Beutel) (02/20/89)

For OS Lab next quarter I'm going to be working in a team to write an OS.
We want it to be object-oriented, from the user interface right down
to memory access and inter-machine communications.

I'm sure there must be a lot of research on this topic, 
but I haven't been able to find any.  Please post references.

[ A better plan is to mail responses to J.D. and let him post a summary. ]

-- 
11011011_____jdb9608@ritcv.UUCP_____prefered==>__jdb9608@ritvax.BITNET

shapiro@blueberry.inria.fr (Marc Shapiro) (02/27/89)

In article <6424@saturn.ucsc.edu> ccicpg!cci632!ritcsh!ultb!jdb9608@uunet.UU.NET (J.D. Beutel) writes:
>
>
>For OS Lab next quarter I'm going to be working in a team to write an OS.
>We want it to be object-oriented, from the user interface right down
>to memory access and inter-machine communications.
>
>I'm sure there must be a lot of research on this topic, 
>but I haven't been able to find any.  Please post references.
>
>[ A better plan is to mail responses to J.D. and let him post a summary. ]

I tried to mail as suggested but didn't find a working address.  Here
is my response:

We have built a distributed object-oriented operating system prototype
(guested on top of Unix) called SOS.  Below I include a short
description and a bibliography.  If you wish I can send you some
printed artciles.

You should also look at the literature about ANSA (a very large effort
by a British team).  The mail address of the Ansa leader, Andrew
Herbert, is: ajh@cl.cam.ac.uk.  Then there is the Comandos Esprit
project; write to Sacha Krakowiak: krakowia@imag.fr.


						Marc Shapiro

INRIA, B.P. 105, 78153 Le Chesnay Cedex, France.  Tel.: +33 (1) 39-63-53-25
e-mail: shapiro@sor.inria.fr or: ...!mcvax!inria!shapiro

----------------------------------

Name:    SOS (Somiw Operating System)

Where:   INRIA, Rocquencourt, France
         and Esprit project 367 (SOMIW)

Contact: Marc Shapiro
         INRIA
         B.P. 105
         78153 Le Chesnay Cedex
               France
         Tel.: +33 (1) 39-63-53-25
         e-mail: shapiro@sor.inria.fr
             or: ...!mcvax!inria!shapiro

Status:  Experimental prototype on Unix
         Bare-machine version planned on a Chorus kernel
 
Environment:
         currently, SunOS 3.4 + ethernet

Description: 
         SOS is a distributed, object-oriented, operating system.  It is a
         basis for research in programming methodology for distributed
         systems, and in efficient, simple support for distributed
         object-oriented programs.

         SOS is based on the Proxy Principle programming methodology [Sha86]:
         the interface to a service (as seen by some client) is a single
         object, a ``proxy'' for that service.  (See below.)

         SOS is object-oriented in the following sense [Sha88]:
         * The unit of allocation, communication, and storage is the object.
         * The system implements only basic for mechanisms creating,
           invoking, migrating, and deleting objects.
         * Programmers create new objects and types.  User-defined objects
           are first-class citizens.  A system-supplied object may be replaced
           by a compatible user-defined object.
         * A collection, possibly distributed, of co-operating elementary
           objects may be encaspulated into a larger object or ``domain''.

         An elementary object consists of some data, interpreted by some
         compiled code.  The data is opaque to the system; the code is too,
         except that the system can invoke a few procedures with a
         pre-defined meaning.

         A domain (which may be a ``context'' or a ``group'') is the
         encapsulation of a set of objects.

         A context is a virtual address space (restricted to one machine)
         containing elementary objects.  Objects are created or deleted in a
         context, or migrated between contexts.  Within a context, objects
         communicate by invocation, i.e. a local, type-checked, procedure
         call.

         A group is a collection of related objects, co-operating to perform
         some common task or to implement some service.  The members of a
         group may be located in separate contexts, possibly on different
         machines.  Because of the way a group creates itself, all the
         members of a group can be assumed to trust each other, and may
         communicate in any of the available ways: cross-context invocation,
         communication protocols [Mak88], shared memory, shared files, etc.

         SOS is based on the Proxy Principle [Sha86]: the interface to a
         service (as seen by some client) is a single object, a ``proxy'' for
         that service.  A proxy is a real object.  It is defined by the
         programmer for the service.  It carries its own code and data,
         allocated by the service at the time of need.  A proxy is allocated
         for a specific client.  The service can put client-related
         functionality in a proxy, such as checking and transforming
         arguments.  The service may restrict the capabilities of a client
         by exporting a proxy with a limited interface [Sha86b].

         The client deals uniformly with all resources.  Both its internal
         resources and externally-provided services are values accessed by
         local invocation.

         The mechanics of acquiring a proxy are the following.  A client
         requests access to some service.  A ``provider'' for the service is
         called, and creates a ``proxy-candidate'' object.  The candidate is
         moved to the client, and initialized.  This involves moving its code,
         and other pre-requisite objects, if needed, and initializing them.
         Initialization of a code object dynamically links it to the
         receiver [Gau87].

         The SOS is an operating system, not a language.  We deliberately
         implement relatively low-level abstractions.  This gives the
         application programmer extremely fine control, if needed.  Naive
         programmers are given transparent access to complex behaviour, by
         inheritence from the predefined object types [Sha88].

References:

       [Gau87] Philippe Gautron and Marc Shapiro.  ``Two extensions to
         C++: a dynamic link editor, and inner data.''  In Proc. C++
         Workshop, USENIX, Santa Fe NM (USA), November 1987.

       [Mak88] Mesaac Makpangou and Marc Shapiro.  ``The SOS
         object-oriented Communication Service.''  In Proc. International
         Conference on Computer Communications, Tel Aviv, Israel, Aug. 1988.

       [Sha86] Marc Shapiro, ``Structure and Encapsulation in Distributed
         Systems: the Proxy Principle'', 6th Intl.  Conf. on Distributed
         Computing Systems, p. 198--204, Cambridge MA (USA), May 1986.

       [Sha86b] Marc Shapiro, ``SOS: a distributed Object-Oriented
         Operating System'', 2nd ACM SIGOPS European Workshop, on ``Making
         Distributed Systems Work'', Amsterdam (the Netherlands), Sept. 1986.

       [Sha87] Marc Shapiro, Vadim Abrossimov, Philippe Gautron, Sabine
         Habert, Mesaac Mounchili Makpangou, ``Un recueil de papiers sur le
         systeme d'exploitation reparti a objets SOS'', Rapport Technique
         INRIA 84, Rocquencourt, France, May 1987.  (A collection of papers
         in English and French, including the reference manual.)

       [Sha87a] Marc Shapiro, Vadim Abrossimov, Philippe Gautron, Sabine
         Habert, Mesaac Mounchili Makpangou, ``SOS : un systeme
         d'exploitation reparti base sur les objets'', Techniques et Sciences
         Informatiques, 6(2), 1987.

       [Sha88] Marc Shapiro, ``The design of a distributed object-oriented
         operating system'', submitted for publication, 1988.

For a copy of the available documentation, send e-mail to
nelly@corto.inria.fr (or mcvax!inria!corto!nelly).


-------------------------------------------------


---- Here comes file ``~nelly/docSOS.bib'' --------------------------
%fichier docSOS
@InProceedings{exp:loo:315,
  author = 	"Marc Shapiro",
  title = 	"The Design of a Distributed Object-Oriented Operating
		 System for Office Applications",
  booktitle = 	"Proc.\ Esprit Technical Week 1988",
  year = 	1988,
  address = 	"Brussels (Belgium)",
  month = 	nov
}
@InProceedings{loo:C++:286,
  author =      "Philippe Gautron and Marc Shapiro",
  title = 	"Two extensions to {C++}: A Dynamic Link Editor and
		 Inner data",
  booktitle =   "Proceeding  and additional papers, {C++} Workshop",
  year = 	1987,
  page =        "23--34", 
  organization = 	"USENIX",
  address = 	"Berkeley, CA ({USA})",
  month = 	nov
}
@Article{exp:131,
  author = 	"Marc Shapiro and Vadim Abrossimov and Philippe
Gautron and Sabine Habert and Mesaac Mounchili Makpangou",
  title = 	"{SOS}~: un Syst\`{e}me d'exploitation r\'{e}parti~:
fond\'{e} sur les objets",
		 
  journal = 	tsi,
  year = 	1987,
  volume = 	6,
  number = 	2,
  pages = 	"166--169"
}
@InProceedings{41bis,
  author = "Marc Shapiro"
  title =  "Structure and Encapsulation in Distributed Computing
Systems",
  booktitle = "The 6th International Conference on Distributed
Systems",
  year =      1986,
  address = "Boston ({USA})",
  month =   may
}
@Misc{,
  author = "Marc Shapiro",
  title = "A Short Presentation of the ``SOMIW Operating System''
Project",
  year = 1987,
  month = dec
}
@Misc{,
  author = "Marc Shapiro and Sabine Habert",
  title = "A Distributed Object-Oriented Operating System",
  year = 1986,
  month = may
}

@TechReport{gourhant:speak,
  author = "Gourhant Yvon",
  title = "Un Conf\'{e}rencier r\'{e}parti sous {SOS}, et portage de
l'\'{e}diteur de liens dynamique",
  institution = inria,
  year = 1988,
  number = 785,
  address = rocquencourt,
  moth = jan
}


@InProceedings (sos:loo86,
	key = "Shapiro 86b",
	Author = {Shapiro, Marc and Habert, Sabine},	
	Title = "Un syst\`eme d'exploitation orient\'e objets pour {SOMIW}",
	Booktitle = "3\`emes Journ\'ees d'\'Etude Langages Orient\'es Objet",
	address = "Paris ({France})",
	Organization = "{AFCET}",
	Year = 1986, Month = Jan)

@InProceedings (sos:sigops86,
	key = "Shapiro 86c",
	author = "Shapiro, Marc",
	title = "{SOS}: a distributed Object-Oriented Operating System",
	booktitle = "2nd {ACM SIGOPS} European Workshop, on ``Making
                     Distributed Systems Work{''}",
	address = "Amsterdam (the Netherlands)",
	year = 1986, month = sep,
	note = "(Position paper)"
	)

@article(sos:tsi87,
        key = "Shapiro 87a",
	author = "Shapiro, Marc and Abrossimov, Vadim and Gautron, Philippe
		  and Habert, Sabine and Makpangou,
	Mesaac Mounchili",
	journal = tsi,
	title = "{SOS}~: un syst\`{e}me d'exploitation r\'{e}parti bas\'{e}
		 sur les objets",
        volume = 6, number = 2, year = 1987, pages = "166--169")

@TechReport{ra88:sor29,
  author = 	 "Projet SOR",
  title = 	 "Rapport d'activit\'{e} INRIA 1988, Projet SOR",
  institution =  sor,
  year = 	 1988,
  type = 	 "Note interne",
  number = 	 "SOR--29",
  address = 	 rocquencourt,
  month = 	 oct
}
@TechReport{gautron:dluse:sor34,
  author = 	 "Philippe Gautron and Marc Shapiro",
  title = 	 "On the use of the dynamic link editor in SOS V4",
  institution =  sor,
  year = 	 1988,
  number = 	 "SOR--34",
  address = 	 rocquencourt,
  type = 	 "Note technique",
  month = 	 dec
}

---- End of file ``~nelly/docSOS.bib'' ------------------------------
-- 

						Marc Shapiro

INRIA, B.P. 105, 78153 Le Chesnay Cedex, France.  Tel.: +33 (1) 39-63-53-25
e-mail: shapiro@sor.inria.fr or: ...!mcvax!inria!shapiro