home *** CD-ROM | disk | FTP | other *** search
- Date: Mon, 11 Jan 93 12:38:31 EST
-
- This came off some netnews board and is supposed to be from IBM's
- OS/2 Developer bboard.... After the first few screenfuls it gives a
- pretty good overview of the Mach 3.0 micro-kernel.
-
-
- --------------------------------------------------------------------
-
- M I C R O K E R N E L
-
- T E C H N O L O G Y
-
-
-
- "A modular, portable software kernel
- promising powerful open systems advantages
- for system developers and end users."
-
-
- I B M
-
-
-
-
-
-
-
- MICROKERNEL TECHNOLOGY
-
- Dramatic advances in computing architecture, hardware designs,and
- technology have spawned an amazing variety of programming methods,
- user interfaces, development tools, communications techniques and
- application software. Delivering previously unheard of advantages to
- end users in performance, service level, and system utility, the
- overwhelming diversity of system offerings has also heralded the cry
- for "open systems" & "standards".
-
- IBM, long a leader in creating new systems delivering the
- broadest range of application capabilities to the widest range of
- users, is again committed to developing the new, open, technologies
- needed for the next computing decade.
-
- IBM developers have begun to prototype the next generation of
- highly portable systems software, and related applications, around a
- microkernel. A microkernel provides a new way of structuring systems
- software to reduce it's complexity and to increase it's portability.
- It presents the potential for building a single, truly open, computing
- environment: using a microkernel "core" product executing multiple
- diverse operating systems as "applications" on a single hardware
- platform. The promise of microkernel-based system software lies in
- providing better ways to cope with the increasing complexity of system
- designs, the potential for systems software to be more "in tune" with
- the startling leaps forward in processor hardware, and ultimately, the
- ability of the end user to select the best available application...
- independent of the available processor.
-
- Systems built using microkernel technology will deliver a new
- standard for modular, portable, operating systems development
- platforms. Rather than creating a single, monolithic system,
- developers create a set of servers that can be configured in a
- variety of ways to provide the target operating system. (1)
-
- One of the most discussed advances in operating systems in recent
- years, is the microkernel - a small, message-based piece of systems
- software running in the most privileged state of the computer,
- supporting the rest of the operating system as a set of server
- applications. Interest in microkernels has grown as system developers
- have reacted to the complexity of current operating system
- implementations and as the research community has demonstrated the
- feasibility of the microkernel concept.
-
- The Mach microkernel technology developed at Carnegie Mellon
- University serves as the basis for IBM's microkernel work. On the
- Mach base IBM is experimenting with new ways of implementing low-end
- environments, developing stand-alone file servers, integrating
- multiple operating system personalities on a single computer, and
- enabling new ways of delivering DOS execution environments.
-
- By virtue of their size and their ability to support standard
- programming services and features as application programs, micro-
- kernels themselves are simpler than standard operating systems. With
- a microkernel, operating system function is broken down into modular
- pieces that may be configured in a variety of ways, permitting larger
- systems to be built by adding pieces to smaller ones. Microkernels
- also make it easier to support multiprocessors by creating a standard
- programming environment that can use multiple processors if they are
- present but does not require them. The specialized code for
- multiprocessors is restricted to the microkernel itself. Moreover,
- networks of communicating microkernels can be used to provide
- operating system support for the emerging class of massively parallel
- machines. Since they are small and have relatively little kernel-
- level code to execute, microkernels provide a convenient way to
- support the real-time features needed for multimedia, device control
- and high speed communications. Finally, well structured microkernels
- provide an insulating layer for hardware differences that are not
- masked by the use of higher level programming languages. Thus, they
- make porting code easier and increase code reuse.
-
- Current Mach research and development activities include on-going
- research work at Carnegie Mellon, as well as Mach-related work at the
- University of Utah, the University of Arizona and Cornell University.
- The Open Software Foundation Research Institute, building on it's
- previous work and research done at Carnegie Mellon has created a
- version of Mach that supports massively parallel supercomputers.
- There is also work underway at the Center for High Performance
- Computing of Worchester Polytechnic Institute on real-time
- extensions and file system servers for a Mach environment. (2)
-
-
- +------------------------------+ +------------------------------+
- | | | |
- | | | |
- | Dominant Personality | | Secondary Personality |
- | Applications | | Applications |
- | | | |
- | (MIC) | | (MIC) |
- +------------------------------+ +------------------------------+
-
- ==================================================================
- "True Application"/Server Boundry
- ==================================================================
-
- +------------------------------+ +-------------+ +-------------+
- | | | | | |
- | Dominant Personality | | Secondary | | Secondary |
- | Server | | Personality | | Personality |
- | | | Server | | Server |
- | (MIC) | | (MIC) | | (MIC) |
- +------------------------------+ +-------------+ +-------------+
-
- ==================================================================
- Personality/Personality-Independent Boundry
- ==================================================================
-
- +--------+ +--------+ +----------+ +---------+ +----------+
- | | | | | | | | +-+--------+ |
- | Master | | File | | Hardware | | Default | | Device | |
- | Server | | Server | | Resource | | Pager | | Drivers | |
- | | | | | Manager | | | | | |
- | (MIC) | | (MIC) | | (MIC) | | (MIC) | | (DDC) |-+
- +--------+ +--------+ +----------+ +---------+ +----------+
-
- ==================================================================
- User/Privileged Boundary
- ==================================================================
-
- +-----------+----------------------------------------+-----------+
- | | Enhanced Mach 3.0 Microkernel | |
- | | | |
- | | | | | |
- | Virtual | IPC | I/O Support | Host and | Tasks & |
- | Memory | | & Interrupts | Processor Sets | Threads |
- | | | | | |
- | (MIC) | (MIC) | (MIC) | (MIC) | (MIC) |
- +-----------+-------+---------------+----------------+-----------+
- | (MDC) | (MCD) | (MDC) | (MDC) | (MDC) |
- +-----------+-------+---------------+----------------+-----------+
-
- (MIC) - Machine-Independent Code
- (DDC) - Device-Dependent Code
- (MDC) - Machine-Dependent Code (3)
-
-
- THE MACH ARCHITECTURE
-
- The functions performed by the Mach microkernel itself are limited
- to reduce its size and to maximize the amount of code that runs as an
- application program. The microkernel includes only those functions
- that are required to define a set of abstract processing environments
- for application programs and to permit applications to work together
- to deliver services and to act as clients and servers. As a result,
- the microkernel provides only five different types of services.
-
- * virtual memory management
-
- * tasks and threads
-
- * interprocess communications (IPC)
-
- * I/O support and interrupt management
-
- * host and processor set services
-
- Other operating system functions such as file systems, device
- support and traditional programming interfaces are placed into one or
- more server application programs. The enclosed diagram illustrates
- this function split by showing how IBM is using Mach to support an
- experimental low-end version of AIX* for PS/2* and other Intel386* and
- Intel486* based hardware.
-
-
- MACH TECHNOLOGY OVERVIEW
-
- The virtual memory component of the Mach microkernel supports
- large, paged, sparse address spaces that are composed of memory
- objects. Each memory object is managed by a memory pager, a task
- outside the kernel that provides the backing storage for the pages of
- the memory object. Address spaces are manages by mappings or
- allocating memory objects within them. Mach manages memory protection
- and sharing on a memory object basis in an abstract way, independent
- of any particular processor address translation hardware. In
- particular, Mach makes heavy use of copy-on-write to permit programs
- to share memory objects without copying large numbers of pages when a
- new address space accesses the memory object. New copies of the page
- are created only when a program in one of the address spaces updates
- them. When Mach takes a page fault in a memory object and does not
- have the page in memory or when it has to remove pages from memory due
- to the requirements of other programs executing on the machine, it
- notifies the pager for the memory object in which the fault occurs
- using the IPC mechanism. It is then up to the pager, an application
- server, to determine how to provide or to store the data. This
- permits the system to define different semantics for the memory
- objects based on the needs of the programs that use them. The default
- pager shown in the diagram provides a pager for the memory objects
- that do not require anything other than the usual semantics of
- virtual memory. (4)
-
- Mach manages the execution environments for the programs by
- providing multiple tasks and threads. Each Mach task has it's own
- address space, or map. It assigns memory objects that the task has
- mapped to ranges of addresses within the address space. The task is
- also the unit of resource allocation and protection in Mach with tasks
- being assigned capabilities and access rights to the IPC facilities of
- the system. In order to support parallel execution by a program
- within a single address space, Mach separates the execution
- environment from the actual running of streams of instructions. The
- streams of computation including the processor resources needed to
- support them are called threads. Thus, a program can be loaded into a
- Mach task and can be executed in several different places in the code
- at the same time on a multiprocessor or parallel machine. This can
- result in better application performance.
-
- The Mach IPC system provides the basic mechanism that allows
- threads running in different tasks to communicate with each other.
- The IPC system supports the reliable delivery of messages on ports.
- Ports are protected channels between tasks. Each task that uses a
- port is assigned a set of rights to that port. These rights may be
- different for different tasks. Only one task can receive on any port
- although any thread within the task may execute the receive operation.
- One or more tasks may hold rights to send to a port. The kernel
- permits tasks to use the IPC system to transfer port rights among
- themselves. It also provides a high performance way of passing large
- data areas in messages. Rather than copying the data, the message
- contains a pointer to it: this is called a pointer to out-of-line
- data. When the kernel transfers the message from the sender to the
- receiver, it makes the memory being passed disappear form the sender's
- address space and appear in the receiver's address space. One
- interesting aspect of the Mach is that the microkernel itself is
- structured internally as a task with threads, and most of the Mach
- system services are implemented as IPCs to the kernel rather than as
- direct system calls.
-
- In order to support I/O and device access, the microkernel provides
- access to I/O resources such as memory-mapped devices, I/O ports and
- direct memory access (DMA) channels, as well as the ability to reflect
- interrupts to device drivers executing in user space. Mach has
- services that let privileged programs acquire ownership of devices:
- these programs are typically device driver servers running as
- applications as shown in the diagram. Since the microkernel must
- field all interrupts (because interrupts are typically delivered into
- the privileged state of the computer and in order to maintain the
- integrity of the system), it has logic that determines whether it
- should process the interrupt or reflect it to a server. If the
- interrupt is to be reflected to an application, it must have
- registered with the kernel and contain code that waits for the kernel
- to reflect the interrupt. When the interrupt is reflected, a thread
- in the application begins running to process the interrupt.
- (5)
-
- Mach's host and processor set features provide two related sets of
- functions that are needed if application programs are to provide most
- operating system services. The host features return information about
- the processor complex running the system and provide certain system
- management functions such as time, date, and system stop and restart.
- The processor set features are used on multiprocessor machines to
- group processors in classes. These classes permit a parallel
- application to execute multiple threads simultaneously on different
- processors in the same machine so that true parallel execution occurs.
-
- The diagram also shows that Mach carefully splits its
- implementation into code that is completely portable from machine to
- machine and code that is dependent on the particular machine on which
- it is executing. It also segregates the code that depends on devices
- into the device drivers: however, the device driver code, while
- device-dependent, is not necessarily dependent on the processor
- architecture. Using multiple threads per task, Mach provides an
- application environment that permits the use of multiprocessors
- without requiring that any particular machine be a multiprocessor: on
- uniprocessors different threads simply run at different times. All of
- the support needed for multiprocessors is concentrated into the
- relatively small and simple microkernel.
-
-
- OPERATING SYSTEMS AS APPLICATION SERVERS
-
- Sitting immediately on top of the microkernel are a number of
- application servers that provide general purpose system services.
- These programs are called personality-independent servers since they
- depend only on the microkernel and themselves. Among the personality-
- independent servers are the default pager, the hardware resource
- manager that assigns device hardware to device drivers, the master
- server that loads other personality-independent servers into memory,
- the the device drivers and possibly a general purpose file server.
- The microkernel and the personality-independent servers can be
- packaged as a product separate from any operating system.
-
- Using the services of the microkernel and the
- personality-independent servers, the dominant personality provides a
- standard operating system such as AIX. Since the dominant personality
- is an application server, it is possible to have multiple servers for
- different personalities executing programs written to different
- operating systems running on the machine at the same time. However,
- there are some operating system services such as error message
- translation that are not provided in the personality-independent
- servers. Since it is best not to duplicate such services, the dominant
- personality provides them not only to its client applications but also
- to any other personalities running on the machine. For instance, the
- low-end AIX implementation on Mach currently runs as a dominant
- personality and supports an environment for running DOS programs
- as a secondary personality. (6)
-
-
- BENEFITS FOR DEVELOPERS AND USERS
-
- Mach represents enabling technology for system developers rather
- than a revolution for the end user. The modular, scalable, portable
- environment of Mach permits the system developer to create new system
- functions as applications rather than within the kernel. It lets
- hardware developers write device drivers as applications and makes
- porting the system to new platforms a relatively small and very well-
- understood job. But there are some real benefits to the end user.
- The customer now has a choice: applications written to different
- operating systems can execute together on the same machine permitting
- the use of exactly the right set of programs for a particular business
- or organization. Mach reduces the time it takes system developers to
- create new software functions or to use new hardware functions,
- providing the end user with better technology more rapidly than in the
- past. Finally, Mach permits the end user to benefit from the
- emergence of parallel processing and the notions of object-oriented
- programming by providing a system that allows applications to use
- parallelism and that breaks traditional operating systems up into
- modular pieces to which object-oriented implementation techniques can
- be applied.
-
-