Jump to content

Object-oriented operating system

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Edx.de (talk | contribs) at 22:17, 13 April 2011 (→‎LISP). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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 methods 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

LISP

Lisp was used as an operating system on some early machines. aka on the Lisp Machine and then at Symbolics with the Genera (operating system)

SmallTalk

SmallTalk was invented at Xerox in the 70's. The SmallTalk system is fully object oriented and needs very little support by BIOS and runtime.

Self

Self (programming_language) was invented at Sun.


AS400

IBM invented AS400 around 1978



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.

NeXTStep later evolved into OpenStep and the Cocoa (API) on Mac OS X.

OpenStep was provided as an API layer atop many operating systems, namely NextStep, Windows, HP-UX, Solaris.

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, processes 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.

Microsoft Singularity

Singularity is an experimental Operating System based on Microsoft's .NET Framework. It is comparable to Java-based operating systems, but uses the .NET platform instead of the Java platform.

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 (CLOS). The development started in the mid 70s at MIT.

See also