An
object-oriented operating system is an
operating system which internally uses
object-oriented
methodologies.
An object-oriented operating system is in contrast to an
object-oriented
user interface or
programming
framework, which can be placed
above a non-object-oriented operating system like
DOS,
Microsoft Windows
or
Unix.
It can be argued, however, that there are already object-oriented
concepts involved in the design of a more typical operating system
such as
Unix. While a more traditional language
like
C does not support
object orientation as fluidly as more recent languages, the notion
of, for example, a
file,
stream, or
device driver (in Unix, each represented as a
file descriptor) can be considered a
good example of object orientation: they are, after all,
abstract data types, with various
method in the form of
system calls, whose behavior varies
based on the type of object, whose implementation details are
hidden from the caller, and might even use
inheritance in their
underlying code.
Examples
NeXTSTEP
During the late 1980s,
Steve Jobs formed
the
computer company
NeXT. One of NeXT's first tasks was to design an
object-oriented operating system,
NEXTSTEP.
They did this by adding an object-oriented framework on top of
Mach and
BSD using
the
Objective-C language as a
basis.
Choices
Choices is an object-oriented
operating system that was developed at the University of Illinois at
Urbana-Champaign
. It is written in
C++ and
uses objects to represent core kernel components like the
CPU,
process and so on.
Inheritance is used to
separate the kernel into portable machine independent classes and
small non-portable dependent classes. Choices has been ported to
and runs on
SPARC,
x86 and
ARM.
Athene
Athene is an object-based
operating system first released in 2000 by
Rocklyte Systems. The user environment is
constructed entirely from objects that are linked together at
runtime. Applications for Athene can also be created using this
methodology and are commonly scripted using the object scripting
language 'DML' (
Dynamic Markup
Language). Objects can be shared between processes by creating
them in shared memory and locking them as required for access.
Athene's object framework is multi-platform, allowing it to be used
in Windows and Linux environments for the development of
object-oriented programs.
BeOS
One attempt at creating a truly object-oriented operating system
was the
BeOS of the mid 1990s, which used
objects and the
C++ language for the
application programming
interface (API). But the kernel itself was written in C with
C++ wrappers in user space. The system did not become mainstream
though even today it has its fans and benefits from ongoing
development.
Syllable
Syllable makes heavy use
of
C++ and for that reason is often compared to
BeOS.
Java-based operating systems
Given that
Sun Microsystems'
Java is today one of the
most dominant object-oriented languages, it is no surprise that
Java-based operating systems have been attempted. In this area,
ideally, the
kernel would
consist of the bare minimum required to support a
JVM. This is the only component of such an operating
system that would have to be written in a language other than Java.
Built upon that JVM and basic hardware support, it would be
possible to write the rest of the operating system in Java; even
parts of the system that are more traditionally written in a
lower-level language such as C, for example
device drivers, can be written in Java.
Examples of attempts at such an operating system include
JX,
JNode and
JavaOS.
Symbolics Genera
Genera from
Symbolics is an operating system for
Lisp Machines written in
ZetaLisp and Symbolics
Common Lisp. It makes heavy use of Flavors (an
early object-oriented extension to Lisp) and the
Common Lisp Object System . The
development started in the mid 70s at MIT.
See also
External links