AIX for Breakfast: A Guide for Programmers and System Administrators, 1st edition
Authors: Phillip Houtz
Venue:  (1996)

From the Book:PREFACE: Officially, AIX stands for "Advanced Interactive executive". No one has ever offered me an explanation of what an "interactive executive" is. AIX is a superset of the programs that comprise traditional UNIX. Considering that other vendors tend to append "IX" or "UX" (XENIX, ULTRIX, HP/UX, A/UX), I personally believe that AIX is really supposed to be A)dvanced UN(IX. For all practical purposes, AIX equals IBM UNIX. It is a superset, which means that it supports more commands, functionality, etc., than traditional UNIX. It appears to include facilities that are down-ported (formerly ran on larger platforms) from minicomputers and mainframes. These features pervade AIX to such a degree that they create a viewpoint that differs from traditional UNIX perspectives. AIX is loaded with logical constructions and tools that intentionally disguise traditional UNIX approaches. As a result, AIX accomplishes creation of a layer that is a "level of abstraction" to provide easier conceptualization of administrative tasks. The System Management Interface Tool, SMIT, provides an environment that supports the illusion that one simply steps through menus until the appropriate task is displayed, selects the task, accepts or denies the default parameters, and hits . Though this is literally true when using SMIT, the actual editing of files and linkage to the operating system is hidden from view. History of AIX In traditional UNIX, system administrators considered it "normal" to edit half a dozen files, then recompile UNIX itself. This would "bind" the new service(s) into the "kernel" of the operating system. Later, when all users were off the system,thecomputer would be shutdown and rebooted to begin using the new operating system extensions. The following day, users would begin enjoying the new services (unless the system administrator had erred in editing the files). UNIX is a "file processing" operating system, which depends heavily upon what it "finds" in needed files. AIX began life as traditional UNIX plus some extensions. It is based upon AT&T UNIX System 5 (SV) and Berkeley Software Distribution (BSD) UNIX. In 1986, AIX 1.0 was released. By 1988, POSIX standards were being added and AIX 2.0 debuted. These AIX versions ran on the predecessor to the RISC/6000 line, the RT PC. With the introduction of the RISC System/6000 line in 1990, AIX 3.1 was introduced. The introduction of AIX 3.1 was a significant step forward from AIX 2.2. The major differences can be summarized in one thought: throughout the system, a level of abstraction had been created that permeated every major aspect of the operating system and its administration. Whereas AIX 1 and 2 were obvious derivatives of traditional UNIX, AIX 3 stepped into new realms. Where UNIX processes files throughout, AIX used C++ and object-oriented programming to describe key elements and devices stored in its object database (/etc/objrepos). The Object Data Manager (ODM) maintains these descriptions and creates a "non-file" layer of system management. Further, instead of recompiling the UNIX kernel and restarting the system, AIX 3 introduced a "dynamically bound" kernel. As a result, AIX 3 can unbind a service and/or bind a new or newly configured version of a service. The dynamic binding functionally supports the concept that all services are already a part of the operating system. Therefore, the service could be (re)configured by issuing a command with parameters. This abstraction of the former "edit the files and recompile the kernel" makes it easy to build a menu-driven interface for system administration (SMIT). In traditional UNIX, hard disks were limited by their physical capacity when partitioned into "mini" disks. Therefore, no file system could exceed one physical disk, even though UNIX has a 2 X 1024 X 1024 X 1024 (2 gigabyte) file size limitation. Often the size of the physical disk was much smaller. AIX 3 brought the concept of "logical" disk management, which can allow a file or file system to span multiple physical disks. This disk management abstraction is a truly remarkable layer. Similar to disk management on mainframes, this feature removes many of the limitations found on small computers with small disk subsystems. To attempt to standardize future UNIX, the Open Software Foundation was formed. This entity accepts submitted UNIX extensions and selects one to be the standard by a "one-company/one-vote" selection process. Much of AIX 3 was selected as a basis for the OSF/1 standard. Though it is not considered a "standard" UNIX yet, it is likely that it will be perceived to be one of the standard UNIXes in the future. AIX Perspective. The most difficult problem that AIX presents to the UNIX traditional list is that AIX is best administered starting from the top of the level of abstraction. Do whatever can be accomplished, note what cannot meet the need, and proceed below this layer to the degree necessary with traditional UNIX system administration. The old hand at UNIX will tend to begin system administration from the "file editing" level and bang his head against file naming, databases, and new commands that support the abstractions. "It doesn't work like UNIX is supposed to work" may be heard. System administration of AIX is far easier when you follow the lead of the AIX tools and logical constructions. As an example, traditional UNIX might have a user build a printer device through addition of lines in a file and reboot to pick up kernel connection with it. Then he might add a stanza to a print spooler file to show the printer as being queued. After that, the user might stop and restart a line printer daemon to make the spooling function aware of the new printer. To perform additional formatting, he might create/edit a file of printer attributes to change a printer font, etc. In AIX, the user would go into SMIT "Devices" and add a printer, then add a virtual printer. The "add a printer/plotter" device item would automatically bind the device driver. The "add a virtual printer" function would automatically add a queue and make the print queue daemon (traditional UNIX name for a never ending background process) aware of the new entry plus create a default attributes file. The final step could be done through direct edit of the attributes file or through SMIT. This is not meant to be a treatise on, "why AIX is better...", rather, an explanation of why an experienced system administrator in traditional UNIX might find AIX frustrating by assuming the wrong perspective. Once again, administration of AIX should begin from the tools that create the abstraction layering. Whatever the tools can't do can be corrected by traditional techniques. However, without first determining what the tools CAN do, functional connections concerning this layering may not be made in an "edit the files" approach. BSD versus System V. AIX 3.2.5 is based on System V Release 3 (SVR3). It is a superset of the commands and services of SVR3, with command functionality defaulting to BSD 4.3. As a result of this blending, those familiar with UNIX will find certain aspects of AIX familiar and other aspects unfamiliar. Assuming that we start with SVR3, the following will point out differences from BSD. The default "shell" command interpreter for SVR3 is the Bourne shell. A user's personal environment can be tailored with a file in the user home directory called ".profile". In BSD, the default shell is the C shell. Personalization of the user's environment is accomplished by ".login" or ".cshrc". AIX supports both shells as the defined user login shell; however, AIX will default the user to the Korn shell unless otherwise defined. The command to list files, ls, returns a single column of file names in SVR3. In BSD, the default return is multiple columns arrayed across 80 characters with column width based upon the length of the longest item. AIX runs as BSD and supports a "1" flag to limit to one column. Where the end lines of a file are viewed with the "tail" command, BSD includes a command to see the top lines in a file, "head". SVR3 can control page scrolling with the "pg" command. BSD offers equivalent function to "pg", but can keep from attempting to display unprintable characters, move backward, allow selection of forward or backward scrolling by requested number of lines, etc. The BSD command does more than page and is appropriately named "more". It controls scroll of the screen by utilizing facilities developed for the "vi" editor (which Berkeley also introduced). Berkeley offers a special form of the "man"ual pages command, "apropos". This command offers short descriptions of all commands that match a searched-for word in either the command or description. If a command is known, BSD offers "whatis" to return the command and its description. To find the location of a command, BSD does a fast search with, "whereis". For AIX to use "apropos", "catman -w" must have been run to build the "whatis" database. AIX also supports "type", which is a broader command search than "whereis". SVR3 reports the names of logged in users and information about where and what time they logged in with the "who" command. BSD adds the "finger" command, which puts a finger on the users. This command responds similarly to "who", but is able to read the GCOS field in /etc/passwd to reveal more information about the user. The additional information may include the user's actual name, voice phone line, and address. Finally, the "od" command (octal display) of SVR3 is capable of displaying a mixture of ASCII text characters and C language expressions to allow examination of a binary file. BSD has created a "strings" command to return whatever seems to be readable ASCII strings in the binary file. AIX supports all of the commands mentioned with any special considerations noted. Since AIX is a superset of both SVR3 and BSD 4.3, a few notes should be made regarding "AIX only" changes. AIX Peculiarities. BSD 4.3 generally stores configuration data in line feed (LF) terminated ASCII files. It provides tools to convert large ASCII files into a database. Its library functions search the database files if present, otherwise the ASCII files are used. Some AIX configuration data is stored in ASCII files, but it may be in stanza format rather than one long string with a LF termination. The AIX Object Data Manager (ODM) maintains an Object-Oriented Programming (OOP) database, which contains the configuration data for AIX. When AIX starts up (boots), a configuration manager program calls configuration "methods" (see OOP) from /etc/methods, which identify the devices in the system and update the ODM database in /etc/objrepos. As a result, "boot" is notably different than SVR3 and BSD. BSD maintains its file system descriptions in /etc/fstab. BSD reads file systems in 8 kilobyte (KB) blocks. It can store multiple small files in fragments of a block, usually 1 KB. AIX stores its file system descriptions in /etc/filesystems. AIX does not support block fragment storage and uses a file system block size of 4 KB. Traditionally, both BSD and System V (prior to SVR4) store encrypted user passwords and other user descriptive information in /etc/passwd. This file is then readable by all users. In SVR4, passwords are removed from /etc/passwd and stored in /etc/shadow, which requires "root" or equivalent access to read. In AIX, /etc/passwd is used to store all user descriptive information except passwords. The encrypted passwords are stored in /etc/security/passwd. AIX Extensions. Beyond expected functionality for UNIX, IBM has added extensions to AIX. These extensions range from subtle "transparent" extensions to visible subsystems and commands. The following is a brief overview of these extensions. The kernel extension services (like device drivers) are dynamically bound, allowing updates to the kernel capability without shutdown and reboot. Further, the kernel itself is preemptible and most of it can be paged out to disk to make use of previously occupied RAM. The virtual filesystem (vfs) is roughly the SVR3 FSS (File System Switch). A user can configure a new file system type using vfs to create the connection between the logical and physical file systems. Whereas SVR3 FSS is only used by RFS (SVR3 near equivalency to BSD NFS), AIX actually uses vfs to present a consistent interface to the logical file system. The journaled file system (jfs) is a legitimate extension to filesystem functionality. Utilizing database journalling, jfs maintains a more robust description of physical transactions, thereby greatly strengthening i- node information during a file system rebuild. AIX logical volume management (LVM) is an all encompassing extension that literally creates a logical perspective immediately after description of the physical disk hardware. This extension is visible and seems to come from mainframe disk management. The InfoExplorer on-line manual database is far more extensive than traditional UNIX "man"ual pages. It is a relational database, which allows for more "views" of system information than the singular view offered in a bound book. This database is hypertext linked to interconnect keywords and subjects. It is included as "soft" system manuals on all AIX installation media. A System Management Interface Tool (SMIT) connects menus for system management similar to SVR3 "user agents" or the older "sysadm" tool. SMIT allows for menu customization and is maintained by ODM. INed is an IBM proprietary editor that allows single mode, full screen editing. It includes capability to split plain terminal screens allowing edit of 2 or more files simultaneously. Without resorting to X Windows, it will allow plain terminals to cut and paste. It includes the ability to edit its own keyboard maps and can navigate through directory structures, allowing ZOOM-IN for edit. Conclusion. AIX is a lot like an omelet. It starts with a base of AT&T System 5 Release 3. It then adds the 4.3 Berkeley Software Distribution enhancements. Other interesting items that will improve the "flavor" are then added from POSIX, the Open Software Foundation, mainframe computing, etc. The result is a mixture of ingredients that will, hopefully, create a unique but familiar flavor. Approached from the right perspective, the taste is enjoyable and system administration becomes a snap. With relatively little work, a system administrator can "Have AIX for breakfast." What Is AIX? The ACM Portal is published by the Association for Computing Machinery. Copyright © 2010 ACM, Inc. Terms of Usage Privacy Policy Code of Ethics Contact Us Useful downloads: Adobe Acrobat QuickTime Windows Media Player Real Player