OO OS?

Michael David WINIKOFF winikoff@cs.mu.OZ.AU
Sun, 14 Mar 1993 00:28:27 +1000


Yo guys!
Found this in comp.os.research ...

---------- CUT HERE -----------
In article <C3sH08.H6x@cs.mcgill.ca>, sunny@cs.mcgill.ca (Roxanne CHARLEBOIS) writes:
%% What makes an OS Object Oriented?
%% 
%% Romulus.
%% sunny@binkley.cs.mcgill.ca
%% 
%% P.S. I do understand OO, but I want to know how an OS is OO. 


This is an answer both to this question and the various comments
and questions about Chorus and COOL.


Firstly, Chorus:

The CHORUS micro-kernel is written in C++. The multi server MiX (ie UNIX)
system is a mix of Chorus code and USL code. There are 5 main servers,
a process manager that takes traps, deals with process related calls
and farms out other requests to the other servers. The PM is pure
Chorus code and written in C++. There is an object manager, which is
actually a file system server - it is mainly USL code and written in C.
A SVRV streams manger deals with the streams stuff, there is a key manager
and an IPC manager which are mainly USL code and so C.

COOL, the Chorus object oriented layer is a system designed to support
distributed object oriented languages. It works by extending the micro-kernel
abstractions with abstractions better suited to distributed OO systems.
These abstractions provide support for objects as simple encapsulations
of code and data, dynamic link/load of objects, invocation among objects
in a distributed environment, persistence of objects and migration of
objects between address spaces and machines.

The system is layered, and provide an upcall interface that allows language
level run-times to interface to the underlying support. We have concentrated
C++, so that we offer a C++ environment that supports all of the features
mentioned above.

COOL v2 runs alongside MiX as a 'seperate' OS personality, however it is not
a full OS, but uses MiX services, eg the file store (this is for resource
reasons - building a complete OS from scratch is a big task :-)

We are currently looking at how we can use the COOL services to build OS
functionality, and your going to hate this, how we can use COOL to help
build a better UniX. We are doing this work with USL.

Details on CHORUS, MiX and COOL are available via anonymous ftp from

	opera.chorus.fr
	cse.ogi.edu

As far as Object oriented operating systems are concerned most of the answers
to your questions can be found in the proceedings of "the international
workshop on object orientation in operating systems (IWOOOS)" There are
2 (maybe 3) procedings. IEEE press order number 2265 for '91 and 3015 for '92.

Basically an OO OS can:

	o be built in an OO way, eg OO languages etc, but offer a traditional
	OS interface (Unix perhaps) and no support for OO apps. This is 
	basically only of interest to the system builder as it makes
	development/maintainence and update eaisier. The work we do with USL
	is looking to see if this is worthwhile.

	o be built in a traditional way eg non OO language, but have an
	OO like interface. This is mainly of interest to app developers
	and makes their world look a little cleaner. I think Cairo hopes
	to do this for windows. The semantic gap between the language model
	and the system abstractions still remains the same.

	o Is built in one of the two ways above, but is designed to
	support objects, ie the supported paradigm for application
	development is object oriented. There are many people doing
	this, the COOL project is just one. Our overriding interest
	is that the OO paradigm is a good one for building distributed
	systems. We hope to reduce the semantic gap, so that the mapping
	of programming model to system abstractions is easier, more
	efficient, and integrated.

I refer you to the IWOOOS proceedings for more info.

rodger lea

chorus 
-- 
Software Engineering: Quality through Deforestation.
Michael Winikoff	| "If you know what you're doing    |	Musician
winikoff@cs.mu.oz.au	| 	-- it ain't research"       |	Amiga 500 Owner
Computer science honours. University of Melbourne, Australia. 	Role Player