Object-oriented operating system

From Wikipedia, the free encyclopedia
Jump to: navigation, search

An object-oriented operating system is an operating system that 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 or Unix.

There are already object-based 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, whose behavior varies based on the type of object and whose implementation details are hidden from the caller.

Object-oriented has been defined as objects + classes + inheritance and the latter is only one approach to the more general problem of delegation that occurs in every operating system.[1] Object-orientation has been more widely used in the user interfaces of operating systems than in their kernels.

Examples[edit]

Athene[edit]

Athene was 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 'DML' (Dynamic Markup Language). Objects could have been shared between processes by creating them in shared memory and locking them as required for access. Athene's object framework was multi-platform, allowing it to be used in Windows and Linux environments for the development of object-oriented programs. The company went defunct and the project abandoned sometime in 2009.

BeOS[edit]

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.

Choices[edit]

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.

GEOS[edit]

PC/GEOS is a light-weighted 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 top of DOS (similar to Microsoft Windows). GEOS was originally developed by Berkeley Softworks in 1990, who later became GeoWorks Corporation, and it is continued to be maintained by BreadBox Computer Company. Software suites were also known as Ensemble and New Deal Office. Adaptations for various palmtops and as 32-bit systems with non-x86-CPUs exist as well.

Haiku[edit]

After the discontinuation of BeOS, an effort to create an open-source replacement began. Haiku (originally named OpenBeOS) reached its first 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++ and provides an object-oriented API. It is actively developed.

IBM AS400[edit]

IBM invented AS/400 around 1978 with an object-based methodology. The AS/400 OS has a 128-bit unique identifier for each object.

IBM OS/2 2.0[edit]

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 with full 32-bit support and was released in 1992.

IBM TopView[edit]

TopView was an object-oriented operating environment that took control of the PC from DOS when loaded on 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 lead by David C. Morrill and released in February 1985.

Java-based operating systems[edit]

Given that Oracle's (formerly 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 JavaOS, JOS,[2] JNode, and JX.

LISP[edit]

Lisp Machine Lisp was used for the operating system on the Lisp Machine and then at Symbolics with the Genera operating system.

Microsoft Singularity[edit]

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.

Microsoft Windows NT[edit]

Windows NT is a family of operating systems (including Windows 7, 8, Phone 8, Xbox) produced by Microsoft, the first version of which was released in July 1993. It is a high-level-language-based, processor-independent, multiprocessing, multi-user operating system. The Object Manager is in charge of managing NT objects. As part of this responsibility, it maintains an internal namespace where various operating system components, device drivers and Win32 programs can store and lookup objects. The native NT API provides routines that allow user-mode programs to browse the namespace and query the status of objects located there, but the interfaces are undocumented.[3] NT supportes per-object (file, function, and role) access control lists allowing a rich set of security permissions to be applied to systems and services. WinObj is a Windows NT program that uses the native Windows NT API (provided by NTDLL.DLL) to access and display information on the NT Object Manager's name space.[4]

ReactOS is an open-source computer operating system intended to be binary compatible with application software and device drivers made for Microsoft Windows NT versions. Written completely from scratch, it aims to follow the Windows NT architecture designed by Microsoft from the hardware level right through to the application level. This is not a Linux based system, and shares none of the unix architecture.[5]

On the user mode side of Windows the Component Object Model (COM) is a binary-interface standard for software components introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages. COM is the basis for several other Microsoft technologies and frameworks, including OLE, OLE Automation, ActiveX, COM+, DCOM, the Windows shell, DirectX, and Windows Runtime. Object Linking and Embedding (OLE) is a proprietary technology developed by Microsoft that allows embedding and linking to documents and other objects. On a technical level, an OLE object is any object that implements the IOleObject interface, possibly along with a wide range of other interfaces, depending on the object's needs. Its primary use is for managing compound documents, but it is also used for transferring data between different applications using drag and drop and clipboard operations.

Compound File Binary Format (CFBF) is a file format for storing numerous files and streams within a single file on a disk. CFBF is developed by Microsoft and is an implementation of Microsoft COM Structured Storage. Structured storage is widely used as main file format in Microsoft Office applications including Microsoft Word, Microsoft Excel, Microsoft Powerpoint, Microsoft Access and is the basis of Advanced Authoring Format.

OLE was part of a grander plan named Cairo, the code name for a project at Microsoft from 1991 to 1996. Its charter was to build technologies for a next generation operating system that would fulfill Bill Gates' vision of "information at your fingertips".[6][7] Cairo never shipped, although portions of its technologies have since appeared in other products. The Windows 95 user interface was based on the initial design work that was done on the Cairo user interface. The remaining component is the object file system. It was once planned to be implemented in the form of WinFS as part of Windows Vista. WinFS (short for Windows Future Storage) is the code name for data storage and management system project based on relational databases, running on top of NTFS. The Windows NT filesystem NTFS is itself object oriented in the sense that it can store the NT objects including its NT object identifier. Each NTFS object has an object identifier; a shortcut with a target that's on an NTFS volume also records the object identifier of the shortcut target, as well as the object identifier of the drive itself.[8] WinFS was first demonstrated in 2003 as an advanced storage subsystem for the Microsoft Windows operating system, designed for persistence and management of structured, semi-structured as well as unstructured data. The development of WinFS was cancelled in June 2006, with some of its technologies merged into other Microsoft products such as Microsoft SQL Server 2008 and Microsoft SharePoint. It was subsequently confirmed in an interview with Bill Gates that Microsoft planned to migrate applications like Windows Media Player, Windows Photo Gallery, Microsoft Office Outlook, etc. to use WinFS as the data storage back-end.[9]

NeXTSTEP[edit]

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 HP-UX, NextStep, Solaris, Windows.

Self[edit]

Self (programming language) was invented at Xerox PARC. It was then developed at Stanford University and Sun Microsystems.

Smalltalk[edit]

Smalltalk was invented at Xerox in the 1970s. The Smalltalk system is fully object-oriented and needs very little support by BIOS and the run-time system.

Syllable[edit]

Syllable makes heavy use of C++ and for that reason is often compared to BeOS.

Symbolics Genera[edit]

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.

Taligent[edit]

Taligent was an object-oriented operating system project, started by Apple Inc. and jointly developed with IBM in the 1990s. It was later spun off to an IBM subsidiary and transformed from an operating system to a programming environment.

See also[edit]

References[edit]

  1. ^ Wegner, Peter (1987). "Dimensions of Object-Based Language Design". OOPSLA '87 Proceedings. 
  2. ^ "About". JOS (A Free Java-Based Operating System). Retrieved 2012-09-03. The JOS Project is a collaborative undertaking by an international group of Java™ programmers and enthusiasts aimed at the creation of a free and open Java™ based Operating System (JOS). As a collaborative effort, we work together to research how a Java-based operating system should work. Together, we work to build components for a Java-based operating system. 
  3. ^ Nebbett, Gary (February 20, 2000). Windows NT/2000 Native API Reference. Sams Publishing. p. 528. ISBN 978-1578701995. The Windows NT/2000 Native API Reference provides the first comprehensive look at these undocumented services. A unique tool for software developers, this reference includes documentation of over 200 routines included in the native API, detailed description of routines that are either not directly accessible via the Win32 API, or that offer substantial additional functionality. 
  4. ^ Mark Russinovich. "Windows Sysinternals WinObj". Microsoft. Retrieved 2014-05-16. Obj is a must-have tool if you are a system administrator concerned about security, a developer tracking down object-related problems, or just curious about the Object Manager namespace. 
  5. ^ Klemens Friedl. "About ReactOS - Object Based". ReactOS Project. Retrieved 2014-05-16. ReactOS uses an object metaphor that is pervasive throughout the architecture of the system. Not only are all of the things in the UNIX file metaphor viewed as objects by ReactOS, but so are things such as processes and threads, shared memory segments, the global registry database and even access rights. 
  6. ^ Bill Gates (1990). ""Information at Your Fingertips" Keynote - Comdex/Fall 1990". Microsoft. Retrieved 2014-05-16. Bill Gates delivered on November 12, 1990 his famous Keynote titled "Information at Your Fingertips" 
  7. ^ Bill Gates (1994). ""Information at Your Fingertips" #2 Keynote (The Road Ahead) - Comdex 1994". Microsoft. Retrieved 2014-05-16. Bill Gates' "Information At Your Fingertips" keynote speech for Comdex 1995 became the basis for his book The Road Ahead, predicting the next decade in technology - right and wrong. These predictions are enlivened by the interaction between Gates speaking and a made-for-Comdex future crime show. 
  8. ^ Raymond Chen (2007). "Windows Confidential - The NT Way (excerpts from "The Old New Thing" book)". Microsoft. Retrieved 2014-05-16. The Windows NT file system folks looked at the Windows 95 shortcut resolution algorithm and scoffed. " We can do better than that: We're object-oriented!" Each NTFS object has an object identifier; a shortcut with a target that's on an NTFS volume also records the object identifier of the shortcut target, as well as the object identifier of the drive itself. 
  9. ^ Daniel Kornev (December 19, 2006). "A few words about WinFS: The project is back on track". Channel 9. 

External links[edit]