Object-oriented operating system


An object-oriented operating system is an operating system that uses object-oriented design principles.
An object-oriented operating system is in contrast to an object-oriented user interface or programming framework, which can be run atop a non-object-oriented operating system like DOS or Unix.
There are already object-based language 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 can be considered a good example of objects. 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 and whose implementation details are hidden from the caller.
Object-orientation has been defined as objects + inheritance, and inheritance is only one approach to the more general problem of delegation that occurs in every operating system. Object-orientation has been more widely used in the user interfaces of operating systems than in their kernels.

Background

An object is an instance of a class, which provides a certain set of functionalities. Two objects can be differentiated based on the functionalities they support. In an operating system context, objects are associated with a resource. Historically, the object-oriented design principles were used in operating systems to provide several protection mechanisms.
Protection mechanisms in an operating system help in providing a clear separation between different user programs. It also protects the operating system from any malicious user program behavior. For example, consider the case of user profiles in an operating system. The user should not have access to resources of another user. The object model deals with these protection issues with each resource acting as an object. Every object can perform only a set of operations. In the context of user profiles, the set of operations is limited by privilege level of a user.
Present-day operating systems use object-oriented design principles for many components of the system, which includes protection.

Examples

; Athene
; BeOS
; Choices
; GEOS
; Haiku
; IBM i
; IBM OS/2 2.0
; IBM TopView
; Java-based
; Lisp-based
; Microsoft Singularity
; Microsoft Windows NT
; NeXTSTEP
; OOSMOS
; ReactOS
; Self
; Smalltalk
; Syllable
; Symbolics Genera
; Taligent