[comp.object] Designing an object-oriented operating system in C++

UH2@psuvm.psu.edu (Lee Sailer) (02/06/90)

In article <1187@bimacs.BITNET>, geiman@bimacs.BITNET (geiman mark) says:
>I need your help in obtaining pointers for literature about designing
>an object-oriented operating system to be written in C++.
>

While I can't help, this does bring to mind a question that's been rattling
around in my mind for awhile.

There are some operating systems, eg, Minix, AmigaDos, and Mach, that
employ a metaphor of separate processes passing messages back and forth
to one another.  This sounds to me similar to a part of the OOP metaphor.

Two questions --- is it easier or harder to create such an OS using an
OOPL, and is it easier or harder to create an OOPL under such an operating
system?

       lee

tuck@jason.cs.unc.edu (Russ Tuck) (02/07/90)

In article <1187@bimacs.BITNET>, geiman@bimacs.BITNET (geiman mark) says:
>I need your help in obtaining pointers for literature about designing
>an object-oriented operating system to be written in C++.

The TAPESTRY Project at the Univ. of Illinois at Urbana-Champaign is
designing and implementing an object-oriented operating system for
MIMD parallel systems, using C++.  They have a good series of technical
reports.  I recommend:

	"Principles of Object-Oriented Operating System Design" 
	by Roy Campbell, Gary Johnston, Peter Madany, and Vincent Russo.
	Report No. UIUCDCS-R-89-1510, UILU-ENG-89-1729, TAPESTRY TTR89-14.  
	Dept. of Computer Science, Univ. of Illinois at Urbana-Champaign, 
	Urbana, IL 61801-2987.

--
Russ Tuck		               tuck@cs.unc.edu
UNC Dept. of Computer Science          ...!mcnc!unc!tuck
CB 3175, Sitterson Hall
Chapel Hill, NC 27599-3175, USA        (919) 962-1755 or 962-1700

pjc@r1.uucp (Peter Crowther (CAG ra)) (02/16/90)

> There are some operating systems, eg, Minix, AmigaDos, and Mach, that
> employ a metaphor of separate processes passing messages back and forth
> to one another.  This sounds to me similar to a part of the OOP metaphor.

> Two questions --- is it easier or harder to create such an OS using an
> OOPL, and is it easier or harder to create an OOPL under such an operating
> system?

This is something of a side note... look at some papers on ACTORS. These are
(conceptually) concurrent processes, where each actor is a process. An Actor
has a Mailbox with a known mail address, and a set of Acquaintances (other
Actors whose mail addresses are known). An Actor also has a current Script;
note the use of 'current' as the Script can change. The basic processing cycle
for each Actor (and do remember that all run asynchronously) is:

	Wait until at least one message is in my Mailbox,
	Process that message using my current Script.
	(Repeat until blue in the face)

Note that an Actor can change its Script at any time. From what I can remember,
the old Script then runs through to completion on the current message and the
Actor can also start processing the next message with the new Script.


I haven't got any references handy; I know that someone in our University has
done some work on Actors but haven't got his mail address to hand. If you are
interested in this work, mail me. I'll either post or mail references and
e-mail addresses, depending on interest.

[Trevor, if you're reading this, I sure hope I've got the description right!]

		- Peter

Peter Crowther, Dept. of Electrical Engineering, University of Manchester,
		Manchester M13 9PL, England.
Internet: pcrowther@r1.cs.man.ac.uk	Janet: pcrowther@uk.ac.man.cs.r1
USENET:   mcvax!ukc!man.cs!pcrowther	Fishing net: Device for catching fish