An object-oriented operating system
is an
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
that is designed, structured, and operated using
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
principles.
An object-oriented operating system is in contrast to an object-oriented
user interface
In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine f ...
or programming
framework, which can be run on a non-object-oriented operating system like
DOS
DOS is shorthand for the MS-DOS and IBM PC DOS family of operating systems.
DOS may also refer to:
Computing
* Data over signalling (DoS), multiplexing data onto a signalling channel
* Denial-of-service attack (DoS), an attack on a communicat ...
or
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, an ...
.
There are already
object-based language The term object-based language may be used in a technical sense to describe ''any'' programming language that uses the idea of encapsulating state and operations inside ''objects''. Object-based languages need not support inheritance or subtyping, b ...
concepts involved in the design of a more typical operating system such as
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, an ...
. 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
File or filing may refer to:
Mechanical tools and processes
* File (tool), a tool used to ''remove'' fine amounts of material from a workpiece
**Filing (metalworking), a material removal process in manufacturing
** Nail file, a tool used to gent ...
,
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 type
In computer science, an abstract data type (ADT) is a mathematical model for data types. An abstract data type is defined by its behavior (semantics) from the point of view of a ''user'', of the data, specifically in terms of possible values, pos ...
s, with various
methods
Method ( grc, μέθοδος, methodos) literally means a pursuit of knowledge, investigation, mode of prosecuting such inquiry, or system. In recent centuries it more often means a prescribed process for completing a task. It may refer to:
*Scien ...
in the form of
system call
In computing, a system call (commonly abbreviated to syscall) is the programmatic way in which a computer program requests a service from the operating system on which it is executed. This may include hardware-related services (for example, acc ...
s which behavior varies based on the type of object and which implementation details are hidden from the caller.
Object-orientation {{Broad-concept article
Object-oriented or object-orientation is a software engineering concept, in which concepts are represented as "objects". Object-oriented topics include:
* Object-oriented analysis and design
* Object-oriented design
* Objec ...
has been defined as
objects
Object may refer to:
General meanings
* Object (philosophy), a thing, being, or concept
** Object (abstract), an object which does not exist at any particular time or place
** Physical object, an identifiable collection of matter
* Goal, an ...
+
inheritance
Inheritance is the practice of receiving private property, titles, debts, entitlements, privileges, rights, and obligations upon the death of an individual. The rules of inheritance differ among societies and have changed over time. Officia ...
, 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 interface
In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine f ...
s of operating systems than in their
kernels
Kernel may refer to:
Computing
* Kernel (operating system), the central component of most operating systems
* Kernel (image processing), a matrix used for image convolution
* Compute kernel, in GPGPU programming
* Kernel method, in machine learnin ...
.
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 (or methods) 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
:Athene is an object-based operating system first released in 2000 by Rocklyte Systems. The user environment was constructed entirely from objects that are linked together at runtime. Applications for Athene could also be created using this methodology and were commonly scripted using the object scripting language Dynamic Markup Language (DML). Objects could have been shared between processes by creating them in
shared memory
In computer science, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Shared memory is an efficient means of passing data between progr ...
and locking them as needed for access. Athene's object framework was multi-platform, allowing it to be used in Windows and Linux environments for developing object-oriented programs. The company went defunct and the project abandoned sometime in 2009.
; BeOS
:
BeOS was an object-oriented operating system released in 1995, which used objects and the
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
language for the
application programming interface (API). The kernel was written in C with C++ wrappers in user space. The OS did not see mainstream usage and proved commercially unviable, however it has seen continued usage and development by a small enthusiast community.
; Choices
:Choices is an object-oriented operating system developed at the
University of Illinois at Urbana–Champaign
The University of Illinois Urbana-Champaign (U of I, Illinois, University of Illinois, or UIUC) is a public land-grant research university in Illinois in the twin cities of Champaign and Urbana. It is the flagship institution of the Univer ...
. It is written in
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
and uses objects to represent core kernel components like the
central processing unit
A central processing unit (CPU), also called a central processor, main processor or just Processor (computing), processor, is the electronic circuitry that executes Instruction (computing), instructions comprising a computer program. The CPU per ...
(CPU),
processes, and so on.
Inheritance
Inheritance is the practice of receiving private property, titles, debts, entitlements, privileges, rights, and obligations upon the death of an individual. The rules of inheritance differ among societies and have changed over time. Officia ...
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
SPARC (Scalable Processor Architecture) is a reduced instruction set computer (RISC) instruction set architecture originally developed by Sun Microsystems. Its design was strongly influenced by the experimental Berkeley RISC system develope ...
,
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was intr ...
, and
ARM
In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between th ...
.
; GEOS
:
PC/GEOS
GEOS (later renamed GeoWorks Ensemble, NewDeal Office, and Breadbox Ensemble) is a computer operating environment, graphical user interface (GUI), and suite of application software. Originally released as PC/GEOS, it runs on DOS-based, IBM PC ...
is a light-weight object-oriented multitasking graphical operating system with sophisticated window and desktop management featuring scalable fonts. It is mostly written in an object-oriented x86 assembly language dialect and some C/C++ and is designed to run on
DOS
DOS is shorthand for the MS-DOS and IBM PC DOS family of operating systems.
DOS may also refer to:
Computing
* Data over signalling (DoS), multiplexing data onto a signalling channel
* Denial-of-service attack (DoS), an attack on a communicat ...
(similar to Microsoft Windows up to
Windows Me
Windows Millennium Edition, or Windows Me (marketed with the pronunciation of the pronoun "me"), is an operating system developed by Microsoft as part of its Windows 9x family of Microsoft Windows operating systems. It is the successor to Windo ...
). GEOS was developed originally by Berkeley Softworks in 1990, which later became GeoWorks Corporation, and it is continued to be maintained by BreadBox Computer Company. Related
software suite
A software suite (also known as an application suite) is a collection of computer programs (application software, or programming software) of related functionality, sharing a similar user interface and the ability to easily exchange data with eac ...
s were named ''Ensemble'' and ''New Deal Office''. Adaptations exist for various palmtops, and 32-bit systems with non-x86-CPUs.
; Haiku
:
Haiku
is a type of short form poetry originally from Japan. Traditional Japanese haiku consist of three phrases that contain a ''kireji'', or "cutting word", 17 '' on'' (phonetic units similar to syllables) in a 5, 7, 5 pattern, and a ''kigo'', or s ...
(originally named ''OpenBeOS''), is an open-source replacement for BeOS. It reached its first development milestone in September 2009 with the release of Haiku R1/Alpha 1. The x86 distribution is compatible with BeOS at both source and binary level. Like BeOS, it is written primarily in
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
and provides an object-oriented API. It is actively developed.
; IBM i (OS/400, i5/OS)
:IBM introduced
OS/400
IBM i (the ''i'' standing for ''integrated'') is an operating system developed by IBM for IBM Power Systems. It was originally released in 1988 as OS/400, as the sole operating system of the IBM AS/400 line of systems. It was renamed to i5/OS ...
in 1988. This OS ran exclusively on the
AS/400
The IBM AS/400 (Application System/400) is a family of midrange computers from IBM announced in June 1988 and released in August 1988. It was the successor to the System/36 and System/38 platforms, and ran the OS/400 operating system. Lower-cos ...
platform. Renamed
IBM i in 2008, this operating system and runs exclusively on
Power Systems
An electric power system is a network of electrical components deployed to supply, transfer, and use electric power. An example of a power system is the electrical grid that provides power to homes and industries within an extended area. The ...
which also can run
AIX
Aix or AIX may refer to:
Computing
* AIX, a line of IBM computer operating systems
*An Alternate Index, for a Virtual Storage Access Method Key Sequenced Data Set
* Athens Internet Exchange, a European Internet exchange point
Places Belgi ...
and
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
. IBM i uses an object-oriented methodology and integrates a database (
Db2 for i). The IBM i OS has a 128-bit unique identifier for each object.
; IBM OS/2 2.0
:IBM's first priority based pre-emptive multitasking, graphical, windows-based operating system included an object-oriented user shell. It was designed for the Intel 80386 that used
virtual 8086 mode
In the 80386 microprocessor and later, virtual 8086 mode (also called virtual real mode, V86-mode, or VM86) allows the execution of real mode applications that are incapable of running directly in protected mode while the processor is running a ...
with full 32-bit support and was released in 1992.
ArcaOS, a new OS/2 based operating system initially called Blue Lion is being developed by Arca Noae. The first version was released in May 2017.
; IBM TopView
:
TopView
TopView is the first object-oriented, multitasking, and windowing, personal computer operating environment for PC DOS developed by IBM, announced in August 1984 and shipped in March 1985. TopView provided a text-mode (although it also ran in g ...
was an object-oriented operating environment that loaded on a PC on DOS, and then took control from DOS. At that point it effectively became an object-oriented operating system with an object-oriented API (TopView API). It was IBM's first multi-tasking, window based, object-oriented operating system for the PC led by David C. Morrill and released in February 1985.
; Java-based
:Given that
Oracle's (formerly
Sun Microsystems')
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
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
Kernel may refer to:
Computing
* Kernel (operating system), the central component of most operating systems
* Kernel (image processing), a matrix used for image convolution
* Compute kernel, in GPGPU programming
* Kernel method, in machine learn ...
would consist of the bare minimum needed to support a
Java virtual machine (JVM). This is the only component of such an operating system that would have to be written in a language other than Java. Built on the 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
JavaOS
JavaOS is an operating system based on a Java virtual machine and predominantly used on SIM cards to run applications on behalf of operators and security services. It was originally developed by Sun Microsystems. Unlike Windows, macOS, Unix, or ...
, JOS, JNode, and
JX.
; Lisp-based
:An object-oriented operating system written in the
Lisp dialect
Lisp Machine Lisp
Lisp Machine Lisp is a programming language, a dialect of the language Lisp. A direct descendant of Maclisp, it was initially developed in the mid to late 1970s as the system programming language for the Massachusetts Institute of Technology ( ...
(and later
Common Lisp) was developed at MIT. It was commercialized with
Lisp Machine
Lisp machines are general-purpose computers designed to efficiently run Lisp as their main software and programming language, usually via hardware support. They are an example of a high-level language computer architecture, and in a sense, they ...
s from
Symbolics,
Lisp Machines Inc. and
Texas Instruments
Texas Instruments Incorporated (TI) is an American technology company headquartered in Dallas, Texas, that designs and manufactures semiconductors and various integrated circuits, which it sells to electronics designers and manufacturers globa ...
. Symbolics called their operating system
Genera. It was developed with the
Flavors object-oriented extension of Lisp, then with New Flavors, and then with the
Common Lisp Object System
The Common Lisp Object System (CLOS) is the facility for object-oriented programming which is part of ANSI Common Lisp. CLOS is a powerful dynamic object system which differs radically from the OOP facilities found in more static languages such ...
(CLOS).
:Xerox developed several workstations with an operating system written in
Interlisp-D. Interlisp-D provided object-oriented extensions like LOOPS and CLOS.
:Movitz an
Mezzanoare two more recent attempts at operating systems written in Common Lisp.
; Medos-2
:
Medos-2 is a single user, object-oriented operating system made for the
Lilith
Lilith ( ; he, לִילִית, Līlīṯ) is a female figure in Mesopotamian and Judaic mythology, alternatively the first wife of Adam and supposedly the primordial she-demon. Lilith is cited as having been "banished" from the Garden of Ed ...
line of
workstation
A workstation is a special computer designed for technical or scientific applications. Intended primarily to be used by a single user, they are commonly connected to a local area network and run multi-user operating systems. The term ''workstat ...
s (processor:
Advanced Micro Devices
Advanced Micro Devices, Inc. (AMD) is an American multinational semiconductor company based in Santa Clara, California, that develops computer processors and related technologies for business and consumer markets. While it initially manufact ...
(AMD)
2901), developed in the early 1980s at
ETH Zurich by Svend Erik Knudsen with advice from
Niklaus Wirth
Niklaus Emil Wirth (born 15 February 1934) is a Swiss computer scientist. He has designed several programming languages, including Pascal, and pioneered several classic topics in software engineering. In 1984, he won the Turing Award, generally ...
. It is built entirely from modules of the programming language
Modula-2. It was succeeded at ETH Zurich by the
Oberon
Oberon () is a king of the fairies in medieval and Renaissance literature. He is best known as a character in William Shakespeare's play ''A Midsummer Night's Dream'', in which he is King of the Fairies and spouse of Titania, Queen of the Fairi ...
system, and a variant named ''
Excelsior
Excelsior, a Latin comparative word often translated as "ever upward" or "even higher", may refer to:
Arts and entertainment Literature and poetry
* "Excelsior" (Longfellow), an 1841 poem by Henry Wadsworth Longfellow
* ''Excelsior'' (Macedo ...
'' was developed for the
Kronos workstation, by the
Academy of Sciences of the Soviet Union
The Academy of Sciences of the Soviet Union was the highest scientific institution of the Soviet Union from 1925 to 1991, uniting the country's leading scientists, subordinated directly to the Council of Ministers of the Soviet Union (until 1946 ...
, Siberian branch,
Novosibirsk Computing Center, Modular Asynchronous Developable Systems (MARS) project, Kronos Research Group (KRG).
; Microsoft Singularity
:
Singularity is an experimental operating system based on Microsoft's
.NET Framework
The .NET Framework (pronounced as "''dot net"'') is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until bein ...
. It is comparable to Java-based operating systems.
; Microsoft Windows NT
:
Windows NT
Windows NT is a proprietary graphical operating system produced by Microsoft, the first version of which was released on July 27, 1993. It is a processor-independent, multiprocessing and multi-user operating system.
The first version of Win ...
is a family of operating systems (including
Windows 7
Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was released to manufacturing on July 22, 2009, and became generally available on October 22, 2009. It is the successor to Windows Vista, released nearly ...
,
8,
Phone 8,
8.1
Windows 8.1 is a release of the Windows NT operating system developed by Microsoft. It was released to manufacturing on August 27, 2013, and broadly released for retail sale on October 17, 2013, about a year after the retail release of its pre ...
,
Windows 10
Windows 10 is a major release of Microsoft's Windows NT operating system. It is the direct successor to Windows 8.1, which was released nearly two years earlier. It was released to manufacturing on July 15, 2015, and later to retail on J ...
,
10 Mobile,
Windows 11
Windows 11 is the latest major release of Microsoft's Windows NT operating system, released in October 2021. It is a free upgrade to its predecessor, Windows 10 (2015), and is available for any Windows 10 devices that meet the new Windows 11 ...
and
Xbox
Xbox is a video gaming brand created and owned by Microsoft. The brand consists of five video game consoles, as well as applications (games), streaming services, an online service by the name of Xbox network, and the development arm by the ...
) produced by
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washin ...
, the first version of which was released in July 1993. It is a
high-level programming language
In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language ''elements'', be easier to us ...
-based,
processor-independent,
multiprocessing,
multi-user
Multi-user software is computer software that allows access by multiple users of a computer. Time-sharing systems are multi-user systems. Most batch processing systems for mainframe computers may also be considered "multi-user", to avoid leaving t ...
operating system. It is best described as
object-based The term object-based language may be used in a technical sense to describe ''any'' programming language that uses the idea of encapsulating state and operations inside ''objects''. Object-based languages need not support inheritance or subtyping, b ...
rather than object-oriented as it does not include the full inheritance properties of object-oriented languages.
:The
Object Manager
Object Manager (internally called Ob) is a subsystem implemented as part of the Windows Executive which manages Windows ''resources''. Resources, which are surfaced as logical ''objects'', each reside in a namespace for categorization. Resources ...
is in charge of managing NT objects. As part of this responsibility, it maintains an internal
namespace
In computing, a namespace is a set of signs (''names'') that are used to identify and refer to objects of various kinds. A namespace ensures that all of a given set of objects have unique names so that they can be easily identified.
Namespaces ...
where various operating system components, device drivers, and
Win32 programs can store and lookup objects. The NT
Native API
The Native API is a lightweight application programming interface (API) used by Windows NT and user mode applications. This API is used in the early stages of Windows NT startup process, when other components and APIs are still unavailable. Ther ...
provides routines that allow
user space
A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour.
Kernel ...
(mode) programs to browse the namespace and query the status of objects located there, but the interfaces are undocumented. NT supports per-object (file, function, and role)
access control list
In computer security, an access-control list (ACL) is a list of permissions associated with a system resource (object). An ACL specifies which users or system processes are granted access to objects, as well as what operations are allowed on gi ...
s allowing a rich set of security permissions to be applied to systems and services. WinObj is a Windows NT program that uses the NT Native API (provided by NTDLL.DLL) to access and display information on the NT Object Manager's name space.
:; Component Object Model
::On the
user mode
A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour.
Kernel ...
side of Windows, the
Component Object Model (COM) is an
application binary interface
In computer software, an application binary interface (ABI) is an interface between two binary program modules. Often, one of these modules is a library or operating system facility, and the other is a program that is being run by a user.
An ...
standard for
software components
Component-based software engineering (CBSE), also called component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a give ...
introduced by
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washin ...
in 1993. It is used to enable
interprocess communication
In computer science, inter-process communication or interprocess communication (IPC) refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data. Typically, applications can use IPC, categoriz ...
and dynamic
object
Object may refer to:
General meanings
* Object (philosophy), a thing, being, or concept
** Object (abstract), an object which does not exist at any particular time or place
** Physical object, an identifiable collection of matter
* Goal, an ...
creation in a large range of
programming languages
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
. COM is the basis for several other Microsoft technologies and frameworks, including
Object Linking and Embedding
Object Linking & Embedding (OLE) is a proprietary technology developed by Microsoft that allows embedding and linking to documents and other objects. For developers, it brought OLE Control Extension (OCX), a way to develop and use custom user i ...
(OLE),
OLE Automation
In Microsoft Windows applications programming, OLE Automation (later renamed to simply Automation) is an inter-process communication mechanism created by Microsoft. It is based on a subset of Component Object Model (COM) that was intended for us ...
,
ActiveX
ActiveX is a deprecated software framework created by Microsoft that adapts its earlier Component Object Model (COM) and Object Linking and Embedding (OLE) technologies for content downloaded from a network, particularly from the World Wide We ...
,
COM+,
Distributed Component Object Model
Distributed Component Object Model (DCOM) is a proprietary Microsoft technology for communication between software components on networked computers. DCOM, which originally was called "Network OLE", extends Microsoft's COM, and provides the commun ...
(DCOM), the
Windows shell
The Windows shell is the graphical user interface for the Microsoft Windows operating system. Its readily identifiable elements consist of the desktop, the taskbar, the Start menu, the task switcher and the AutoPlay feature. On some versions of W ...
,
DirectX, and
Windows Runtime
Windows Runtime (WinRT) is a platform-agnostic component and application architecture first introduced in Windows 8 and Windows Server 2012 in 2012. It is implemented in C++ and officially supports development in C++ (via C++/WinRT, C++/CX or ...
. OLE is a