Overview of Power Systems (formerly System i, iSeries, AS/400) architecture
The recent Power Systems servers, built on the POWER6 and POWER5 hardware architecture, can equivalently run multiple simultaneous logical partitions of AIX, Linux, and the traditional iSeries operating system, OS/400. The most recent release of the operating system, Version 6, Release 1, is named IBM i. (2 April 2008) The prior release of OS/400, Version 5 Release 4, is named i5/OS.
While these other operating systems are peers to OS/400 on iSeries servers, this page will focus on the traditional iSeries operating system. All of the features noted below represent i5/OS, the latest generation of OS/400.
Overview of OS/400 architecture
Several architectural features of OS/400's architecture distinguish the system from other machines in the computing industry. These features include:
- Two-part primary operating system
- Technology-independent machine interface (TIMI)
- Object-based system
- Single-level storage
- High degree of integration
- Multiple application program models
- Open Standards
The hardware platform has had several name changes over the years.
- Power Systems (after the merger of the System i and System p hardware lines)
- System i (POWER5)
- eServer iSeries (POWER4)
Two-part primary operating system, Technology-Independent Machine Interface
There are two components to the operating system software on an iSeries server. This important distinction is unique in the industry in its completeness of implementation. The two components are: System Licensed Internal Code (SLIC) and Operating System/400 (OS/400).
SLIC provides the TIMI, process control, resource management, integrated SQL database, security enforcement, network communications, file systems, storage management, JVM, and other primitives. SLIC is a hardened, high-performance layer of software at the lowest level, much like a Unix kernel, only far more functional.
OS/400 provides higher-level functions based on these services to users and to applications. OS/400 also provides a vast range of high-level language (such as C/C++, COBOL, RPG, FORTRAN) runtime functions. OS/400 interacts with the client-server graphical user interface, iSeries Navigator.
At a macro level, an entire logical partition running the traditional iSeries operating system, may be referred to as running OS/400. The name OS/400 may refer to either the combination of both parts of the operating system or just the "top" portion.
OS/400 keeps all information as objects. There are hundreds of object types, including the four examples above. This is different from the simple byte-string, file-based manipulation used by many systems. Object-based design enables a powerful, yet manageable level of system integrity, reliability, and authorization constraints.
All programs and operating system information, such as user profiles, database files, programs, printer queues, etc. have their associated object types stored with the information. In the OS/400 architecture, the object type determines how the object's contained information can be used (which methods). For example, it is impossible to corrupt a program object by modifying its code sequence data as if it were a file. Because the system knows the object is a program, it will only allow valid program operations (run, backup). Thus, with no write method, iSeries program objects are, by design, highly virus-resistant. Other kinds of objects include directories and simple stream data files, such as video and audio files. These stream-file objects provide a with familiar open, read, and write operations.
OS/400 applications and the objects with which they interact all reside in a very large virtualized, single-level storage. That is, the entire system, including the objects most other systems distinguish as "on disk" or "in memory" are all in the single-level storage. Objects are designated as either permanent or temporary. Permanent objects exist across system IPLs (reboots). Temporary objects do not require such persistence. Essentially, the physical RAM on the server is a cache for this very large, single-level storage space. Storage management, a component of SLIC, ensures that objects which need to persist when the system is off are maintained in persistent storage. This is either magnetic hard disk or flash memory as of this writing.
The benefit of providing a single, very very large address space, in which all objects on the system reside, is that applications need not tailor their memory usage to a specific machine configuration. In fact, OS/400, due to the single-level storage, does not need to tailor such things as the sizes of disk cache vs paging space. This greatly facilitates the on-demand allocation of memory among logical partitions.
Multiple Application Program Models
Three models of running applications exist on OS/400.
The traditional programming model for OS/400 applications uses OS/400's Integrated Language Environment (ILE). OS/400 provides many programming interfaces to interact with system resources, and these are provided primarily as ILE interfaces. Applications in this model benefit from the TIMI for complete protection and benefit from future hardware changes. Support is provided for C/C++, COBOL, RPG, and CL.
Applications from AIX can run inside an OS/400 job, completely and seamlessly integrated into OS/400. This option is the OS/400 Portable Application Solution Environment (OS/400 PASE). Since the microprocessors are the same between traditional AIX and OS/400 hardware, many components from AIX can run directly "on the silicon" in an iSeries server. PASE provides this very easy way to add, often unmodified, AIX applications to iSeries. PASE applications, just like AIX applications, interact with operating system functions through a syscall interface. However, since the applications are compiled to a specific processor instruction set, the investment protection of the TIMI is not afforded PASE applications. Support is provided for C/C++, FORTRAN, and COBOL.
Support for Java applications is also built into OS/400. Java applications utilize a JVM and Java compiler that's built into the OS/400 kernel (SLIC). The object-oriented nature of Java is an ideal fit for an object-based operating system like OS/400. If the Java application uses a Web application server, on OS/400, it will best utilize WebSphere Application Server - Express, included with every iSeries server.
All three of these application program models normally coexist on OS/400. These all run on the same set of system resources such as network communications, user security, file systems, etc. It is common for code in one of these program models to call into code in another. The combination of these models affords great flexibility in bringing new applications to OS/400.
The iSeries architecture is different from most other machines in the computing industry. It is a flexible architecture which is entirely focused on business computing. It runs business applications. It's largely self-managed, so customers can run their businesses, not their computers. It is based on the belief that a radically better system can be built. The unique architectural foundation of eServer iSeries will continue to allow leadership technological advancements well into the future.