|System V Derivatives - HP/UX, Irix and Solaris 2|
|Originally published April, 1996|
|¿ 1996, 2005 Carlo Kopp|
Unix and its many derivatives is without doubt the premier operating system of nineties. No other environment can offer the portability, versatility and richness of functional features inherent in the modern Unix platform. Many have tried, but we have yet to see anything which can supplant Unix anywhere else than in the wishful dreams of corporate marketeers.
AT&T System V Unix
System V Unix has the distinction of being the only modern "Unix" to claim an unbroken genealogy traceable back to the very roots of the concept. The first System V release became available in 1983, and was essentially an enhanced version of the earlier System III. The principal improvements were aimed at increasing performance and adding more extensive Interprocess Communications (IPC) capabilities. System V saw the addition of shared memory, semaphores, message queues and for performance enhancement, buffer and inode caches, and hash tables.
System V was very soon followed by System V Release 2 (SVR2), which saw the addition of record and file locking facilities, demand paged memory management to exploit the proliferation of machines with modern MMUs, and copy on write to improve performance. This was a period when the number of Unix installations grew very rapidly, and the decline of the proprietary multiuser operating systems had clearly set in. System V and 4BSD were in clear competition for user sites, and the plethora of heavily modified variants was a potential nightmare for administrators and users alike.
Portability issues began to arise, and the mid eighties saw the adoption of a number of important Unix standards. The first was the System V Interface Definition (SVID), the second the IEEE POSIX 1003.1 system call definition and the third the X/Open Portability Guide (XPG).
The 1987 System V Release III (SVR3) was the first major attempt to address the 4BSD threat. This variant saw further improvement of IPC facilities and the addition of Dennis Ritchie's STREAMS. The RFS remote file sharing scheme was included, arguably to compete with Sun's rapidly proliferating NFS, signal handling was improved, again to offset the advantage of 4BSD, shared libraries added to reduce memory demands on large installations, and the TLI programming interface added.
By 1989 the standards situation had stabilised, and Sun, the leading 4BSD vendor, decided to jump ship to System V. The new variant which was to encompass all of the standards and SunOS/4BSD features was System V Release 4 (SVR4). SVR4 merged a large number of features from 4.3BSD and SunOS. The BSD C shell, socket IPC, job control, symbolic link handling, signal handling, user grouping and Fast File System (UFS) were adopted. The SunOS vnode, file memory mapping, RPC/XDR protocols and NFS protocol were adopted. The key features of SVR3 were retained, but the new Korn shell was added, realtime scheduling features added, and the VFS introduced. The C compiler became compliant with the then new ANSI standard.
When Sun abandoned 4.3BSD in favour of SVR4, the trend was set and SVR4 is today the most commonly used "multivendor" flavour of Unix. We will take a brief look at the three most commonly used variants in the workstation and server markets.
Hewlett-Packard HP/UX 10
HP have focussed much of their development and marketing effort toward providing large server and multiuser systems for commercial sites, while also attempting to maintain a presence in the workstation marketplace. The HP/UX OS is an attempt to reconcile the often divergent requirements of these two user environments.
HP/UX is often described as a hybrid System V, merging the earlier SVR3 HP/UX versions with features from the later SVR4, and a large number of proprietary enhancements intended to improve performance on HP's proprietary PA-RISC hardware, as well as to attract customers.
The latest variant of this OS is HP/UX 10, an incremental derivative of HP/UX 9. This version has a number of design features which are oriented toward improving performance on large multiprocessing systems. Disk I/O management changes include I/O request coalescence to merge multiple I/O operations, as well as improvements to filesystem read-ahead code. HP claim that HP/UX 10 will spread I/O operations across all CPUs in a multiprocessing system, avoiding the traditional problem of interrupt saturation on a CPU tied to I/O operations.
Memory management in HP/UX has been altered. Processes which are not to be scheduled are paged out incrementally, rather than by the traditional swapping of a whole process. This change is intended to avoid swap thrashing conditions under heavy load.
An interesting proprietary enhancement to the system call suite is the serialise call, which enables multiple copies of an application to be scheduled serially, to ensure that swap thrashing does not occur under high load conditions. This facility is complemented by an unbundled Process Resource Manager tool, which allows an administrator to manipulate scheduling priorities of groups of processes.
HP/UX 10.0 also includes an implementation of the OSF Distributed Computing Environment (DCE), derived from the OSF/1 1.1 release. OSF/1 has permeated HP/UX in other areas, such as the Logical Volume Manager (LVM) used to distribute filesystems across multiple devices, and to provide mirroring and striping. Filesystem support goes beyond the SVR4 UFS and NFS support, with HP providing an additional Journaled File System (JFS) for paranoid corporate users.
HP's focus on the commercial market reflects in considerable effort to meet a number of mainstream industry standards. HP claim compliance with X/Open SPEC 1170, X/Open XPG4, OSF AES, AT&T SVID3 Level 1 API, US FIPS 151-2, 4.3BSD, SVR4 filesystem layout, IEEE POSIX 1003.1 and 1003.1b (real time API) interfaces and 1003.2 shell definition, and ONC/NFS Version 4.2 .
HP's focus on the corporate marketplace is clearly evidenced by the retention of an incrementally developed OS, addition of extensive proprietary features and a well advertised effort to maintain compliance with common industry standards. Users of HP/UX should not experience portability problems if they rigourously adhere to using the standard System V features in the OS.
Silicon Graphics Irix 6
SGI have traditionally focussed on the top end of the graphics workstation market, and this is the niche which they continue to occupy. More recently, their larger servers have begun to proliferate into the lucrative commercial/corporate server market, and it will be interesting to see how effectively SGI will compete with more established vendors. The commercial/corporate market can be generally characterised by a shortage of technical know-how, loyalty to incumbent vendors, mainframe mentality and hence an abundance of cash.
Irix 6 is based upon System V Release 4.1, and is a 64-bit port which supercedes the 32-bit Irix 5. Irix 5 was unable to fully exploit the 64-bit MIPS 4X00 series, and with the emergence of second generation 64-bit engines, a new release was required. Support for 64-bit architectures appears in a number of areas. Libraries are provided in both 32-bit (default) and 64-bit versions, with appropriate 32-bit or 64-bit sized include files. Many system related include files have been resized to 64-bits, and the ELF object format has been adjusted. Dynamically shared objects (DSO) will support full 64-bit addressing.
The graphics environment is demanding upon I/O performance. Irix 6.2 has been provided with support for asynchronously queued read and write calls, and SGI claim compliance with the 1993 POSIX 1003.1b extension. Memory mapped file I/O has also been introduced. A proprietary facility to enhance I/O performance is provided by Direct I/O calls, which allow a process to bypass the kernel buffer cache and DMA between the process address space and a disk.
The Irix 6.2 scheduler has also been extended. The "Fair Share" scheduler is designed to allow allocation of resources to specific users. A checkpoint-restart facility has also been added to allow jobs to be suspended and restarted. The SVR4 accounting facility has been extended to allow more comprehensive logging of usage statistics.
SGI claim compliance to X/Open Base 95/SPEC 1170, SVID3, POSIX 1003.1, 1003.2, and parts of the 1003.1b and 1003.1c extensions. The Motif library is a superset of the standard library.
Irix provides essentially proprietary main filesystems. The SGI standard Extent File System (EFS, not to be confused with 4.4BSD EFS) is now being phased out in favour of the new XFS filesystem. The 64-bit XFS filesystem uses journalling techniques for recoverability, and configurable logical block sizes to improve throughput. The XFS filesystem may be as large as 18 million TB on a 64-bit kernel, with logical block sizes of up to 1 GB (ie a single disk may become a single contiguous block). XFS employs a proprietary xlv logical volume manager which allows striping, concatenation and mirroring. NFS version 3 is provided.
SGI, like HP, are providing a system which albeit built around System V and using standard interfaces, employs a significant number of vendor proprietary extras. Most of these are oriented toward enhancing performance in SGI traditional market, but some are more broadly aimed at gaining market share in commercial sites.
Sun Microsystems Solaris 2
Sun's move from 4.3BSD to SVR4 was not greeted with enthusiasm by many users, who liked the bundled package and easy compilation of third party tools which characterised SunOS. Pressure from commercial sites, and the then close relationship between Sun and AT&T, led to this now historial .
Solaris 2 is a port of SVR4, initially to SPARC and Intel architectures, more recently to other architectures in an effort to gain the position of providing the principal multi-platform SVR4 derivative.
The porting of SVR4 to the SPARC was a technically interesting enterprise, as Sun had a very large number of Sbus I/O boards all of which required device driver ports. Moreover, Sun's principal product lines used an unconventional device driver design, where the probing function is embedded in the machines Open Boot PROM EPROM. As a result, Sun's programmers had an interesting time adapting the SVR4 DDI/DDK driver format to support the established hardware. Sun claim compliance with the SVID3 standard, the SVR4 ABI, SVR4 DDI/DDK, DLPI, STREAMS TPI, X/Open XPG4 and POSIX 1003.1.
The most recent version of Solaris 2 is 2.5. The 2.5 release provides a number of detail changes from 2.4, and supports the new UltraSPARC processor. The UltraSPARC version of the OS runs with 8k pages rather than 4k in existing systems.
Sun claim a number of performance enhancements in 2.5. These include NFS Version 3 (32k default) over TCP/IP, a new piping mechanism five times faster than that in 2.4, asynchronous I/O capability, and tuned up C library stdio routines. As with HP and SGI, multithreading and multiprocessing support is provided.
As is apparent, the conflicting demands of retention of customer base vs the support of industry standards produce an interesting result. The vendor's products will support most if not all of the relevant industry standards, but provide proprietary extras which may significantly improve performance and functionality at the expense of portability. The issue for sysadmins and DP managers alike will therefore be the tradeoff between using the proprietary extras for some gain in capability and thus making a commitment to a single vendor, or religiously adhering to standard interfaces and tools, and changing vendors where it is seen appropriate. Not always a trivial decision!
|$Revision: 1.1 $|
|Last Updated: Sun Apr 24 11:22:45 GMT 2005|
|Artwork and text ¿ 2005 Carlo Kopp|