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.
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 by privilege level of a user.[1]
Present-day operating systems use object-oriented design principles for many components of the system, which includes protection.
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.
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.
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.
Bill Gates delivered on November 12, 1990 his famous Keynote titled "Information at Your Fingertips"
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.
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.
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.