Solaris vs AIX: It's the technology

AIX works, but so did System VR4 on NCR - and, hardware updating aside, that's just about how it compares to Solaris 10.

From a technical perspective, of course, the right way to compare AIX to Solaris is to look at the technology. That might seem like it should be a lot of work but a long article by IBM's Shiv Dutta: AIX 5L Version 5.3: What's in it for you? on the developer works site largely eliminates the need, or at least the incentive, for doing it.

Dutta's article is about listing improvements from AIX 5L V5.2 to V5.3 and contains 441 instances of <li> - most of them signaling individually listed AIX improvements.

To quote 13 representative examples:

  1. Increased inter-process communication (IPC) limits In AIX, the individual IPC data structures are allocated and deallocated as needed, so memory requirements depend on the current system usage. Prior AIX releases defined the maximum number of semaphore IDs, shared memory segment IDs, and message queue IDs to be 131072 (128 K) for the 64-bit kernel. To cope with anticipated future scalability demands, AIX 5L Version 5.3 increases the maximum number of data structures for each of the IPC identifier types to 1048576 (1024 K).
  2. Thread support in gmon.out When applications consisting of multiple steps in which different executables (all built with -p or -pg flags to generate profiling information) are invoked in a sequence, each executable causes the previous gmon.out file to be overwritten. In AIX 5L Version 5.3, the gmon.out file has been made thread-safe so that each thread from a multi-threaded application has its data in it.
  3. DBX malloc command Malloc debugging features have been integrated into DBX command. This would allow a developer to query the current state of the malloc subsystem without having to create complex, unwieldy scripts requiring internal knowledge of the malloc subsystem.
  4. tcpdump upgrade to latest level The tcpdump command has been upgraded to Version 3.8. As a consequence of this upgrade, iptrace and ipreport were also changed to use the new upgraded libcap library (Version 0.8) for packet capture and dump reading. AIX tcpdump, prior to AIX 5L Version 5.3, displayed packet timestamps down to 1ns (10-9 s). The open source tcpdump displays timestamps at 10-6s. The new AIX tcpdump has 10-6s timestamp resolution. A number of new flags have been added to tcpdump. Also, a total of 87 protocol printers have been included to facilitate printing when using tcpdump.
  5. Volume group pbuf pools In previous AIX releases, the pbuf pool was a system-wide resource. In AIX 5L Version 5.3, the Logical Volume Manager (LVM) assigns and manages one pbuf pool per volume group. Version 5.3 has introduced the lvmo command, which can be used to display pbuf and blocked I/O statistics as well as the settings for pbuf tunables.
  6. Scalable volume groups AIX 5L Version 5.3 offers a new volume group type called scalable volume group (VG). The scalable VG can accommodate a maximum of 1024 physical volumes and raises the limit for the number of logical volumes (LVs) to 4096. The maximum number of physical partitions (PPs) is no longer defined on a per disk basis, but applies to the entire VG. The scalable VG can hold up to 2,097,152 (2048 K) PPs. The range of the PP size starts at 1 MB and goes up to 131,072 (128 GB), which is more than two orders of magnitude above the 1024 (1 GB) maximum available in AIX 5L Version 5.2.
  7. Variable logical track group AIX 5L Version 5.2 accepted logical track group (LTG) values of 128 KB, 256 KB, 512 KB, and 1024 KB. To support larger sizes of many disks and better disk I/O performance, AIX 5L Version 5.3 accepts values of 128 KB, 256 KB, 512 KB, 1 MB, 2 MB, 4 MB, 8 MB, and 16 MB for the LTG size. Version 5.3 also allows the stripe size of an LV to be larger than the LTG size in use and extends support for stripe sizes for 2 MB, 4 MB, 8 MB, 16 MB, 32 MB, 64 MB, and 128 MB to complement the 4 KB, 8 KB, 16 KB, 32 KB, 64 KB, 128 KB, 256KB, 512 KB, and 1 MB options available in prior releases of AIX.
  8. Striped column support for LVs In previous AIX releases, you could enlarge the size of a striped LV as long as enough PPs were available within the group of disks which defined the RAID disk array. Also, rebuilding the entire LV was the only way to expand a striped LV beyond the hard limits imposed by the disk capacities. To overcome the disadvantages of this rather time-consuming procedure, AIX 5L Version 5.3 introduces the concept of striped columns for LVs. In prior releases of AIX, it was not permitted to configure a striped LV with an upper bound larger than the stripe width. In Version 5.3, the upper bound can be a multiple of the stripe width. One set of disks, as determined by the stripe width, is considered as one striped column. If you use the extendlv command to extend a striped LV beyond the physical limits of the first striped column, an entire new set of disks will be used to fulfill the allocation request for additional logical partitions, as long as you stay within the upper bound limit. The -u flag of the chlv, extendlv, and mklvcopy commands now allow the upper bound to be a multiple of the stripe width.
  9. The performance monitoring tool introduced in AIX 5L Version 5.3 called procmon displays a dynamic, sorted list of processes and information about them. It allows execution of basic administration commands such as kill, renice, and svmon on these processes. The procmon tool is an Eclipse plug-in and has been mentioned under Application development section. The command to start the tool is called perfwb (/usr/bin/perfwb). This launches Eclipse with the procmon plug-in. The perfwb command is contained in the fileset bos.perf.gtools.perfwb.
  10. In the previous versions of AIX, there were no tools available to monitor the AIO (Asynchronous I/O). In Version 5.3, the performance kernel libraries have been modified to obtain AIO statistics. The enhanced iostat command can be used as well to monitor AIO statistics.
  11. A new flag has been added to the tar command, which would specify the list of files and/or directories to be excluded from the tar file being created, extracted, or listed.
  12. Flags have been added to the tar command to process a directory of files recursively. An option has also been added to specify an input file for tar extraction much like that can be used for tar creation.
  13. Search highlighting has been added for the more command. When matching a search pattern, all matches of the search pattern are now highlighted. Highlighting is the default; new '-H' option disables highlighting. 'H' can also be used as a subcommand in an active 'more' session to toggle highlighting on or off.

Although AIX Version 6.0 is either into, or just about ready for, its beta release, 5L V5.3 is the current production toolset - and changes like those shown for iostats, tar, more, dbx, and many other common tools hardly play catch up ball to SuSe 7.1, Solaris 2.5.1, or even HP-UX 11.

This doesn't mean V5.3 isn't better than V5.2 - if you've ever struggled with a database engine, like Sybase 11, requiring manual extent assignment 5.3's lifting of the 1GB partition limit will provide magical relief. Unfortunately, however, that effect only applies if you're coming from 5.2 because if you used any other Unix you wouldn't have seen this kind of problem since the early nineties - and that's really the bottom line on the entire comparison: the improvements to AIX -all that volume management stuff, for example- mostly invoke that same deja vue feeling from ten and fifteen years ago.

So what makes AIX, AIX? Two things: first a focus on controls making what Oracle does with ACLs look attractive, and secondly the typical mainframer's obsession with processor based systems virtualization.

Thus (to continue quoting Dutta's work) System V 5.3L has many new features like:

  1. Disk quotas support for JFS2 AIX 5L Version 5.3 extends the JFS2 functionality by implementing disk usage quotas to control usage of persistent storage. Disk quotas might be set for individual users or groups on a per file system basis.Version 5.3 also introduces the concept of Limit Classes. It allows the configuration of per file system limits, provides a method to remove old or stale quota records, and offers comprehensive support through dedicated SMIT panels. It also provides a method to define a set of hard and soft disk block and file allocation limits and the grace periods before the soft limit becomes enforced as the hard limit.

    The quota support for JFS2 and JFS can be used on the same system.

  2. Micro-Partitioning: Allows a single processor to be shared by up to 10 partitions and supports up to 254 such partitions.
  3. Virtual I/O: Supports the I/O needs of client partitions (AIX® and Linux®) without having to dedicate separate I/O slots for network connections and storage devices for each client partition. You can boot and run the partitions from Virtual SCSI devices and achieve network connections using the Virtual Ethernet and Shared Ethernet Adapter.
  4. Shared Ethernet Adapter (SEA) Failover: Provides Shared Ethernet Adapter High Availability by offering the ability to create a backup SEA on a different Virtual I/O server that will bridge, should the primary SEA become inactive.
  5. SMT: Version 5.3 supports the SMT mode of POWER5 processors. When you enable this mode, a single physical POWER5 processor appears to the operating system to be two logical processors, independent of the partition type. A partition with one dedicated processor would behave as a logical 2-way by default. A shared partition with two virtual processors would behave as a logical 4-way by default. You can turn the mode on or off for a specific partition either immediately or on a subsequent boot of the system.

Notice here that what IBM means by virtualization is exactly the opposite of what Sun means and that this therefore presents an absolutely basic distinction between the ideas embedded in the two architectures.

When IBM says "virtualization" it means the 1960s idea of breaking a multi-million dollar processor complex into independently managed chunks. In contrast the Unix idea of virtualization focuses on processes to make them manageable independently of the hardware.

Thus virtualization in the IBM sense increases complexity while Unix virtualization reduces it - and IBM's approach lets you break one physical machine into multiple virtual ones while the Unix ideas embedded in Sun products like N1 allow you to treat many small machines as one larger one.

Cut to the bottom line and what you have is Sun pursuing the second generation Unix ideas embedded in Plan9: in which the network is the computer and all resources are accessible by everyone; while IBM is still selling pre-Unix VM ideas for protecting one application from another on the same hardware.

See: Part 3