Object-oriented operating system

An object-oriented operating system[1] is an operating system that is designed, structured, and operated using object-oriented programming principles.

An object-oriented operating system is in contrast to an object-oriented user interface or programming framework, which can be run on 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 (in Unix, each represented as a file descriptor) can be considered a good example of objects. They are, after all, abstract data types, with various methods in the form of system calls which behavior varies based on the type of object and which 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.[2] Object-orientation has been more widely used in the user interfaces of operating systems than in their kernels.

  1. ^ Cite error: The named reference :0 was invoked but never defined (see the help page).
  2. ^ Wegner, Peter (December 1987). "Dimensions of Object-based Language Design". ACM SIGPLAN Notices. 22 (12): 168–182. doi:10.1145/38807.38823. Also in Conference Proceedings on Object-oriented Programming Systems, Languages.