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