Workplace OSs: Doors to the Future

by Paul Giangarra

The Workplace Operating Systems (Workplace OSs) will change the way you think about your computer. They're a whole new concept in operating system architecture. By unifying the worlds of multiple operating systems, and providing a new base for common services, scalable and flexible systems are born. Workplace OSs protect your current investment, as well as bring you into the future. A key feature of Workplace OSs is their support for 32-bit applications.

With the roll-out of OS/2 2.1, we have provided you with a true 32-bit operating system that extends the features of OS/2 2.0 by providing significant new features. OS/2 2.1 truly takes advantage of the capabilities of the increased power of the new generations of Intel-based processors, including Pentium.

Having chosen OS/2, what exactly do you get? You get the bestselling 32-bit operating system. This is because your operating system is designed to handle the increased requirement of complex programs, such as multitasking and object-oriented programming (OOP). You are also working in a protected environment, so if one application fails, the system continues to function.

Internally, OS/2 provides support for even more including, but not limited to, the following:
 * Preemptive multitasking so you can run several programs at one time.
 * A protection model that isolates the operating system from errant applications, as well as applications from each other.
 * A System Object Model (SOM) that provides a language-neutral mechanism for object management services.
 * A Workplace Shell, implemented on SOM, that provides a powerful, object-oriented user interface.
 * Dynamic link libraries (DLLs) that allow for interchangeable software components.
 * A 32-bit presentation driver model that lets you add and install such items as printers and displays, as needed, and without a needing a complete reinstallation.
 * Installable file systems that allow the addition of new types of file systems, such as CD-ROMs.
 * Multimedia audio and video players.

In addition, OS/2 can support the enterprise-wide, LAN-based client/server applications of the future, such as SQL databases, CICS, and REXX. OS/2 2.1 continues to be IBM's mainstream desktop offering for Intel x386 and 80x86 processors and will continue to be enhanced and optimized for that platform.

What Lies Ahead?
What lies ahead are exciting, new technologies that we are ready to exploit. Some of these technologies include:
 * New hardware architecture and platforms that will provide a significant increase in computing power
 * Object-oriented programming that results in productivity gains making it possible to fully exploit the power and features of this new hardware
 * New devices, such as speech, wireless, and enhanced video, that will provide exciting and new functions

So how do we get to this future? We are developing a new operating system foundation that will take advantage of all these emerging technologies. It will include features, such as a higher security level and the use of multiple processors (MP).

This operating system foundation will let you move forward to the future, while preserving your current investment.



''Figure 1. Doors to the future''

And What Is That New Operating System?
Workplace OSs are the operating systems that will prepare you for the future. Taking the best, most elegant features of multiple operating systems, Workplace OSs combine them with the flexibility to run on unlimited platforms.

Workplace OSs do not replace OS/2; rather, they compliment OS/2 by providing for:
 * More applications than any other operating system
 * Increased and varied hardware support
 * Open system architecture providing for increased potential in a scalable environment
 * Increased quality and flexibility

The products that make up Workplace OSs are:
 * The IBM Microkernel
 * Common (cross-personality) services
 * Multiple personalities

The IBM Microkernel
The IBM Microkernel provides the base mechanisms required for building operating systems. It is not tied to any operating system-specific functions.

The Microkernel is pure, simple, and minimal. It isolates all the critical, machine-dependent services from the operating environments outside of it. Operating environment policies are set by the operating environment personality.

The Microkernel is based on Carnegie Mellon University's (CMU's) Mach technology that provides for:
 * Task management (tasks, threads, and dispatching)
 * Interprocess communications (IPC)
 * Memory management
 * Interrupt management

The Microkernel does not enforce policy; rather, it executes whatever policy is set externally. Using Microkernel technology greatly enhances the value of Workplace OSs. The Microkernel embraces future technology by providing for the current 32-bit technology, but allowing for 64-bit and beyond extensibility. It provides for flexibility, integrity, and scalability. The design of the Microkernel encourages modular client/server design; therefore, reducing complexity.



''Figure 2. The Workplace look''

Each point of control within the Microkernel is a thread having access to all of the elements in the task that contains it. A task is a container for the system resources for the threads contained within it. A task does not have a life of its own...it is governed by the threads it contains. Only threads can execute instructions. All threads contained in a specific task share all of that task's resources. Tasks exist as separate entities; for example, they cannot share any resources without taking explicit action. Tasks resemble UNIX processes and, in fact, are the mechanisms by which UNIX processes are created by the UNIX personality.

Each task contains an associated memory map that is also known as an address space. As with most virtual memory systems, a mechanism must exist to use physical memory as a cache for the virtual addresses of tasks. Because this is a generic Microkernel, the operating system personalities must participate in this mechanism. The Microkernel's memory management provides the mechanisms of memory objects and functions to manipulate all this. Mach IPC (ports) manage client/server communication. The requesting thread (client) accesses services by sending messages to the owning task (servers). These messages are sent over communication channels, called ports.

Mach provides first level interrupt management services that rely on device support to provide specific second level interrupt handlers. The Microkernel sees the device drivers as tasks and threads that are external to itself. The device drivers can inject interrupt handlers into the Microkernel, where necessary.

Common (Cross-Personality) Services
Common services include default paging services, security, device driver frameworks, and file servers.

The file server framework provides support for multiple, installable file systems and conforms to the industry-standard VNODE interface. The file server also provides memory-mapped file support and allows for logical volume management. The device driver framework provides for hardware resource management and a common framework to build base device drivers. Interrupt service routines (ISRs) get interrupts from first-level Microkernel interrupt management and reflect interrupts to the device drivers that are executing in user space. The default pager handles page faults that are reflected by the Microkernel.

Multiple Personalities
External to the Microkernel and common services are personalities that provide the specific services for the operating systems. Personalities are actually application loaders and launchers. They let you run operating system-specific applications on multiple operating systems. Personality specific services work with the personality server and personality neutral services to map application requests to the correct services with the proper semantics.

Personalities reflect particular operating environments, such as UNIX, DOS, OS/2, and more. You can run one or more of these person alities on top of the Microkernel and the common services. You can choose which personality is dominant and which personality is alternate. The dominant personality provides the look and feel of the system (that is, the user interface). It provides the default runtime semantics, as well as the runtime and execution environment. The alternate personalities will respond to a set of requests from the dominant personality. For example, the UNIX dominant personality looks to the other personalities to recognize, load, and launch anything other then an UNIX application. However, the UNIX personality will handle all UNIX applications itself.

So, whatever your dominant personality is, your operating systems will look just like your system does today. Adding alternate personalities will grant you the enhanced flexibility of running additional operating system applications, such as UNIX.

So, What Does All This Mean to Me?
What this means to you, as a developer, is that using multiple personalities, you are going to have a flexible environment in which you can run not just one, but multiple applications across system platforms. It also means that you will be able to develop and test different flavors of your application on one machine in a uniform programming environment.

And, each personality will share a common look and feel...the Workplace Shell look. Workplace OSs are your key to a whole new level of computing. This reason is why they are your door to the future.