Jump to content

Object-oriented operating system

From Wikipedia, the free encyclopedia

Anobject-oriented operating system[1]is anoperating systemthat is designed, structured, and operated usingobject-oriented programmingprinciples.

An object-oriented operating system is in contrast to an object-orienteduser interfaceor programmingframework,which can be run on a non-object-oriented operating system likeDOSorUnix.

There are alreadyobject-based languageconcepts involved in the design of a more typical operating system such asUnix.While a more traditional language likeCdoes not support object-orientation as fluidly as more recent languages, the notion of, for example, afile,stream,ordevice driver(in Unix, each represented as afile descriptor) can be considered a good example of objects. They are, after all,abstract data types,with variousmethodsin the form ofsystem callswhich behavior varies based on the type of object and which implementation details are hidden from the caller.

Object-orientationhas been defined asobjects+inheritance,and inheritance is only one approach to the more general problem ofdelegationthat occurs in every operating system.[2]Object-orientation has been more widely used in theuser interfacesof operating systems than in theirkernels.

Background

[edit]

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.[1]

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 byprivilege levelof a user.[1]

Present-day operating systems use object-oriented design principles for many components of the system, which includes protection.

Examples

[edit]
Athene
Athene is an object-based operating system first released in 2000 by Rocklyte Systems.[3][4]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 inshared memoryand 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[5]was an object-oriented operating system released in 1995, which used objects and theC++language for theapplication 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 theUniversity of Illinois at Urbana–Champaign.[6][7]It is written inC++and uses objects to represent core kernel components like thecentral processing unit(CPU),processes,and so on.Inheritanceis used to separate the kernel into portable machine-independent classes and small non-portable dependent classes. Choices has been ported to and runs onSPARC,x86,andARM.
ETHOS
ETHOS was an experimental object oriented version of the Oberon System (see below) created by Clemens Szyperski for his PhD Thesis[8]written inOberon-2
GEOS
PC/GEOSis 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 onDOS(similar to Microsoft Windows up toWindows Me). GEOS was developed originally byBerkeley Softworksin 1990, which later became GeoWorks Corporation, and it is continued to be maintained by BreadBox Computer Company. Relatedsoftware suiteswere namedEnsembleandNew Deal Office.Adaptations exist for various palmtops, and 32-bit systems with non-x86-CPUs.
Haiku
Haiku(originally namedOpenBeOS), 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 inC++and provides an object-oriented API. It is actively developed.
IBM i (OS/400, i5/OS)
IBM introducedOS/400in 1988. This OS ran exclusively on theAS/400platform. RenamedIBM iin 2008, this operating system and runs exclusively onPower Systemswhich also can runAIXandLinux.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 usedvirtual 8086 modewith full 32-bit support and was released in 1992.ArcaOS,a new OS/2 based operating system initially called Blue Lion[9]is being developed by Arca Noae. The first version was released in May 2017.
IBM TopView
TopViewwas 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 thatOracle's(formerlySun Microsystems')Javais 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, thekernelwould consist of the bare minimum needed to support aJava 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 exampledevice drivers,can be written in Java.
Examples of attempts at such an operating system includeJavaOS,JOS,[10]JNode, andJX.
Lisp-based
An object-oriented operating system written in theLispdialectLisp Machine Lisp(and laterCommon Lisp) was developed at MIT. It was commercialized withLisp machinesfromSymbolics,Lisp Machines Inc.andTexas Instruments.Symbolics called their operating systemGenera.It was developed with theFlavorsobject-oriented extension of Lisp, then with New Flavors, and then with theCommon Lisp Object System(CLOS).
Xerox developed several workstations with an operating system written inInterlisp-D.Interlisp-D provided object-oriented extensions like LOOPS and CLOS.
Movitz andMezzanoare two more recent attempts at operating systems written in Common Lisp.
Medos-2
Medos-2is a single user, object-oriented operating system made for theLilithline ofworkstations(processor:Advanced Micro Devices(AMD)2901), developed in the early 1980s atETH Zurichby Svend Erik Knudsen with advice fromNiklaus Wirth.It is built entirely from modules of the programming languageModula-2.[11][12][13]It was succeeded at ETH Zurich by theOberonsystem, and a variant namedExcelsiorwas developed for theKronosworkstation, by theAcademy of Sciences of the Soviet Union,Siberian branch,NovosibirskComputing Center, Modular Asynchronous Developable Systems (MARS) project, Kronos Research Group (KRG).[14]
Microsoft Singularity
Singularityis an experimental operating system based on Microsoft's.NET Framework.It is comparable to Java-based operating systems.
Microsoft Windows NT
Windows NTis a family of operating systems (includingWindows 7,8,Phone 8,8.1,Windows 10,10 Mobile,Windows 11andXbox) produced byMicrosoft,the first version of which was released in July 1993. It is ahigh-level programming language-based,processor-independent,multiprocessing,multi-useroperating system. It is best described asobject-basedrather than object-oriented as it does not include the full inheritance properties of object-oriented languages.[15]
TheObject Manageris in charge of managing NT objects. As part of this responsibility, it maintains an internalnamespacewhere various operating system components, device drivers, andWin32 programscan store and lookup objects. The NTNative APIprovides routines that allowuser space(mode) programs to browse the namespace and query the status of objects located there, but the interfaces are undocumented.[16]NT supports per-object (file, function, and role)access control listsallowing 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.[17]
Component Object Model
On theuser modeside of Windows, theComponent Object Model(COM) is anapplication binary interfacestandard forsoftware componentsintroduced byMicrosoftin 1993. It is used to enableinterprocess communicationand dynamicobjectcreation in a large range ofprogramming languages.COM is the basis for several other Microsoft technologies and frameworks, includingObject Linking and Embedding(OLE),OLE Automation,ActiveX,COM+,Distributed Component Object Model(DCOM), theWindows shell,DirectX,andWindows Runtime.OLE is aproprietarytechnology developed byMicrosoftthat allows embedding andlinkingtodocumentsand other objects. On a technical level, an OLE object is any object that implements theIOleObjectinterface, possibly along with a wide range of other interfaces, depending on the object's needs. Its primary use is for managingcompound documents,but it is also used for transferring data between differentapplicationsusingdrag and dropandclipboardoperations.
Compound File Binary Format
Compound File Binary Format(CFBF) is a file format for storing many files and streams within one file on a disk. CFBF is developed by Microsoft and is an implementation of MicrosoftCOM Structured Storage.Structured storage is widely used as main file format in Microsoft Office applications includingMicrosoft Word,Microsoft Excel,MicrosoftPowerPoint,Microsoft Accessand is the basis ofAdvanced Authoring Format.
Object Linking and Embedding
Object Linking and Embedding (OLE) was part of a grander plan namedCairo,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 fulfillBill Gates' vision of "information at your fingertips".[18][19]Caironever shipped,although parts of its technologies have since appeared in other products. TheWindows 95graphical user interfacewas based on the initial design work that was done on the Cairo user interface. The remaining component is theobject-based file system.It was once planned to be implemented in the form of Windows Future Storage (WinFS) as part ofWindows Vista.WinFS is the code name for data storage andmanagementsystem project based onrelational databases,running on the Windows NTfile system(NTFS), which is object-oriented in 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, and the object identifier of the drive.[20]WinFS was first demonstrated in 2003 as an advanced storage subsystem for theMicrosoft Windowsoperating system,designed forpersistenceand management ofstructured,semi-structured,andunstructured data.WinFS development was cancelled in June 2006, with some of its technologies merged into other Microsoft products such asMicrosoft SQL Server2008 andMicrosoft SharePoint.It was subsequently confirmed in an interview with Bill Gates that Microsoft planned to migrate applications likeWindows Media Player,Windows Photo Gallery,Microsoft Office Outlook,etc., to useWinFSas the data storage back-end.[21]
NeXTSTEP
During the late 1980s,Steve Jobsformed the computer companyNeXT.One of NeXT's first tasks was to design an object-oriented operating system,NeXTSTEP.They did this by adding an object-oriented framework onMachandBSDusing theObjective-Clanguage as a basis. It achieved a niche status in the computing market, notably used byTim Berners-Leedeveloping the first implementation of theWorld Wide Web.
NeXTStep later evolved intoOpenStepand theCocoa APIonmacOSandiOS(iPadOS,watchOS).
OpenStep was provided as an API layer on many operating systems, namelyHP-UX,NextStep,Solaris,and Windows.
Oberon System
Oberon Systemis a single user, object-oriented operating system made for theCeresline ofworkstations(processor:National SemiconductorNS32000), developed in the later 1980s atETH ZurichbyNiklaus WirthandJürg Gutknecht.It is built entirely from modules of the programming languageOberon.[22]There are two successors of the Oberon System, ETHOS (see above) and, as of 2023 still maintained, an evolution namedActive Object System(AOS),[23]then renamedBluebottle,then renamedA2.
OOSMOS
The Object-Oriented State Machine Operating System (OOSMOS), written in C, promotes object-oriented encapsulation and implements a full table-driven hierarchical state machine architecture. It generates C code directly from state charts drawn with the open source toolUMLet.OOSMOS also supports a unique feature call 'state threads' which allows a thread of execution per state. OOSMOS operates on a bare board or in cooperation with an existing operating system.
Phantom OS
Phantom OSadheres to a principle where "everything is an object" and eliminates the concept of a file entirely, instead transparently persisting virtual memory to storage.
ReactOS
ReactOSis an open-source operating system intended to be binary compatible with application software anddevice driversmade for Microsoft Windows NT versions. Written from scratch, it aims to follow thearchitecture of Windows NTdesigned by Microsoft from the hardware level right through to the application level. This isnota Linux-based system, and sharesnoneof theunix architecture.[24][25]
Smalltalk
Smalltalkwas invented atXeroxin the 1970s. The Smalltalk system is fully object-oriented and needs very little support byBIOSand therun-time system.
Syllable
Syllablemakes heavy use ofC++and for that reason is often compared toBeOS.
Symbolics Genera
GenerafromSymbolicsis an operating system forLisp machineswritten inZetaLispand SymbolicsCommon Lisp.It makes heavy use ofFlavors(an early object-oriented extension to Lisp) and theCommon Lisp Object System(CLOS). Development began in the mid 70s at MIT.
Taligent
Taligentwas an object-oriented operating system project, begun byApple Inc.and jointly developed withIBMin 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. ^abcPashtan, Ariel (1 January 1982)."Object oriented operating systems".Proceedings of the ACM '82 conference on - ACM 82.Association for Computing Machinery (ACM). pp. 126–131.doi:10.1145/800174.809777.ISBN9780897910859.S2CID9463966.
  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.
  3. ^"The Athene Operating System".LWN.net.Retrieved13 February2017.
  4. ^"Rocklyte Systems".Rocklyte Systems.Archived fromthe originalon 2006-11-03.Retrieved2007-02-18.
  5. ^Sydow, Dan Parks (1999).Programming the Be operating system(1st ed.). Beijing: O'Reilly.ISBN978-1-56592-467-3.
  6. ^Campbell, Roy; Johnston, Garry; Russo, Vincent (1 July 1987)."Choices (Class Hierarchical Open Interface for Custom Embedded Systems)".ACM SIGOPS Operating Systems Review.21(3): 9–17.doi:10.1145/29321.29323.ISSN0163-5980.S2CID11935474.
  7. ^"Choices".choices.cs.illinois.edu.
  8. ^Szyperski, Clemens (1992).Insight ETHOS: On Object-Orientation in Operating Systems(PhD). Zurich, Switzerland:ETH Zürich.ISBN3-7281-1948-2.ETHZ ecollection.
  9. ^"Blue Lion, by Arca Noae".Arca Noae.Retrieved2017-02-18.
  10. ^"About".JOS (A Free Java-Based Operating System).Retrieved2012-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.
  11. ^ Knudsen, Svend Erik (1983).Medos-2: A Modula-2 Oriented Operating System for the Personal Computer Lilith(PhD).ETH Zurich.doi:10.3929/ethz-a-000300091.hdl:20.500.11850/137906.
  12. ^ Knudsen, Svend Erik (25 October 2000). "Medos in Retrospect". In Böszörményi, László;Gutknecht, Jürg;Pomberger, Gustav (eds.).The School of Niklaus Wirth: The Art of Simplicity.Morgan Kaufmann. pp. 69–86.ISBN978-1558607231.ISBN1-55860-723-4& dpunkt,ISBN3-932588-85-1.
  13. ^ Sand, Paul A. (September 1984)."The Lilith Personal Computer".Byte.pp. 300–311.Retrieved6 March2021.Reprint.
  14. ^Kuznetsov, D.N.; Nedorya, A.E.; Tarasov, E.V.; Filippov, V.E."Kronos: a family of processors for high-level languages".Kronos: History of a Project(in Russian). xTech.Retrieved13 April2021.
  15. ^"Object-Based".Microsoft Hardware Development Centre.RetrievedAug 23,2015.
  16. ^Nebbett, Gary (February 20, 2000).Windows NT/2000 Native API Reference.Sams Publishing. p. 528.ISBN978-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.
  17. ^Russinovich, Mark."Windows Sysinternals WinObj".Microsoft.Retrieved2014-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.
  18. ^Gates, Bill(1990).""Information at Your Fingertips" Keynote - Comdex/Fall 1990 ".Microsoft.Retrieved2014-05-16.Bill Gates delivered on November 12, 1990 his famous Keynote titled "Information at Your Fingertips"
  19. ^Gates, Bill(1994).""Information at Your Fingertips" #2 Keynote (The Road Ahead) – Comdex 1994 ".Microsoft.Retrieved2014-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.
  20. ^Chen, Raymond (2007)."Windows Confidential: The NT Way (excerpts from" The Old New Thing "book)".Microsoft.Retrieved2014-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.
  21. ^Kornev, Daniel (December 19, 2006)."A few words about WinFS: The project is back on track".Channel 9.
  22. ^Wirth, Niklaus;Gutknecht, Jürg(1988).The Oberon System: Report Number 88(PDF)(Report).
  23. ^Muller, Pieter Johannes (2002).The active object system design and multiprocessor implementation(PDF)(PhD). Swiss Federal Institute of Technology, Zürich (ETH Zurich).
  24. ^Friedl, Klemens."About ReactOS: Object Based".ReactOS Project.Retrieved2017-02-19.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.
  25. ^Filby, J. "ReactOS: An open-source alternative to NT?."IEEE Software16.1 (1999): 35–35.
[edit]