What exactly is an an ObjectOriented OperatingSystem?
- an operating system implemented using the techniques of object orientation (i.e. implemented in an ObjectOrientedProgrammingLanguage using inheritance, PolyMorphism, etc.)?
- an operating system designed according to the principles of object orientation (i.e. the basic abstractions provided by the operating system are represented internally and externally as objects with state, behavior, and identity, and can be acted upon and maybe even extended as one would act and extend objects e.g. in a SmalltalkProgrammingEnvironment)?
- Consider device drivers, interrupts, and file systems. Device drivers were some of the first polymorphic components. New drivers could be loaded or compiled into an operating system, without the OS having prior knowledge of the driver type. The driver only had to conform to a specific interface. Interrupts provided a very basic messaging system. Hardware or software could call an interrupt without know precisely what would handle it or even if it would be handled. Software and occasionally hardware would be installed to handle the interrupt and would need to register itself to the system to be the interrupt handler. File systems are really an extension of the device driver example, but a routine is really unconcerned where a file exists; it merely reads from it and writes to it. The details of whether the file is on a floppy disk, a hard drive, or a remote file server are hidden.
See e.g.
ChoicesObjectOrientedOperatingSystem and
BlueAbyss.
Also see OperatingSystemsDesignPrinciples and LanguageIsAnOs.
What about InternationalBusinessMachines' OS/2 and the OberonOperatingSystem?
What about the Fiasco implementation of the EllFour MicroKernel (see http://os.inf.tu-dresden.de/fiasco/overview.html)?
What about Squeak? Squeak is SmallTalk.
CategoryOperatingSystem