3. Systems Software

(Operating Systems)

- Basics of OS and commercial OS platforms -

IE View (requirements): user-friendly, stable, reliable, scalable, and manageable OS

 

Systems Software

Systems software is the class of programs that controls and supports the computer system and its information processing activities. System software programs support application software by directing the basic functions of the computer.

System software can be grouped into three major functional categories:

Operating Systems

The main component of systems software is a program known as the operating system (OS). An operating system is a collection of programs that manage the computers' activities. The main function of the operating system is to control the computer systems' operations and includes monitoring activities and the assignment of system tasks. The operating system supervises the overall operation of a computer, including such tasks as monitoring the computer's status, handling executable program interruptions, and scheduling of operations, which include the controlling of input and output processes. The OS also provides an interface between the user and the hardware itself.

Operating System

Operating systems provide a software platform on top of which other programs, called application programs, can run. The application programs must be written to run on top of a particular operating system. End user interacts with the operating system mainly in two ways:

Operating Systems Functions

The OS performs three major functions in the operation of a computer system: job management, resource management, and data management.

History Of Operating Systems

A variety of operating systems are in use on computers today. Each has its own advantages and disadvantages. The operating system used on most personal computers is called Windows, a product of Microsoft Corp. (www.microsoft.com). Old-style minicomputers and new servers use either vendor-specific proprietary operating systems such as OpenVMS (www.compaq.com) or MPE/X (www.hp.com) or UNIX operating system (HP-UX, Solaris, Tru64UNIX, IRIX, AIX). Mainframes use primarily IBM's operating systems called MVS (Multiple Virtual System - MVS), or its newest version OS/390 (www.ibm.com).

Although operating systems are designed to aid the user in utilizing the resources of the computer, instructions or commands necessary to accomplish this were often quite cryptic. Such commands are hardly intuitive, and fair amount of time is needed to master them.

One of the appeals of the operating system on the Apple's Macintosh computer (www.apple.com) is that, through the use of menus and icons, the system is easy to learn and users can become proficient fairly quickly. This easy-to-use interface was originally developed at Xerox's Palo Alto center and used in their Star line of computers. It was first adopted by Apple in their Lisa microcomputers and later popularized in the Macintosh.

To provide a similar "user-friendly" interface to the user of DOS, Microsoft created a program that "sits on top of" DOS and provides a graphical interface similar to those of Xerox and Apple. It is called Windows; and, although it appears to function like an operating system, it is merely the front-end to DOS. Thus, it accepts inputs from the user by means of mouse or keyboard and then must pass these on to DOS to be executed.

When Microsoft released Windows 3.0 in 1990 and Windows 3.1 in 1992, GUIs (Graphical User Interface) began to replace text-based DOS in the office. Further advances in microprocessor technology in the 1990s allowed PCs and Macs to push the mainframes out of business. Apple began producing fast Power Macintoshes based on PowerPC chip. To complement the new hardware, Apple released new version of MacOS - System 8 and latter on 9, the updated versions of its operating system software which made the Mac even easier to use.

Adding additional software would even let Macs run PC programs. PCs also got blazing pickups in speed with the 80486 and Pentium chips. However, their main drawback in the early '90s may have been Windows, which was laughed at as a cute shell that ran on top of DOS rather than a true operating system. Microsoft answered its critics by releasing Windows 95, an updated version in which Windows and DOS worked together. Windows 95 also offered many powerful file management and communication tools. With the development of Windows NT operating system, DOS is no longer necessary.

PCs and Macs were designed as single-user machines. End-users needed to be able to share data. Novell, Inc. (www.novell.com) solved this problem by introducing Novell NetWare, which could manage a network of PCs and Macintoshes. Microsoft responded with Windows NT Server, which was designed as completely new operating system.

Types of Operating Systems

Single-User and Multi - User Operating Systems. A multi-user operating system allows more than one user to share the same computer system at the same time. It does this by time-slicing the computer processor at regular intervals between the various users.

Single-Tasking and Multi -Tasking Operating Systems. Multi-tasking operating systems permit the use of more than one program to run at once. It does this in the same way as a multi-user system, by rapidly switching the processor between the various programs. Windows 95 is an example of a multi-tasking single-user operating system. UNIX is an example of a multi-tasking multi-user operating system. A multi-user system is also a multi-tasking system. This means that a user can run more than one program at once, using key selection to switch between them.

Network OS. Network is a group of computers that can communicate with each other, share peripherals(such as hard disks and printers), and access remote hosts or other networks. The network operating system (NOS) is such a software that makes computer to do such operations. NOS also provides some sort of security capabilities that control access to those resources: File-services, E-mail, E-mail gateway services, database, communications, archive, print, fax, telephone and video services. There are two basic types of network operating systems: "peer-to-peer" and "client-server". The third type of network OS which is coming fast is JavaOS which represents e new approach in operating systems area.

Operating Systems - Basic Concepts

Multitasking and Scheduling

Computers with a single processor never really do more than one thing at a time, but they're fast enough that they can be made to appear to do many things at once. Multitasking is basically: the ability to run multiple programs--or tasks--"at the same time." When you think about it, building this illusion and making it seamless to the user is quite complicated. Consider that the microprocessor and the memory in the system must be constantly doing small pieces of work for all the running applications, each with its own set of data, hardware requirements, and so forth. Coordinating these activities reliably is immensely complicated.

All multitasking operating systems divide the processor’s time into units called time slices. A time slice is the smallest unit of time that can be allocated to a program. Under Windows 98, a time slice lasts only about twenty milliseconds (depending on the processor speed and its architecture). Depending on the needs of the applications and the system, an application may be allocated one time slice or many time slices before another task gets to use the processor. Determining which tasks get which time slices, and how they arrange their activity, is called scheduling.

There are two main ways of building a multitasking system: cooperative multitasking and preemptive multitasking. A cooperative multitasking system relies on all the tasks running on the system to cooperate in sharing the processor. The system trusts each application to use the processor and then give it up voluntarily when the application has completed some atomic process. Then the next application does the same thing. All the running applications continue to do this in a round-robin fashion: Imagine all the applications in a circle, each one passing the ball (that is, the processor) to the next application, around and around. In most cooperative multitasking schemes, there are both explicit and implicit yields. A yield is the process through which an application signals to the operating system that it’s okay for the next application to commence work. An explicit yield is when an application literally sends a signal to the operating system saying, "I’m through for a moment, so you can give the next program a turn." Programmers of software running under a cooperative multitasking system issue explicit yield commands in their programs to do this.

An implicit yield is when the application performs some operation that implies that the operating system is free to let another application do some work while the first application’s operation completes. An example of an implicit yield under Windows 3.1 is when an application makes a request of the operating system to retrieve some data from a hard disk. The operating system receives the request and sends the request to the hard disk interface card to process. While the hard disk controller and the disk itself are busy retrieving the data (this may take several seconds), the operating system can let other applications do some work on the processor until the hard disk interface signals that it’s ready to provide the requested data through a signal on one of the processor’s interrupt request lines (IRQs). The requesting application doesn’t have to explicitly signal a yield in this case; the yield is assumed with certain operations.

Cooperative multitasking operating systems are the easiest kind to build (although they are still much more complicated than single-tasking operating systems). However, there are many problems with cooperative multitasking systems. The chief problem is that most software programs have a tendency to "hog" the system and aren’t well written in terms of being truly cooperative. (In other words, they don’t play well together). In addition, if an application crashes while it owns the processor, there may not be any way for the operating system to detect that occurrence and terminate the offending application gracefully—resulting in a hung computer. If you are running many applications, all presumably having important data, failures like this can cost much more in productivity than the multitasking features added to begin with.

In addition to the risk of crashing the system, many programs running under a cooperative scheme are almost guaranteed to not cooperate consistently, so you almost always end up with "jerky" behavior from the system.

A preemptive multitasking system is very different in concept from a cooperative system. A preemptive system keeps control of the processor and can preempt a program that’s using the processor at any time (thus the name). In a preemptive scheme, programs don’t have to worry about yielding the processor to other programs; the operating system takes care of all those details and can more fairly and reliably apportion the finite resources of the system to all the programs using the system. In a preemptive scheme, a single program cannot "hog" the system, whether it wants to or not, or whether it’s well written or badly written. Although a badly written application can make excessive demands of the system, the operating system ensures that all running programs get a fair chance to use the system resources. The user is left with the impression of a much more smoothly multitasking system, and is generally more productive using such a system.

The concept of privileged rings in microprocessors

The Intel processor's architecture supports a concept called privilege rings. A privilege ring is really just a way of sorting all the memory of the system in a useful way. Intel processors allow up to four different privilege rings (Rings 0 through 3), but only two are implemented by Windows 98 and Windows NT: Ring 0 and Ring 3.

Different programs run at different privilege rings. The operating system and processor know at which ring each program runs and restrict its access to memory based on that ring. Programs running at Ring 0 have unrestricted access to all the memory of the system; programs running at Ring 3 have restricted access to memory. A program running at Ring 0 can access any memory, including memory "owned" by any processes at any other rings. Programs running at Ring 3 can access only their own memory. This scheme is enforced by the processor hardware of the computer and is supported by the operating system.

It is desirable to restrict the software running at Ring 0 to only the most trusted areas of the operating system, which require Ring 0 access to do their work. Everything else--including application programs and parts of the operating system that don't require Ring 0 access--should run at Ring 3. The Windows 98 kernel (the core of the operating system) runs at Ring 0, as do various performance-sensitive components such as video drivers. Programs running at Ring 0 operate much more quickly than those running at Ring 3 because there is no memory protection mechanism slowing down their ability to access system memory.

An Overview Of Major Operating System Components And Functions

The Process Management Component

The concept of the process is central to OS design. The process is an abstraction developed by OS designers as a convenient way of monitoring and controlling the concurrent execution of multiple programs. Each process represents a single instance of a program as it executes, which implies that it is dynamic. For example, one component of a process is the set of processor registers which hold information about the current state. This information changes as the process runs. In contrast, a program is static. It consists of code and predefined global data. Processes are not the same as programs; one program may result in many concurrent processes (and one process can execute more than one program, although this is usually sequential rather than concurrent). Process management functions of the OS include creating and deleting processes, providing mechanisms for synchronization and communication between processes, and providing mechanisms for process protection.

Main Memory Management

Memory management functions include algorithms to allocate/deallocate memory for processes and to manage free space. Memory protection is also critical. Base and limit registers (mentioned earlier), virtual memory data structures, and other techniques have been used for protection. The fundamental issue is to be sure that no process is allowed to read or write the memory locations allocated to any other process.

File Management

The file management subsystem provides users long term storage of programs and data. It gives an abstract view of secondary storage as a collection of named objects (files). This lets users deal with files instead of having to worry about device-specific details, and it gives the operating system a convenient way to protect programs and data. File system functions include providing commands to create and manipulate files and directories, file protection mechanisms, file buffering, etc.

Secondary Storage Management

Program files, data files, various system programs are stored on disk until they are needed. The operating system needs algorithms to allocate disk space and to manage free space. Disk scheduling is also important. In multiprogrammed systems several processes execute concurrently, so there may be several pending disk requests at a given time.

I/O subsystem Management

The I/O subsystem deals with the interface between main memory and the external storage devices. The operating system is responsible for maintaining buffers (temporary storage areas) in main memory. It also contains a collection of device drivers: OS modules that communicate directly with I/O devices. There are separate drivers for each category of device. Device specific details are handled by the drivers; upper levels of the OS see a uniform device-driver interface. File, I/O, and secondary storage management are interrelated.

Other System Responsibilities include:

Protection: mechanisms for regulating access to system resources.

Networking: mechanisms for sending and receiving messages.

Command Interpreter or the interface between user and operating system

For a more detailed description of OS components see courseware at:

http://www.cs.uah.edu/~weisskop/notes.html

Contemporary Operating Systems

As almost all contemporary operating systems support multitasking capabilities, but not all of them are multi-user operating systems, we will adopt the approach which divides all operating systems into two main groups: desktop operating systems (multitasking, but single user OS) and server operating systems (multitasking, multi-user operating systems). All contemporary operating systems can be broken into two main groups:

  1. Desktop operating systems
  2. Server operating systems

In the sections that follow, these two classes are shortly explained with an emphasis on two main OS products that are most widely used today: Windows 98 as a desktop version and Windows NT Server as a server OS platform.

A) Desktop Operating Systems

1. Microsoft Windows (www.microsoft.com/windows)

The Windows 98 operating system, like Windows 95 before it, provides a complete 32-bit base system that includes a Virtual Machine Manager (VMM), an Installable File System Manager, configuration management for Plug and Play, and other necessary system services (see the diagram "Windows 98 System Architecture"). The VMM creates and manages a single virtual machine (VM) that contains all Win32 applications (and the Win32 subsystem) as well as additional VMs for DOS applications that require exclusive access to machine resources. The VMM includes a Windows NT-compatible scheduler and provides support for preemptive multithreading of Win32 processes, each in its own private address space (which is accomplished through paging). The base system also manages the dynamic, shrinkable swap file as well as the loading and unloading of device drivers and network protocols on an as-needed basis.

In all 32-bit Microsoft operating systems (Windows 9x, Windows NT, and Windows CE) a process is an instance of an application with at least one running thread. Each process has its own 4GB address space, which contains the executable and any DLL code as well as any global and static data. Each process also owns its files, memory allocations, and threads. When a process terminates, any remaining threads in the process terminate, all of its user and GDI objects are freed, and all of its kernel objects are closed.

A thread is a single path of execution within a process. Each thread has a set of CPU registers, has its own stack in the process’s address space, and executes code contained in that process’s address space. When a thread terminates, all of the user (window and hooks) objects it owns are freed. When the last remaining thread in a process terminates, the process itself is terminated.

Windows 98 Architecture

A number of different components make up the architecture of Windows 98. The following sections discuss each component and how it fits into the overall scheme.

 

Windows 98 Architecture

Device Drivers

Interacting directly with the computer's hardware, device drivers are software entities customized to work with each different possible hardware device. Device drivers exist for different video cards, different hard disk subsystems, different communication and printer ports, different modems and printers, and so forth. Device drivers are customized for the hardware components with which they interact. For example, a device driver that knows how to talk to a SCSI hard disk is different from a driver that knows how to talk to an EIDE-based hard disk. Because device drivers interact directly with the hardware with which they communicate and serve as the ultimate interface between the hardware and the rest of the system, they are thought to be at the lowest possible level of the system's architecture.

Windows 98 makes use of a universal driver/minidriver design that makes individual device drivers simpler and more robust. For example, there is a universal modem driver (called UNIMODEM.DRV) that knows how to talk to all modems that use an AT command set. Working in concert with the universal driver is a minidriver that knows how a particular model of modem behaves. This duality reduces the complexity of developing individual modem minidrivers because the universal driver already has most of the logic required for devices of that general type.

New to Windows 98 is a Unified Device Driver model; in this model, drivers for Windows NT and Windows 98 can be the same. By adding certain simulated Windows NT kernel services to a DLL running in Windows 98, vendors can now develop single drivers for both operating system targets.

Many device drivers in the system are called virtual device drivers (VxDs), which are each assigned to a particular piece of hardware in the system. The x in VxD refers to the actual type of device driver: A printer driver is a VPD, a display driver is a VDD, and so forth. The actual virtual device driver files in Windows 98 all have a .VXD extension.

Above device drivers in the architecture of Windows 98 components are three system components:

Configuration Manager

Configuration Manager is the system component that handles Plug and Play devices (and functionality) on the system. Configuration Manager is responsible for coordinating all the IRQs, DMA ports, I/O port addresses, and other system resources for all the installed devices. Configuration Manager ensures that no device uses the resources needed by other devices; when there is a conflict, Configuration Manager has the power to change the settings for a device to avoid conflict.

Virtual Machine Manager

The second operating system component above device drivers (that is, the second component that can talk directly to device drivers), the Virtual Machine Manager is responsible for virtualizing access to all the devices in the computer. Virtual machines are emulated, complete computers that exist in memory. For different purposes, different virtual machines are created as needed.

All of Windows 98 itself and any Windows-based applications run within one virtual machine, called the System Virtual Machine. Each MS-DOS application running on the system gets its own private virtual machine. Separate virtual machines are required for MS-DOS applications because most MS-DOS applications--being written for a single-tasking operating system--are written as if they own the complete computer. They make direct hardware calls, manipulate hardware directly, and so forth. Because this behavior can't be tolerated in a multitasking operating system in which other applications have to run, each MS-DOS application gets its own virtual machine, which emulates the hardware devices in the computer and prevents the MS-DOS application from monopolizing those devices. (The DOS programs just think they're monopolizing the devices!)

The Virtual Machine Manager (VMM) is also responsible for process scheduling, virtual memory management, and of course MS-DOS support. The VMM is an essential part of the system and plays a crucial role in the operation of Windows 98.

Through the efforts of the VMM, Windows 98 supports both preemptive and cooperative multitasking. All Win32 applications are preemptively multitasked with respect to one another and to the system itself. All MS-DOS applications are also preemptively multitasked with respect to one another and to the system itself. Win16 applications developed for Windows 3.1, however, are all cooperatively multitasked with respect to each other (because Windows 3.1 only supported cooperative multitasking for Windows applications developed for Windows 3.1--known as Win16 applications).

Another service provided by the VMM is virtual memory management. Under Windows 98, each process can access up to 2G of logical memory addresses. The upper 2G of logical memory addresses (within the total 4G limit) is reserved for shared code and for the operating system itself.

Installable File System Manager

The Installable File System Manager (IFSM) manages the installable file systems in Windows 98. An Installable File System (IFS) is a sort of driver that provides file system services to the operating system. Different IFSs provide access to FAT16, FAT32, CD-ROM, and network file systems. Because the Windows 98 system uses file systems that are installable, support for other file systems is possible: The file system support must merely be developed, and then it can be easily installed into Windows 98 to add support for that file system. For example, when the FAT32 file system was developed and deployed for Windows 95 OSR2, the operating system didn't have to be changed; support for the new file system was added using the Installable File System Manager.

Installable File Systems run at Ring 0 privilege level, giving them greater speed. They also use full 32-bit paths for moving data between the operating system and the file system, also adding to their performance.

The Core Components

Above the device drivers and the three next-level components sit the Windows 98 core components. The so-called core components include:

The User component handles all input from the user and outputs messages to the system's user interface; it also handles the sound drivers and communication ports. The User component manages the messages within the system. A message is an event that occurs when a user minimizes or closes a window, presses a key on the keyboard, or moves or uses the mouse. Messages are routed by the User component to the appropriate input queue for the window from which they were sent. Input queues accumulate messages for their applications until the applications process the messages and remove them from the queues.

The Kernel core component handles the most basic operating system functions such as loading and unloading programs, handling exceptions, and allocating virtual memory.

The final core component is the Graphical Device Interface, called the GDI. The GDI is responsible for all display output, drawing of bitmaps and graphic primitives, and interacting with the display device drivers on the system. The GDI component also provides support to the printing subsystem, which handles printed output from the system.

The Shell

The final Windows 98 architecture component from Figure x is the shell, a 32-bit application that handles the Windows 98 desktop and Explorer. The shell runs in its own thread, which can be restarted in the event of an error in the shell. Although it runs at the same level as applications in the system, the shell also provides services to those other applications. For example, the shell provides the various Windows 98 user-interface components the applications may use, such as button support, drop-down list boxes, checkboxes, File Open dialog boxes, and so on.

Application Support provided by an operating system

An operating system is nothing without applications that can run on it. Any operating system must provide rich support for the widest possible range of applications, which are the actual tools people use to accomplish work with their computers. The design requirements for the Windows 95 and 98 family were stringent and difficult to meet: Windows 95 and 98 must support legacy MS-DOS and Win16 applications and also provide a foundation for a new class of more powerful 32-bit applications that use the Win32 Applications Programming Interface. The following sections explain how Windows 98 supports these different application types.

The Concept of APIs (Application Programming Interfaces)

Windows 98 supports three different application types: Win32, Win16, and MS-DOS. When Windows NT 3.1 was developed, a new Applications Programming Interface (API) called Win32 was introduced. The Win32 API is a full 32-bit API that supports modern application features and takes advantage of advanced operating system services. Initially, Win32 was limited to Windows NT. Microsoft later introduced a limited API called Win32s, which was designed for 32-bit application support under Windows 3.1 (with the appropriate services installed), and ultimately for Windows 95 and 98.

Win32 applications are the native type of application supported by Windows 98. An application written for Windows 98 using Win32 also takes advantage of all the features of Windows 98, is fully preemptive, can use multiple threads, and so forth. Win32 applications are therefore much more powerful than their Win16 predecessors.

Each Win32 application under Windows 98 runs in its own private, protected memory space, in which its memory is protected from other applications running on the system. Win32 applications can take advantage of long filenames and threads and receive other advantages from the operating system. Generally, Win32 applications are also faster than Win16 applications, all else being equal.

All Win16 applications running under Windows 98 share a single virtual machine, in which they cooperatively multitask with respect to one another. The virtual machine they share, however, is preemptively multitasked with respect to the rest of the system.

OLE Support

Integral to Win32 and Win16 applications is their support for a system service called Object Linking and Embedding - OLE. OLE is a technology that lets Windows applications share their data with one another, managed by the user. The biggest reason to support OLE within an application is so that entities called compound documents can be created and used by the application. A compound document is one that incorporates document objects from other applications installed on the system. For example, Word can incorporate Excel objects (such as cell ranges, charts, or entire worksheets) into a Word document and can also incorporate PowerPoint objects (such as individual slides or drawing objects). OLE allows you to build documents that incorporate the features of all the OLE applications installed on a system, seamlessly and easily.

Windows NT Workstation has been developed as a desktop OS which is using Windows NT technology. It emerged shortly after the Windows NT Server 4.0 was released. This operating system is designed for serious power users and desktop workstations, where users demand high reliability, preemptive multitasking of programs and support for OpenGL graphics applications. It can be used as a server in a workgroup, where the number of clients it supports is 10 or less. Windows NT Workstation has the same user interface as Windows95.

With all that Windows 9x and Windows NT have in common, there are a number of important differences.

The most obvious difference involves the hardware platform itself: Windows 9x is limited to running on a single processor under the Intel x86 architecture, whereas Windows NT scales much better and supports symmetric multiprocessing on both Intel x86 and Digital (Compaq) Alpha processors. Another difference is Windows 9x has very limited server support. For instance, Windows 9x does not support Windows NT services (or its Service Control Manager) or server-side named pipes. Windows 9x also doesn’t do event logging. Even the file systems are incompatible—Windows NT uses NTFS, and Windows 9x uses FAT32.

Another important difference is that Windows 98 is not as secure as Windows NT, nor could it ever be. In Windows NT, except for device drivers, access to system resources must go through the Win32 API, which includes security and access parameters that are ignored on Windows 9x. That includes all resources, from the file system (NTFS can be secured, FAT32 cannot) to the registry (not only can the Windows NT registry be secured, but entries within it can be encrypted) to objects in the system executive. Windows NT was also designed from the beginning for international distribution and thus supports the common Unicode standard throughout.

The one big advantage that Windows 98 has today is clearly in device support. With everything from image color matching to advanced modem control, Windows 98 is compatible with a much wider range of consumer-oriented hardware and software. In the same time, device support is considered as a main disadvantage of Windows NT Workstation.


Windows 2000 Professional is a desktop OS which represents a combination of Windows 98 and Windows NT Workstation. The best features of Windows 98 - Plug and Play, easy-to-use user interface, and power management, plus the strengths of Windows NT technology: standards-based security, manageability and reliability.

Windows Millennium Edition is loaded with features designed specifically for home users. You'll have the power to manage digital photos and music, work with video, create a home network, and communicate with friends and relatives around the world. A wealth of wizards, tutorials, and a redesigned Help Center make using your computer easy, and built-in system safeguards keep things running smoothly.

Windows CE is a compact, modular operating system that combines the flexibility and reliability of Windows with real-time processing support. Windows CE powers a wide range of purpose-specific devices, such as portable point of sale (POS) terminals, cameras, and hand-held PCs.

For a detailed description of different versions of Windows OS see at Microsoft's official site"

http://www.microsoft.com/windows/

2. Mac OS (www.apple.com)

MacOS was the first OS to use a GUI (1984). For over 10 years, the Mac had been a proprietary system only used with computers made by Apple.

Mac OS (current version is MacOS 9) is probably the easiest to use of any operating system around. The Mac's GUI makes file manipulation intuitive. The Mac recognizes when devices are attached to its ports, and knows when a floppy disk has been put into is drive. It stops short of full multitasking, but multiple applications can be open at once, with one in the foreground (the front window) and the others in the background.

The Mac OS operating system implements cooperative multitasking between applications. The Process Manager can keep track of the actions of several applications. However, each application must voluntarily yield its processor time in order for another application to gain it. An application does so by calling WaitNextEvent , which cedes control of the processor until an event occurs that requires the application's attention.

Every Macintosh computer comes with built-in network support. This support is activated by enabling AppleTalk from the Chooser, which is also the device used for selecting Macintosh file and print services. The network driver to be used is selected through the Network Control Panel. The driver selected in this interface will influence the way that all higher lever drivers.

Macintosh computers use a protocol known as AppleTalk. This protocol is usually implemented either as LocalTalk, EtherTalk or TokenTalk.

GUI Characteristics of Windows and MacOS

As we pointed out in the beginning, end users interact with the operating system by using either a set of text-based commands, or through a graphical user interface (GUI). GUI-based operating systems, such as Microsoft Windows and Apple MacOS feature the following basic components:

The first graphical user interface was designed by Xerox Corporation's Palo Alto Research Center in the 1970s, but it was not until the 1980s and the emergence of the Apple Macintosh that graphical user interfaces became popular. One reason for their slow acceptance was the fact that they require considerable CPU power and a high-quality monitor, which until recently were prohibitively expensive.

Contemporary operating systems use a graphical user interface. This type of interface is usually controlled by a mouse. Applications have icons associated with them; double-clicking on an icon starts its application. Other operations are intuitive as well, such as dragging a file's icon to a trash can or recycle bin to delete it. For this reason, users can understand GUI operating systems much faster that text-based ones.

In the section that follows we give some major characteristics of Microsoft Windows and Apple MacOS operating systems from GUI perspective. The main reason of providing these pictures is to illustrate that their user interfaces are very similar.

1. Using the concept of Windows

2. Icons in representing computer resources

3. Using shortcuts (aliases) in providing a more efficient access to resources

4. Folders in representing directory structures

5. Program and document files

6. Start Menu

7. Task bar

8. Systems Folders

9. Control Panels - Settings Programs

 

Windows - MacOS: Examples of a Control Panel Setting - Setting of the TCP/IP Protocol

Network Settings

TCP/IP Settings - Windows 98

TCP/IP Settings - MacOS

Network Environment - Windows 98 and MacOS 

3. IBM OS/2 Warp (www.ibm.com)

 

IBM’s desktop operating system for the personal computer is OS/2, a sophisticated multitasking system that rivals Windows 95/98 in terms of capability and performance. It is used mostly on IBM's personal computers. The most recent versions of OS/2 have been called OS/2 Warp.

Since its introduction in the late 80s, OS/2 has traveled a particularly rocky road. The first releases were hampered by a number of technical and marketing problems. Then Microsoft abandoned the project in favor of its own operating system solution, WINDOWS.

OS/2 Warp (current version is 4) combined with OS/2 Warp Server provides a full range of functions for the enterprise, small and medium businesses. OS/2 Warp Server provides an application server foundation with integrated file and print sharing, backup and recovery connections systems management, advanced printing, and Internet access. OS/2 has also integrated one of the best TCP/IP stacks available.

4. Linux (www.linux.org)

Linux is a UNIX®-like operating system created in the early nineties by Linus Torvalds with the assistance of numerous developers around the world. Linux is publicly available for download on the Internet at no cost and the source code is open to developers. The term "Linux" refers technically only to the kernel or core operating system, but has come to describe the complete operating system and suite of applications. Linux strives for POSIX compliancy (a set of standards defining a UNIX) to stay compatible with other UNIX-like operating systems.

Linux is known for its stability and encompasses all of the features one would expect from an operating system, including virtual memory, true multitasking, incredibly fast TCP/IP networking, shared libraries, and multi-user capabilities enabling hundreds of people to use one computer simultaneously. Originally developed for the home PC, Linux can now be run on a wide array of platforms including Macintosh®, PowerPC, Amiga and many others. Today, the operating system boasts over 10 million users worldwide and is still growing as programmers and general enthusiasts exchange ideas and contribute code to further develop the open source software known as Linux.

Today, many Linux versions are available. Most widely used are: Corel LINUX (www.corel.com), Debian (www.debian.org), SuSE (www.suse.com), Red Hat (www.redhat.com), Caldera OpenLinux (www.caldera.com).

Linux also uses GUI interface. It is very similar to Windows' GUI. An example which illustrates Corel LINUX's desktop is given below.

Corel LINUX Interface

Linux is here presented as a desktop operating system because of its enormous expansion in that area over the last couple of years. However, it can be used as a server OS as well. More and more companies are considering Linux for their application platforms. On the other side, almost all major IT vendors in enterprise servers arena (Compaq, IBM, HP) have their products in combination with Linux operating system. Recently, IBM has unveiled the availability of Linux on its mainframe computers.

5. BeOS (www.be.com)

BeOS is an operating system that is designed primarily for the multimedia applications. Be founder Jean-Louis Gassée left Apple Computer in 1990 to create a operating system that could exploit new architectural ideas and be free of the baggage that older operating systems invariably bring with them. The first BeOS was used in a computer called the BeBox, since abandoned so the company could concentrate on the software. In 1996, BeOS had Apple's Macintosh users in mind when it ported the system to the PowerPC microprocessor. More recently, BeOS has been ported to Intel's Pentium computers. It can be installed in the same computer with another operating system such as Windows or Mac OS and used as an alternative operating system for applications requiring fast handling of streaming video, games, and other multimedia applications.

BeOS comes with a desktop user interface that improves in some ways on both Windows and the Mac and a built-in Web browser, audio, MIDI, and its own 3D interface as well as support for OpenGL. Other features include anti-aliased fonts, Unicode, and support for POSIX utilities and shell commands.

BeOS Interface

B) Server Operating Systems

Server operating systems can be classified into three main groups:

Intel-based operating systems

1. Windows NT

Overview of Windows NT technology

Windows NT is Microsoft's new technology in operating systems area which was developed in 5-6 years, starting from 1988. when Microsoft hired David Cutler from Digital, the developer of Digital's VMS operating system. The NT stands for "new technology" and the first version of NT Server (3.1) was released in 1993. Microsoft has positioned Windows NT as the operating system for the business, whereas Windows 95 is the operating system of the home. Windows NT operating system is written "from scratch" without any link to DOS and Windows 3.1.

Windows NT is a 32-bit, preemptive multitasking, multithreading operating system. Windows NT's multitasking support generally means that you can do more than one thing at once. Preemptive means that operating system can at any point preempt any application from using processor. Preemptive feature of Windows NT operating system keeps control of the processor and can preempt a program that’s using the processor at any time. Multithreading means that some of the applications you run in Windows NT can do more than one task at once, such as performing complex calculations while letting you input more data.

Windows NT comes in two versions:

Windows NT Server is designed to be used as a server operating system which will support mission-critical applications in small to mid-sized companies.

NT Workstation is designed for mission-critical stand-alone desktop computing operations and client operations in a client/server environment.

With version 4.0, released in 1996, Windows NT features the now-familiar Windows 95 user interface.

Windows NT Server can be considered either as a network operating system or server OS. As the leader in desktop operating systems, Microsoft has brought its knowledge to the NOS industry with window NT Server. Windows NT boasts 32-bit operations, built-in networking capabilities and intrinsic security features making it a serious contender in business and government environments. It provides a variety of features including preemptive multitasking, multithreading, multiprocessor support, operating platform portability, networking, POSIX support, improved security and data protection. What is more, Windows NT server includes a complete NetWare redirect that makes it easy to use Novell NetWare file and print servers. In addition, Microsoft has completely rewritten its TCP/IP protocol transport to improve performance and reduce the hands-on management usually required to use TCP/IP

Windows NT Server is designed for robust scalable networks based on domains. Where servers are required to handle more than 10 clients, NT Server is the best choice of operating system. It has been especially optimized to give good performance as an application server, and has additional tools to ease network administration problems. With built-in support for communications and Internet services, Windows NT Server is the only network operating system that includes Internet and Intranet capabilities. It uses the same user interface as Windows95/98.

Windows NT Server and BackOffice Suite

Windows NT Server system can be used as a file server, print server, application server, or Web server. Although Windows NT Server can also be an application server, it does not come packaged with any applications. Because Microsoft intended Windows NT Server to be a commercial, enterprise-oriented solution, it developed additional products to augment the capabilities of Windows NT Server and foster application development and deployment on Windows NT Server. These products were then bundled to create the BackOffice suite of products (Figure x).

 

Back Office Components

 

The original BackOffice suite (version 1.0) was a focused set of server-based programs designed to deliver classic IS functions:

With the advances in Internet technologies, Microsoft has decided to include them into BackOffice as much as possible. Consequently, Internet Information server (IIS), a program which allows NT server to act as a Web server, was added along with the version 4.0. The present BackOffice suite includes:

Architecture of Windwos NT Server

In order to understand how and why Windows NT works, it is important to take a look at the different pieces of the operating system and how they interact. Now that we understand a little about the premises behind NT, let's delve a little deeper. Figure 2.4 shows the major layers of Windows NT and their logical relationships. The four major pieces of the NT architecture follow:

 

Windows NT Server Components

Hardware Abstraction Layer

The Hardware Abstraction Layer (HAL) is a software interface between the hardware and the rest of the operating system. The HAL is implemented as a dynamically-linked library (DLL) and is responsible for shielding the rest of NT from hardware specifics such as interrupt controllers and I/O interfaces. This abstraction makes NT more portable because the rest of the operating system does not care what physical platform it is running on. Each hardware platform that NT runs on requires a specialized HAL. The design intent is that when NT is ported to a new processor architecture, the HAL gets rewritten for the new processor, but the rest of NT can simply be recompiled, thus making NT extremely portable. The HAL also provides the interface for symmetric multiprocessing (SMP). NT Server ships with two HALs for each processor architecture (Intel, MIPS, PowerPC, and Alpha). The first HAL is used for supporting a single processor, while the second HAL supports up to four processors. Additional HALs are available from hardware vendors and can provide support for up to 32 processors on NT Server.

Kernel

The kernel is ultimately responsible for all actions on the system and almost all functions on the system pass through the kernel. Windows NT uses a microkernel, which essentially means that the kernel was pared down to the basics necessary to function. This microkernel design in Windows NT assigns many of the functions normally assigned to the kernel in traditional operating systems to a group of programs called the NT Executive. The NT Executive, of which the NT microkernel is a part, runs in the processor’s privileged kernel mode. The NT microkernel communicates with the NT Executive through a set of low-level operating system primitives. The major role of the kernel in Windows NT is to dispatch and schedule threads. A thread is a code segment belonging to a particular process. Each thread is assigned a priority number from 0 to 31. The kernel dispatches threads to run on available processors based on their priority numbers. The kernel then allows the threads to execute for a particular amount of time before preempting them and allowing another process to run.

On a multiprocessor system, a copy of the kernel actually runs on each processor. These kernel segments are used to maintain coherency of shared system resources that need to be accessed by threads running on all processors.

The kernel is also responsible for handling system interrupts from physical devices such as I/O devices, processor clocks, or timers. Normally, when there is a system interrupt, the kernel will preempt a running thread to process the interrupt.

The final use of the kernel in Windows NT is to provide support for power failure recovery. If the NT system is equipped with an intelligent uninterruptable power supply (UPS), the kernel is notified when a power failure is detected. The kernel then coordinates an orderly shutdown of the system, which includes notifying I/O devices of the power failure and allowing them to reset accordingly.

The NT Executive

NT Executive provides the operating system fundamentals that can be provided to all other applications running on the system. This includes services such as object management, virtual memory management, I/O management, and process management. NT kernel is actually part of the NT Executive. The NT Executive runs exclusively in kernel mode and is called by the protected environment subsystems when they need services. Because of the hierarchy of Windows NT, user applications do not call pieces of the NT Executive directly, but rather request services from the environment subsystems, such as the Win32 and POSIX subsystems, which then in turn call the NT Executive components.

Aside from the kernel itself, the major pieces of the NT Executive are as follows:

The Object Manager piece of the NT Executive is used to create, modify, and delete objects used by all the systems that make up the NT Executive. Objects are abstract data types that are used to represent operating system resources. It also provides information on the status of objects to the rest of the operating system. The Object Manager also makes sure an object does not consume too many resources (usually system memory) by maintaining quotas for different object types. In addition, the Object Manager is responsible for cleaning up orphaned objects that seem to have no owner. This is known as garbage collection. Lack of a similar facility in Windows 3.x was a major cause of trouble. In Windows 3.x, if a program crashed, or if it didn't handle system resources properly, the system resources it consumed would not be properly returned to the available system pool, resulting in an error message about the lack of system resources. In effect, this was a memory leak.

The Process Manager is responsible for creating, removing, and modifying the states of all processes and threads. It also provides information on the status of processes and threads to the rest of the system. The Process Manager, like all members of the NT Executive, plays a vital role in the operation of the entire system. When an application is started, it is created as a process, which requires a call to the Process Manager.

Virtual Memory Manager

The Virtual Memory Manager (VMM) provides management of the system's virtual memory pool. Virtual memory is a scheme that allows disk resources to be used instead of physical system memory by moving pages out to disk when they are not in use and retrieving them when they are needed. This is an integral piece of Windows NT, which allocates a 32-bit address space to each process regardless of the actual amount of physical memory in the system.

Each process is allocated a 4GB virtual memory space. Of this space, the upper two gigabytes is reserved for system use, while the lower 2GB is for the process's use. The process addresses memory as if it was the only thing around. The Virtual Memory Manger is responsible for translating the process's memory addresses into actual system memory addresses. If the process's memory address refers to a piece of memory that has been paged to disk, the VMM retrieves the page from disk.

Local Procedure Call Facility

The Local Procedure Call (LPC) Facility is integral to the client/server design of Windows NT. It is the interface between all client and server processes running on a local Windows NT system.

Security Reference Monitor

The Security Reference Monitor (SRM) is the bedrock of the all security on a Windows NT system and is responsible for enforcing all security policies on the local computer. It does this by working together with the logon process and local security authority runtime subsystems. When a user logs onto the Windows NT system and his or her credentials are verified, the logon process subsystem requests a security access token (SAT) for the user. The SAT contains a list of the user's privileges and group memberships. This is used as a key for that user during this logon session. Whenever the user wants to do something, the SAT is presented and used to determine if the user can perform that actions.

I/O Manager

The I/O Manager is responsible for coordinating and processing all system input and output. It oversees the device drivers, installable file systems, network redirectors and the system cache. The I/O Manager takes care of the black magic that is often necessary to make various devices talk to each other and live together in piece. It removes the traditional monolithic method of designing I/O drivers and presents a layered approach that supports mix and matching of component as necessary.

Protected Environment Subsystems

Two of the design goals of Windows NT were personality and compatibility. These are both achieved through the protected environment subsystems. Personality essentially means that Windows NT exposes multiple sets of application programming interfaces (APIs) and can effectively act as if it were a different operating system. Windows NT comes with a POSIX and OS/2 personality in addition to its Win32, Win16, and DOS personalities. Although multiple personalities in people is considered a bad thing, in operating systems it provides an effective way for the system to maintain compatibility. Windows NT would not have been such a success if it had been completely unable to run any existing DOS and Windows software.

In Windows NT, there are three protected environment subsystems:

Although Win16 and DOS personalities are included in a list of protected environment subsystems, they are actually both part of the Win32 subsystem.

Win32 is the native and primary subsystem for Windows NT. The basis for this subsystem is the Win32 set of APIs, which were written during the development of the NT product. Many of these APIs are direct extensions of their Win16 counterparts. In the client/server model we discussed previously, the Win32 subsystem acts as a server for all the other environment subsystems supported on Windows NT. The other environment subsystems act as clients and translate their API calls into the appropriate Win32 APIs, which get serviced by the Win32 subsystem. The Win32 subsystem is responsible for all user input and output. It owns the display, keyboard, and mouse. When other subsystems, such as OS/2 or POSIX, need to take advantage of these devices, they request the services from the Win32 subsystem.

When originally designing the Win32 subsystem, NT's creators tried to make its overall functioning as close as possible to Windows 3.x. This resulted in a design with five major pieces: the window manager (often called USER), the graphics device interface (GDI), the console, operating system functions, and Win32 graphics device drivers. However, in Windows NT 4.0 the organization of the Win32 subsystem has changed. You'll notice in the preceding figure that the graphics device interface (GDI) and window manager (USER) are included inside the Win32 subsystem.

Interoperability Components

The core file, print, and application sharing functions provided by Windows NT Server were designed to accommodate Microsoft clients (such as DOS, Windows, Windows for Workgroups, Windows 95, and Windows NT Workstation). The base operating system does, however, include components to facilitate connectivity to other types of systems. These components are:

NT Server also supports an additional priced Microsoft product for NetWare connectivity--NetWare File and Print Services. This product enables an NT Server system to appear as a Novell NetWare server to NetWare clients.

No formal, designated components are included to support UNIX or IBM mainframe-AS/400 interoperability--there are no "Services for UNIX" or "Gateway for IBM" services from which to choose. Instead, support for UNIX and IBM connectivity is provided through ancillary services and utilities:

 

The Windows 2000 Server family comes in three versions to meet different business needs.

For more on the differences in the Windows 2000 Server family, see the table below:

Windows 2000 Server Family

 

2. Novell NetWare (www.novell.com)

 

Novell NetWare is a network operating system that runs on an IBM PC or compatible computers. NetWare enables that computer to control the operation of a type of local area network and share its resources with other computers. Novell is based on the concept of dedicated file and print servers. Each server has its own accounts database, and assigns resources on that server to clients who access the network. Client computers, running usually Windows 3.1/3.11 or Windows95/98, login to a server using an account and password. Resources on that server are protected via permission rights, which define what the user is permitted to do. Typical permissions are read, write, execute, delete, and modify. If a user wishes to access a resource on a different server, they must have an account on that server. The current version is NetWare 5.0, while the previous versions like NetWare 4.1, NetWare 3.11 and 3.12 are also still in use.

 

3. IBM OS/2 Warp Server (www.ibm.com)

 

 

OS/2 Warp Server is IBM's server operating system which rivals Windows NT Server and Novell NetWare.

It should be noted that OS/2 software can be run under Windows NT, and Windows NT software can be run under OS/2. However, there are some exceptions:

OS/2's and NT's server editions both support many of the most common server-based functionalities:

 

4. Mac OS X Server (www.apple.com)

Apple's first server operating system which will bring new features missing from Mac OS such as: memory-protection, preemptive multitasking and a number of other features. It is based on a modified BSD Unix and Mach kernel. This OS will have its desktop version as well (Mac OS X) which will supercede Mac OS 9 on all Apple computers based on G3/G4 PowerPC processors.

MacOS X Server provides several main services, such as NetBoot, Apache Web Server 1.3.4, and Apple File Services. NetBoot eases the administration of Macintosh networks by serving boot images and configuration preferences to clients (mainly iMacs and G3/G$ Apple computers). Apache WWW server runs as a native port to OS X Server and provides Web services which means that the system running MacOS X can be used as a powerful Web server. Apple File Services module includes a more robust and scalable file and print service infrastructure.

5. UNIX (www.opengroup.org)

 

UNIX operating system is a multi-user, multi-tasking operating system that runs on most minicomputers, workstations and contemporary enterprise servers. . Even though UNIX is said to be standardized, every IT-vendor provides its own version of UNIX (HP-UX, IRIX, AIX, Solaris, etc). UNIX is written in C, one of the most popular programming languages around. Also, UNIX offers full multitasking, and is a very stable operating system on networks as is evidenced by the fact that most servers on the Internet run UNIX. As we mentioned before, a free version of UNIX for PC called LINUX is also available.

UNIX describes a family of computer operating systems developed at Bell Laboratories. Unix systems that provide a friendly environment for program development and text processing, encourage a modular, tool-oriented building-block approach to program design by making it easy to combine programs with one another. Once a UNIX operating system has been ported to another machine, a huge library of utilities become available on the target machine; this has been key to the success of UNIX systems. Although UNIX had been the most preferred operating system for many years, today its seniority and mystique hold little sway. At least twenty-five UNIXes exist now and committees dispassionately choose from among various UNIX versions. However six providers dominate: Sun Microsystems (Solaris), Hewlett-Packard (HP-UX), Compaq (Tru64UNIX), IBM (AIX), and Silicon Graphics (IRIX). UNIX is referred to as a multiuser, multitasking operating system since multiple users may each execute multiple commands simultaneously. It remains compelling due to its offer of multitasking and graphics, cross-platform compatibility in one package. UNIX users have come to take seamless file sharing, network printer services, remote application execution, client/server program support and multi-user access for granted.

UNIX was created almost 30 years ago. Until recently, it was completely based on command-line, text-based interface, like DOS.

UNIX - text-bases interface

The Common Desktop Environment (CDE) is an attempt to standardize GUI in UNIX environment. It is an integrated graphical user interface for open systems desktop computing. It delivers a single, standard graphical interface for the management of data and files (the graphical desktop) and applications.

CDE Panel

UNIX is a very scalable operating system. This means that it can run on different hardware platforms, from entry-level workstations, even PCs, up to high-end mainframe-like enterprise servers. The following figure illustrates a series of model from HP that can run HP-UX (HP's version of UNIX):

HP-UX servers and Workstations

The structure of UNIX operating system

The structure of the UNIX operating system can be illustrated as shown in the following figure.

The UNIX Structure

The UNIX kernel is the software that manages the user program’s access to the systems hardware and software resources. These resources range from being granted CPU time, accessing memory, reading and writing to the disk drives, connecting to the network, and interacting with the terminal or GUI interface. The kernel makes this all possible by controlling and providing access to memory, processor, input/output devices, disk files, and special services to user programs.

The basic UNIX kernel can be broken into four main subsystems:

Kernel, runs in a privileged manner known as kernel mode. This mode of operation allows the kernel to run without being interfered with by other programs currently in the system. The microprocessor enforces this line of demarcation between user and kernel level mode. With the kernel operating in its own protected address space, it is guaranteed to maintain the integrity of its own data structures and that of other processes.

Process Management

The Process Management subsystem controls the creation, termination, accounting, and scheduling of processes. It also oversees process state transitions and the switching between privileged and nonprivileged modes of execution. The Process Management subsystem also facilitates and manages the complex task of the creation of child processes.

A simple definition of a process is that it is an executing program. It is an entity that requires system resources, and it has a finite lifetime. It has the capability to create other processes via the system call interface. In short, it is an electronic representation of a user's or programmer's desire to accomplish some useful piece of work. A process may appear to the user as if it is the only job running in the machine. This "sleight of hand" is only an illusion. At any one time a processor is only executing a single process.

Most modern versions of UNIX are classified as preemptive operating systems. They are capable of interrupting an executing a process and "freezing" it so that the CPU can service a different process. This obviously has the advantage of fairly allocating the system's resources to all the processes in the system. This is one goal of the many systems architects and programmers who design and write schedulers. The disadvantages are that not all processes are equal and that complex algorithms must be designed and implemented as kernel code in order to maintain the illusion that each user process is running as if it was the only job in the system. The kernel maintains this balance by placing processes in the various priority queues or run queues and apportioning its CPU time-slice based on its priority class (Real-Time versus Timeshare).

Memory Management

Random access memory (RAM) is the component that always seems to be in short supply on most systems. Unfortunately, most organizations' budgets don't allow for the purchase of all the memory that their technical staff feel is necessary to support all their projects. Luckily, UNIX allows us to execute all sorts of programs without, what appears at first glance to be, enough physical memory. This comes in very handy when the system is required to support a user community that needs to execute an organization's custom and commercial software to gain access to its data.

The kernel uses a paging and segmentation arrangement to organize process memory. This is where the memory management subsystem plays a significant role. Memory management can be defined as the efficient managing and sharing of the system's memory resources by the kernel and user processes.

Memory management follows certain rules that manage both physical and virtual memory. Since we already have an idea of what a physical memory chip or card is, we will provide a definition of virtual memory. Virtual memory is where the addressable memory locations that a process can be mapped into are independent of the physical address space of the CPU. Generally speaking, a process can exceed the physical address space/size of main memory and still load and execute.

Single-vendor Server Operating Systems

Single-vendor or proprietary operating systems run only on specific hardware platforms. They are mainly used on mainframes, minicomputers, or some contemporary enterprise servers.

OpenVMS (www.compaq.com) is an operating system from the Digital Equipment Corporation (DEC) that runs in both its VAX (CISC) and Alpha (RISC) computers. OpenVMS evolved from VMS, which originated as the operating system for the VAX in 1979. VMS exploited the concept of virtual memory. DEC is now part of Compaq. OpenVMS is a multitasking and multiprocessing operating system based on VMS; it was renamed OpenVMS when it was redeveloped for the Alpha processor.(OpenVMS is also the name now used on the VAX computer.) The "Open" suggests the added support for the UNIX-like interfaces of the POSIX standard. Programs written to the POSIX standard, which includes a set of standard C language programming functions, can be ported to any POSIX-supporting computer platform. Formerly a 32-bit operating system, more recent versions of OpenVMS support 64-bit instructions.

OS/400 (www.ibm.com). The AS/400 (recently renamed the "AS/400e") is a middle-size server designed for small businesses and departments in large enterprises and now redesigned so that it will work well in distributed networks with Web applications. The AS/400e uses the PowerPC microprocessor with its 64-bit RISC technology. Its operating system is called the OS/400. It comes with an important application included: Domino (Notes with a Web browser). With up to 1.5 terabytes of disk storage and a Java virtual machine closely tied into the operating system, IBM hopes to make the AS/400e a kind of versatile all-purpose server that can replace PC servers and Web servers in the world’s businesses, competing with both Wintel and UNIX servers, while giving its present enormous customer base an immediate leap into the Internet. The AS/400, one of IBM’s greatest success stories, is widely installed in large enterprises at the department level, in small corporations, in government agencies, and in almost every industry segment. It succeeded another highly popular product, the System/36 and was itself based on a later, more sophisticated product, the System/38. AS/400 customers can choose from thousands of applications that have already been written.

MVS (Multiple Virtual Storage) MVS is the operating system from IBM (www.ibm.com) that is installed on most of its mainframe and large server computers. MVS has been said to be the operating system that keeps the world going. The payroll, accounts receivable, transaction processing, database management, and other programs critical to the world’s largest businesses are usually run on an MVS system. Although MVS tends to be associated with a monolithic, centrally-controlled information system, IBM has in recent years repositioned it as a "large server" in a network-oriented distributed environment, using a 3-tier application model. The latest version of MVS, OS/390, no longer bears the "MVS" in its name. Since MVS represents a certain epoch and culture in the history of computing and since many older MVS systems still operate, the term "MVS" will probably continue to be used for some time. Since OS/390 also comes with UNIX user and programming interfaces built in, it can be used as both an MVS system and a UNIX system at the same time. MVS systems run older applications developed using COBOL and, for transaction programs, CICS. Older application programs written in PL/I and FORTRAN are still running. Older applications use the VSAM access method for file management and VTAM for telecommunication with users. The most common program environment today uses the C and C++ languages. DB2 is IBM’s primary relational database. Java applications can be developed and run under OS/390’s UNIX environment.

HP MPE (www.hp.com)

MPE stands for Multi-Programming Executive. It is a multiuser operating system that HP created in the early 70's for the HP 3000 line of computers. The last release of MPE is called MPE V. The current version is called MPE/iX because it includes a hierarchical file system and supports the UNIX function calls.