HP-UX 11i Release Notes

HP 9000 Computers

Edition: Edition 1
Part Number: B3920-90091
Publication Date: E1200


Printed in: United States
Copyright © 1983-2000 Hewlett-Packard Company. All rights reserved

Legal Notices

Table of Contents


Chapter 1: Overview of Release Notes for HP-UX 11i


IMPORTANT

These Release Notes may have been updated after the version you are currently reading was created. If a later version is available, it will be included on the http://docs.hp.com web site and the HP-UX 11i Instant Information CD-ROM. See Section 1.7 Other Sources of Information on HP-UX 11i for more information.


The purpose of this chapter is to help you to use these Release Notes along with related HP-UX documentation most effectively.

The following topics are covered in this overview:

1.1 What Is the Purpose of HP-UX Release Notes?

HP-UX Release Notes describe what is new, changed, or obsolete within an HP-UX release as compared with previous releases. HP-UX Release Notes apply only to features that are included as part of the HP-UX operating system or one of the four new Operating Environments. Operating Environments are discussed later in this Chapter under Section 1.4 Overview of the HP-UX 11i Release.

Additional product-specific release notes files are located in the /opt directory, in sub-directories named /opt/product_name/newconfig/RelNotes (where product_name represents the name of the product for which those release notes apply). For example, Distributed Computing Environment (DCE) release notes are located in the /opt/dce/newconfig/RelNotes directory.

The purpose of HP-UX 11i Release Notes is to explain the major differences between HP-UX 11.0 and 11i. For information on changes to HP-UX that occurred at 11.0, consult the archival release notes located in /usr/share/doc/11.00RelNotes or at the http://docs.hp.com web site. For information on changes to HP-UX that occurred at 10.30 or before, also see the docs.hp.com web site.

Release Notes do not completely document all of the features of a release. Instead, they contain high-level information and provide pointers to more detailed operating system and product-specific documentation. Where appropriate, Release Notes also tell you about changes in the support of products.

1.2 What's In the Remaining Chapters?

Here is a listing of the remaining chapters of these Release Notes:

1.3 Where Should I Begin?

This document contains information about the release of HP-UX called 11i (in this document referred to as "HP-UX 11i" or just "11i"). Also included in this document is information on changes to HP-UX that occurred after the last major system release, HP-UX 11.0, and which have been incorporated in HP-UX 11i. These latter changes were made as part of less comprehensive releases known as Extension Pack releases (for servers) and "ACE" releases (for servers and workstations) since 11.0.

If your organization did not receive any of the Extension Pack or ACE releases, then all of the information in this document will represent new information to you. If, on the other hand, your organization did receive one or more of these releases, then you may already be familiar with some of the material in this document. Material that no customers will have seen before is shown by the word (new) in the title of a section.

Be sure to examine the "HP-UX 11i Installation and Update Guide", part no. B2355-90703, for details on performing an installation.

If you are updating to 11i from a release other than 11.0 (as opposed to cold-installing), your system first must be running either HP-UX 11.0 or 10.20. For help updating to 11.0 or 10.20, you should consult the installing and updating documentation and the release notes documentation for either 11.0 or 10.20 on the http://docs.hp.com web site. You may also want to view the HP-UX 11.x Software Transition Kit at http://devresource.hp.com/STK.

1.4 Overview of the HP-UX 11i Release

HP-UX 11i provides new hardware enablement, additional software functionality, and various HP-UX applications bundled into an Operating Environment. It is the recommended next-level enterprise release for all HP-UX systems currently running HP-UX 10.x or 11.0.

Installing or updating to HP-UX 11i will require at least a 4GB root disk. See the HP-UX 11i Installation and Update Guide, part no. B2355-90703, for complete information.

1.4.1 Performance Considerations

The performance of HP 9000 servers and applications with the HP-UX 11i Operating Environments is as good or better as compared to HP-UX 11.0 installed in the same configuration. It must be kept in mind, however, that in the vast majority of cases, HP-UX is likely to be installed as part of one of the predefined HP-UX 11i Operating Environments. For more information on Operating Environments, see the next section.

The HP-UX 11i Operating Environments provide numerous benefits. These include lower cost as well as simplification of product ordering, installation, integration, and support. While the HP-UX 11i Operating Environments provide these desirable benefits, they all involve more software components and daemons than a base HP-UX 11.0 or HP-UX 11i operating system. Because of this, the Operating Environments may have somewhat greater system overhead compared to a base operating system installation. This increase in system overhead, while modest, can nevertheless make it erroneously appear that system and application performance are degraded with HP-UX 11i as compared to HP-UX 11.0. In fact, performance with HP-UX 11i is generally better than HP-UX 11.0 when the software configurations are the same.

While not recommended, one of the options for installing HP-UX 11i is as a base operating system only, without an Operating Environment. Installing HP-UX 11i as a base operating system will give the greatest performance and the lowest system overhead but eliminates the advantages provided by the HP-UX 11i Operating Environments.

1.4.2 The HP-UX Operating Environment (OE)

Beginning with HP-UX 11i, the operating system is delivered as part of the HP-UX Operating Environment (OE). An Operating Environment is an integrated and tested software solution containing the operating system and selected applications.

The following software bundles are always delivered with an Operating Environment. Thus, if you do a minimum install, these bundles, plus the HP-UX applications within each OE, will be loaded:

1.4.2.1 For HP 9000 Servers

The following lists each 11i Operating Environment available for HP 9000 servers:

All products included with each OE are described in Chapter 4. Some applications may require post-installation configuration; see the HP-UX 11i Installation and Update Guide, part no. B2355-90703, for details.

1.4.2.2 For HP 9000 Technical Workstations and Technical Servers

The following is the 11i Operating Environment available for HP 9000 technical workstations and technical servers:

All products included with this OE are described in Chapter 4. Some applications may require post-installation configuration; see the HP-UX 11i Installation and Update Guide, part no. B2355-90703, for details.

1.5 Migrating from Previous HP-UX Releases

You can cold install HP-UX 11i on any supported system listed in Chapter 2. However, to update to 11i, you must first be running either HP-UX 10.20 or 11.0. If you wish to update to 11i from any other version of HP-UX than 10.20 or 11.0, please see the "HP-UX 11i Installation and Update Guide", part no. B2355-90703, for information on supported migration paths.

1.6 Where Else Can I Find Present and Previous Versions of the Release Notes?

Release Notes are found in the following:

1.7 Other Sources of Information on HP-UX 11i

In addition to these Release Notes, you have many other sources of information available to you.

1.7.1 README Documents

A README document contains information about the installation process that may not appear in the installation manual. Any product may have a README document, so you may have available several README documents. The README document specific for 11i is included with your media kit.

1.7.2 White Papers

For 11i, white papers that previously were available in the directory /usr/share/doc will now be found on the HP web site (see below). An exception is the HP-UX 11i Patch List White Paper which will still be found in /usr/share/doc. Another exception is the Superdome Configuration Planning White Paper which will also be found in /usr/share/doc as well on the HP web site.

1.7.3 HP-UX 11i Instant Information CD-ROM

As of HP-UX Release 10.30, Hewlett-Packard introduced a new product, Instant Information, which provides HP-UX documentation on a CD-ROM. This new format replaced the HP LaserROM product as of HP-UX Release 11.0. Instant Information provides improved online presentation, print quality and search capabilities.

1.7.4 Manpages

For 11i systems, the manpages are available in Instant Information under the title HP-UX Reference volumes 1 through 9, and as always, by using the man command.

1.7.5 The HP-UX Documentation Set

The HP-UX documentation set describes how to set up and use the basic HP-UX operating system. It includes information on system administration, networking, the X Window System, and so on.

1.7.6 The HP Documentation Web Site

Hewlett-Packard provides a web site where the latest HP-UX documentation and updates are available. The site can be accessed through http://docs.hp.com.


Chapter 2: Superdome Systems

2.1 Introduction (new)

Hewlett-Packard's new Superdome systems provide a highly configurable, high-performance HP-UX server environment.

A major new feature of Superdome servers is partitions. This capability allows you to configure a single Superdome server as either one large system or as multiple smaller systems. Because partitions are managed through software, you can reconfigure a server without physically modifying the server's hardware configuration.

As a result, a Superdome system can run multiple instances of the 11i operating system on a single server. This capability is accomplished by defining multiple partitions within a Superdome server.

Each partition definition establishes a subset of a Superdome server's hardware resources that are to be used as a system environment for booting a single instance of HP-UX.

All processors, memory, and I/O in a partition are available exclusively to the software running in the partition. Thus, each partition runs a single instance of the firmware, Boot Console Handler (BCH), and HP-UX.

You can reconfigure partitions to include more, fewer, and/or different hardware resources, but this will require shutting down the operating system running in the partition and resetting the partition as part of reconfiguring it.

For more specific task-oriented information on the new Superdome servers, refer to Managing Superdome Complexes: A Guide for HP-UX System Administrators, part number B2355-90702.

2.2 New Superdome Systems at HP-UX 11i (new)

The following three new models are fully supported:

Each model has the following identical features:

The three models differ with regard to the characterics shown in Table 2-1.

Table 2-1: Maximums for Superdome Models
Superdome 16-waySuperdome 32-waySuperdome 64-way
Number of Cells4816
Number of Processors163264
Amount of Memory64GB128GB256GB
Number of I/O Slots484896

Note: When available, I/O expansion cabinets will extend the number of I/O slots on each model by up to 72 slots.

2.3 Superdome Machine Identifier (new)

The uname -i command on your Superdome systems may not return a unique value for each system. To guarantee compatibility on current and future platforms, use the new interfaces to getconf(1M) and confstr(3C) to retrieve unique machine identifiers.

These interfaces are documented in the manpages and in Chapter 13: Programming of this document.

2.4 Superdome Partitions (new)

HP-UX 11i is the first operating system release for the new Superdome platform. Superdome systems' hardware and firmware and HP-UX 11i allow a system to be configured into multiple partitions that consist of one or more cells. A cell contains a maximum of four CPUs, a maximum of 16GB of memory, plus I/O bridges and peripherals.

Adding cells to, or removing cells from, a partition will require a reboot. This allows the system administrator to designate a new configuration at any time before the reboot, after which the new configuration will take effect.

Superdome partition technology increases the flexibility of system workload management of a large system while maintaining the benefit of application protection, as if running on separate small systems. Configuring partitions is done with the Partition Manager Graphical User Interface or from a new set of commands (see partition(1)). Partition Manager can be launched from sam, directly from the command line using the /opt/parmgr/bin/parmgr command, or from a PC web browser.

Other key HP-UX support for the partition architecture is included with the Superdome configuration commands, Superdome kernel support (machine dependent code), and PCI Card Online Addition and Replacement (OLAR).

2.5 Superdome Systems' Enablement (new)

2.5.1 HP Superdome Systems' Hardware Path Format

The HP-UX hardware path on HP Superdome systems is provided in the format described here. The HP-UX command ioscan reports the hardware paths for components within the partition in which the command is issued.

Note that the ioscan command reports information only for the currently active hardware components in the local partition. It does not report details for hardware not assigned to the local partition.

On Superdome systems, HP-UX hardware paths conform to the following format:

a/b/c/d/e.f.g

The components of a hardware path are as follows:

a

The global cell number

b

A processor (10-13), memory (5), or system bus adapter (0). Each Superdome I/O chassis has a single system bus adapter.

c

A local bus adapter (the LBA, one for each PCI card slot in the chassis). The LBA connects its corresponding PCI card slot with the system bus adapter.

Note that the LBA number is not necessarily the same as the PCI slot number. See the section "HP Superdome PCI I/O Slots and Hardware Paths" in Managing Superdome Complexes: A Guide for HP-UX System Administrators for important details.

d

The card's address on the slot's PCI bus.

Typically this is 0 (zero), although the Superdome core I/O card has multiple devices in a single card.

e

The function for the I/O card. Typically this is 0 (zero) for single-function cards.

f

The target of the I/O device, or SCSI ID.

g

The device-specific address such as a SCSI controller (initiator).

Refer to the ioscan(1M) manpage for details on using ioscan to list hardware path information.

This hardware path format is used only on Superdome systems.

2.5.2 hd_fabric Driver

The HP-UX 11i install kernel does not include a /stand/system entry for hd_fabric, a new 11i driver. However, this entry is added to the system file as part of the installation process on Superdome systems. When the /usr/sbin/mk_kernel command builds a kernel, the hd_fabric driver is built into the HP-UX kernel.

The hd_fabric driver supports partition configuration commands (/usr/sbin/parstatus and others) and related functionality in the Partition Manager, although it is not required for booting Superdome system partitions.

This affects all three Superdome systems -- Superdome 16-way, Superdome 32-way, and Superdome 64-way. HP-UX kernels built with hd_fabric present in the system file will not cause compatibility issues on non-Superdome systems.

2.6 New and Modified Superdome Commands (new)

Seven new system administration commands are provided with HP-UX 11i for creating and maintaining partitions on all Superdome systems.

Additionally, the existing commands shutdown, reboot, and setboot have been modified to support Superdome platforms.

2.6.1 New Commands

Brief descriptions of the seven new commands which are used to manage a Superdome complex are given below:

Command

Description

parcreate(1M)

Create a new partition.

parmodify(1M)

Modify an existing partition.

parstatus(1)

Provides information about an entire Superdome complex, including displaying partition information and available resources in the complex.

parremove(1M)

Remove an existing partition.

parunlock(1M)

Unlock the Stable Complex Configuration Data or Partition Configuration Data.

fruled(1)

Turn locator LEDs on/off for cells, cabinets and I/O chassis.

frupower(1M)

Enable or disable power to a cell or I/O chassis, or display the power status of cells or I/O chassis.

2.6.2 Modified Commands

The commands shutdown and reboot have been modified to support Superdome platforms. Two new options -Rand -Hhave been added to both these commands. The -Roption is used to shut down the system to a "ready to reconfig" state and reboot automatically. The -Hoption is used to shut down the system to a "ready to reconfig" state but without rebooting. The "ready to reconfig" state is the state that a partition must be put into before new cells that have been assigned to the partition can be active or to complete the removal of cells that have been unassigned from the partition. (A normal reboot will not activate newly assigned cells.) See Managing Superdome Complexes: A Guide for HP-UX System Administrators, part no, B2355-90702 for more information. The default behavior or the behavior of all the other existing options remain unchanged.

The interpretation of Autoboot and Autosearch in the command setboot has changed for systems that support hardware partitions. The firmware interprets the bits in combination and not individually as done before.

In order to approximate the traditional behavior of setboot, the user input for the Autoboot and Autosearch flags is internally mapped to the right combination to achieve the desired behavior. This mapping should be transparent to the user of setboot, but might show up when accessing the firmware using means other than setboot. For the primary path, the boot action corresponds to the Autoboot and Autosearch flags in the following manner:

AutoBoot

AutoSearch

Boot Action

off

off

Go to the Boot Console Handler (BCH) and prompt the user

on

off

Attempt the primary path; on failure got to BCH

on

on

Attempt the primary path; on failure try next path

off

on

Skip the primary path and try alternate. If the alternate paths are not configured boot or fail, go to BCH.

Additionally, systems with hardware partitions support a boot action for each path. However, the boot action for the paths other than the primary path cannot be set using setboot. Instead, these must be set through the Boot Console Handler using the pf command. The default boot action for the hardware partitions is to "skip this device and try next path." The case where both the Autosearch and Autoboot flags are "on" will not work as expected until the path flags for the alternate paths are set appropriately through the BCH. In the default case, specifying setboot -b on -s on will not cause an alternate path to be automatically booted when the primary path fails. Instead the user will be prompted.

A new field called the Root Cell Numberhas been added to the bootpath in setboot, to support this command on the Superdome platform. The bootpath displayed by setboot now includes Root Cell Numberon Superdome platform. To set the bootpath using setboot, the user needs to include Root Cell Numberin the bootpath.

2.6.3 Documentation Changes

Eight new manpages have been added which document the syntax and usage of the new commands. The manpages of reboot(1M) and shutdown(1M) have been updated to document the -Rand -Hoptions. The manpage of the setboot(1M) command has been updated.

2.7 Partition Manager (parmgr) (new)

Partition Manager (parmgr) is a new system administration tool that supports the initial and ongoing configuration of Superdome systems and also provides extensive information about the status of a Superdome complex.

Partition Manager can be launched from SAM or directly from the command line. It can also be launched from a web browser running on a PC; this requires that the ApacheWeb Server (described under Section 4.2 HP-UX 11i Operating Environment (new) in Chapter 4) be running on a partition -- the URL for the parmgr launch page is http://hostname:1188/parmgr/. See the parmgr online help or Managing Superdome Complexes, part no. B2355-90702 for details.

The functionality provided by the Partition Manager includes the ability to:

Selected configuration screens of the Partition Manager can also be launched via the command line by use of the -t task option. See the parmgr(1M) manpage for more details.


NOTE

Partition Manager includes online help that is displayable within a web browser. In this release of Partition Manager, the online help will only display correctly in the NetscapeTM web browser, version 4 or later.

An appropriate version of Netscape is included in the Operating Environment (OE) bundle that is shipped with this release of HP-UX. Please install the OE bundle on any machine running Partition Manager for full access to the online help.


2.8 Guardian Service Processor (GSP)

See Section 3.4 Guardian Service Processor (GSP) in Chapter 3.


Chapter 3: Workstation/Server Specific Information

3.1 Systems That Are Fully Supported (new)

HP-UX 11i continues to support both a 32-bit and 64-bit version of the HP-UX kernel.

The tables below outline the supported HP-UX 11i configuration for HP 9000 servers and workstations.


NOTE

The information in the following tables is subject to change. For the most up-to-date data, refer to the following Web site: http://devresource.hp.com/STK/hpux_faq.html.


Table 3-1: Servers
Model(s)32-bit Support 64-bit SupportComments
A-Class: A180, A180C Yes

PA-7300LC

A-Class: A400, A500

Yes

PA-8500 CPUs and forward

D-Class: D270/370, D280/380, D390 Yes Yes

PA-8xxx

D-Class: All other Yes

PA-7xxx

K-Class: Kx50, Kx60, Kx70, Kx80 Yes Yes

PA-8xxx

K-Class: Kx00, Kx10, Kx20 Yes

PA-7xxx

L-Class: L1000, L2000, L3000

Yes

PA-8500 CPUs and forward

N-Class: N4000 Yes

PA-8500 CPUs and forward

R-Class: R380, R390 Yes Yes

PA-8200 CPUs and forward

Superdome systems: Superdome 16-way, Superdome 32-way, Superdome 64-way

Yes

See previous chapter.

T-Class: T5xx Yes

PA-7xxx

T-Class: T6xx Yes Yes

PA-8xxx

V-Class: V22xx, V2500, V2600 Yes

PA-8200 CPUs and forward

The following D-Class systems support HP-UX 11i 64-bit operation:

Table 3-2: D-Class Support for 11i 64-bit
ModelCPUSpeed (MHz)32/64 bitMinimum Firmware Revision
D270/370PA8000160Both38.27 or later
D280/380PA8000180Both38.27 or later
D390PA8200240Both38.28 or later

Table 3-3: Workstations
Model(s)32-bit Support 64-bit SupportComments
Series 700 PA-7xxx Yes

All 712, 715/64/80/100/100XC, 725/100

B-Class PA-7300LC Yes

B132L, B160L, B180L

B-Class PA-8500 and forward Yes

Bx000

C-Class PA-7xxx Yes

C100, C110, C160L

C-Class PA-8xxx Yes Yes

C160, C180, C180-XP,C200, C240, C360

C-Class PA-8500 and forward Yes

C3x00

J-Class: PA-7xxx Yes

J200, J210, J210XC

J-Class: PA-8000/8200 Yes Yes

J280, J282, J2240

J-Class PA-8500 and forward Yes

J5x00/J6000/J7000

These workstations and graphics adapters are no longer supported:

3.2 HP-UX V-Class Changes (new)

3.2.1 Single-Bit Memory Error Handling Enhancement

Single-bit memory errors will now be handled exclusively by memlogd. This allows the system to remove lockable pages that experience repeated single-bit memory errors. These pages are dynamically removed from the kernel's list of free pages and the system uses the Page Deallocation Table to remove them at boot time. Single-bit memory error logging information can be viewed using the Support Tools Manager (STM). This information will no longer be placed in /var/adm/syslog/syslog.log.

3.3 SCSI Interface Driver scsi_c720

The following changes are available for the Small Computer System Interface (SCSI) on the platforms mentioned below:

For more information on the SCSI standard, refer to:

http://scsita.org/

3.3.1 Changing SCSI Speeds

You need to be aware of the device limitations before changing SCSI speeds for HBA's. A common mistake is to set an HBA to Ultra Speeds and connect it to a JBOD (Just a Bunch of Disks). The disks may be able to support Ultra, but the cabinet itself may only be FAST compliant resulting in problems with the SCSI BUS. Cable types and length criteria change when using higher rates.With the new speed capabilities it is important to consult the SCSI specification before changing HBA speeds so that the SCSI BUS configurations are valid.

3.4 Guardian Service Processor (GSP)

The Guardian Service Processor (GSP) is a new console subsystem on N4000, all L-Class models, the new A-Class machines (the A400 and A500), Superdome systems, and all new servers introduced starting with the N-Class. The GSP console driver, the software component of the GSP, provides the following features on HP-UX:

Local console port

provides system console while HP-UX is running.

Remote session port

establishes an HP-UX login session on the remote console.

Local session port

establishes an HP-UX login session on the local console.

Internal console port

supports firmware upgrade and diagnostics on GSP.

UPS port

establishes a communication channel between the UPS daemon and UPS.

SAM provides configuration support (that is, modem and UPS connections) over the GSP serial ports. The insf(1M) and mksf(1M) commands create device files for the GSP serial ports.

The following commands have been changed to provide additional support for the GSP console:

The GSP console driver is based on the existing built-in serial port driver (asio0). Every serial port on the GSP adheres strictly to the termio feature set; these features are described in the termio(7) and modem(7) manpages.

3.4.1 GSP Logging Capabilities

The introduction of GSP to the above platforms dramatically changes the way chassis operations and diagnostic evaluations are performed on a running system.

The new subsystem requires HP-UX to provide more information than was provided on previous platforms. HP-UX will continue to output the same chassis-codes and forward-progress indicators that have been provided in previous releases. On the above and subsequent systems, however, the codes are displayed on the Virtual Front Panel (VFP) of the system. Most of the existing four-hex digit chassis codes are enclosed in GSP-specific encoding.

The GSP subsystem interprets various forms of logging information from both firmware and software.

Several new software events will be logged, including:

In addition to existing four-hex digit chassis codes, the following information is sent with each event:


NOTE

The GSP will not store codes of alert level 0 after PDC's "boot complete" code. All incoming codes will display on the VFP, but level 0's will not be stored for later retrieval. This is so the log won't fill up with heartbeat entries.

PDC_CHASSIS, the old firmware call for old-style, four-hex digit chassis codes, always produces codes of alert level 0. In order to create new-style chassis codes, the PAT_ call for CHASSIS must be used.


3.5 N4000 Server Functionality

This section describes 11i functionality to enable HP 9000 models HP N4000 mid-range servers. Related operating system changes can be found in the following sections of this document:

With the exception of some new system build options, changes to HP-UX 11i for the N4000 servers will have little, if any, bearing on customers using legacy PA-RISC systems.

For the purpose of this document, all systems prior to N4000 are termed "legacy" (including B-, C-, D-, and F-Class low-end systems, K-Class mid-range systems, and T- and V-Class high-end systems).

3.5.1 Platform Infrastructure

The HP N4000 servers are the first HP systems based on PA-RISC processors with IA-64 Core Electronic Complex (CEC) components. This "hybrid" system contains a new modular platform infrastructure. New kernel interfaces and platform modules are being provided to support all current platforms, whether PA-based, IA-64-based, or hybrid.

Subsequent sections describe the following new platform architecture components:

3.5.1.1 Impact on Legacy Systems

Legacy system users will see minimal impact in their applications or system administration tools due to the changes in the platform infrastructure.

The configuration files on 64-bit systems (for example, /stand/system and master.d/core-hpux) and SAM will refer to CB-CDIO, PSMs and new CDIOs included in the system. These components may coexist in the configuration files and be loaded into the kernel at the same time, even if they are inactive on a particular platform. Run-time checks evaluate which components are activated.

For legacy systems, end users might see new entries (sapic, lba, and sba) in the /stand/system file. Some new lines have been added to CDIO and DRIVER_DEPENDENCY tables of the /usr/conf/master.d/core-hpux file to include the new central bus (cb) and the various new PSMs (for example, pa_psm or pa_generic_psm).

3.5.1.2 Configuration Changes

N4000 users must have these modules in the kernel (via the master file entries) for the PAT, SBA, and Lower Bus Adapter (LBA) components to be detected and properly configured and for the HP-UX kernel to boot. Without these modules, the HP-UX kernel will be unable to detect the hardware CEC components on a N4000 system and the kernel will not boot.

The master file, /usr/conf/master.d/core-hpux, contains the following entries for all systems.

$CDIO Table:

cb 1
lba 0
PCItoPCI 0
pa_generic_psm 0
pa_psm 0
pat_psm
sapic 0
sba 0

$DRIVER_DEPENDENCY table:

core  pa_psm  pa_generic_psm  asp lasi
sio   pa_psm  pa_generic_psm
wsio  pat_psm core DlkmDrv
lba   pci sapic PCItoPCI
GSCtoPCI pci PCItoPCI

The /stand/system file contains the following entries:

************************************************
* Bus-Dependent subsystems
*****************************************************
* lba
*****************************************************
* PSMs
*****************************************************
* sapic
* sba

3.5.1.3 PAT PSM

This software module interacts with N-Class firmware to discover and keep track of the CEC components configured on the N4000.

The PAT PSM also provides access to platform-specific hardware components at runtime.

Although it may be included and linked into all 64-bit kernels, the PAT PSM is useful only to N4000 systems. A run-time test determines whether the linked-in PAT PSM is installed on the system as of HP-UX 11.0 Extension Pack, May 1999.

Since PAT functionality is only supported on 64-bit systems, 32-bit kernels do not have the PAT PSM built into them.

3.5.1.4 SBA PSM

The SBA PSM detects and configures the system bus adapter hardware and translates addresses between the Merced bus and the underlying LBA.

The SBA PSM supports system bus adapters on all N4000 systems. It is active and visible to users on N4000 systems.

3.5.1.5 SAPIC PSM

The SAPIC PSM manages line-based interrupts. This configurable software module handles interrupts routed through the I/O SAPICs.

The SAPIC PSM conforms to the Central Bus CDIO platform infrastructure. It maintains the SAPIC redirection table.

3.5.1.6 CB CDIO

The CB CDIO contains interfaces that isolate platform-specific code from the rest of the kernel. These interfaces allow generic access to the platforms, regardless of which platform-specific PSMs are active in the kernel. The Central Bus framework interconnects the different PSMs that control the hardware.

For backward compatibility, the PA-CDIO has been restructured into a PA-generic PSM and PA-legacy PSM.

3.5.1.7 LBA CDIO

The LBA CDIO provides bus translation for all activity between the System Bus Adapter and the PCI bus. The LBA CDIO is the hardware-enabling HP-UX kernel module that controls the lower bus adapter and, therefore, all the intricacies of the dependent hardware. This CDIO also resolves any overlapping configuration issues with LBA, and interacts directly with the PCI CDIO.

3.5.1.8 PCI CDIO

The PCI subsystem has been redesigned to support PCI Card Online Addition and Replacement (OLAR) and to support a new interrupt line routing architecture.

On legacy systems (B-, C-, and V-Class), platform firmware had complete responsibility for configuring all devices. In order to support PCI Card OLAR, the PCI CDIO detects unconfigured PCI devices and programs the base address registers.

On N4000 systems, the firmware programs only the boot and console devices. The PCI CDIO must program the remaining devices, using information provided by firmware to the operating system (PAT PSM gets this for PCI).

The N4000 dis-associates interrupt routing/handling from the platform- specific bus adapter. On legacy PCI systems, the interrupt lines are routed to the PCI host bus-adapter chip and handled by the same driver (for example, GSCtoPCI and EPIC CDIOs). On N4000 systems, though the interrupt lines are routed to the LBA (PCI bus interface chip), SAPIC PSM handles the interrupt support instead of the LBA CDIO.

LBA CDIO provides N4000 specific services to support PCI drivers and access to the PCI bus. Legacy PCI bus adapter drivers have been modified to be compatible with the new PCI CDIO.

3.5.1.9 PCItoPCI CDIO

The restructuring of the PCI subsystem permits PCItoPCI configuration of devices to more than two bridges deep. There is no new functionality for this release.

3.6 ttytype(1) Support for the N4000 Console

The ttytype(1) command has been enhanced to support the N4000 console. However, there are no user-visible changes in the behavior of the command.

A new ioctl()call is added to the command to query the Guardian Service Processor (GSP) console driver for the TERM identity. If the ioctl()call fails, ttytype will continue with the existing terminal identification process.

For more information on the GSP, see Section 3.4 Guardian Service Processor (GSP) earlier in this chapter.

3.7 New stty(1) Options

Two new options have been added to the stty command to support the console on the N4000, L-Class and N-Class systems:

+queryGSP

Query the status of the GSP (Guardian Service Processor).

+resetGSP

Reset the GSP of the console.

Typically, you might use +queryGSP if you are getting no response at the console or +resetGSP if the console locks up. Here is an example of the latter, which runs the command elsewhere from the console but directing the command at the console device:

stty +resetGSP < /dev/GSPdiag1

These options require superuser status.

3.8 Workstations

3.8.1 Workstation Graphics Support

3.8.1.1 Graphics Software Support

The OpenGL, Starbase, HP PEXlib and HP-PHIGS 3D APIs are fully supported on HP 9000 PA-RISC workstations and selected servers. This software includes the run-time and programming environment packages for the 3D graphics APIs named above, plus additional software for technical computing environments.

The Graphics and Technical Computing Software is supported on all PA-RISC workstations as of HP-UX 11.0 ACE 9911: Model 7xx, B-Class, C-Class and J-Class. It is also supported on D-Class, K-Class and V-Class servers.

3.8.1.2 Graphics Hardware Support

In addition to the many existing graphcs cards, HP-UX 11i now supports the HP VISUALIZE-fxe card. This new entry-level, low cost, full-featured 3D graphics card replaces the VISUALIZE-fx2 card for 3D applications and the VISUALIZE-eg card for 2D applications.

HP VISUALIZE-fxe provides 3D support for OpenGL, Starbase, HP PEXlib and HP-PHIGS 3D APIs, with a full VISUALIZE-fx2-like feature set. It also provides 2D features via the Xserver and Xlib comparable to those of the VISUALIZE-fx2 and VISUALIZE-eg products.

HP VISUALIZE-fxe is supported on these systems:

HP VISUALIZE-fxe is not supported on the C360 workstation.

For a complete list of supported systems and graphics combinations on HP-UX 11i, consult: http://www.hp.com/visualize/

3.8.2 Workstation Firmware Requirements

Most workstations supporting 11.0 do not require a firmware upgrade to run HP-UX 11i. However, note the following recommendations for 64-bit operation:

SystemMinimum Firmware RevisionLatest Firmware Revision
B1000 2.33.1
C200, C240, C200, C2404.36.0
C3601.01.1
C3000 2.33.1
J280, J2822.12.4
J22401.21.9
J5000, J70002.33.1

B1000, C3000 and J5000 systems manufactured before September 1999 require a firmware upgrade prior to updating to HP-UX 11.x or 11i. For more information, see "HP-UX 11i Installation and Update Guide", part no. B2355-90703, for details.

3.8.3 Workstation Tuned Kernel Parameters

In this release, kernel parameters for CAE and EE Engineering workstation kernels will be optimized during the installation or update. If the system is installed or updated using Ignite-UX, this occurs automatically. If you install or update manually, the optimization occurs after you select one of the new engineering workstation kernel sets via SAM.

On factory Instant Ignition, Ignite-UX will install workstation systems with optimized default kernel parameter settings as long as the system has at least 64MB of RAM. The new defaults are optimized for general performance and will be tailored appropriately for a 32-bit or 64-bit kernel. The default parameter settings for each set are listed at the end of this section. The larger maxdsiz limit for 64-bit installations now allows users to take advantage of the increased (approximately 3GB) process data space available with this release.

Also on factory Instant Ignition, Ignite-UX automatically configures the kernel with the appropriate new CAE kernel parameter set:

Via SAM, you can apply tuned kernel parameter settings by selecting one of these new sets:

The 64-bit versions of these parameter sets configure the kernel to use the increased process data space. The CAE/ME/General Eng. Workstation sets are for general workstation use, which includes running typical MDA applications. The EE Engineering Workstation sets are for compute-intensive applications that do not perform large amounts of disk I/O. Many EDA applications fall into this category. Be sure to select the 64-bit or 32-bit versions depending on the "bitness" of your installed kernel.

3.8.3.1 CAE/ME/General Eng. Workstation 64-bit Kernel Parameter Defaults

maxusers         128
maxfiles         200
maxfiles_lim     2048
maxdsiz          0xC0000000
maxdsiz_64bit    0x400000000
maxtsiz          0x40000000
maxtsiz_64bit    0x100000000
maxssiz          0x04FB3000
maxssiz_64bit    0x10000000
shmmax           0x40000000
ninode           4000
maxuprc          256
npty             200
nstrpty          200
maxswapchunks    4096
create_fastlinks 1
fs_async         1

3.8.3.2 CAE/ME/General Eng. Workstation 32-bit Kernel Parameter Defaults

maxusers         128
maxfiles         200
maxfiles_lim     2048
maxdsiz          0x7b03a000
maxtsiz          0x40000000
maxssiz          0x04FB3000
shmmax           0x40000000
ninode           4000
maxuprc          256
npty             200
nstrpty          200
maxswapchunks    4096
create_fastlinks 1
fs_async         1

3.8.3.3 EE Engineering Workstation 64-bit Kernel Parameter Defaults

maxusers         128
maxfiles         200
maxfiles_lim     2048
maxdsiz          0xC0000000
maxdsiz_64bit    0x400000000
maxtsiz          0x40000000
maxtsiz_64bit    0x100000000
maxssiz          0x04FB3000
maxssiz_64bit    0x10000000
shmmax           0x40000000
ninode           4000
maxuprc          256
npty             200
nstrpty          200
maxswapchunks    4096
create_fastlinks 1
fs_async         1
vps_ceiling      64 
dbc_max_pct      15
dbc_min_pct      15

3.8.3.4 EE Engineering Workstation 32-bit Kernel Parameter Defaults

maxusers         128
maxfiles         200
maxfiles_lim     2048
maxdsiz          0x7b03a000
maxtsiz          0x40000000
maxssiz          0x04FB3000
shmmax           0x40000000
ninode           4000
maxuprc          256
npty             200
nstrpty          200
maxswapchunks    4096
create_fastlinks 1
fs_async         1
vps_ceiling      64 
dbc_max_pct      15
dbc_min_pct      15

3.8.4 X Window System (X11 R6) Run-Time Libraries on Workstations

This release provides workstation support for 64-bit X Window System shared library (stack).

The following X and Motif libraries are available in 64-bits:

libMrm.a 
libXm.4 
libICE.2 
libSM.2 
libX11.3 
libXIE.2 
libXext.3 
libXhp11.3 
libXi.3 
libXp.2 
libXmu
libXaw

To date, these libraries are only found in release 6 of the X libs (X11 R6) and Motif version 2.1. No 64-bit versions of the tooltalk libraries, libtt or libDtSvc are available.

The 64-bit X Window System (X11 R6) run-time libraries are usable only on systems that support the 64-bit operating system. To use the 64-bit run-time libraries, you must specify that the application will run (compile) in 64-bit mode. The 64-bit libraries are then used automatically.


Chapter 4: HP-UX 11i Operating Environments

4.1 HP-UX 11i Operating Environment Bundles (new)

The HP-UX 11i release is available in one of the following Operating Environment (OE) software bundles:

You can choose the HP-UX 11i OE software bundle that is best suited for your computing environment. Although, there are four OEs available, only one OE software bundle can be installed and operate on your HP 9000 server or workstation. The application contents of the HP-UX 11i Operating Environments available for your HP 9000 servers or workstations are shown below:
Table 4-1: Operating Environment Application Contents
ApplicationHP-UX 11i Operating Environment (servers)HP-UX 11i Enterprise OE (servers)Mission Critical OE (servers)Technical Computing OE (server & workstations)
Apache Web ServerYESYESYESYES
CIFS/9000 Client & CIFS/9000 ServerYESYESYESYES
Enterprise Cluster Master (ECM) ToolkitNONOYESNO
Event Monitoring Service (EMS)YESYESYESYES
FirstSpace VRML ViewerNONONOYES
GlancePlus PakNOYESYESNO
High Availability MonitorsNOYESYESNO
HP 3D Technology for JavaNONONOYES
HP MLIB (Math) LibraryNONONOYES
HP Message Parsing Interface (MPI)NONONOYES
HP Visualize ConferenceNONONOYES
HP-UX Runtime Environment for Java 2YESYESYESYES
HP-UX Support Tools (Diagnostics)YESYESYESYES
HP-UX Workload ManagerNONOYESNO
instant Capacity On Demand (iCOD) (Diagnostics)YESYESYESNO
Java Plug-In (JPI)YESYESYESYES
MirrorDisk/UXNOYESYESNO
MC/ServiceGuardNONOYESNO
MC/ServiceGuard NFS ToolkitNONOYESNO
Netscape Communicator YESYESYESYES
OnLineJFS 3.3NOYESYESNO
Pluggable Authentication Modules (PAM) KerberosYESYESYESYES
Process Resource ManagerNOYESYESNO
ServiceControl Manager (SCM)YESYESYESNO
Netscape Directory Server (selectable)NONONOYES
Selectable Network Drivers (selectable)YESYESYESYES
WebQoS on HP-UX Packaged Edition (selectable)YESYESYESNO

4.2 HP-UX 11i Operating Environment (new)

The HP-UX 11i Operating Environment consists of the HP-UX operating system, the 11i Operating Environment (OE) software bundle, and additional applications and drivers that you can selectively install. The HP-UX 11i Operating Environment includes the following applications:

4.2.1 Apache Web Server for HP-UX

The Apache Web Server for HP-UX Version 1.4 (01.03.12.03) is an HTTP/1.1 compliant server which implements the latest protocols, including HTTP/1.1 (RFC2616). The server includes software developed by the Apache Group for use in the Apache HTTP server project. It can be customized by writing software modules using the Apache module API.

The HP-UX 11i release of the Apache Web Server includes pre-compiled binaries that have been preconfigured to run on HP-UX 11.0 and later releases. It is supported on 32-bit and 64-bit systems. It runs as a 32-bit binary on 64-bit HP-UX 11.0 and 11i. It is not supported on HP-UX 10.20. Version 01.03.12.03 of the Apache Web Server is a 32-bit product with 128-bit strong encryption.

If you are receiving the Apache Web Server as part of the HP-UX 11i Operating Environment, the software will be installed automatically as part of the Operating Environment (OE) bundle.


NOTE

If there is a non-HP version of Apache already on the system, the Apache Web Server for HP-UX will not install. In this case, you will need to install Apache separately from the rest of the Operating Environment bundle.


4.2.1.1 Installing Apache Separately

If you are installing Apache Web Server for HP-UX separately from the rest of the OE bundle, or if you obtained the Apache product (B9415AA) independently of the HP-UX 11i Operating Environment, follow these steps:

  1. With CD2 of the HP-UX 11i Operating Environment CDs in your CD drive, run /usr/sbin/swinstall&.

  2. Select the appropriate depot.

  3. In the View menu, go to Change Software View and select Start With Products. The products that are available will display for your selection.

  4. Select Apache.

  5. Go to the Actions menu and select Install. The installation paths are /opt/apache and /opt/tomcat.


NOTE

By default, swinstall does not reinstall filesets if the same revision already exists on your system. If you want to reinstall the same revision (for example, if some files are lost), you can change the installation options by choosing Options/Change Option.


Installing a product or a fileset may automatically install dependent filesets necessary to run the selected items.

If an HP or non-HP version of Apache is already on the system, swinstall preserves the existing configuration files under /opt/apache/conf, /opt/apache/conf/jserv and /opt/tomcat/conf by renaming <files> to <file>.save. It also preserves certificates and certificate-related files under /opt/apache/conf/ssl.* directories by renaming <file> to <file>.save. In this way, you will not lose previous configuration information. However, the original configuration file (<file>.save) will be over-written if you re-install Apache.

Upon successful installation, swinstall runs Apache Web Server automatically.

Installation instructions are also included in the online Apache release notes (/opt/apache/apache.release.notes) that come with the Apache software.

4.2.1.2 Documentation

For updated information on the Apache Web Server for HP-UX, see:

http://hp.com/go/java

For more information on the Apache Software Foundation, see:

http://apache.org.

4.2.2 CIFS/9000 Client and CIFS/9000 Server

With CIFS/9000 Client and CIFS/9000 Server Version A.01.04, Hewlett-Packard provides a Common Internet File System (CIFS). CIFS is the Microsoft protocol for remote file access. CIFS is built into the operating system of all recent Windows systems including Windows 95, 98, NT 4.0, and 2000. By providing both server and client, CIFS/9000 provides file and print interoperability for environments with a mix of UNIX and Windows platforms.

4.2.2.1 CIFS Product Structure and Documentation

The following changes have been made for HP-UX 11i:

Product documentation is also available on the HP-UX 11i Instant Information CD and on the web at:

http://docs.hp.com

The documents available include:


NOTE

The CIFS/9000 documentation files require 2MB of disk space.


4.2.3 Event Monitoring Service (EMS)

The Event Monitoring Service (EMS) Version A.03.20.01 is a framework that is used to monitor various system resources. In addition to the basic monitoring framework, the EMS product includes a set of general monitors for basic network interfaces, system resources and ServiceGuard cluster objects. EMS is being released for use with the HP-UX 11.0 and HP-UX 11i operating systems, and is included in the HP-UX 11i Operating Environment. This release has all the features found in earlier versions in addition to new functionality, defect repairs and support for new hardware configurations.

The EMS Version A.03.20.01 is a minor release, with minor changes and defect fixes. The contents of EMS releases A.03.00 through A.03.10 have been incorporated, together with all A.03.10 patches.

4.2.3.1 Size Requirements

4.2.3.2 Impact

With HP-UX 11i, EMS adds a new state to the package monitor: UNAVAIL. If the monitor does not have sufficient information to determine status, the current value for the resource is set to UNAVAIL.


NOTE

The Event Monitoring Service Version A.03.20.01 does not provide Native Language Support.


4.2.3.3 Documentation

The user's manual for this version is Using the Event Monitoring Service (B7612-90015). Also, refer to the Event Monitoring Service Version A.03.20 Release Notes (B7609-90011) for additional information. Both of these publications are available on the HP-UX 11i Instant Information CD and on the web at:

http://docs.hp.com.

4.2.4 HP-UX Runtime Environment for the JavaTM 2 (JRE) Platform

The HP-UX Runtime Environment for the JavaTM 2 (JRE) Platform Version 1.2.2.04 contains the basic components for executing a Java application on HP 9000 Enterprise Servers, HP 9000 Workstations, and HP Visualize Workstations.


NOTE

For information on the HP-UX Software Developer's Kit (SDK), for the JavaTM 2 Platform, see:

http://hp.com/go/java.


This release is a maintenance release that provides many defect fixes. The previous release was 1.2.2.03.

4.2.4.1 Impact

See Section 11.2 Execute Protected Stacks (new) for the impact to Java of the new Execute Protected Stacks feature.

4.2.4.2 Documentation

Java documentation is provided on the HP-UX 11i Instant Information CD and on the web at:

http://hp.com/go/java.

4.2.5 HP-UX Support Tools: STM (online), ODE (offline) & EMS Hardware Monitors

A complete set of HP-UX Support Tools for verifying, troubleshooting, and monitoring HP 9000 system hardware, including CPUs, memory, interface cards, and mass storage devices are available for online, offline and automatically with EMS Hardware Monitors.

Support Tools Manager (STM) is the platform for executing online diagnostics. The commands to start it are xstm (GUI interface), mstm (menu-driven interface), cstm (command line interface) or stm (general).

Offline Diagnostic Environment (ODE) is the platform for executing offline diagnostics. Normally it is run from the Support Plus CD with the system offline.

EMS Hardware Monitors allow you to monitor the operation of a wide variety of hardware products and be alerted immediately if any failure or other unusual event occurs. The EMS Hardware Monitors are started automatically with no user intervention.

4.2.5.1 Impact

The HP-UX Support Tools have been modified to support new products, such as, Superdome systems.

With HP-UX 11i, the Support Tools are automatically installed when the Operating Environment bundle is installed from the HP-UX 11i Operating Environment CD. It is no longer necessary to load the Support Tools from the Support Plus Media.

The Support Plus Media, also containing the Support Tools, will continue to be distributed. As always, offline tools are run from the Support Plus CD, and they cannot be run from the HP-UX 11i Operating Environment CD.


NOTE

As of HP-UX 11i, Predictive Support is no longer distributed with the Support Tools.


Disk space required by the HP-UX 11i Support Tools is comparable to the disk space required for previous releases in the range of 60-70MB.

4.2.5.2 Compatibility

There are minor changes in monconfig, the user interface for configuring EMS Hardware Monitors. These changes relate to the client configuration files which have been added to support the multiple-view (Predictive-enabled) feature.

If you have scripts which invoke monconfig, the scripts may have to modified.

For more information on these changes, refer to "Adding a Monitoring Request" in Chapter 2 of the EMS Hardware Monitors User's Guide (June 2000 or later edition) available on the web at:

http://docs.hp.com/

Alternately, you can just run monconfig on HP-UX 11i to see the revised dialog.

4.2.5.3 Documentation

For detailed descriptions of the individual changes over the past releases of the Support Tools, see the DIAGNOSTICS.readme, the STM Release Notes, and the EMS Hardware Monitor Release Notes. These publications are available on the web at:

http://docs.hp.com/

This site also has tutorials, FAQs, Release Notes, and manuals documenting the Support Tools.

Some documentation is available through other means, for example, the Support Plus CD and the HP-UX 11i Instant Information CD. However, the web pages should provide the latest information.

4.2.6 instant Capacity on Demand (iCOD)

The instant Capacity on Demand (iCOD) Version B.02.01 provides additional processor capacity instantly on N-, L-, and V-Class servers without requiring a system reboot. That is, this can be done dynamically while HP-UX is running. This enables applications to take advantage of the additional CPU power while staying online.

For HP-UX 11i, the iCOD client software bundle, in coordination with Online Diagnostics, provides the functionality to activate processors while online and monitor iCOD processors.

There are correlated process management and command changes that are being made to properly track statistics related to iCOD processors.

The iCOD software supports participation in the iCOD program. iCOD processors can be ordered and installed or added to the N-, L-, and V-Class processors. These processors remain inactive until activated through the iCOD client software. This allows you the flexibility to increase the processor capacity on your servers as needed for capacity growth. These systems must be set up to send e-mail direct to HP for monitoring purposes of iCOD purchases.

4.2.6.1 Impact

Applications may or may not respond immediately to the additional processor capacity without restarting. The normal OS process is to begin scheduling processes on the newly activated processors. However, the application may have specific threads bound to processors that aren't bound to the new processor and optimization to the new processing environment may not occur until the application is restarted.

Per processor licensing by applications may also be impacted and have to be assessed. Correlated, and HP-UX 11i approved, changes to process management system calls related to deallocation and allocation of iCOD processors have been made. These changes affect the system calls pstat_getdynamic and mpctl.

pstat_getdynamic returns the number of active processors in pst_dynamic.psd_proc_cnt. Previously, it was always the same as pst_dynamic.psd_max_proc_cnt. The pst_dynamic.psd_proc_cnt field now excludes deactivated processors.

In the past, a call to pstat_getdynamic returned fields psd_proc_cnt (number of active processors) and psd_max_proc_cnt (max active = processors), and they usually had the same value. This is because all processors in the system are usually active. Consequently, these fields could be used interchangeably even though they had different meanings. With iCOD these fields are no longer interchangeable. Care must be taken to use the proper field for the intended use.

The pstat system call has changed such that a call to pstat_getdynamic() returns with the pst_dynamic.psd_proc_cnt field containing the number of active processors. This value is less than pst_dynamic.psd_max_proc_cnt when iCOD CPUs are present in the system.

Four other fields are adjusted in pst_dynamic structure. They are psd_avg_1_min, psd_avg_5_min, psd_avg_15_min, and psd_cpu_time[]. psd_avg_1_min is calculated by summing up the corresponding entries in psd_mp_avg_1_min[] and dividing by psd_max_proc_cnt. In effect, psd_avg_1_min reflects the average values of psd_mp_avg_1_min[]. The change is made to exclude the values of the deactivated processors when summing up entries in psd_mp_avg_1_min[]. The sum is then divided by psd_proc_cnt. This eliminates taking values of deactivated processors into account. psd_avg_5_mim and psd_avg_15_min is adjusted in a similar way.

Similarly, psd_cpu_time[i] reflects the average values in psd_mp_cpu_time[][i]. The adjustment is again to exclude the values of deactivated processors in psd_mp_cpu_time[][i] and dividing by psd_proc_cnt. This eliminates taking values of deactivated processors into account for each load average value.

Notice that even though these average fields are adjusted, no information is lost because psd_mp_avg_*_min and psd_mp_cpu_time[] still contain deactivated processor values.

The mpctl() changes include :

MPC_GETNUMSPUS

returns the number of activated processors, whereas previously, the function did not check whether the processor is deactivated before incrementing the count.

MPC_GETFIRSTSPU

returns the first activated processor.

MPC_GETNEXTSPU

returns the next activated processor and will skip deactivated ones.

MPC_GETNUMSPUS, MPC_GETFIRSTSPU & MPC_GETNEXTSPU

takes into account deactivated processors.

MPC_GETNUMSPUS

does not count deactivated processors and the other two options will not return deactivated processors' indices.

This is in line with the current specification of pstat and mpctl.

Prior to HP-UX 11i, the following commands incorrectly used the fields in pstat and mpctl: top, sar, uptime, iostat, and vmstat. These commands are fixed in HP-UX 11i in order to work correctly on iCOD systems. These changes are only relevant to iCOD systems and systems running the LPMC monitor in OnlineDiag; they do not affect other systems.

4.2.6.1.1 Performance Issues

This feature improves performance by allowing additional parallel processing capacity for applications when iCOD activations occur. It has a temporary side effect of allowing additional I/O interrupt handling capacity via the deactivated processors. This aspect changes once I/O revectoring is implemented.

4.2.6.1.2 Compatibility Issues

Applications that are aware of the number of processors in the system may need to be modified to work properly on an iCOD system. Applications that are dependent on the number of active processors most likely are dependent on the system calls mpctl and pstat.

System measurement software may or may not be impacted by iCOD because of these process management changes. Written properly, the measurement software will correctly measure the active processors only. MeasureWare and GlancePlus fall in the category of working correctly.

The system call pstat_getdynamic() returns a structure which contains the fields psd_proc_cnt. This field was previously always equal to psd_max_proc_cnt. However, now that processors can be deallocated, psd_proc_cnt can be less than psd_max_proc_cnt. Some products and commands which use these fields have done so incorrectly.For example, given a system with eight processors four of which are deallocated, psd_proc_cnt will contain four and psd_max_proc_cnt will contain eight. Previously, the fixes to mpctl and pstat, psd_proc_cnt would contain eight.

4.2.6.1.3 Alternatives

iCOD customers are required to assess if their applications function correctly with iCOD. A workaround is available to run iCOD systems in an "offline" activation mode which would allow any application to work properly in an iCOD environment.

4.2.6.1.4 Documentation

For more detailed information about iCOD, see the following documents:

4.2.7 JavaTM Plug-In (JPI)

The Runtime Plug-in (JPI) Version 1.2.2.04Ha for HP-UX 11.0 and 11i JavaTM Edition allows you to utilize a version of the JRE that is different from the JRE embedded with Netscape Navigator 4.61 or later.

By using the Runtime Plug-in for HP-UX, Java Edition version 1.2.2.04, you can access the HP-UX Runtime Environment, for the Java 2 Platform version 1.2.2.04 from within Netscape Navigator 4.61 or later.


NOTE

For information on the Runtime Plug-in for HP-UX, Java Edition, see:

http://hp.com/go/java.


For HP-UX 11i, the Runtime Plug-in is packaged as a standalone product. The size of the Runtime Environment for Java 2 version 1.2.2.04 .depot file has been reduced considerably by removing the Plug-in and offering it as a separate downloadable file.

4.2.8 Netscape Communicator

Netscape Communicator Version 4.7x (B.11.11.05) includes Netscape's popular web browser Navigator, as well as Messenger and Composer. Communicator offers the complete set of tools for browsing dynamic web content plus complete email capability.

Netscape provides periodic maintenance releases for enterprise customers that include minor feature enhancements as well as improvements to overall stability.

4.2.8.1 Installation Requirements

Netscape Communicator requires 25MB of disk space.

4.2.9 Pluggable Authentication Modules (PAM) Kerberos

Pluggable Autherntication Modules (PAM) Kerberos Version B.11.11 is an authentication service for authenticating users or services across an open network. HP-UX 11i provides Kerberos authentication through a Kerberos-Client product which is a part of the HP-UX operating system core. Kerberos is the primary authentication mechanism for Windows 2000. Windows 2000 integrates Kerberos authentication mechanism with Active Directory Service to provide enterprise-wide account management. This necessitates the implementation of the Kerberos authentication mechanism on HP-UX as a Pluggable Authentication Module.

Pluggable Authentication Modules (PAM) [OSF RFC 86] is the standard mechanism which is easily configurable to support multiple authentication technologies on HP-UX.

PAM Kerberos provides the PAM mechanism and encryption support.

The PAM service modules were implemented as a shared library, libpam_krb5.1. This library is built by linking with libkrb5.1, and is therefore not dependent on the libsys.sl library.

The HP-UX 11i implementation of Kerberos Version 5 protocol provides enterprise-wide strong user authentication. Using encryption during the user authentication process, Kerberos infrastructure provides privacy and integrity of user login information since passwords are no longer communicated in clear text over the network.

HP-UX system entry services can work with any Kerberos V5 Server, namely, MIT Kerberos and Microsoft Windows 2000. Thus, passwords can be effectively unified in an Intranet with heterogeneous systems such as UNIX and Microsoft Windows 2000. Furthermore, support of password change protocol automates propagation of password changes. These two features can significantly reduce user administration complexity in a heterogeneous environment.

The HP-UX applications using PAM include telnet, login, remsh, ftp, rexec, rlogin, dtlogin, and rcp. PAM Kerberos interoperates with a Key Distribution Center (KDC) operating on either a UNIX or a Microsoft Windows 2000 server.

The PAM Kerberos module is compliant with IETF RFC 1510 and Open Group RFC 86. PAM Kerberos is also available under the product number J5849AA on the Applications Software CD. This product provides a libpam_krb5.1 library, a pam_krb5(1) manpage and a release note document.

4.2.9.1 Installation Requirements

The minimum disk space required to install the product is 1MB. Additional disk space of about 1KB per user in the system /tmp file is required to store initial Ticket Granting Ticket in the credential cache file.

4.2.9.2 Impact

HP-UX PAM Kerberos is implemented under the PAM framework that allows new authentication service modules to be plugged in and made available without modifying the application or rebooting the system.

PAM Kerberos works on HP 9000 workstations or servers with a minimum of 32MB of memory and sufficient swap space (a minimum of 50MB is recommended).


NOTE

PAM Kerberos is not thread safe.


4.2.9.3 Coexistence Issues

PAM Kerberos (libpam_krb5.1) and PAM DCE (libpam_dce.1) plug-in modules can not be stacked together in the pam.conf file because of different principal styles and credential file paths. If so stacked, the results will be unpredictable.

The Kerberos system ftp service may list the /etc/issue file before the expected output. The sis(5) manpage provides detailed information. You cannot login if the password has expired on a Microsoft Windows 2000 KDC. You will be asked for a new password but you cannot log in. This is a known problem in Windows 2000.

When changing passwords on a MIT KDC with a version prior to 1.1, up to 45 seconds may elapse before the password is actually changed due to the protocol selection mechanism of the change password protocol.

4.2.9.4 Documentation

The following changes apply for HP-UX 11i:

4.2.10 ServiceControl Manager (SCM)

ServiceControl Manager (SCM) Version A.01.01.05 allows you to manage groups of HP-UX systems from a central server. This helps to reduce IT costs and makes it easier to manage multiple systems.

For HP-UX 11i, SCM includes the following enhancements:

4.2.10.1 Documentation

The following changes apply for HP-UX 11i:

4.2.11 Netscape Directory Server (J4258BA) (selectable)

The Netscape Directory Server Version B.04.11 is an industry-standard Lightweight Directory Access Protocol (LDAP) directory server.

Netscape Directory Server 4.11 for HP-UX is now a selectable product for the HP-UX 11i Operating Environment. This release includes features from earlier versions in addition to defect repairs.

4.2.11.1 Installation Requirements

4.2.11.2 Impact

You must purchase Extranet Client Access Licenses to use the Netscape Directory Server for HP-UX if the directory contains any entries for Extranet Users. An Extranet User is an entry in the Netscape Directory that represents a person that is not an employee nor a full-time independent contractor of the company to which the Netscape Server is licensed. Contact your HP sales representative to purchase licenses. For contact information, see:

hppt://eproducts.hp.com/buy/contact.html

4.2.11.3 Documentation

For installation instructions, refer to the Netscape Directory Server 4.11 for HP-UX Release Notes (J4257-90006) available on the HP-UX 11i Instant Information CD and on the web at:

http://docs.hp.com/

4.2.12 Selectable Network Drivers (selectable)

The I/O cards with drivers that are selectable during HP-UX 11i installation include:

4.2.13 WebQoS Peak on HP-UX Packaged Edition (J4274AA) (selectable)

The HP Web Quality of Service (WebQoS) Peak Packaged Edition Version B.01.02.06 is a web-based solution that provides the quality of service needed to maintain your web applications.

This product is now available on HP-UX 11i. There are no new features for this release.


NOTE

This product does not support the iPlanet Web Server.


4.2.13.1 Installation Requirements

Installation requirements for this product are:

4.2.13.2 Documentation

There is no hardcopy nor online documentation associated with this product. The online help for this product has not changed.

4.3 HP-UX 11i Enterprise Operating Environment (new)

The HP-UX 11i Enterprise Operating Environment provides a superset of features available in the HP-UX 11i Operating Environment. Targeted especially for database servers, this OE includes these additional applications:

See also:

4.3.1 GlancePlus Pak

GlancePlus Pak Version C.02.65 integrates GlancePlus, VantagePoint Performance Agent for HP-UX, and IT/Operatons Special Edition (ITO-SE) into a single tool to help customers better manage the performance and availability of their servers.

For more information, please refer to each product's Release Notes available on the web at:.

http://docs.hp.com/

4.3.1.1 Supported Versions of HP-UX

GlancePlus Pak supports HP-UX 10.20 and 11.0 in addition to HP-UX 11i.


NOTE

VantagePoint Performance Agent for HP-UX was previously named MeasureWare Agent for HP-UX.


4.3.2 High Availability Monitors

The High Availability (HA) Monitors Version A.03.20.01 product includes database monitors, disk monitors, and Management Information Base (MIB) monitors that can be used to set up notifications of changes in status for the important objects in a high availability cluster environment.

High Availability Monitors A.03.20.01 is being released for use with the HP-UX 11.0 and HP-UX 11i operating systems. This release has all the features found in earlier versions in addition to new functionality, defect repairs and support for new hardware configurations.

The A.03.20.01 version is a minor release, with minor changes and defect fixes. The contents of HA Monitors releases A.03.00 through A.03.10 have been incorporated, together with all A.03.10 patches.

In Version A.03.20.01, the Event Monitoring Service (EMS) added a new state, UNAVAIL, to the package monitor. This version of HA Monitors is provided for compatibility with the change in EMS.


NOTE

The HA Monitors product does not provide Native Language Support.


4.3.2.1 Installation Requirements

The HA Monitors software requires a minimum of 4.45MB of disk space and 32MB of memory.

4.3.2.2 Documentation:

Using High Availability Monitors (B5736-90025) and the High Availability Monitors Version A.03.20 Release Notes (B5736-90032) are available on the HP-UX 11i Instant Information CD and on the web at:

http://docs.hp.com/

4.3.3 MirrorDisk/UX

Prior to HP-UX 11i, LVM mirroring supported the non-SLVM environment only. In other words, the disks were only accessible by a single system and could not be shared by multiple hosts.

Beginning with HP-UX 11i, LVM mirroring automatically enables SLVM for a two-node environment supporting both non-SLVM and SLVM environments. All LVM systems can mirror their data on disk, and the mirrored copy of the data is also accessible from a two-node cluster.

4.3.3.1 Impact

There are no changes to the LVM command interface to enable LVM mirroring in the SLVM environment. Therefore, you still use the lvcreate and the lvextend commands to create mirrored logical volumes. The only software code changes were made to the HP-UX kernel and do not affect any LVM manpages, or the MirrorDisk/UX Version B.11.11 products which are:

B5403BA MirrorDisk/UX License for Workstations

B2491BA MirrorDisk/UX License for Servers

To make use of the LVM mirroring capability, you may want to add extra disks to the volume group and mirror the data on the additional disks.

4.3.3.2 Compatibility Issues

There is no need to make any changes to scripts or makefiles to make use of the LVM mirroring capability in the SLVM environment.


NOTE

SLVM mirroring is NOT supported for striped logical volumes and is ONLY supported in a two-node environment. SLVM mirroring does not support spared disks in a shared volume group. You should disable sparing by using the pvchange -z n <path> command on shared volume disks.


4.3.4 Process Resource Manager (PRM)

Process Resource Manager (PRM) Version C.01.08.02 enables system administrators to guarantee CPU, real memory, and disk bandwidth resources to users and applications on the system.

This version of PRM provides distribution of resources through shares, hierarchical PRM groups, in-kernel memory management, a Simple Network Management Protocol (SNMP) agent, remote management of PRM and an improved GUI.

PRM provides a shares model of distributing resources instead of static percentages. This model facilitates configuration changes. PRM groups can be nested, allowing for more convenient partitioning.

Memory is controlled in the kernel, through the prm2d daemon, rather than in user space, through the prm0d daemon.

The syntax for memory records is essentially the same. The only difference being that the optional SUPPRESS field is no longer needed and is ignored if present:

#!PRM_MEM:{PRMID|GROUP}:SHARES:[CAP]:::

Also, the CAP value is treated as a hard limit to the group's memory usage. Previously, it was a soft limit that could be crossed.

The prm2d in-kernel memory manager is the default for HP-UX 11i. If you prefer to use the previous manager (prm0d), follow the steps below:

  1. As root, go to the PRM install directory:

    # cd /opt/prm/bin/

  2. Make a backup of prm2d:

    # mv prm2d prm2d.original

  3. Create a symbolic link from prm2d to prm0d:

    # ln -s prm0d prm2d

The GUI has been enhanced. PRM can be remotely managed from any system with Java Runtime Environment 1.2.2 installed. PRM has a SNMP agent that makes configuration and resource information available.


NOTE

Process Resource Manager and HP-UX Workload Manager (see Section 4.4 HP-UX 11i Mission Critical Operating Environment (new)) both make use of the PRM API. Consequently, only one of the products should be used at a time.


4.3.4.1 Installation Requirements

Process Resource Manager (PRM) requires a minimum of 9MB of disk space, and 2MB of memory.

4.3.4.2 Compatibility Issues

PRM can be used with any 11.x version of GlancePlus.

4.3.4.3 Documentation

The following documentation is revised for HP-UX 11i:

4.4 HP-UX 11i Mission Critical Operating Environment (new)

The HP-UX 11i Mission Critical Operating Environment is a high availability Operating Environment for HP 9000 servers. It is a superset of the HP-UX 11i Enterprise Operating Environment. In addition to the features found in the other environments, the Mission Critical Operating Environment includes:

See also:

4.4.1 Enterprise Cluster Master Toolkit

For HP-UX 11i, the Enterprise Cluster Master Toolkit Version B.01.05 is a set of templates and scripts that allow you to configure ServiceGuard packages for the HP Domain Internet servers as well as for several third-party database management systems. The toolkit also includes other specialized tools for monitoring your mission critical environment.

The Enterprise Cluster Master Toolkit has been released for use with the HP-UX 11.0 and HP-UX 11i. This release has all the features found in earlier versions in addition to new features and defect repairs.

This version includes a new toolkit that supports the use of Oracle 8i's Oracle Standby Database in Continental Cluster configurations.

4.4.1.1 Impact

The Enterprise Cluster Master Toolkit does not provide Native Language Support. However, separate Japanese language versions of documentation are available as a part of product B5139DA with option ABJ.

The disk space requirement is 1.2MB

4.4.1.2 Documentation

The new toolkit for Oracle 8i Standby Database includes a README file, /opt/cmcluster/toolkit/SGOSB/README-CC, which explains how to use the toolkit for data replication in a Continental Cluster.

4.4.2 HP-UX Workload Manager

HP-UX Workload Manager (WLM) Version A.01.00.02 provides goal-based workload management, enabling automatic resource allocation and application performance management.

HP-UX WLM A.01.00.02 uses the Process Resource Manager (PRM) C.01.08.2 to control resources. This coupling allows you to allocate resources using the shares model. In this model, a workload's resource allocation depends on its number of shares relative to the total number of shares assigned.


NOTE

Process Resource Manager (see Section 4.3 HP-UX 11i Enterprise Operating Environment (new)) and HP-UX Workload Manager both make use of the PRM API. Consequently, only one of these products should be used at a time.


Besides resource shares, HP-UX WLM's bundling with PRM C.01.08.2 provides:

HP-UX WLM A.01.00.02 does not take advantage of PRM's hierarchical groups.

HP-UX WLM uses a configuration file specifying workloads and their prioritized service-level objectives (SLOs). HP-UX WLM automatically allocates CPU resources to the workloads based on priorities and current performance..

4.4.2.1 Installation Requirements

HP-UX WLM requires 9MB of disk space and 5MB of memory.

4.4.2.2 Compatibility Issues

HP-UX WLM can be used with any 11.x version of GlancePlus. GlancePlus should be used only for monitoring, and not for changing PRM entitlements.

4.4.2.3 Documentation

Documentation includes:

4.4.3 MC/ServiceGuard

Multi-Computer/ServiceGuard (MC/ServiceGuard) Version A.11.09 is a specialized facility for protecting mission critical applications from a wide variety of hardware and software failures.


NOTE

When you purchase the Mission Critical OE, it is assumed that you want MC/ServiceGuard, NOT ServiceGuard OPS Edition. MC/ServiceGuard and ServiceGuard OPS Edition cannot coexist on the same sytem. Users of ServiceGuard OPS Edition are encouraged to purchase and install the Enterprise OE and then install ServiceGuard OPS Edition. For detailed installation information, see the ServiceGuard OPS EditionVersion A.11.09 Release Notes for HP-UX 11i (B5161-90028).


MC/ServiceGuard A.11.09 has been released for use with HP-UX 11.0 and HP-UX 11i. This release has all the features found in earlier versions in addition to new functionality, defect repairs and support for new hardware configurations.

Auto-port aggregation is fully supported with 100BaseT network interface cards. The contents of MC/ServiceGuard releases A.11.01 through A.11.08 have been incorporated, including all A.11.08 patches.

New diagnostic error messages are written to the syslog file (/var/adm/syslog/syslog.log) when an attempt to obtain the cluster lock fails. Internal error codes are returned to facilitate troubleshooting.

MC/ServiceGuard supports the online replacement of network and I/O interface cards that is allowed by the HP-UX 11i Operating Environments.

4.4.3.1 Impact

Disk space required for MC/ServiceGuard is 36MB. The memory required is 6MB plus 700KB per package in the cluster plus 300KB per EMS resource in the cluster. This total amount is required on all cluster nodes, regardless of whether a given package or resource is on that node or not.

The Event Monitoring Service (EMS-CORE) file set is no longer included as part of the MC/ServiceGuard product, even thought EMS (B7609BA) is still a dependency and must be installed with MC/ServiceGuard.


NOTE

For the 11i, MC/ServiceGuard does not provide Native Language Support. However, separate Japanese language versions of documentation are available as a part of product B3935BA with option ABJ and product B3936BJ.


4.4.3.2 Documentation

The following topics are included in the MC/ServiceGuard Version A.11.09 Release Notes for HP-UX 11i (B3935-90033), and will be incorporated into later editions of the user's guide, Managing MC/ServiceGuard available on the HP-UX 11i Instant Information CD and on the web at:

http://docs.hp.com/

4.4.4 MC/ServiceGuard NFS Toolkit

Multi-Computer/Service Guard Network File Server (MC/ServiceGuard NFS) Toolkit Version A.11.11 uses MC/ServiceGuard to set up highly available NFS servers. NFS servers are hosts that "export" their local directories and make them available for client hosts for mounting. On the NFS client, these mounted directories look like part of the client's local file system. MC/ServiceGuard NFS Toolkit is a set of configuration files and control scripts which can be customized to user specific needs. Post installation, these files can be found in the directory /opt/cmcluster/nfs.

However, before setting up MC/ServiceGuard NFS, you should set up the MC/ServiceGuard cluster. For instructions see Managing MC/ServiceGuard available on the HP-UX 11i Instant Information CD and on the web at:

http://docs.hp.com/

MC/ServiceGuard is used to create high availability clusters of HP 9000 servers. Computer systems with high availability clusters allow applications to continue in spite of a hardware or software failure. Such systems protect users from software failures as well as from failure of a system processing unit (SPU) or local area network (LAN) component. In the event that one component fails, the redundant component takes over and MC/ServiceGuard coordinates the transfer between components.

With MC/ServiceGuard NFS Toolkit, the NFS server package containing the exported file systems moves to a different node in the cluster in event of a failure. After MC/ServiceGuard starts the NFS package on the adoptive node, the NFS file systems are re-exported from the adoptive node with minimum disruption of service to users. The client side "hangs" until the NFS server package comes up on the adoptive node. When the service returns, the user can continue access to the file. You do not need to restart the client.

File locks are not preserved when a MC/ServiceGuard NFS package moves over to another node.

For use and configuration information, see Managing Highly Available NFS (B5125-90001) available on the HP-UX 11i Instant Information CD and on the web at:

http://docs.hp.com/

4.4.4.1 Installation Requirements

Installing MC/ServiceGuard NFS Toolkit requires only about 34KB of disk space. There are no other disk space and memory requirements.

MC/ServiceGuard and MC/ServiceGuard NFS Toolkit are available only on HP 9000, Series 800 servers. MC/ServiceGuard NFS Toolkit Version A.11.11 may be used on HP-UX release 11.0 or later.

4.4.4.2 Software Requirements

Version A.11.00 or greater of MC/ServiceGuard and NFS services must be installed.

4.4.4.3 Hardware Requirements

You can use MC/ServiceGuard NFS only in a MC/ServiceGuard cluster with 8 nodes or fewer.

Data disks associated with a MC/ServiceGuard NFS package must be external disks. All the nodes that support the MC/ServiceGuard NFS package must have access to the external disks. For most disks, this means that the disks must be attached to a shared bus that is connected to all nodes that support the package.

4.5 HP-UX 11i Technical Computing Operating Environment (new)

The HP-UX 11i Technical Computing Operating Environment includes these applications:

4.5.1 FirstSpace VRML Viewer

The FirstSpace VRML (Virtual Reality Markup Language) Viewer Version B.11.11 allows you to "drag-and-drop" a VRML model in the view space for viewing. FirstSpace has changed from revision 1a to 1.10.

4.5.2 HP 3D Technology for the Java Platform

The HP 3D Technology for the Java Platform Version 1.1.3a contains the classes for creating 3D applications. The HP 3D Technology for the Java Platform may be distributed with your Java applications as long as you adhere to the terms of the LICENSE file. Vendors also need to include an installer.

This release for HP-UX 11i is a maintenance release which provides numerous defect fixes. In addition, some improvements have been made in the area of memory release.

An enhancement has been made to ensure that Java 3D releases memory when a branch graph is detached from the scene graph. In some cases however, you may need to detach the View from the scene graph to release the memory.

4.5.2.1 Installation Requirements

Prerequisites are HP-UX Software Developer's Kit (SDK) for Java version 1.2.2.x, and the HP-UX 700 OpenGL 3D Graphics Runtime Environment (B6268AA).

4.5.2.2 Documentation

For information on HP 3D Technology for the Java Platform, see

http://hp.com/go/java

4.5.3 High Performance Math Libraries (HP MLIB)

High Performance Math Libraries (HP MLIB) Version B.07.01 contains both the Linear Algebra Package (LAPACK) and the Vector Library (VECLIB) subprograms, providing mathematical software and computational kernels for engineering and scientific applications involving linear equations, least squares, eigenvalue problems, and the singular value decomposition.

New features include:

4.5.3.1 Impact

HP MLIB incorporates algorithmic improvements, and several tunable parameters are adjusted for good execution performance.

You can use HP MLIB as archive or shared libraries. Performance of your applications is better when you use archive libraries. However, if you need to keep executable files small, you can use shared libraries on any PA-RISC 2.0 system running the HP-UX 11.0 or later operating system.

VECLIB is optimized by using a highly efficient implementation of the Basic Linear Algebra Subprograms (BLAS), Levels 1, 2, and 3, as well as a subset of the newly-defined BLAS Standard. Performance for key BLAS routines has been improved.

MLIB fully conforms to the public domain version 3.0 of LAPACK in all user-visible usage conventions. The internal workings of some subprograms have been tuned and optimized for Hewlett-Packard computers.

This version simplifies sparse solver interface use and improves its performance. Version 4.0 of the METIS reordering technology has been incorporated.

You can now use the C or C++ compiler to link applications built with MLIB. Previous to this release, you were required to link using the Fortran compiler when using VECLIB or LAPACK.

4.5.3.2 Documentation

For more detailed information, see:

Refer to the http://hp.com/go/mlib web site for additional product information.

4.5.4 HP Message-Passing Interface (MPI)

HP Message-Passing Interface (MPI) Version B.11.11 is a high-performance implementation of the Message-Passing Interface Standard. HP MPI complies fully with the 1.2 standard and partially with the 2.0 standard. HP MPI provides an application programming interface and software libraries to support parallel, message-passing applications.

New features include:

HP MPI supports the TotalView debugger on HP-UX version 11.0 or later.

You can collect profiling information for applications linked with the thread-compliant library in addition to those linked with the standard MPI library. Counter instrumentation (MPI_INSTR) is supported for the thread-compliant library regardless of thread level. Trace file generation (XMPI) is supported for all thread levels except MPI_THREAD_MULTIPLE.

This release expands MPI-2 support by supporting MPI-2 object naming routines.

The new error checking flag (-ck) allows you to check appfile set-up, host machine and program availability, and file permissions without creating MPI processes.

Timeout errors before MPI_Init that may have been seen in older versions of the product do not occur in this version because mpirun no longer makes assumptions about time to MPI_Init.

4.5.4.1 Documentation

The following HP MPI documentation is provided for 11i:

Refer to http://hp.com/go/mpi for the HP MPI Release Notes, documentation, and other product information.

4.5.5 HP Visualize Conference

HP Visualize Conference Version 1.4 (B.11.11.06) is a collaborative conferencing solution for HP Visualize UNIX Workstations that can interoperate with Microsoft's NetMeeting, Sun's SunForum, and SGI's SGImeeting products.

Functionality changes have not occurred in HP Visualize Conference since version 1.3 was released. Version 1.3 added support for NetMeeting 3 while maintaining backward compatibility to version 1.2 and NetMeeting 2 via two running modes:

4.5.5.1 Impact

The HP-UX 11i release of HP Visualize Conference is functionally identical to HP Visualize Conference 1.4 for HP-UX 10.20. There is no impact on other system performance or other system components.

4.5.5.2 Compatibility Issues

HP Visualize Conference 1.4 (B.11.11.06) on HP-UX 11i is compatible with HP Visualize Conference on HP-UX 11.0 and 10.20, Microsoft's NetMeeting, Sun's SunForum, and SGI's SGImeeting.

4.5.5.3 Documentation

Online help was enhanced at HP Visualize Conference version 1.3 to cover how to utilize NetMeeting 3 functionality:


Chapter 5: I/0 and Networking Cards

5.1 Online Addition and Replacement of I/O Adapters (new)

Online Addition and Replacement (or OLAR) of PCI I/O cards (adapters) is a new HP-UX software feature that allows for adding and replacing PCI I/O cards while a system is running, eliminating the need to reboot.

This feature enhances an overall high availability solution since the system can remain active while an I/O adapter is being added or replaced. When combined with other high availability products, such as HP MC/ServiceGuard, system availability is significantly improved.

SAM provides the system administration interface for OLAR. The first release of OLAR in HP-UX 11i provides support for the addition and replacement of I/O cards on L-Class, N-Class, and Superdome systems. Many future HP 9000 systems are being designed with this feature as well.

For more information about the OLAR feature, see:

5.2 Network Drivers (new)

5.2.1 New Network Driver btlan Pre-Installed in the HP-UX 11i Operating Environment

The networking driver for HP-UX 11i has been simplified and is now easier to install and upgrade.

The PCI and HSC-based Fast Ethernet network and I/O cards supported by drivers btlan, btlan3, btlan4, btlan5 and btlan6 have been combined into a single driver called btlan. This new driver is pre-installed as part of the kernel.

The result is to ease setup or upgrade of the networking and I/O products by eliminating driver installation and combining multiple drivers into one.

5.2.1.1 Impact

The btlan driver works seamlessly with existing HP LAN link administrative commands such as: lanadmin, lanscan, linkloop, and NetTL.


IMPORTANT

There is no impact to you unless you have scripts that refer specifically to btlan3, btlan4, btlan5 or btlan6. The new btlan driver supports the same functions and features as the previous HP-UX 10.20 and 11.0-based drivers. In addition, it also supports the online addition and replacement of I/O cards on L-Class, N-Class and Superdome servers.


You will need to use the new driver name btlan with the following commands:

You will also see the driver name btlan as the output in:

5.2.1.2 Files Changed

The following files have changed to include the new btlan driver name: (these are mostly just name changes):

5.2.1.3 Networking and I/O Card Pre-Installed Drivers

All of the following networking, I/O, and mass storage cards will have their drivers pre-installed with (or built into) each of the the HP-UX 11i Operating Environments:

Instructions for configuring built-in PCI cards can be found in Appendix C of the HP-UX 11i Installation and Update Guide, part no. B2355-90703.


NOTE

Tachyon TL is an Agilent manufactured Single Port PCI Fibre Channel Adapter. It provides 2X PCI support (64-bit 33MHZ) and is a replacement for the current PCI Tachyon adapters.

On 11i, the new functionality will be primarily OLAR support and boot support. It allows for a hot swap of the card without rebooting.


5.2.2 Combine Pre-HP-UX 11i Configuration Files

In HP-UX 11i, the drivers for PCI and HSC-based Fast Ethernet networking are consolidated into one driver called btlan. This new driver is pre-installed as part of the kernel.


NOTE

The configuration files used by the PCI and HSC-based Fast Ethernet networking drivers must be combined, either by use of a script or manually, into one configuration file before upgrading to HP-UX 11i.


The configuration files used by the above drivers in HP-UX 10.20 and 11.0 - hpbtlanconf (btlan), hpbase100conf (btlan3), hpgsc100conf (btlan4), hppci100conf (btlan5) and hpsppci100conf (btlan6) which are in the /etc/rc.config.d directory - will be merged into one called hpbtlanconf by running the preupdate script BTLAN.100. The merged configuration file hpbtlanconf will be used by the consolidated driver btlan.

Merging must be done before updating, because the interface used to recognize the host might be PCI/HSC-based Fast Ethernet, which could have been configured in one of the configuration files that has to be maintained for the update to proceed. Since the update procedure needs the link up during configuration of products.

The merged configuration file created by the BTLAN.100 script will be placed temporarily in the /var/adm/sw/save_custom/UNIFIED_MER directory. During the consolidated btlan driver installation it will be moved to the /etc/rc.config.d directory as hpbtlanconf.This script will merge only the above driver specific configuration files if the corresponding hardware is present on the system, and if the files have at least one lan interface configured. For example, if the system had the HSC based (btlan4) and corresponding hardware (HSC cards), then the hpgsc100conf configuration file should have at least one card configured in it. During the update process, the original configuration files will be saved with the extension .obsolete.

If the update process is abandoned because of preupdate script failures other than syntax errors in configuration files or a duplicate LAN interface error, then the configuration files have to be merged manually. When that has been done, restart the update process.

5.2.2.1 Manual Merging

Manual merging has to be done prior to the update process in the event of failure of the update process, as discussed in the previous section. Once the update process is restarted, the user should answer NO (N) at the prompt Do you want to proceed in merging the configuration files into one[Y|N].

The five files to merge, which may exist in the /etc/rc.config.d directory are:1) hpbtlanconf (btlan); 2) hpbase100conf (btlan3); 3) hpgsc100conf (btlan4); 4) hppci100conf (btlan5); and 5) hpsppci100conf (btlan6)

5.2.2.1.1 Manual Merging Procedure

  1. Find out which of the five configuration files as listed above exists in the /etc/rc.config.d directory.

  2. For each of the files found in Step 1, find out if hardware is present by using the command ioscan -kfC lan. Look at the following list for the mapping between the driver name and its configuration file.

    Driver Name : File Name

    1. btlan --hpbtlanconf

    2. btlan3 --hpbase100conf

    3. btlan4 --hpgsc100conf

    4. btlan5 --hppci100conf

    5. btlan6 --hpsppci100conf

    If hardware is present, check to see if any LAN interface is configured. For example, the configuration for hpbtlanconf (btlan) would show as:

    HP_BTLAN_INTERFACE_NAME[0]=lan1 HP_BTLAN_STATION_ADDRESS[0]=0x080009C4686E HP_BTLAN_SPEED[0]=100HD

  3. Create the file hpbtlanconf.merge in the directory /etc/rc.config.d as follows:

    ###########################################################################

    (#) hpbtlanconf

    # hpbtlanconf: contains config values for HP PCI/HSC 100Base-T interfaces

    #

    # HP_BTLAN_INTERFACE_NAME Name of interface (lan0, lan1, . . .)

    # HP_BTLAN_STATION ADDRESS Station address of interface

    # HP_BTLAN_SPEED Speed and duplex mode

    #

    # The interface name, major number, card instance and ppa may be

    # obtained from the lanscan (1m) command.

    # The station address and speed are set through the lanadmin command.

    ###########################################################################

    HP_BTLAN_INTERFACE_NAME[0]=

    HP_BTLAN_STATION ADDRESS[0]=

    HP_BTLAN_SPEED[0]=

    ###########################################################################

    # The HP_BTLAN_INIT_ARGS are reserved by HP. they are NOT user changeable.

    ###########################################################################

    HP_BTLAN_INIT_ARGS="HP_BTLAN_STATION ADDRESS HP_BTLAN_SPEED"

    # End of hpbtlanconf configuration file

  4. Merge each LAN interface configured in each file in Step 2 into the file hpbtlanconf in /var/adm/sw/save_custom/UNIFIED_MER directory.

    1. For each LAN interface, a set of three parameters are required. The three parameters are

      • HP_BTLAN_INTERFACE_NAME,

      • HP_BTLAN_STATION_ADDRESS and

      • HP_BTLAN_SPEED.

    2. The index value used for the set of three parameters should be unique for each interface. For example:

      HP_BTLAN_INTERFACE_NAME[0]=lan1 HP_BTLAN_STATION_ADDRESS[0]=0x080009C4686E HP_BTLAN_SPEED[0]=100HD

      HP_BTLAN_INTERFACE_NAME[1]=lan2 HP_BTLAN_STATION_ADDRESS[1]=0x080009C4B23C HP_BTLAN_SPEED[1]=FULL

    3. Create the set of three parameters, as shown above, with a unique index for each interface.

      1. Copy the value of the interface name into the parameter HP_BTLAN_INTERFACE_NAME.

      2. Copy the value of the station address into the parameter HP_BTLAN_STATION_ADDRESS.

      3. If the SPEED parameter exists, and if its value (lowercase or uppercase) is 100FD or 100HD, 10FD or 10HD, or auto_on; copy the value into the HP_BTLAN_SPEED parameter.

        However, if the SPEED parameter does not exist, and the DUPLEX parameter has been set and its value (lowercase or uppercase) is FULL or HALF, copy the value to HP_BTLAN_SPEED parameter.

        If neither the SPEED nor DUPLEX parameter values have not been set do not put any value for the HP_BTLAN_SPEED parameter.

  5. If it exists, copy the hpbtlanconf configuration file /etc/rc.config.d/hpbtlanconf to /etc/rc.config.d/hplanconf.obsolete.

  6. Move the file hpbtlanconf.merge to hpbtlanconf by using the command:

    mv -f /etc/rc.config.d/hpbtlanconf.merge /etc/rc.config.d/hpbtlanconf

  7. Restart the update process. Answer NO (N) at the prompt Do you want to proceed in merging the configuration file into one [Y|N].

5.2.3 HSC and PCI 1000Base-SX/T (Gigabit Ethernet)

New with this release is a PCI 1000Base-T card which allows HP 9000's to connect to IEEE 802.3ab standard networks over Cat 5 or Cat 5E UTP copper cable. The card supports HP Auto Port Aggregation, MC/ServiceGuard, and LAN Monitor. The card operates at 10, 100, or 1000 Mbit/s and supports auto-negotiation and auto-sensing. There is no 1000Base-T card for HSC backplanes.

The HSC and PCI 1000Base-SX/9000 products provide the means for interfacing various types of HP 9000 computers to a 1000Base-SX multimode fiber network.

It is recommended that your system have at least 128 megabytes of memory when using this product.

The PCI Gigabit Ethernet cards are for use on:


NOTE

Refer to "Managing PCI Cards with OLA.R" in the "Configuring Peripherals" manual for information on doing online addition and replacement of any Gigabit Ethernet cards.


The HSC card is for use on D-, K-, and R-Class servers running HP-UX 10.20, 11.0 and HP-UX 11i, with the following exceptions: The A4925A HSC 1000Base-SX card is not supported on the D210, D220, D230, D310, D320, and D330 systems.

The A4925A card is supported on the D250, D260, D270, D280, D350, D360, D370, D380, D390, R380, and R390 systems.

Please check with your HP representative for a definitive list of HSC card-supported systems.

5.2.3.1 Compatibility Issues

5.2.3.2 Documentation Changes

The following document is new:

5.3 EISA Interface Cards Are Not 64-bit Compatible

HP-UX 11i 64-bit operation does not include support for EISA interface cards; however, they are supported on the 32-bit operating system. System configurations that include the following EISA interfaces cannot be configured to run HP-UX 11i 64-bit:

J2482A8-port MUX
J2483A64-port MUX
A2679ASingle-Ended SCSI-2 interface
A3658A100BaseT adapter
J2165A/B802.5 Token Ring
A3402ACombined 10BaseT/100VG adapter
J2815ADual-port X.25
J2220ASNA PlusLink adapter
J2794AX.25/ACC, SNAPlus/ACC adapter
A3659AFDDI (Single or Dual-Attach) adapter
25525BFast Diff. SCSI
25560AHP-IB Interface
25567BLAN/9000
4031AFibre Channel
A4308A/B100BT LAN
B5502AA/BAFDDI LAN
2159AX.25 Link
52645AA100 VG Any LAN
52802BATM
52730AA/BASNA Link

5.4 Performance Enhancements to the HSC FDDI Driver

HP-UX 11i includes code that enhances the HSC FDDI driver. These driver modifications increase performance of the FDDI link by up to 20%.

The performance enhancement was done by making the driver MBLK-based, whereas previously it was MBUF-based. Other code-path and function-call reductions have further improved performance and scalability. These changes are not directly visible to the user and have no effect on current documentation or support.


Chapter 6: Installation

6.1 Cold Install Changes (new)

The HP-UX operating system is now delivered in bundles; see Section 1.4.2 The HP-UX Operating Environment (OE) in Chapter 1 for details.

HP-UX 11i can be cold-installed with or without an Operating Environment (OE). HP strongly recommends installing a complete OE. If you choose to install without an OE, a minimum OS installation must include the following bundles: HPUXBase32 or HPUXBase64, HPUXBaseAux, and OnlineDiag. Omitting the OnlineDiag bundle may prevent some of your peripheral devices from working since they require the hardware monitors included with the Online Diagnostics. Installing or removing individual products in the OE may lead to dependency issues.

The cold install program is used on all HP-UX systems to initialize a system from scratch. The program is supplied as part of the bootable core/install CD-ROM media set and is the first interaction in the install process.

The major changes to cold install are in response to the changing media structure and the new Operating Environments. Some key differences from pre-HP-UX 11i cold install are:

6.2 Ignite-UX Changes (new)

6.2.1 Ignite-UX Version B.3.0

Ignite-UX (IUX) Version B.3.0 is an HP-UX administration toolset to help you install and configure or recover HP-UX systems.

The complete Ignite-UX product, with support for HP-UX 11i, 11.0 and 10.20, is available on the first CD of the 11i OE media kit.


NOTE

Ignite-UX will not be installed by default when updating the entire operating system from 10.20 or 11.00 to 11i even if the system currently is an Ignite-UX server.

Updating your Ignite-UX server to 11i will ensure that you have the latest version of make_recovery and can successfully run it on this system. For details on updating an Ignite-UX server, see Chapter 3 of the HP-UX 11i Installation and Update Guide.

If you are cold installing a system, you can select Ignite-UX from the software selection screen to be installed at the same time the rest of the OS is installed.


By default, running Ignite-UX will install the core HP-UX 11i files, networking drivers, and the OE. You can deselect the OE but you cannot install an OE subset using Ignite-UX. Also some of the networking drivers are not deselectable.

6.2.1.1 Impact

Ignite-UX, Version B, no longer supports the installation of 10.01 and 10.10 machines for 11i. The B Version will continue to support 10.20 and later operating system revisions. In addition, Version B will only operate on HP-UX machines that have at least 64MB of RAM. Previously, HP-UX machines that had at least 32MB of RAM were supported. Version A is not affected by these changes.

Version B supports the 64MB IUX servers and HP-UX machines; Version A supports 32MB IUXservers and HP-UX machines.

Table 6-1: Ignite-UX 11i Version B vs Version A Support
Version BVersion A
IUX Revision NumberB.3.0A.3.0
HP-UX Releases Supported10.20, 11.0 or higher10.01, 10.10 and 10.20
HP-UX Releases Supporting IUX Servers & Systems11.0 or higher10.01, 10.10 and 10.20
Minimum Memory Size for IUX Servers & Systems64 MB32 MB

Since Ignite-UX server support for HP-UX B.10.01 and B.10.10 has been obsoleted, this functionality will be removed from your system upon updating Ignite-UX to the 11i version. If you wish to continue serving B.10.01 and B.10.10 clients, you should set up a separate Ignite-UX server with version B.2.5.136.

Additional information regarding Ignite-UX is described earlier under Section 3.8.3 Workstation Tuned Kernel Parameters.

6.2.1.1.1 Documentation

The Ignite-UX Administration Guide has been updated for the HP-UX 11i, and is available on the HP-UX Instant Information CD and on the http://docs.hp.com/ web site. Another excellent source of information on Ignite-UX is the external web site:

http://www.software.hp.com/products/IUX/

6.3 update-ux Command Replaces swgettools (new)

You update an existing HP-UX 10.20 or 11.0 system to 11i using the new update-ux command. This command replaces swgettools to perform OS updates beginning at 11i. With it, you can also add a new Operating Environment (OE), change an OE, or change the OS word-width from 32- to 64-bit on appropriate systems.For more information on the update-ux command, see "Updating to HP-UX 11i" in the HP-UX 11i Installation and Update Guide.

6.4 Software Distributor (SD) (new)

Many changes have been implemented in Software Distributor since 11.0. The following sections detail the changes.

6.4.1 Multiple Target Management Capabilities Enabled

As part of the ServiceControl Manager integration, capabilities previously only available through the OpenView Software Distributor version of SD have been enabled. This includes the ability to distribute software to multiple remote targets (individually or together). This also includes the job management capabilities for scheduling jobs and viewing (local or remote) agent logfiles.

6.4.2 POSIX Enhancements and Exceptions

Software Distributor has been enhanced to meet the IEEE Std 1387.2-1995 standard (also referred to as POSIX 7.2). This affects the behavior of the command line interface and the number of options. See /usr/lib/sw/sys.defaults for a complete list of supported options, their descriptions, and default values.

Exceptions to the POSIX 7.2 standard are:

The only known exception to the distributed option of the POSIX 7.2 standard is:

6.4.3 Change in swlist to Hide Superseded Patches by Default

In 11.0, swlist shows all installed patches including superseded ones. The 11i default behavior is to not show superseded patches. This can be overcome, returning to 11.0 standard behavior, by setting -x show_superseded_patches=true on the swlist command line or in the defaults files.

6.4.4 Determining 64-bit Capability from System, Not .supported_bits

In 11.0, SD reads the /etc/.supported_bits file to map model strings to either 32, 32/64, or 64 bit capability. From time to time, synchronization breakdowns between the model command and the contents of /etc/.supported_bits create trouble on 64-bit systems.

For 11i, SD is changed to get the necessary information directly from the system, rather than using a look-up table. This will prevent synchronization breakdowns.

6.4.5 Searching for CD Only When Requested

SD introduced the automatic discovery and mounting of a CD with the release of 11.0.However, SD always looked for the CD even if that was not what was wanted. That made the start-up of the GUI slower than necessary.

The functionality is still available in the GUI, but now SD only performs this action when you push a new button in the Source Dialog called "Find Local CD".

6.4.6 Streamlined GUI

For 11i, the SD GUI requires fewer confirmations. It has been streamlined to reduce the number of verification and informational popups.

6.4.7 Shows Products Rather than Bundles After Auto-Selection

In 11.0, GUI software selection using "Match What Target Has" or "Automatically select patches for software installed on target" could be confusing because the bundles did not get marked automatically for selection in the GUI.

The new 11i behavior provides a product-level view where you see which software is matched. After inspecting the results of the automatic selection, you can continue with the installation or change the view back to a bundle level.

See Section 6.5 SD-UX Changes to Patch Installation for details.

6.4.8 Addition of Software Groups to GUI

The -f option to swinstall, swremove, swcopy and swlist, which has allowed users to specify collections of software through a file, has been incorporated into the GUI. New actions have been added to allow SD GUI users to save selected software in a "Software Group" (which creates a group) and to select that "Software Group" in subsequent sessions.

6.4.9 Layout Version Behavior

In 11.0 SD, commands automatically converted Installed Product Database (IPD) and depot catalogs to layout version 1.0 or the layout version specified via the '-x layout_version=...' option on the command line.

In 11i, no SD command will automatically convert the layout version of an existing target, IPD, or depot catalog, even if the '-x layout_version=...' is specified on the command line. To change the layout version of the IPD or depot, an explicit swmodify command is needed to make the conversion.

To convert a 0.8 depot or root to layout version 1.0 use:

swmodify -a layout_version=1.0 @ <depot_or_root>

To convert a 1.0 depot or root back to layout version 0.8 use:

swmodify -a layout_version=0.8 @ <depot_or_root>

As a result of this, the '-x layout_version' should no longer be needed except when creating a depot that is to be in layout version 0.8 format. Then the '-x layout_version=0.8' option is needed on the swpackage and/or swcopy commands used to initially create the depot. By default, SD commands that create depots will create them in layout version 1.0 format.

6.4.10 Message Changes

Many error, warning, and information messages have been removed from or changed in the SD log files. These changes are to eliminate unnecessary messages and to make remaining messages more useful in diagnosing the problem or condition being recorded.

6.4.11 Output of swlist

The output of swlist has changed in the following ways:

6.4.12 swpackage Change

swpackage no longer produces a 'warning' when an unknown attribute name is encountered. It now produces a 'note' stating that the attribute is being packaged as a 'vendor defined attribute'.

6.4.13 Bundle Selection

Previously, when you specified an unqualified bundle name for selection and the bundle name is ambiguous due to multiple revisions, SD printed out an 'ambiguous bundle' error message. Now, SD selects the newest version of the bundle by default.

This change in behavior makes bundle selection consistent with what SD does for products and filesets when multiple versions of these are available in the source.

6.4.14 control_utils file

New functionality has been added and defect repair has been done to the /usr/lbin/sw/control_utils file. Documentation on the control_utils functions can be found at http://software.hp.com/SD_AT_HP/Training under the link "Control Script Guidelines (CSG)". The control_utils library is a collection of shell functions which can help packagers produce better software packages.

6.4.15 New Environment Variable SW_COMPATIBLE

A new environment variable SW_COMPATIBLE has been created for use during the execution of a verify script which is called by the swverify command. The variable will be set to TRUE if the software being considered is compatible with the system it is installed on, and set to FALSE if it is incompatible. This new variable will help control script writers determine if installed software is incompatible and should be removed from a system.

6.5 SD-UX Changes to Patch Installation

The SD patch installation paradigm has changed for HP-UX 11i. To install patches on HP-UX 10.x systems, HP recommended that you use the match_target (Match What Target Has) option to match patches to the target. However, 10.x SD cannot identify specific software as patches.

With HP-UX 11i, SD can recognize patches based on their "internal attributes." This provides more control over patch management than in previous releases.

6.5.1 patch_match_target

The match_target option still functions, but no longer matches patches to targets. With 11i, setting the patch_match_target option to true automatically selects the latest patches that correspond to software on the target. The default setting is patch_match_target=false .


NOTE

The patch_match_target and match_target options cannot both be set to true in the same swinstall command.

Use the match_target option to update from HP-UX 10.x. Use the patch_match_target option to install new patches on systems that are already running HP-UX 11i. This option selects patches from a depot that apply to software already installed on an 11i system.


The 11i autoselect_patches option (true by default) automatically selects patches to match software selected for installation. It lets you install patches at the same time you install base software. In addition to the base software selected by the match_target option, the autoselect_patches option provides the means for selecting appropriate patches during the update process.

6.5.2 Patch Filtering

With 11i, you can more interactively manage your patch process via Patch Filtering. By using the category_tag and patch_filter options plus various version qualifiers, you can select patches based on pre-defined criteria.

6.5.3 Category Tag Information

With 11i, SD category tags are used to identify types of patches. These category tags can be used to select various patches for installation.

Some of the category tags are:

general_release
critical
hardware_enablement
defect_repair
corruption
enhancement
memory_leak
panic
halts_system

By specifying the category (c) tag in the SD version specification, you can select all patches that contain that specific category tag. For example, using the SD command line interface, if you wanted to select all patches in the depot that correspond to currently installed software and that contain the category tag "critical," you would enter:

swinstall -x autoreboot=true -x patch_match_target=true \ -x patch_filter="*.*,c=critical" -s depot_name

By using the pipe (|) function, you can combine category tags. For example, to install patches that are either critical OR hardware_enablement:

swinstall -x autoreboot=true -x patch_match_target=true \ -x patch_filter="*.*,c=critical|hardware_enablement" \ -s depot_name

To preview the patches that are selected for a particular swinstall session, the -p (preview) option can be used. The -p option will cause SD to analyze the installation, then exit (that is, the actual installation will not be performed). Look in the /var/adm/sw/swinstall.log file to determine which patches were selected.

To use category tags with the SD Graphical User Interface: under the Options menu, select Manage Patch Selection. Then select the box labeled "Automatically select patches for software installed on the target." In the "Filter..." text field, add the desired filters to the *.* . For example, to select only the critical patches, the Filter... field would appear as *.*,c=critical. Likewise, to install all the patches that are critical OR hardware_enablement, the Filter...field should appear as *.*,c=critical|hardware_enablement. Select OK.

Clicking the Filter... button will display a list of the predefined category tags already formatted for use in the Filter... field. Selecting the desired category tag from this list and then selecting OK will add that, and only that, category tag to the Filter... field. Also shown under the Filter... field is the list of all category tags found in the source depot.

The list of patches that were selected for install can then be viewed by double clicking on the bundle in the main SD window. Any patches that you may not want to install can then be deselected. Be careful not to break any documented patch dependencies. Continue with the install (analysis) as with any other patch installation.

For more complete information on 11i Interactive Patch Management, refer to the manual Software Distributor Administration Guide, part no. B2355-90699.

6.6 set_parms Enhanced (new)

The set_parms program is a GUI/TUI interface that normally runs only the first time any HP-UX system is booted after installation if hostname/networking information has not been set up in advance.

For HP-UX 11i, set_parms has been enhanced to allow the selection of which networking interface to set up. In prior releases, set_parms would pick the lowest numbered LAN interface to configure in the absence of any other information. This often was the wrong interface, especially when FDDI interfaces or other optional interfaces were present on the system, forcing users into extra steps to configure the system properly.

This change will allow you to pick the LAN interface to be configured in both the case of enabling DHCP (the user picks just after the decision to use DHCP) and in the normal mainline case of setting an IP address (the user picks the interface just before setting the IP address). With this change, no additional configuration steps are immediately needed to get the system operational.

This change does not fix any previous defects.

There is a new manpage (set_parms(1M)) delivered at HP-UX 11i. However, the program itself is not new.


Chapter 7: General System Administration and Performance Monitoring

7.1 uname (1) Outputs B.11.11

The uname(1) command for identifying the version of HP-UX that your system is running will return the following version name on an 11i system:

B.11.11

7.2 Changes to System Administration Manager (SAM) (new)

The /usr/sbin/sam command starts a menu-driven System Administration Manager (SAM) program that makes it easy to perform system administration tasks with only limited, specialized knowledge of the HP-UX operating system.

SAM has been enhanced to support new devices and features in the following areas within the SAM interface: Disks and File Systems, Kernel Configuration, Network File Systems and Interface Cards, Peripheral Devices, Printers and Plotters, and Terminals and Modems. HP-UX and SAM discontinued support of NFS Diskless as of HP-UX 11.0.

7.2.1 Disks and File Systems Area

7.2.2 Kernel Configuration

7.2.3 Network File Systems

7.2.4 Network Interface Cards

7.2.5 Peripheral Devices

7.2.6 Printers and Plotters

7.2.7 Terminal and Modems

7.2.8 Documentation Change

7.2.9 Possible Future Changes

Performance improvements are planned for Card OLAR code in the Peripherals Devices area.

In the future, SAM is planning on obsoleting the following:

7.2.10 Additional SAM Changes

The Guardian Service Processor was introduced for the N4000 mid-range servers with the May 1999 Extension Pack and subsequently on all new servers. (See Section 3.4 Guardian Service Processor (GSP) in Chapter 3 for more information.) The new card has a port for the system console, as well as optional ports that can be used to connect terminals, modems and Uninterruptable Power Supplies (UPS). SAM has been modified to aid in the configuration of these optional ports.

SAM allows you to launch the Partition Manager (parmgr), the new system administration tool that supports the initial and ongoing configuration of Superdome systems. See Section 2.7 Partition Manager (parmgr) (new) in Chapter 2 for details.

In this release, SAM allows selecting workstation kernel parameter sets to tune your system for CAE/ME or EE applications. See Section 3.8.3 Workstation Tuned Kernel Parameters in Chapter 3 for more information.

7.3 HP Distributed Print Service Deprecated (new)

The HP Distributed Print Service (HPDPS) print environment is being deprecated at 11i and will be removed in a future release. A new product, separate from HP-UX called the HP Document Router, will be available as a replacement for HPDPS. The HP Document Router is a multi-function server appliance that will automate the delivery of electronic documents. It will provide a common, easy-to-use, Web-based administration interface for the centralized management of output jobs and devices (including industry leading TCP-connected network printers, fax, email, and Web).

Once available, you are encouraged to use the HP Document Router since HPDPS will no longer be supported and will be removed in a future release. For more information on the HP Document Router, contact your HP Support Representative.

Although there is not a one-to-one mapping of DPS and Document Router features or commands, the current DPS commands that are being deprecated are listed here for quick reference:

pdclean, pdcreate, pddcesetup, pddelete, pddisable, pdenable, pdgwcfg, pdls, pdmod, pdmsg, pdmsghlp, pdpause, pdpr, pdpromote, pdps, pdq, pdresubmit, pdresume, pdrm, pdset, pdshutdown, pdstartclient, pdstartspl, pdstartsuv, and pdstopd.

7.4 CXperf Performance Monitoring Support

This release supports the CXperf performance monitoring utility. CXperf is an optional product that is scheduled to be available on the HP-UX Application Release 03/2001 and later releases. This support includes a low-latency interface for monitoring performance. The interface does not significantly alter the performance of processes that are not being monitored.

CXperf support includes the ability to gather the following metrics on a per-thread basis:

CXperf support provides for per-thread performance counters and a mechanism for inheriting performance monitors in child processes created via fork. For details, refer to the cxperf(1) manpage.

For more information, also see http://www.hp.com/go/cxperf.

7.5 syslog File Logging Changes for su and login (new)

This change will only affect you if you write or use programs or scripts that parse the syslog file.

The format of text messages logged in the syslog file by the su and login commands has changed slightly. Specifically, su events are now preceded by 'su:' and login events are now preceded by 'login:'. As a result, syslog output is now more consistent with the format of messages generated by other commands. It is also easier for programs to operate that parse syslog output.

Aside from affecting the text logged in the syslog file, this change may possibly impact any programs that parse the syslog file, such as certain security monitoring tools.

Programs that read syslog files looking for su and login events will need to take this change into account.

7.6 Process Resource Manager (PRM) Disk Bandwidth Control

This release allows Process Resource Manager (PRM) to report and control disk I/O bandwidth per LVM device. Based on user configured priorities, PRM will reorder LVM disk queues to enforce the percentage of disk bandwidth a PRM group receives in an I/O-constrained environment. The functionality is documented in the PRM manpages.

7.7 Diagnostics: EMS Hardware Monitors

The Event Monitoring System (EMS) Hardware Monitors allow you to monitor the operation of a wide variety of hardware products.

When monitors encounter failure or other unusual events, they generate messages with Description, Cause and Action statements which can be used to prevent and reduce downtime caused by hardware failures.

EMS Hardware Monitors are installed automatically with the Support Tools Manager (STM). After installation, monitors must be enabled to begin operation. Most hardware monitors are supplied with a default configuration; additional configuration is optional. A few hardware monitors, such as the Fibre Channel Arbitrated Loop Hub Monitor, have special requirements. See the EMS Hardware Monitor User's Guide for details.

EMS Hardware Monitors require minimal maintenance once installed and enabled. Default notification definitions are provided so additional configuration is not necessary. New hardware resources added to the system are automatically included in the monitoring structure.

For more information, see the Instant Information CD or:

http://docs.hp.com

7.7.1 Integration with Other Applications

The Event Monitoring System (EMS) Hardware Monitors can be integrated with applications responsible for maintaining system availability, such as MC/ServiceGuard. If configured to do so, they can provide event notification to system management applications such as HP OpenView IT/O and HP Network Node Manager.

The EMS Hardware Monitors use the same EMS framework as the EMS High Availability (HA) monitors, a separate set of monitors available at additional cost.

Some of the hardware monitors for fibre channel products write event information to text logs read by a new Predictive scanner, emsscan, which in turn may send events to the Response Center via On-line Predictive.

7.8 New Option for top(1)

A new -h option to the top command is provided to suppress the individual CPU state information for multiprocessor systems. If the -h option is specified, only the average of all CPU activities will be displayed.

The change enables top(1) to display more processes on a standard (80x24) screen without the screen being dominated by state information of individual CPUs.

The manpage for top(1) has been updated to include the new option.

7.9 Improved ioscan(1M) Description Field for PCI Devices

The ioscan(1M) command displays I/O devices, memory modules, and CPUs in a tabular form for users.

Previously, PCI interface cards were listed in the ioscan output by cryptic values in the ioscan description field. These values have been replaced by PCI device header fields which provide a clearer description for most (common) devices. See the example provided below.

The changes are:

This is the old output:

H/W Path           Class           Description
8                  bc              Pseudo Bus Converter
8/0                ba              PCI Bus Bridge - GSCtoPCI
8/0/1/0            ba              PCI(10110024)  
8/0/1/0/4/0        lan             PCI(10110019)
8/0/1/0/5/0        ext_bus         Ultra Wide SCSI
8/0/1/0/5/0.1      target
8/0/1/0/5/0.1.0    disk            HP C2247WD		

Here's the new output:

H/W Path          Class            Description
8                 bc               Pseudo Bus Converter 
8/0               ba               GSCtoPCI Bridge
8/0/1/0           ba               PCItoPCI Bridge
8/0/1/0/4/0       lan              PCI Ethernet (10110019)
8/0/1/0/5/0       ext_bus          Ultra Wide SCSI
8/0/1/0/5/0.1     target
8/0/1/0/5/0.1.0   disk             HP C2247WD

The ioscan -F option provides the same as well as additional information, separated by colons for parsing by scripts. This remains unchanged. Scripts can (and should) continue to use the -F option.

If scripts are parsing this output, the most significant "keys" remain the vendor/device ID (hex digits) and "PCI" string.


Chapter 8: Process, Threads, Memory, and Kernel Parameters

8.1 HP-UX Gang Scheduling

This release includes the ability to "gang schedule" MPI (Message Passing Interface) applications and multi-threaded processes. The gang scheduler permits a set of MPI processes, or multiple threads from a single process, to be scheduled concurrently as a group.

Only applications using the HP-UX 11.0 or later MPI or pthread libraries can be gang scheduled. Because HP compiler parallelism is primarily built on the pthread library, programs compiled with HP compilers can benefit from gang scheduling.

The gang scheduling feature can significantly improve parallel application performance in loaded timeshare environments that are oversubscribed. Oversubscription occurs when the total number of runnable parallel threads, runnable MPI processes, and other runnable processes exceeds the number of processors in the system.

Gang scheduling also permits low-latency interactions among threads in shared-memory parallel applications.

An environment variable enables and disables the HP-UX gang scheduler. The variable is defined as: MP_GANG [ON] | [OFF]

Setting MP_GANG ON enables gang scheduling. Setting MP_GANG OFF disables it. No action is taken if MP_GANG is not set, or if it is set to an undefined value. After the MP_GANG environment variable is set to ON, any MPI or pthread application to execute and find this variable will enable gang scheduling for that process.

Thread and process priorities for gangs are managed identically to timeshare policy. The timeshare priority scheduler determines when to schedule a gang and adheres to the timeshare policies.

Although it is likely that scheduling a gang will preempt one or more higher priority timeshare threads, over the long run the gang scheduler policy is generally fair. All threads in a gang will have been highest priority by the time a gang is scheduled. Because all threads in a gang must execute concurrently, some threads do not execute when they are highest priority (the threads must wait until all other threads have also been selected, allowing other processes to run first).

Refer to the gang_sched(7) manpage for details about HP-UX gang scheduling.

8.2 Kernel Threads vs. CMA Threads (new)

The CMA threads (libcma) package, which is POSIX P1003.1a (Draft 4) compliant, is based on Concert Multi Thread Architecture (CMA). CMA is a user level threads package in which thread scheduling and synchronization are handled within the user space without the kernel's assistance.

CMA threads have been deprecated (slated for future obsolescence) at HP-UX 11i. This development environment will not be shipped in a future HP-UX release. Also, there is no plan to release native IA-64 CMA threads on IA-64 platforms. It is now strongly recommended that you use the currently supported kernel threads libraries and development tools. Thus, applications using CMA threads should start migrating to kernel threads.

Multi-threading is also supported in the HP-UX kernel at 11i and is known as kernel, POSIX or 1x1 threads. This kernel threads implementation, libpthread, is compliant with the approved POSIX 1003.1c (POSIX.1-1996 Draft 10) standard and will be replacing the CMA threads package.

The kernel threads implementation allows the application to take advantage of multiple processors in the system to parallelize execution of threads.

8.2.1 Compatibility Issues

It is expected that all existing CMA applications will continue to run on future releases.

As a POSIX standard, the kernel thread implementation facilitates better application portability on to POSIX-compliant vendor platforms. CMA applications may have to be ported to HP-UX POSIX threads in future releases, including those supporting IA-64, as there are differences in certain API's between CMA threads and HP-UX POSIX threads.

A white paper Porting CMA Threads Programs to HP-UX 11.0 POSIX Threads is available on the Web to help move from CMA threads to kernel threads (http://docs.hp.com). The HP-UX Software Transition Kit (STK) for 11.0/11.x/IA-64 is also available (http://devresource.hp.com/STK/) for assistance. The STK contains documents that explain how to perform a source code or system transition. For more information see http://devresource.hp.com/STK/toc_trans.html

8.3 q4 and Dynamic Process and Thread Allocation

If you use q4, the HP-UX crash dump analyzer, you will want to know about the dynamic process and thread allocation changes to the kernel.

8.3.1 Process and Thread Tables Removed

There is no longer a process or thread table in HP-UX. Those static tables are replaced by flexible, dynamic structures.

Processes are not longer allocated in one chunk at boot time; they are now allocated on demand. Due to the amount of code that assumes "once a process structure, always a process structure," HP has chosen not to deallocate processes structures at this time. Also, you can now load the active process list with a single q4 command:

q4> load proc_t from proc_list max nproc next p_factp

This replaces the old command of loading the process table, keeping the p_stat != 0. This also truly represents the active list, which the previous command did not.

If you need to look at every process structure on the system, in particular if the structure of interest is not on the active list, use the following command:

q4> load proc_t from proc_list max nproc next p_global_proc

This will load the process structures that are not currently in use and may not be correctly initialized.

Just like processes, threads are allocated on demand. Just as with processes, HP has chosen not to deallocate thread structure. To load the active thread list using q4, use the following command:

q4> load kthread_t from kthread_list max nkthread next kt_global_kthread

8.3.2 Other Features of Dynamic Process and Thread Allocation

There were several arrays allocated in parallel to the process table, in particular, pst_ucomms and pst_cmds. pst_ucomms was "dead code" and has simply been removed. The data that used to be stored there is replicated already in p_comm, which is correct and still exists.

The array pst_cmds has been removed and replaced with a string pointer to the process field p_cmnd. The field is still limited to 64 characters, although this may be increased in a future release. This table, as well as the proc and kthread symbols, no longer work on crashdumps from this release.

8.3.3 Impact

Unsupported or outdated scripts that reference the proc and kernel tables as well as the proc and kthread symbols no longer work on crashdumps from this release. Descriptions of manual procedures regarding crash analysis mayalso no longer work on crashdumps from this release.

8.3.4 Compatibility Issues

Supported q4 scripts that reference the proc and kernel tables as well as the proc and kthread symbols were modified to be compatible. The q4 script file, processes.pl, is available in the file sytem at /usr/contrib/lib/q4lib/process.pl.

8.4 Large Private Data Space (new)

This change increases the amount of private data space available for a process. An additional 1 to 2GB of private address space is now supported for 32-bit programs (if enabled on a per process basis), at the expense of shared memory address space.

8.4.1 New Options

Two new options have been added to the chatr(1) command that allow the user to control whether the 3rd quadrant (the 1GB of address space from 0x80000000-0xBFFFFFFF) and the 4th quadrant (the 1GB of address space from 0xC0000000-0xFFFFFFFF) of a process are part of the processes private address space or are shared with other running processes. Previously, the 3rd and 4th quadrants were dedicated for shared object usage, e.g. System V shared memory and memory mapped files using a shared mapping (MAP_SHARED).

The new options are:

See the chatr(1) manpage for more details.

In order to use this new feature, the maxdsiz kernel configurable variable will need to be increased appropriately. Also, the system will have to enable enough swap space to support processes with large private address spaces.

8.4.2 Compatibility Issues

Processes that enable a private 3rd quadrant (q3p processes) will reduce the amount of address space available for shared objects by 1GB. Also, q3p processes will not be able to share objects that were created by another non-q3p process, even in the 4th quadrant, unless those objects were created by the non-q3p process using the IPC_GLOBAL flag (System V shared memory) or MAP_GLOBAL flag (mmap). If recompiling is not an option, it will be necessary to make all processes that share objects with the q3pprocess into q3pprocesses (chatr +q3p enable <a.out>).

Processes that enable a private 4th quadrant (q4p processes), will have no address space available for shared objects. This means that the process will not be able to use System V shared memory, shared mapped files, etc. Shared libraries will still work, although the kernel will map them private. Note that a q4p process implies that the 3rd quadrant is private also, i.e. the kernel will not execute a process that only enables a private 4th quadrant.

The data segment cannot be extended past the beginning of the 4th quadrant, due to the fact that the system call gateway page has to remain at address 0xC0000000 for binary compatibility reasons. Therefore, the brk() and sbrk() system calls will only allow the data segment to be expanded up to that address. In order to take advantage of private address space in the 4th quadrant, memory will need to be allocated using the mmap() system call with the MAP_PRIVATE option. malloc() has been modified to do this automatically. No re-link will be necessary to take advantage of the new malloc() for a program that uses a shared version of the C library. A program that was linked with a non-shared library version of the C library, however, will need to be re-linked.

These changes have no compatibility impacts if the feature is not enabled.

This feature can only be enabled for 32-bit programs running on the 64-bit version of HP-UX. The 32-bit version of HP-UX will silently ignore the request for a private 3rd or 4th quadrant.

8.5 Memory Windows

Running without memory windows, HP-UX has limitations for shared resources on 32-bit applications. All applications in the system are limited to a total of 1.75GB of shared memory, 2.75GB if compiled as SHMEM_MAGIC. In a system with 16GB of physical memory, only 1.75 can be used for shared resources.

To address this limitation, a functional change has been made to allow 32-bit processes to create unique memory windows for shared objects like shared memory.

The memory window for default executables is 1GB.

This allows cooperating applications to create 1GB of shared resources without exhausting the system-wide resource. Part of the virtual address space remains globally visible to all processes, so that shared libraries are accessible no matter what memory window they are in.

8.5.1 Summary of Changes

The following customer-visible changes have been made for memory windows:

See the Memory Windows in HP-UX 11.0 White Paper on http://docs.hp.com for details.

8.5.2 Compatibility Issues

Incorrect use of memory windows can lead to application failure. Memory windows can be applied to any application but that does not mean the application is able to run in memory windows. Some interfaces may break when used under memory windows. HP does not consider this failure as a compatibility failure as only the application owner or software provider can certify how and if an application can run under memory windows.

Errors due to incorrect usage may be subtle and normally not associated with memory windows. In many cases software providers may have already certified their applications with memory windows. Contact HP to see if this is the case.

8.5.3 Configuration

By default, HP-UX ships with memory windows disabled.

To enable memory windows, set the kernel tunable parameter max_mem_window to the desired amount. Customers can change this value by placing the desired value in their kernel configuration file. The system must be rebooted for the new value to take effect.

max_mem_window represents the number of memory windows beyond the global default window.

What should the value be? That depends on the application requirements and the applications installed on the system. HP recommends that each ISV/application should document how many windows it intends to use.

Use of memory windows does not affect the performance of processes. There is no size requirement associated with memory windows. Any machine running HP-UX (32-bit or 64-bit) and any hardware supporting HP-UX release 11i can use memory windows.

8.6 HP-UX SCA Process and Memory Management (new)

For compatibility reasons, the HP-UX 11i release supports the Scalable Computing Architecture (SCA) programming, process management, and memory management features that were introduced at HP-UX 11.10 for the HP V-Class SCA servers. However, these features do not provide any potential performance benefits and no previous HP-UX SCA features have changed.


NOTE

HP V-Class SCA servers are not supported by the HP-UX 11i release, and all 11i supported systems are non-SCA servers that consist of a single "locality domain" that includes all of the system's hardware resources. As a result, any use of the HP-UX SCA features on HP-UX 11i systems will result in the default process placement and memory allocation behaviors.


8.7 Dynamic Tunables (new)

A new facility has been added which will allow the retrieving of all tunable values and the setting of a limited number of tunables. If a tunable is dynamic, a change will take place immediately, without the need to reboot the system. Such changes will persist across reboots.

Three parts of the system have been changed to allow retrieving and setting of dynamic tunable values:

Currently, the following tunables are dynamic:

For more information, see the white paper Dynamically Tunable Kernel Parameters in HP-UX 11i at http://docs.hp.com.

8.8 Asynchronous Disk Pseudo Driver (async) Compatibility (new)

The async driver is used mostly by databases for doing asynchronous I/O to the disk.

Applications that use the async driver must be owned by the superuser, or by a user who is a member of a group for which the privileges include MLOCK.To check a group's privilege capabilities, issue this command:

/usr/bin/getprivgrp group_name

If the output of getprivgrp does not show that the group has the MLOCK privilege, set the group's privlege by issuing this command as root:

/usr/bin/setprivgrp <group_name> MLOCK

8.8.1 Impact

If the application accessing async driver is not owned by superuser or by a user who is a member of a group that has MLOCK privilege, ASYNC_CONFIG and ASYNC_ADDSEG ioctl()will fail and errno will be set to EPERM.

8.8.2 Compatibility

An application running on HP-UX 11.0 with patch PHKL_22126 installed will operate correctly when upgraded to 11i.

If the application using async driver was operating on a 11.0 system without PHKL_22126, then the group associated with that application must be modified to include the MLOCK privilege when migrating to HP-UX 11i.

8.9 System-V IPC Message Queue Enhancement (new)

System-V IPC is the System-V InterProcess Communications package developed by AT&T and comprises mechanisms for arbitrary processes to send and receive data "messages", share virtual address space, and use semaphores to synchronize execution. This enhancement applies only to the message subsystem.

The System-V IPC kernel tunable MSGMNB, which sets the maximum number of bytes on a queue, has had its maximum upper limit increased from 64KB to 64MB. New or recompiled applications will automatically use new, larger fields in the msqid_ds structure which describes queue sizes. However, if queue sizes greater than 64KB are desired, a compilation feature macro, "__BIGMSGQUEUE_ENABLED", must be defined. This may be done using the -D compiler option or the #define pre-processor directive prior to any #include. (This requirement is temporary and used to maintain compatibility during a transition period.)

As hardware system capacities including CPU speed and memory have increased, some customer and third-party applications have been placing a greater demand upon the System-V IPC message queues. By increasing the capacity of these queues, applications are able to transfer large messages in a much more efficient manner. You will be able to dedicate more system memory for this purpose. Also, this may ease porting of some applications from other vendors' platforms which use message queues.

This enhancement is available on all systems.

8.9.1 Impact

There is no impact on system resources unless you increase system memory dedicated to System-V IPC message queues. To do this, the size of message memory segments (MSGSSZ) kernel tunable and/or the number of these segments (MSGSEG) kernel tunable may need to be increased.

An individual message queue cannot exceed the maximum queue size (MSGMNB) kernel tunable. The size of an individual message cannot exceed the MSGMAX kernel tunable.

8.9.2 Compatibility Issues

This change allows execution of existing binary programs. However, as described in the msgget(2) and msgctl(2) manpages, if binaries built on pre-11i HP-UX are used, the queue should not be created in excess of 64KB. To ensure this, the programs which create the queue (that is, via the IPC_CREAT option to msgget(2) ) should not be recompiled with the symbol __BIGMSGQUEUE_ENABLED defined. Also, the IPC_SET command to msgctl(2) should not specify a msg_qbytes value in excess of 64KB.

The reason for this is that pre-11i binaries use 16-bit fields in the msqid_ds structure for msg_qbytes and msg_cbytes queue size information. If the actual queue sizes exceed 64K, these fields are capped at 64K (that is, 65535 - the maximum value 16 bits can represent). It should be noted that binary programs which don't use these fields will operate properly even with larger queues. Even some of those programs which do use the fields may do so in such a manner that the inaccuracy does not adversly affect program behavior.

These concerns arise only for separately-built binaries which share common message queues. A group of binary programs which use queues less than or equal to 64K are not affected by a separate group of programs which may be using other queues greater than 64K.

The special compile-time symbol, "__BIGMSGQUEUE_ENABLED" selects the enhanced capabilities. It is anticipated that, at the major release to follow 11i, the default will be switched so that programs recompiled without this symbol will create big queues. Programs recompiled on 11i will be capable of handling the larger queue size fields, even if not compiled with __BIGMSGQUEUE_ENABLED. You should consider whether your applications should be recompiled on 11i to prepare for that future release.

8.9.3 Performance Issues

The purpose of increasing the size limits on System-V IPC message queues is to improve performance of applications which pass large messages between processes. The necessity to break messages into smaller pieces is eliminated. It also reduces the high rate of context switching associated with such techniques.

8.9.4 Documentation Changes

The msgget(2), msgctl(2), and glossary(9) manpages have been modified to reflect these changes.

8.10 System-V IPC SEMMSL Dynamic Kernel Tunable (new)

The System-V IPC kernel tunable configuration parameter SEMMSL, which sets the maximum number of semaphores per ID which can be grouped within a single System-V IPC semaphore set, has changed from from a hard-coded value of 2048 in kernel code to a dynamic kernel tunable. Its minimum and default value is 2048 while its upper limit is 10240. For 11i, dynamic tune adjustments to SEMMSL may only be done using SAM.

With the increase in system sizes, applications have the ability to handle greater numbers of cooperating processes. Some applications synchronize operations of these processes by semaphores within a single set. By increasing the limitations on semaphore sets, these applications may increase the number of processes they use.

This enhancement is available on all systems.

8.10.1 Impact

Increasing the SEMMSL kernel tunable to allow larger System-V IPC semaphore sets does not itself consume any additional kernel resources such as memory. However, in conjuction with increasing this tunable, you may need to increase the total number of semaphores in the system by increasing the SEMMNS kernel tunable. This will consume additional system memory.

8.10.2 Compatibility Issues

The change from a hard-coded SEMMSL to a dynamic tunable is transparent to applications.

In releases prior to 11i, a "SEMMSL" symbol was hardcoded to 2048 in sys/sem.h. This symbol will no longer always be an accurate representation of the maximum number of semaphores in a set. Uses of the symbol in programs should be removed. The pstat(2) interface can return an accurate value for this kernel tunable.

8.10.3 Performance Issues

Some applications will be able to scale to utilize larger systems, where scaling depends upon the size of a semaphore set.

8.11 SCSI Queue Depth Management (new)

If you have multiple active paths to a SCSI device (LUN), you might need to manage your device queue depths to maximize the device's performance. This is particularly true with dynamic multi-pathing applications--such as EMC's PowerPath application--which allow all multiple paths to a LUN to be in use simultaneously. In such cases, you should check the queue depth specified on each path. If it is set to a value that is more appropriate for an environment where only one path is active at any point in time, you might need to lower the value.

Even in single-pathing or static multi-pathing environments, management of device queue depths can be important to maximize the performance and throughput of the storage device. A single hard-coded default queue depth of 8 existed originally on 11.0 and could be changed only one device at a time via an ioctl to the device. But, it does not meet the needs of all devices and configurations.

So, HP-UX 11i contains the following enhancements to the SCSI device queue depth management:

  1. A dynamic tunable called "scsi_max_qdepth" has been added. This tunable allows you to set the default queue depth that will apply to devices that have not been individually set via the SIOC_SET_LUN_LIMITS ioctl or scsictl command. This tunable is "dynamic," which means that it can be changed and will be applied without having to reboot the system.

  2. On 11.0, the queue depth could be changed on a per-device basis via the SIOC_SET_LUN_LIMITS ioctl or the scsictl command. However, the settings were not persistent across device opens and closes. That is, on 11.0 the queue depth setting on a device would disappear on the last close of the device and would go back to the system default of 8 when the device was re-opened.On 11i, the per-device queue depth settings will persist across opens and closes. This allows you to set the queue depth only once during or after boot up to maintain a desired value.

The 11i "scsi_max_qdepth" tunable can be changed or read via the kmtune command. See the kmtune(1M) manpage for details. The only change in the behavior of the per-device queue depth settings is the persistence across device opens and closes, as described above. Otherwise, these can be set or read in the same way as they could on 11.0 via the SIOC_SET_LUN_LIMITS and SIOC_GET_LUN_LIMITS ioctl command or the scsictl command.

8.12 Changes to mpctl() System Call (new)

Some extensions are being made to mpctl() system call interface to pre-enable processor set functionality in HP-UX 11i release.

The mpctl() interface provides command requests to query system information, like, total number of processors and locality domains in the system, and ID of all processors and locality domains. When processor set functionality is implemented in HP-UX, these command requests will return information about the processor set of the calling thread, and not the entire system.

A new set of mpctl() command options will be provided to query for system-wide topology information, regardless of which processor set contains those resources. The following seven new command requests will be provided in HP-UX 11i:

New Request Its Equivalent in 11i
MPC_GETNUMSPUS_SYS MPC_GETNUMSPUS
MPC_GETFIRSTSPU_SYSMPC_GETFIRSTSPU
MPC_GETNEXTSPU_SYSMPC_GETNEXTSPU
MPC_GETNUMLDOMS_SYSMPC_GETNUMLDOMS
MPC_GETFIRSTLDOM_SYS MPC_GETFIRSTLDOM
MPC_GETNEXTLDOM_SYS MPC_GETNEXTLDOM
MPC_LDOMSPUS_SYS MPC_LDOMSPUS

The new command requests are mapped to their current equivalent requests in 11i release, so applications in 11i release will not be affected.

When the processor set functionality becomes available, applications that rely on mpctl() to return system level information will need to be changed to use new command requests. For these applications we recommend using the new commands in the 11i release to avoid any issues when processor sets are available.

All applications that use mpctl() to query the available processors and locality domains to scale and bind for optimal performance will not require any changes when the processor set functionality is made available. The mpctl()'s existing commands will return information about what processors are available for binding.

When processor set functionality becomes available, if the system is not partitioned into more than one processor sets, no applications using the mpctl() interface with current command requests will be affected.


Chapter 9: New and Changed Disk and File Management Features

9.1 Additional Support for Striping and Mirroring (new)

LVM now supports striping and mirroring for shared volume groups. Previously under HP-UX 11.0, a volume group could not be activated in shared mode if any of its logical volumes were striped or mirrored. This restriction has now been lifted.

Shared volume groups are provided to support ServiceGuard Oracle Parallel Server (OPS), so this change only affects customers using OPS. Those customers are now free to stripe their logical volumes (to improve throughput) or mirror them (for higher availability).


NOTE

Where performance is limited by I/O throughput, striping may help.


9.2 New Version of Journaled File System (JFS) (new)

HP-UX 11i includes a new version of the Journaled File System (JFS), version 3.3 as opposed to the previous version 3.1. (JFS is also known as the VERITAS File System or VxFS).

New features in JFS 3.3 include:

With the HP-UX 11i release, JFS becomes a superset of the functionality available in HFS now that JFS includes support for ACLs.

In HP-UX 11i, one kernel library will contain the kernel functionality for both the JFS and the OnLineJFS products. When you install the JFS product, all the software for OnLineJFS will also be installed, but its features will not be enabled unless you also purchase and install HP OnLineJFS.

Having all the kernel functionality for both products in one library will resolve many of the patching problems that existed in previous releases.

With the JFS version 4 disk layout in JFS 3.3, you are much less likely to encounter the file system shrink limitation that existed in JFS versions in HP-UX 10.20 and 11.0. That is, previously JFS could not shrink a file system if there were file extents residing in the area being reduced. Now, JFS 3.3 with the version 4 disk layout, attempts to move extents off the area of the file system being reduced. This provides a greater chance of success when shrinking JFS file systems. However, there may still be some occasions where JFS cannot move extents off the area of the file system being reduced, in which case a shrink will still fail.

All VxFS manual pages are updated, and manual pages for generic HP-UX commands and functions which accommodate ACLs (e.g., cp, find) are also updated. See "Managing Systems and Workgroups: A Guide for HP-UX System Administrators", part no. B2355-90701 for a description of JFS ACLs and how to use them.

The "VERITAS File System System Administrator's Guide", written by the VERITAS Software Corp. and customized by HP, will be available on HP's documentation Web site at http://docs.hp.com and on the Instant Information CD, in both HTML and PDF formats.

9.2.1 Compatibility Issues

JFS ACLs use a different format from HFS ACLs. The new command, vxfsconvert(1M) will convert an HFS file system to a JFS file system. It will also convert HFS ACLs to JFS ACLs, with the limitation that HFS ACLs with no JFS ACL equivalent will not be converted. See "Managing Systems and Workgroups: A Guide for HP-UX System Administrators", part no. B2355-90701" for a description of the procedure for converting a file system.

JFS ACLs require a file system created or upgrading from the new disk layout, version 4. You can use the vxupgrade command to upgrade a file system from an older disk layout to version 4.

JFS 3.3 uses new header files. As far as the JFS module is concerned, a well-behaved application will not need to be recompiled, but a kernel-intrusive application will need to be recompiled with the new header files, and possibly with some corresponding code changes. You should check with the application provider before upgrading.

9.2.2 Performance Issues

JFS 3.3 generally outperforms previous releases. Design changes have reduced the number of bottlenecks resulting from globally shared locks. JFS includes tunables and features to support improved performance in the OLTP, DSS , and technical computing markets. With appropriate tuning, JFS 3.3 outperforms HFS in all categories.

JFS 3.3 includes a new command, vxtunefs, for tuning a VxFS file system. See vxtunefs(1M) and tunefstab(4). Also see the "HP JFS 3.3 and HP OnLineJFS 3.3 VERITAS File System 3.3 System Administrator's Guide" for information on tuning a JFS file system.


NOTE

The volcopy(1M) and labelit(1M) commands will be obsoleted in a future release. Customers should use vxdump and vxrestore for backup and restore, or they can use an application-specific utility. You can use dd to make a literal copy of the file system.


9.3 Network File System Support for TCP/IP (new)

Network File System (NFS) is now supported over the connection-oriented protocol, TCP/IP for NFS versions 2 and 3, in addition to running over User Datagram Protocol (UDP). TCP transport increases dependability on wide-area networks (WANs). Generally, packets are successfully delivered more consistently because TCP provides congestion control and error recovery.

As a result, with this new functionality, NFS is now supported over WANs. As long as TCP is supported on the WAN, then NFS is supported also.

The mount_nfs command now supports a "proto=" option on the command line where the value for proto can be either UDP or TCP. (In the past, this option was ignored.) This change allows the administrator to specify which transport protocol they wish to use when mounting a remote file system.

If the "proto=" option is not specified, by default, NFS will attempt a TCP connection. If that fails, it will then try a UDP connection. Thus, by default, you will begin using TCP instead of UDP for NFS traffic when you begin using the 11i version of HP-UX. This should have little impact you. You do, however, have the option to specify either UDP or TCP connections.

If you specify a "proto=" option, only the specified protocol will be attempted. If the server does not support the specified protocol, the mount will fail.

nfsd now opens TCP transport endpoints to receive incoming TCP requests. For TCP, the nfsd is multi-threaded. For UDP, the nfsd is still multi-processed.

Kernel TCP threads execute under the process nfskdtcp. When counting the number of nfsd processes, keep in mind the following algorithm: An equal number of nfsd's that support UDP will be created per processor and only one nfsd that supports TCP will be created. In the case of a four-way machine and NUM_NFSDS=14 (set in /etc/rc.config.d/nfsconf), 17 nfsds will be created: 16 for UDP (4 per processor) and 1 for TCP.

nfsstat will now report TCP RPC statistics for both client and server. The TCP statistics will be under the connection-oriented tag and the UDP statistics will be under the connectionless-oriented tag.

AutoFS will support the "proto=" option in the Automounter maps and will have the same behavior described above under the mount_nfs command. In the past, this was an invalid option.

Automounter will not support NFS over TCP.

Unlike the 11.0 patch release of NFS over TCP, there is no enablement flag for NFS over TCP. By default, NFS will attempt to use TCP.

The kernel RPC layer was modified to support TCP connections over NFS. A new streams module, rpcmod, was added to manage the TCP connections. These changes are internal to the NFS implementation and are not user accessible.

9.3.1 Documentation Changes

Manpages modified by this new feature:

9.4 Other NFS Changes

Three additional features have been added to NFS:

9.4.1 Loopback Transport Support

Loopback transport provider devices (tlclts, tlcots, and tlcotsod) have been added to the TI-RPC definition file, /etc/netconfig. Also, the system will now have the following new loopback transport-specific directories and files:

The following ONC/NFS daemons support loopback transport requests:

The netid and address fields in the rpcinfo call (which queries /usr/sbin/rpcbind to determine what services have been registered) now give the loopback device name plus an address name, rather than the netbuf address provided by udp and tcp transport.

Additionally, the ticlts loopback transport device has a randomly generated string address.

9.4.2 User-Space Threads

The svc_run() function call in the RPC library automatically generates a thread on behalf of the application to process incoming RPC requests. The threads are managed by the RPC library software. RPC threads may be created when calling the RPC library.

9.4.3 NFS Server-Side Performance Enhancements

The NFS server daemon, /usr/sbin/nfsd, has been modified for performance reasons. The user may see more nfsd daemon processes running than requested based on the number requested and the number of processors configured. The change is documented in the nfsd(1M) manpage.

The NFS client-side buffer cache management has been modified to improve server performance from a VxFS file system mounted on the client.

The performance enhancements included have given HP industry leading NFS SPECsfs benchmark values on our V-Class platforms.

9.5 Mounting and Unmounting NFS File Systems Automatically Using AutoFS

HP-UX 11i provides a daemon that mounts and unmounts NFS file systems automatically. This feature is known as AutoFS.

AutoFS coexists with automount and performs the same functions as automount, but has a new, more reliable design. Additionally, AutoFS supports the NFS PV3 protocol whereas the automounter does not. The automount command has been replaced with a shell script that will either invoke the old automount daemon or the new AutoFS automount command, depending on the variable AUTOFS in /etc/rc.config.d/nfsconf.

The old automount executable is located at:

/usr/lib/netsvc/fs/automount/automount

The new AutoFS executables are located at:

/usr/lib/netsvc/fs/autofs/automountd /usr/lib/netsvc/fs/autofs/automount

When AutoFS is executed, a process used by its kernel code for kernel thread support is also started. The autofs_proc process cannot be killed, except by a shutdown of the system.

9.5.1 Impact

From an operational standpoint, AutoFS functions comparably to the old automounter and returns the same values.

From the system administrator's standpoint, however, AutoFS is started, stopped, and updated differently than its predecessor. The nfs.client start-script automatically starts and stops the correct daemons depending on the value of AUTOFS in /etc/rc.config.d/nfsconf.


NOTE

If you do not use this script, you need to remember which implementation of automatic NFS file mounting you are using. Starting both AutoFS and automounter can lead to problems accessing the remote file system. You must reboot to switch between AutoFS and the old automounter.


9.5.2 Other Operational Differences

Any user-written scripts that expect the automount command to remain running as a daemon will have to be updated either to not expect this behavior or to check explicitly that automountd is running. AutoFS can no longer be shut down by killing the automount process; instead, you must shut it down by executing the following command:

/sbin/init.d/nfs.client stop

This will unmount all mounted AutoFS filesystems and then kill the automountd process.

To stop AutoFS without using the /sbin/init.d/nfs.client script, you must enter the following:

/usr/sbin/umountall -F autofs

kill automounted_pid

The automount -n, -M, and -tw options are not supported in AutoFS. The -m and -tm options are also not supported, but their behavior can be configured in different ways:

Another difference between automounter and AutoFS is that AutoFS no longer uses symbolic links to access the mount points. Applications that depend on this explicit behavior will no longer work as expected.

9.5.3 Additional Information

The existing 11.0 automounter can be re-enabled, if desired, by setting the AUTOFS variable to 0 or by removing the AUTOFS variable from /etc/rc.config.d/nfsconf. In this configuration, automounter will not mount file systems via the NFS version 3 protocol.

For more information on how to migrate to AutoFS, see Chapter 2 in the Installing and Administering NFS manual.

9.5.4 Configuration

To enable AutoFS, you must add or set the AUTOFS variable to 1 in /etc/rc.config.d/nfsconf. Here is an example of this change:

#autofs configuration. See autofs(1m) 
#
#For the 11.0 Release line both AUTOFS and the old Automount 
#are delivered. In order to invoke the AUTOFS instead of 
#you must set the AUTOFS flag to 1. 
#
#/usr/sbin/automount is now a script that sources in this file
#Depending on the variable AUTOFS, either AUTOFS or the old
#automount process will execute. The nfs.client start script 
#will also use this variable to start the appropriate process
#during the boot sequence. 
#AUTOFS= 0 - use the old automount process. 
#        1 - use the new AutoFS. 
#AUTOMOUNT_OPTIONS= - options to the AutoFS automount command
#AUTOMOUNTD_OPTIONS= - options to the AutoFS automountd daemon 
# 
#The AUTOMOUNT flag still needs to be set for either the old
#automount or new AutoFS to be started by the nfs.client script. 
# 
AUTOFS=1 
AUTOMOUNT_OPTIONS="" 
AUTOMOUNTD_OPTIONS=""

9.5.5 Documentation Change

A new manpage, automountd(1M) describes the AutoFS automount daemon. The automountd(1M) manpage has been modified to describe both the old automount daemon and the new AutoFS command.

9.5.6 Obsolescence

Although all 11.0 patch bundles contain both AutoFS and automounter, AutoFS will replace automounter in a future release of HP-UX.

9.6 HP Fibrechannel High Availability Disk and Closure

The HP Fibrechannel High Availability Disk and Closure, also referred to as the FC10, is a Mass Storage Subsystem disk enclosure. This is the design center for Fibre Channel-Arbitrated Loop and future SCSI Enclosures (SES). Some of the features of the FC10 are:

9.7 Fibre Channel Mass Storage Diagnostic Message and Kernel Tunable

The Fibre Channel Mass Storage product will return the following diagnostic message if the disk device violates the Fibre Channel Standard: ECB_FRAME_RECV_BEFORE_ADISC

You will see the this error message in the kernel log file. If this message is received frequently and persistently, please contact your HP Customer Support Representative. Fibre Channel Mass Storage has a new kernel tunable: fcp_large_config

In a Fibre Channel Mass Storage configuration, if this parameter is set to 1, it allows for large loops with up to 126 nports. For example:

fcp_large_config 1

If the parameter is set to 0, you are limited to less than 64 nports.


Chapter 10: Internet and Networking Services

10.1 Base HP-UX Internet Services (new)

10.1.1 Sendmail-8.9.3

A new version of sendmail, sendmail-8.9.3, is included with HP-UX 11i. This version provides additional features compared to the previous version. The sendmail-8.8.6 sendmail.cf file is compatible with the sendmail-8.9.3 binary. However, to take advantage of all the new features provided in this version, it is highly recommended that you use the default sendmail.cf file provided in the /usr/newconfig/etc/mail directory. Any site specific changes will need to be made as required.

10.1.1.1 New Features

New features in sendmail-8.9.3 include:

10.1.1.2 Documentation

Refer to the Installing and Administering Internet Services manual available on the HP-UX 11i Instant Information CD and on the web at: http://docs.hp.com

for detailed information on new features.

10.1.2 BIND 8.1.2

A new version of BIND, BIND 8.1.2, is shipped with HP-UX 11i. This version supports Dynamic updates via the Dynamic Domain Name Server (DDNS).


NOTE

The Dynamic updates, however, are NOT secure, and you are advised to put security mechanisms in place before using this feature.


The following lists the new features:

10.1.2.1 New Configuration File

A BIND configuration file is now named.conf, with many more configurable variables than in previous releases of BIND. The configuration file in previous versions of BIND was named.boot.

There are now entirely new areas of configuration, such as, access control lists and categorized logging. Many options that previously applied to all zones can now be used selectively.

The configuration file can be obtained by following these steps:

  1. Make sure that Perl is installed on the system.

  2. The hosts_to_named script must be copied to /usr/sbin and a link provided from /usr/bin manually.

  3. A Perl script named-bootconf.pl is available in /usr/bin. This script is used to convert the existing named.boot file to named.conf file.

  4. The new BIND configuration file named.conf must be created. Do this in either of two ways:

10.1.2.2 New Configurable Resolver Options

The timeout value is a function of the RES_RETRY and RES_RETRANS options of the resolver routines. It is currently hardcoded as 5000 milliseconds for RES_RETRANS and 4 milliseconds for RES_RETRY. This results in a timeout value of 75 seconds. This timeout value is obtained when you assume that there is one nameserver. When there are multiple nameservers, the timeout value will increase. Hence, to help achieve shorter timeout values, and better performance, the resolver options RES_RETRY and RES_RETRANS are now configurable.

These resolver options can be configured using any of the three methods shown below. They are listed in priority order with the first listed method having the highest priority.

  1. Use environment variables.

  2. Use resolver configuration file /etc/resolv.conf.

  3. Use the new APIs defined in (set_resfield).

The RES_RETRY and RES_RETRANS options can be set with any positive non-zero integer.

10.1.3 "PAM-ized" rexecd and remshd

The rexecd and remshd services on HP-UX 11i now use Pluggable Authentication Modules (PAM) for authentication.

You can take advantage of using an authentication mechanism of your choice like DCE Integrated Login, UNIX, or Kerberos by making a change in the /etc/pam.conf file. By default, if you do not edit the /etc/pam.conf file, the rexec and the remsh services will use the authentication mechanism specified by the OTHER directive in the /etc/pam.conf file.

The earlier version of rexecd and remshd allowed only those UNIX users who were included in /etc/passwd to use the rexecd and remshd services. This limitation has been eliminated with the introduction of the "PAM-ized" modules. By PAM-izing rexec and remsh services, users belonging to other authenticating services like DCE Integrated Login can use the remsh and rexec services.

10.1.3.1 /etc/pam.conf File Changes

To use PAM-ized rexec and remsh, the following lines have to be added to the /etc/pam.conf file:

rcomds   auth required     /usr/lib/security/libpam_unix.1

rcomds   account required  /usr/lib/security/libpam_unix.1 

10.1.3.2 Using PAM-ized remshd in Secure Internet Services (SIS) Environment

rexecd is not Kerber-ized and hence will not work in the SIS environment. However, remshd is Kerber-ized. To take advantage of the PAM-ized modules, add the following line to the /etc/pam.conf file.

rcomds   auth required    /usr/lib/security/libpam_dce.1

Also in the Kerberos environment, remshd has command line options for combining the UNIX method and the Kerberos method of authentication. These command line options can be set in the /etc/inetd.conf file for the kremshd service. Refer to the kremshd(1M) manpage for a more detailed description of the options available.

10.1.4 Changes for GateD

With HP-UX 11i, the HELLO protocol of GateD will be obsoleted and no longer supported.

The BGP protocol available with GateD-3.5.9 on HP-UX 11.0 is also available and supported on HP-UX 11i.

10.1.5 DHCP with Nonsecure DNS Updates

The Dynamic Host Control Protocol (DHCP) available on HP-UX 11i is capable of updating the Dynamic Domain Name Server (DDNS). This feature updates the DDNS with name and IP address of the client. This means that for every client to which DHCP assigns a name and IP address, it also adds an "A" and "PTR" resource record (RR) of that client to the DDNS.

To assign a name for every IP address, a new tag, "pcsn", has been introduced. This tag is a Boolean tag. If set, the DHCP server gives priority to the name (if any) provided by the client. A name should be a fully qualified domain name (FQDN). If the name provided by the client is NOT a FQDN, then the DHCP server will try to append the domain name (if set using the 'dn' tag) else it appends "." and updates the DDNS. If the "pcsn" tag is unset, then the DHCP server will try to assign a name of its choice for every IP address.

To enable the DHCP server to perform updates to the DDNS, a new tag, "ddns-address", specifying the address of the DDNS server, has to be added in the DHCP_POOL_GROUP or DHCP_DEVICE_GROUP keywords. The "pcsn" tag is also added within the same entry.

A sample DHCP_DEVICE_GROUP entry with the "ddns-address" tag and the "pcsn" tag is shown below:

DHCP_DEVICE_GROUP:\
ba:\
pcsn:\
class-name=SUBNET_128_XTERMINAL_GROUP:\ class-id="xterminal:"\
subnet-mask=255.255.255.0 :\
addr-pool-start-address= 15.14.128.1 :\
addr-pool-last-address= 15.14.128.254 :\
ddns-address=1.2.3.4:\
lease-time=604800 :\
lease-grace-period=5 :\

10.2 Network Transport (new)

Network Transport includes ifconfig, ndd, netstat, virtual IP address, setsockopt, and t_optmgmt.

10.2.1 ifconfig

The ifconfig subnet mask default now allows all 1's or all 0's in the masked part of the subnet field. This provides up to twice as many IP addresses as before. The default behavior now allows more IP address and subnet mask combinations. However, any addresses working before will continue working without alteration.

The subnet field is that portion of an IP address that identifies the subnet beyond the network portion of the address. For example, a class A IP address used with the mask 255.192.0.0 (0xffc000000) has a two-bit subnet field which is the 5th and 6th bits shown below:

11111111 11 000000 00000000 00000000

ifconfig can now assign the following IP address, and subnet mask to an interface, although the subnet field (subnet portion of the address) is all 1's:

IP address: 15.192.1.1

Subnet mask: 255.192.0.0 (0xffc00000)

In binary:

00001111 11 000000 00000001 00000001

11111111 11 000000 00000000 00000000

ifconfig can now also assign the following IP address and subnet mask to an interface, although the subnet field is all 0's:

IP address: 15.1.1.1

Subnet mask: 255.192.0.0 (0xffc00000)

In binary:

00001111 00 000001 00000001 00000001

11111111 11 000000 00000000 00000000

To disallow subnet fields with all ones or all zeroes, set the ndd parameter ip_check_subnet_addr to 1 in the nddconf file.

10.2.2 ndd

ndd is a networking configuration tool used to customize the networking kernel. To make an 11i system more Internet friendly and easier to run "out of the box", some of the ndd tunable parameters defaults changed. Some unsupportable tunable parameters are now "supported". Also, some new tunable parameters have been added. Some of the changes reflect changes to the networking industry standards.

10.2.2.1 Specific Changes

1) All 1's or all 0's now allowed in masked bits of subnet address: ip_check_subnet_addr shows whether or not that RFC1122 or RFC1878 enforces the network subnet mask. If it is a 0 (zero), then the RFC1122 behavior is seen. If it is a 1 (one), then RFC1812 is seen. The default is now RFC1812 behavior. See ifconfig for more information.

This new behavior makes available up to twice as many IP addresses than a similarly configured RFC1122 machine. This new feature is an enhancement.

2) Selective acknowledgement for TCP supported tcp_sack_enable enables selective acknowledgement. This enhancement could improve performance in networks with large transmission windows by allowing TCP recipients to indicate lost segments within large transmission blocks. The TCP sender can then retransmit only the lost segments. Supported parameter values are:

2

Local system enables SACK if remote system first sends SACK (Default).

1

Local system requests the SACK option during a connect() request.

0

Local system never uses SACK.

3) Send and receive buffers now limited to hiwater_max: tcp_hiwater_max and udp_recv_hiwater_max (default 2GB) set the maximum receive buffer size that setsockopt or t_optmgmt can set for a socket. tcp_xmit_hiwater_max sets the maximum send buffer size setsockopt or t_optmgmt can set for a TCP socket. These systemwide parameters prevent processes from keeping large amounts of data in send or receive buffers and consuming system resources.

tcp_fin_wait_2 is used to set how long a connection will be in FIN_WAIT_2. Use this cautiously. If the remote TCP entity is slow, but would terminate normally (is not hung nor will it terminate abnormally), TCP may close the connection prematurely. A possible side effect is that data in the remote connections receive buffer may be flushed. If this happens unexpectedly, then the data could become corrupted.

The above description is an enhancement.

ip_udp_status has a new field. It now will report how many times a given UDP socket has overflowed. This only works on sockets currently open. This is a very handy troubleshooting tool used when netstat -p udp shows socket overflows. This feature is an enhancement.

4) TimeStamps option supported: tcp_ts_enable allows RFC 1323 TimeStamp extensions to TCP Headers. The TimeStamps are used for two purposes:

  1. RTTM (Round Trip Time Measurement): Interval between time TCP sends a segment and the time return acknowledgement arrives.

  2. PAWS (Protect Against Wrapped Sequences) on high-speed networks.

Supported parameter values are:

2

Use Timestamps option if initiated by the remote system

1

Always try to initiate the use of Timestamps option

0

Never use Timestamps option

5) Socket structure caching can increase performance: tcp_conn_strategy enables socket caching. It sets how many cached socket structures the system keeps. The default value of 0 (zero) disables the feature. A value between 1 and 512 sets a minimum of 512. Any number above 512 sets tcp_conn_strategy to that value. Enabling socket structure caching can increase system performance if there are many short-lived connections on the system.

6) Initial TCP congestion window size is now configurable: tcp_cwnd_init sets the sender's initial congestion window size according to the following formula:

Min((tcp_cwnd_init * MSS), max(2 * MSS, 4380)),

where MSS is the maximum segment size for the underlying link. Default 4: (TCP implements RFC 2414). Range: 1-4

7) ip_pmtu_strategy '2' is not supported for 11i: A local system can no longer send its expected Path Maximum Transmission Unit (PMTU) value within an ICMP_ECHO request to a remote system or router. This change prevents a type of Denial-of-Service attack.

Type ndd -h for an online description of tunable parameters and other documentation.

10.2.2.2 Compatibility Issues

For the following commands,

ndd -get /dev/ip ip_tcp_status

ndd -get /dev/ip ip_udp_status

ndd -get /dev/ip ip_raw_status

ndd displays IP addresses using the IP version 6 (IPv6) format. When ndd maps IP version 4 (IPv4) addresses to IPv6 addresses, ndd displays the IPv4 addresses with the prefix "::ffff:".

ndd displays the remainder of the IPv4 address in dotted-decimal notation. This could cause scripts that are looking for a given output to fail.

10.2.2.3 Performance

None of the features will degrade performance. Enabling socket caching using tcp_conn_strategy could potentially increase performance by 10 to 20%.

10.2.3 netstat

netstat displays the statistics and configuration of the networking kernel. There are two changes to netstat. One is to netstat -r and the other to netstat -I.

netstat -r no longer updates the "Use" field. Therefore, netstat -r no longer displays this field.

Beginning at HP-UX 11i, netstat -I <interface> displays statistics accumulated since the last system reboot. This matches netstat -I output for HP-UX releases 10.20 and earlier.

10.2.3.1 Compatibility Issues

There could be some compatibility problems with scripts where they look for the "Use" field.

10.2.4 Virtual IP (VIP) Address for the System

Using the loopback interface lo0:1, lo0:2 and so on, the system will respond to the IP address assigned to these interfaces using any physical interface. Thus, a system can now have a "systemIP" address that will be available as long as one interface stays usable.

In some configurations, a system needs to keep a "well known" IP address that will always be available even if an interface goes down. With the new VIP feature, a remote user can specify an IP address that will respond regardless of the local interface where the packet arrived. This feature is an enhancement.

10.2.5 setsockopt()

The system-wide kernel parameters, tcp_recv_hiwater_max (for TCP sockets) and udp_recv_hiwater_max (for UDP sockets), now limit the maximum buffer sizes specified in the SO_SNDBUF or SO_RCVBUF setsockopt() parameters.

A setsockopt() call with a SO_SNDBUF or SO_RCVBUF option that exceeds the corresponding kernel parameter value will fail, returning the errno value EINVAL.

If you determine that certain applications always ask for the largest socket buffer allowed, then you may want to set these variables and limit the amount of memory used by such applications. When an application opens enough of these large sockets and the system does not contain a lot of memory, then the system may starve for memory if the application quits reading from the socket.

Applications that request sockets with send or receive buffers larger than high-water marks set by the administrator will fail. The errno value returned is EINVAL.

10.2.6 T_OPTMGMT

Kernel parameters tcp_recv_hiwater_max (for TCP sockets, default 2GB) and udp_recv_hiwater_max (for UDP sockets, default 2GB) now limit the XTI_RCVBUF parameter maximum buffer size. Kernel parameter tcp_xmit_hiwater_max (default 2GB) now limits the XTI_SNDBUF parameter's maximum buffer size.

A t_optmgmt() call with a tdsu or etsdu option that exceeds the corresponding kernel parameter value will fail with TBADOPT.

If you determine that certain applications always ask for the largest buffer or transport service data unit (tsdu) allowed, then the administrator may want to set these variables and limit the amount of memory used by such applications.

When an application opens enough of these large sockets and the system does not contain a lot of memory, then the system may starve for memory if the application quits reading from the endpoint.

Applications that request sockets with buffers or tsdus larger than high-water marks set by you will fail. The t_optmgmt() function returns the t_errno value TBADOPT.

10.3 New Versions of FTPD

This release contains a new version of FTPD. The new version of FTPD is a replacement for the legacy FTPD. In addition to supporting the FTP protocol defined in RFC 959, the following new features are provided:

Existing installations do not have to modify their FTP configuration unless they want to use the new features.

The major differences between legacy FTPD and the new version of FTPD are as follows:

Table 10-1: New FTP daemon options
-dLogs debugging information in syslog.
-m number of triesSpecifies the number of tries for a bind() socket call.
-aEnables the use of the ftpaccess file, which is used to configure the operation of FTPD.
-ADisables the use of the ftpaccess configuration file.
-iLogs all the files received by the FTPD server to xferlog(5).
-oLogs all files transmitted by FTPD in xferlog.
-LLogs all commands sent to the FTPD server into syslog.
Table 10-2: New Commands
/usr/bin/ftpcountShows current number of users per class
/usr/bin/ftpwhoShows current process information for each user.
/usr/bin/ftpshut Creates shutdown message file.
/usr/bin/ftprestart Removes the shutdown message file created by the ftpshut utility
Table 10-3: New Configuration Files
/etc/ftpd/ftpaccessThe primary configuration file defining the operation of the new FTP daemon.
/etc/ftpd/ftpconversions Defines options for compression/decompression and tar/un-tar operations.
/etc/ftpd/ftphostsLets you allow/deny FTP account access according to source IP addresses and hostnames.
/etc/ftpd/ftpgroups The group password file for use with the SITE GROUP and SITE GPASS commands.
Table 10-4: New Logging Information
/var/adm/syslog/xferlog This file contains logging information from the FTP server daemon.

Virtual FTP Support

If you wish to manage an ftp server for two separate domains on the same machine, the virtual ftp server feature can be used. This allows an administrator to configure systems, so that a user ftp'ing to ftp.domain1.com gets one ftp banner and ftp directory, and a user ftp'ing to ftp.domain2.com gets another banner and directory even though they are on the same machine and use the same ports.


NOTE

Setting up a virtual ftp server requires IP address aliasing. This is supported in HP-UX 10.30 and later.


Table 10-5: Support Tools
/usr/bin/ckconfigVerifies path names of all FTP configuration files.

10.3.1 Secure Version of FTPD

At 11i, a unified binary is available for the new version of FTPD which can operate as both Kerberos and non-Kerberos service.

To have the new FTPD operate in a secure environment, you enable the secure environment, with the following command:

/usr/sbin/inetsvcs_sec enable

This will update the system file /etc/inetsvcs.conf with an entry kerberos true. The services obtain the type of authentication mechanism from the system file at run time.

10.4 STREAMS/UX (new)

Several enhancements have been made to STREAMS/UX. These include support for the select() system call, an I/O forwarding mechanism, and Function Registering:


NOTE

UP Emulation will no longer be supported on HP-UX in a future release. Therefore, drivers and modules that are configured as UP emulation drivers and modules should be made MP scalable in preparation.


For more information about these changes, see the STREAMS/UX Reference Manual, part number J2237-90043.

10.5 Low Bandwidth X Extension (LBX)

The Low Bandwidth X extension (LBX) uses several compression and local caching techniques to improve performance on wide area networks and on slower speed connections. These reduce the amount of protocol data transported over the network and reduce the number of client-to-server round trips required for common application startup operations.

LBX is implemented in two pieces: an X server extension and a proxy application. The X server extension provides the new optimized protocol. The proxy application, lbxproxy, translates a normal client X protocol stream into an LBX stream. This permits any existing application to gain the benefit of the optimized protocol with no changes. The proxy is especially useful when multiple applications are running on the same local area network separated from the X server by a slower network. In this case, the full benefit of the local cache is shared by each application using the same proxy process.

The lbxproxy binary is added to the /usr/bin/X11 directory. It must be started by an end user either directly or through the Proxy Manager (proxymngr) and Find Proxy (xfindproxy).

10.5.1 Performance Issues

When X clients are separated from the X server by a slow connection such as a modem, performance will be improved by going through lbxproxy. However, when the client and X server are separated by a fast connection such as a local area network, performance may be degraded by running through lbxproxy.

10.5.2 Proxy Manager (proxymngr)

The Proxy Management Protocol is an ICE based protocol that provides a way for application servers to easily locate proxy services such as the LBX proxy. LBX is currently the only supported proxy service.

Typically, a service called a "proxy manager" is responsible for resolving requests for proxy services, starting new proxies when appropriate, and keeping track of the available proxy services. The proxy manager strives to re-use existing proxy processes whenever possible.

The proxymngr executable is added to the /usr/bin/X11 directory. It must be started directly by the user. This can also be used in conjunction with xfindproxy which is also in /usr/bin/X11.

10.5.3 Remote Execution (RX) Service

The remote execution (RX) service specifies a MIME format for invoking applications remotely, for example via a Web browser. This RX format specifies a syntax for listing network services required by the application, for example, an X display server. The requesting web browser must identify specific instances of the services in the request to invoke the application.

There are two methods to demonstrate this service: xrx, the helper program and libxrx.6.3, the Netscape plug-in. The xrx helper program is added to the /usr/bin/X11 directory. End users must set up their web browsers to use this program for files with the rx extension. The Netscape plug-in, libxrx.6.3, is added to the /usr/lib/X11R6 directory. End users must copy this to their $(HOME)/.netscape/plug-ins (or equivalent) directory so that files with the rx extension are interpreted correctly. In order to use the plug-in, Netscape should not also be setup to use the helper program.

10.5.4 Security Extension

The security extension adds X protocol needed to provide enhanced X server security. This extension adds the concepts of trusted and untrusted clients. The trust status of a client is determined by the authorization used at connection setup. All clients using host-based authorization are considered trusted. Clients using other authorization protocols may be either trusted or untrusted depending on the data included in the connection authorization phase.

When a connection identifying an untrusted client is accepted, the client is restricted from performing certain operations that would steal or modify data that is held by the server for trusted clients. An untrusted client performing a disallowed operation will receive protocol errors.

When a client is untrusted, the server will also limit the extensions that are available to the client. Each X protocol extension is responsible for defining what operations are permitted to untrusted clients; by default, the entire extension is hidden.

10.5.5 Application Group Extension (XC-APPGROUP)

The application group extension provides new protocol to implement Application Groups (AppGroups). The AppGroup facility allows other clients to share the SubstructureRedirect mechanism with the window manager. This allows another client called the application group leader, such as a web browser, to intercept a MapRequest made by a third application and re-parent its window into the web browser before the window manager takes control. The AppGroup leader may also limit the screens and visuals available to the applications in the group.

This extension, along with the Netscape remote execution plug-in, allows Netscape to run programs remotely over the Web with the output appearing in the Web browser display.

The only way for an application to become a member of an AppGroup is by using an authorization generated using the new security extension. Whenever an application connects to the server, the authorization that it used to connect is tested to see if it belongs to an AppGroup. This means that the authorization data must be transmitted to the remote host where the application will be run. In the case of X, HTTP is used to send the authorization. Sites that have concerns about sending un-encrypted authorization data such as MIT-MAGIC-COOKIE-1 via HTTP should configure their web servers and web browsers to use SHTTP or SSL.

10.5.6 SLS/d - Distributed SLS (HP Visualize Center Support)

SLS/d is an extension of the SLS (Single Logical Screen) functionality provided by the X server that allows the X desktop to span graphics displays that reside on distributed systems. By distributing the display across several systems, a larger logical array of graphics displays can be achieved than otherwise would be possible with a single system with multiple graphics cards. SLS/d provides the X Window system support for part of the 3-D Visualize Center products.

SLS/d involves a low-level change in the X server that unites several distributed graphics displays into a logical X Window system. The only user-visible changes are related to system configuration. The X Window system API remains unchanged in the SLS/d system, and thus is completely transparent to 2-D X window applications. The motivation behind this new functionality is to increase the size of the logical screen beyond what is possible using a single system with multiple graphics cards.

A new driver and a new X server extension have been added to the X server in order to implement this change. The functionality is enabled by modifying the server's X* screens file. The full documentation for the SLS/d functionality can be found in the X server information file, /usr/lib/X11/Xserver/info/screens/hp and in the Graphics Administration Guide.

An SLS daemon and a configuration tool are delivered to aid system configuration. The daemon is controlled via start and stop scripts that reside in the /sbin/init.d, /sbin/rc1.d and /sbin/rc2.d directories. The SLS daemon is started when the system enters run-level 2 or greater and stopped when the system enters run-level 1. See the X server documentation for more details.

The performance of SLS/d depends on the performance of the underlying network to which the SPUs in the system are connected. On a dedicated network with a 100 Base-T backbone, the 2-D X Windows performance approaches that of a single SPU SLS system.

SLS/d is transparent to applications in the same manner as SLS. Once the system has been configured, it behaves identically to a single screen X Window system, albeit with a much larger screen size. One requirement is that the underlying graphics cards in the system be homogeneous. Although not a strict requirement, it is also desirable that the systems participating in the SLS/d system be homogeneous as well.


Chapter 11: Security

11.1 Generic Security Services for Developing Secure Applications (new)

The Generic Security Services Application Programming Interface (GSS API) is a newly introduced product for HP-UX 11i. It contains all the GSS APIs as per RFC 2743 and is implemented as C programming language interfaces as defined in the RFC 2744, "Generic Security Service API: C-bindings". It provides security services for applications independent of various underlying security mechanisms. GSS API is also independent of communication protocols. The GSS API is available as a separate shared library. The security services available to an application include authentication, integrity, and confidentiality services.

A set of GSS APIs is already available in libdce libraries which are a part of the DCE Core product in this release as well as in previous HP-UX releases. But these GSS APIs are dependent on the DCE security mechanism and cannot be used as general purpose APIs since they work with other security mechanisms.

Because of GSS API independence, an application developer writing secure applications needs only to write the code once and does not need to change it whenever the underlying security mechanism changes. This will prove to be quite advantageous during this period where security technology changes are rather frequent.

An application developer who uses the GSS API C-binding interfaces will need to include /usr/include/gssapi.h in the program and will need to link with libgss.sl. The underlying security mechanism and its library can be specified at run time in a configuration file called /etc/gss/mech. The library will then dynamically load the corresponding mechanism specific shared library (for example, libgssapi_krb5.sl in the case of Kerberos). The default mechanism configuration file is /etc/gss/mech, which can be altered with the environment variable called GSSAPI_MECH_CONF.

In addition to this configuration file, there are two other configuration files, namely /etc/gss/qop and /etc/gss/gsscred.conf for libgss.sl:

The 32-bit and 64-bit versions of libgss.sl library is available at the /usr/lib and /usr/lib/pa20_64 directories respectively.

11.1.1 Special Considerations

11.1.1.1 Symbol Clashes

Since the symbols of GSS APIs in the libdce libraries clash with the symbols of libgss.sl, application programmers who want to use GSS API and DCE together may need to resolve the symbol clashes by linking the libgss.sl library first and then the libdce library.

11.1.1.2 Size Requirements

A minimum of 32MB RAM and 1.5MB hard disk space will be required for installation and usage of the product on HP-UX 11i systems.

11.1.1.3 Compatibility

The libgss.sl library has been tested with Kerberos V5 backend mechanism library (/usr/lib/gss/libgssapi_krb5.sl) and is fully compatible. This library is in the KRB5-Client Software. See the next section for more information.

11.1.1.4 Documentation Changes

There are new manpages for each of the API's of the GSS API product under the /usr/share/man directory. These manpages are different from the manpages for DCE GSS API which is available under the /opt/dce/share/man directory. For general information about GSS API, refer to the gssapi(5) manpage and for information about libgss.sl, refer libgss(4) manpage.

There is also information about GSS API in Network Security Features for HP-UX 11i at:

 http://www.unixsolutions.hp.com/products/hpux/hpux11/whitepapers/netsecur.pdf

11.2 Execute Protected Stacks (new)

System security can be improved by enabling a new feature that execute protects program stack(s).

A common method of breaking into systems is by maliciously overflowing buffers on a program's stack. Malicious unprivileged users often use this method to trick a privileged program into starting a superuser shell for them, or performing similar unauthorized actions. Detailed information on this type of attack may be found by doing a web search for "Smashing the Stack for Fun and Profit."

HP-UX 11i provides new mechanisms to defend against this type of attack without sacrificing performance.

By setting the kernel tunable parameter executable_stack to zero, HP-UX systems can be configured to execute protect program stacks, providing significant protection from many common buffer overflow attacks. In the vast majority of cases, enabling this feature will not affect compatibility of any legitimate applications.

Please refer to the new +es option section of the chatr(1) manpage for additional information on how to configure this feature and how to quickly detect and resolve any (very rare) compatibility issues that may result from enabling it.

To implement this feature, changes were made to kernel execve() and virtual memory code, and to the chatr, elfdump and ld commands.

11.2.1 Impact

One of the primary goals of this feature is to significantly improve system security with the minimum possible effect on performance or compatibility. It consumes essentially no disk space or memory, and has no functional impact on the vast majority of legitimate applications, other than making them less vulnerable to malicious attacks. There is no measurable performance impact from this code.

11.2.2 Compatibility

In the default configuration, HP-UX is unaffected by these changes. Users who want to use this feature must explicitly enable it by setting the kernel tunable parameter executable_stack to 0. HP strongly encourages you to enable this feature. Refer to the +es section of the chatr(1) manpage for details of the possible tradeoffs between security and compatibility.

ELF-64 programs linked on previous releases of HP-UX will not benefit from this security feature until they are re-linked on HP-UX 11i or later, but will still function normally. 32-bit applications do not need to be re-linked.

The output of chatr and elfdump have changed slightly. chatr now supports an +esoption.


IMPORTANT

Warning to Java Users

Disabling stack execution will cause Java 1.2 programs to fail if using JDK/JRE 1.2.2 versions older than 1.2.2.06. To determine the Java version you are using, run java -version. To download the latest version of the JDK/JRE, see http://www.hp.com/go/java

To allow pre-1.2.2.06 programs to run, the executable from stack attribute of the program must be set to enable. To do this, invoke chatr +es enable file, where file is the executable file. This attribute will need to be set to enable for all executables contained in the JDK and JRE. This includes all files contained in the following directories:

/opt/java1.2/bin/PA_RISC/native_threads
/opt/java1.2/bin/PA_RISC2.0/native_threads
/opt/java1.2/jre/bin/PA_RISC/native_threads
/opt/java1.2/jre/bin/PA_RISC2.0/native_threads

Java 1.1 versions will execute with no problem.


11.3 Configurable Security Features (new)

Administrators now have a new convenient way to customize security features. A new /etc/default/security file is defined. Editing this file provides a way to configure new security features or to modify the behavior of existing security features.

A PASSWORD_HISTORY_DEPTH=<n> parameter can be added to /etc/default/security to enable a new password history feature, which forces users to choose passwords that do not match their most recent <n> passwords.

A MIN_PASSWORD_LENGTH=<n> parameter can be added to /etc/default/security to force users to choose passwords which have at least <n> characters.

A SU_ROOT_GROUP=<groupname> parameter can be added to /etc/default/security to allow users to su to root only if they are a member of the <groupname> group.

See security(4) for additional parameters and details.

11.4 Password History Feature on Trusted Systems

Password history is a new trusted-system feature of the passwd command, to discourage users from re-using previously used passwords.

The system administrator enables the system-wide password history feature by creating (or opening, if it already exists) a file called /etc/default/security and appending an entry:

PASSWORD_HISTORY_DEPTH=number

Depending on the value of number (decimal integer from 1 through 10), the system checks the user's new password against that number of previously used passwords and prevents their usage. (For example, if number=5, the system will not allow a user to use any of the last five passwords he or she has previously used.)

Structurally, the password history feature is accomplished by a shared library, called libpam_unix.1, which is dynamically loaded at run time by the command. This structural characteristic is totally transparent to users; the end-user interface of the command is unchanged.

For further information, consult the passwd(1) manpage.

11.5 Kerberos Client Software (new)

Kerberos is a network authentication protocol. Kerberos Client Software is now provided with HP-UX 11i. It enables integrating HP-UX into a secure enterprise environment. It provides tools and libraries to perform authentication and secure communication.

The Kerberos protocol is designed to provide strong authentication for client/server applications by using secret-key cryptography. It uses strong cryptography so that a client can prove its identity to a server and vice versa across an insecure network connection. After the client and the server have established their identities, they can also encrypt all of their communications to assure privacy and data integrity.

Kerberos Client Software is based on MIT Kerberos V5 1.1.1. It consists of libraries, header files, manpages and Kerberos utilities which help in performing command line or programmatic authentication. Data encryption APIs can be used to protect data transmitted over the Internet. Kerberos Client Software supports both 32- and 64-bit development. The 64-bit libraries are placed in the /usr/lib/pa20_64 directory.

11.5.1 Libraries

The following libraries are included:

11.5.2 Header Files

11.5.3 Utilities

11.5.4 Manpages

11.5.5 Special Considerations

11.5.5.1 Developing Secure Applications

Though Kerberos APIs are made available, these are for supporting existing Kerberos Applications to HP-UX 11i. Application Developers are strongly encouraged to use GSS API for developing secure applications. See gssapi(5) for details.

11.5.5.2 libsis.sl

Most of the KRB-Support (libsis.sl) functionality is now available with Kerberos Client Software. It is recommended that developers compile and link with these libraries.

11.5.5.3 Unsupported Features

11.5.5.4 Size Requirement

Kerberos Client Software requires 5MB of disk space.

11.5.5.5 Compatibility Issues

11.6 Auditing Commands/System Calls To Be Obsoleted

The auditing commands audevent, audisp, etc. and the system calls audwrite, audswitch, etc. will be obsoleted in a future release. An interface will be provided in the form of a device driver, /dev/idds, with additional functionality.

At that time, both /dev/idds and the current 11i auditing process will be supported for ease of transition.


Chapter 12: Compatibility

12.1 Compatibility from HP-UX 11.0 to 11i

Hewlett-Packard has a long record of providing HP-UX compatibility in order to protect the investment of computing environment and enables easy upgrade of the systems. HP has always recognized that HP-UX compatibility is an important feature that HP customers expect.


IMPORTANT

To Guarantee Compatibility, use new Superdome Machine Identifier.

The uname -i command on your Superdome systems may not return a unique value for each system. To guarantee compatibility on current and future platforms, use the new interfaces to getconf(1M) and confstr(3C) to retrieve unique machine identifiers.

These interfaces are documented in the manpages and in Chapter 13: Programming of this document.


Compatibility requirements span across HP-UX products to third party products as well. All third party products (and products the third party products call) are equally important components in the complete customer environment. Customer solutions often have complex, multiple chains of dependent applications spanning the entire range of HP-UX products as well as third party products. One broken link in the chain of dependencies may result in an application that no longer works. The unbroken string of compatibility support on HP-UX is one of the biggest and best benefits provided by HP.


NOTE

11.0 applications will continue to run on HP-UX 11i.

For compatibility issues relevant to a particular component, refer to the information in this document that describes that component.


HP-UX supports forward compatibility from 11.0 to 11i. This chapter will describe what this means for executable applications, object files, source files, data, and libraries, and will also discuss compatibility exceptions.

The following types of compatibility are supported from 11.0 to 11i for well-behaved applications:

Known exceptions to compatibility are described below.

A well-behaved application adheres to the following characteristics:

12.1.1 Binary Compatibility

An application that ran on HP-UX 11.0 will continue to run with the same behavior on 32-bit and 64-bit HP-UX. An executable is a binary file that has been processed by the HP link editor with ld or indirectly with the compiler, and can be run by the HP-UX loader (exec).

12.1.2 Source Compatibility

Software that compiled on an HP-UX 11.0 release can be recompiled without change on HP-UX 11i. The term "source" includes input source to compilers, scripts, and makefiles.

12.1.3 Data Compatibility

An application can continue to access persistent data files, such as system files, backup/recovery formats, and HP-documented data formats via supported APIs in the same manner as the previous release. For example, applications should access the password file information via getpwent() rather than directly reading the file in order to maintain data compatibility.

12.1.4 Relocatable Object Compatibility

A relocatable object can be a file (.o), shared library (.sl), or an archive library (.a).

Several types of object binary compatibility are included here:


NOTE

The linker will permit the linking of both pre-HP-UX11.0 libraries and HP-UX11.0 and 11i libraries in one relocatable object/executable and will not exhibit any warning or error messages, but the executable may exhibit incorrect behavior.


12.1.5 Upgrade Compatibility

Customized configurations and data from HP-UX 11.0 are preserved upon installation/upgrade to HP-UX 11i.

12.1.6 HP-UX 10.x Applications on HP-UX 11i

HP-UX 10.x applications that compiled and ran on 11.0 can be recompiled and run on HP-UX 11i without change.

12.2 Known Compatibility Exceptions from HP-UX 11.0 to 11i

All of these compatibility exceptions are rare corner cases for well-behaved applications. Details of these exceptions can be found in this document.

12.2.1 Memory Windows

This change enables applications to access up to 1 GB of shared memory that is not otherwise allocated against the system wide limit. Enabling Memory Windows alters the semantics of some memory API's and some POSIX API's. These API's function correctly for applications running within a Memory Window but do not function correctly for applications running in different Memory Windows.

12.2.2 ONC+/NFS Security Correction

This change corrects a security problem in NIS+. Applications that are linked to the archived version of the libnsl library may have a compatibility problem. Applications linked to the shared version of libnsl will not exhibit these symptoms. The symptoms include:

12.2.3 IOSCAN Usability Enhancement

This change improves the usefulness of the IOSCAN output for PCI interfaces. The description field for PCI interface cards has been changed to be more descriptive. The description field of non-PCI devices has remained the same. Scripts that scan for hardcoded values may need modifications.

12.2.4 ELF Undocumented Symbol Table Change

This change makes some tool development easier. The ELF symbol table type of some (thirteen) linker-defined symbols is changed from STT_OBJECT to STT_NOTYPE. Although the names of these symbols are documented, their types and meaning have never been documented. Only applications that are not well behaved and read 64-bit ELF executable files are affected.

12.2.5 IPv6 IPsec

This change allows support for a contemporary standard. The values for the following defines were changed to support standards:

12.2.6 Non-Executable Stack

This change improves system security. The majority of your programs should be unaffected by execute protecting program stacks. Only those that execute instructions from their stack (typically interpreters, simulators and debuggers) are affected.

When enabled, the new functionality causes the termination of any program attempting to execute code located on its stack. If this occurs, you will be given an error message pointing to relevant documentation that explains the reason for the process termination and how to remedy the situation.

12.2.7 128 CPU Support

This change enables support for 128 CPUs. The kernel macro "MAX_PROCS" has changed from 32 to 128 in the LP64 kernel and change the ABI for the un-documented system calls ki_call() and ktest_ioctl().

The MAX_PROCS change will cause an ABI incompatibility for kernel intrusive applications or drivers, which access internal kernel arrays sized by the MAX_PROCS macro.

12.2.8 strftime() Support for Week Number

This change fixes a defect in strftime(). Applications that use the %V option of strftime()to obtain the week number will find that the return value is 52 instead of 53 when:

12.2.9 Linker Support for PBO of 64-bit Shared Libraries

This change enables 64-bit PBO to function with shared libraries. Only those who link -noshared instrumented applications and use HP_LD_FDP_INIT to specify an alternative version of fdp_init.o will be affected. If this is the case, you will have to use HP_LD_FDP_INIT_NS instead. If the HP_LD_FDP_INIT_NS environment variable is not set and fdp_init_ns.o is in the default location, the link will fail with the "file not found" error message.

12.2.10 DNS Bind

This change is necessary to conform to the behavior found on other vendor platforms. Those who have edited named.boot could find the file missing, or if the file exists, edit the file and then not have their changes take effect. This is primarily a system administration change, but in the rare instance where scripts might be written to edit named.boot, the scripts would need to be modified to edit named.conf, both for the new filename and syntax.

12.2.11 NFS Mount Access Control

This change is necessary to conform to de facto industry behavior. The behavior of access= has been modified to conform to a common behavior. If you are using the undocumented feature to disallow the NFS mounts, it will now succeed.


NOTE

Applications that use undocumented features are not "well behaved."


12.2.12 Tighter Security for NFS Mounts

This change is necessary to improve the security of NFS mounts. Without this change, when you export a filesystem using the root= option of exportfs, NFS-clients on the root= option are allowed to mount the NFS file system even when they don't appear on the rw= list and/or access= list. The new behavior disallows NFS clients from mounting the file system unless they appear in either a rw= and/or access= list.

12.2.13 Memory Size Increase for Process-Private Memory

This change increases the memory size limit for process-private memory. When the 3rd quadrant private feature is enabled for a process it can only allocate shared objects in the 4th quadrant. If the 4th quadrant fills up, the application may fail, where it would not have failed if the 3rd quadrant was available for allocation of shared objects.

12.2.14 Removal of MAXTID and Change to MAXPID

The change raises the number of processes or threads to 8 million. MAXPID, which is undocumented, will be changed. An alternate mechanism to dynamically determine the value of MAXPID is introduced.

12.2.15 Fortran 90 GETARG Intrinsic Function

This change causes the semantics of the "index" argument to the HP supplied F90 intrinsic routine GETARG to be compatible with older HP F77 and other vendor implementations of this routine. Those affected will have to change and recompile their source code to use the industry standard indexing scheme.

12.2.16 Software Distributor Bundle Algorithm Change

This change allows you to maintain a depot with multiple versions of a software distributor bundle and automatically get the latest version of the bundle without specifying a version qualifier. The install process no longer prints an error message when you do not qualify which version of the bundle is intended to be installed.

12.2.17 Software Distributor Automatic Generation of Depot or root Layout Version

This change allows you to maintain 10.20 and 11.x depots on an 11.x system. It modifies the SD commands so they do NOT change the layout version of a depot or root automatically. Any scripts or processes that rely on the automatic conversion to layout_version=1.0 will be broken.

12.2.18 Software Distributor Log Messages Simplification

This makes it easier for an administrator to identify real problems when scanning the log files. The SD log files contain less 'noise' (error, warning or note messages that contain no useful information).

12.2.19 Software Distributor System Update Process

This change gives you a more robust and easier to use HP-UX 11i update process. You will have to learn this new process.

12.2.20 Software Distributor Reduces Amount of Information from Program swlist

This change improves the performance of some "swlist"options. Extraneous data is no longer displayed and listing of bundles in a depot shows only bundles. Applications that depend on the old format and behavior will have to be modified.

12.2.21 Software Distributor Changes Behavior with Unknown Attributes

This change allows packagers to use new attributes in their software packages without requiring SD to know the attribute. The"swpackage" program will no longer print error messages when an unrecognized attribute is encountered. You must be careful when naming attributes because typographical errors will no longer be reported.

12.2.22 libc qsort() Algorithm Change

This change improves performance. This enhancement of qsort() sorts "tied" elements differently than the previous implementation. Well-behaved applications are not affected, since the man page warns that the order in the output of two items that compare as equal is unpredictable.

12.2.23 libc SYSTEM_ID callbraph Change

Applications that have been linked to the archival version of libc and also have any shared libraries linked to the application may fail because the callbraph of libc has changed.


NOTE

Linking an application with a shared library that depends on an archive library is NOT a supported configuration. Applications linked in this way do not qualify as well behaved because this configuration is NOT supported.


12.2.24 Customization of wctype Methods

This change removes the ability to use customized locale methods for accessing "wctype", wide character classification, APIs in order to provide performance improvements. If an application is built for locales with localedef -m and the method library includes custom functions for iswalpha(), iswupper(), iswlower(), iswdigit(), iswxdigit(), iswalnum(), iswspace(), iswpunct(), iswprint(), iswgraph(), iswcntrl(), wctype(), iswctype()), the application should now be linked with the method library and call the method functions directly.

12.2.25 System V Message Queues Expanding Beyond Present 64KB Limit

This change alters the message queue data structures to support queues larger than 64KB. If one application is built to use the larger queues, all related applications that use the same message queue must be built to use the larger queues.

12.2.26 Maximum Number of Active Processors for pstat_getdynamic Changed

This change corrects a defect in the pstat_getdynamic interface so it adheres to the documentation when it reports the number of processors that are active on a system. Well-behaved applications will not be affected by this change. Ill-behaved applications may overestimate the number of processors that are active on the system. Ill-behaved applications can be corrected to reference the correct field with a simple code change.

12.2.27 Export filesystem (NFS) Security Defect Correction

This change corrects the NFS implementation so it conforms to industry practice when exporting a filesystem. Well-behaved applications will not be affected by this change. Applications that assume that exporting a symbolic link to a filesystem will result in the symbolic link being exported, rather than the directory to which the symbolic link points, will fail that assumption. Shell scripts and administrative processes may have to be changed to correct the assumption.

12.2.28 Support Tools Manager, EMS Hardware Monitors

This change improves the usability for the STM User Interface and the EMS Hardware Monitors. Any script that depends on the specific output of the EMS Hardware Monitors or specific commands or displays in the STM UI may have to be modified.

12.2.29 libc atof() Algorithm Change

This change fixes a defect in atof() to convert denormalized floating point numbers correctly. Applications which disregard the recommended coding practices of using floating point ranges rather than relying on specific hard coded floating point numbers can be affected.

12.3 Obsolescence and Deprecation of APIs

This section defines the obsolescence of core system libraries and relocatable objects. Obsolescence of other products are covered in separate sections.

12.3.1 Rationale and Objectives

The HP rational and objectives of obsolensence and deprecation of APIs are:

The intent is that there will be NO gratuitous changes, and obsolescence of APIs and libraries is acceptable when initiated to avoid application breakage or duplicate functionality.

12.3.2 Terms and Definitions

Deprecated: A "deprecated" interface can have the following characteristics:

The reasons for marking an interface as "deprecated" may include:

Obsolete: An "obsolete" interface may have the following characteristics:

The reasons for marking an interface as "obsolete" may include:

12.3.3 Archive/Static Libraries

Most archive system libraries, such as, libc.a,with the exception of libc.a, libcres.a, and libsbin.a, will be obsolete and not shipped on follow-on releases of HP-UX, including those supporting IA-64. For the benefits to you and HP refer to Section 12.3.1 Rationale and Objectives.


NOTE

In most cases, your makefiles will continue to work without the need for modifications..


12.3.4 CMA Threads Obsolescence

12.3.4.1 Background

CMA threads (libcma) is a userspace implementation of POSIX P1003.1a (Draft 4), which was based on Concert Multi-Thread Architecture (CMA).

Starting in HP-UX 11.00, multi-threading was also supported in the HP-UX kernel and was known as kernel or POSIX threads (libpthread). The POSIX threads implementation supports the approved POSIX 1003.1c (POSIX.1-1996 Draft 10) standard, which facilitates application portability onto POSIX-compliant vendor platforms. POSIX threads also enables the application to parallelize the execution of threads on multiple processors in a multi-processor system.

CMA Threads (libcma) will be deprecated (advertised for future obsolescence) at 11i and the development environment will no longer be shipped on follow-on releases of HP-UX, including those supporting IA-64. There is no plan to release native IA-64 CMA Threads on follow-on releases of HP-UX, including those supporting IA-64. Also see Section 8.2 Kernel Threads vs. CMA Threads (new) in Chapter 8.

12.3.4.2 Options

Applications using CMA threads have the following options:

12.3.4.3 Customer Transition Aids

Transitioning from CMA Threads to POSIX Threads is a non-trivial effort.

The 11.x/IA-64 Software Transition Kit (STK) provides tools and documentation transition aids to help with the transition at:

http://devresource.hp.com/STK

Additonal transition aids include:

12.3.4.4 List of APIs to be Deprecated/Obsoleted

A summary of information about the APIs to be deprecated and obsoleted is provided in APIs to be Deprecated/Obsoleted

Table: Table 12-1: APIs to be Deprecated/Obsoleted

Library/API

Description

Release

Depre- cated

Obsolete

on PA

Native on IA-64

Comments

Entire Libraries

libc.a

pa20_64/libc.a

archive/static libc

11i

11i

future

future

n

n

libp/libc.a

pa20_64/libp/ libc.a

archive profile libc

11i

11i

future

future

n

libpicc.a

build custom own libc

11i

future

n

libPW.a

ATT Programmer's Workbench

10.30

future

n

comparable APIs are in libc

libBSD.a

BSD 4.2 library

10.30

future

n

comparable APIs are in libc

/usr/old/ libmalloc3x.a

/usr/old/ malloc3c.o

Old malloc() relocatable objects for compatibility with pre-9.x

10.01

11i

future

future

n

Use libc malloc()

libcma.a

libcma.1

libcma.2

CMA threads

11.0 & 11i

future

n

n

n

Use libpthread()

libc APIs

memorymap()

display the contents of the memory allocator.

32-bit only (no 64-bit available)

11i

future

n

use mallinfo() instead

blockmode family:

blclose(), blget(), blopen(), blread(), blset(), <blmodeio.h>

HP proprietary terminal interfaces

10.30

future

n

use libxcurses() instead

file system descriptor file entry 4.2 BSD:

endfsent(), getfsfile(), getfstype(), getfsent(), getfsspec(), setfsent()

file system APIs for compatibility with 4.2 BSD

10.30

future

n

use getmntent() APIs instead

gettxt(), setcat()

SVID message catalog facility

11i

future

y

use catopen(), catgets() instead

sys_errlist(), sys_nerr()

array of message strings and largest message number in the array

11i

future

y

use strerror() instead.

ptrace(), ptrace64()

process trace

11i

future

n

nl_tools_16() APIs and Macros:

byte_status(), firstof2(), secoof2(), c_colwidth()

tools to process 16-bit characters

10.0

future

n

Derived Definitions for Header files

_INCLUDE_AES_SOURCE

_XPG4_EXTENDED

Replaced by _INCLUDE_XOPEN_SOURCE_EXTENDED

11i

future

n

_SVID2

No longer supported

11i

future

n

_XPG2

No longer supported

11i

future

n

_XPG3

No longer supported

11i

future

n

_XPG4

Replaced by _XOPEN_SOURCE

11i

future

n

_POSIX1_1988

Replaced by _INCLUDE_POSIX_SOURCE

11i

future

n

_CLASSIC_ANSI_TYPES

_CLASSIC_POSIX_TYPES

_CLASSIC_XOPEN_TYPES

_CLASSIC_ID_TYPES

Supported in HP-UX 7.x, 8.x for HP-UX 6.xcompatibility. HP-UX compatibility is not required for 10.x.

11i

future

n


Chapter 13: Programming

13.1 Changes to the linker/dld Interface

Patches to the linker/dld interface include the following enhancements:

Neither functionality nor compatibility are affected by the code changes. However, for 64-bit programs, mixing object files having non-weakorder sections with object files having weakorder sections might cause the ordering of text sections to change.

The new version of the linker requires 34112 blocks.

13.2 Instrumented Code Using PBO or +O4 Optimization

This note pertains to the compilers and linker for HP C, HP aC++, HP C++ (cfront), HP Fortran 77, and HP-UX Linker.

When you compile your source code with the compiler shipped on HP-UX 11i, without any changes to source code, options, or makefiles, you might create relocatable object files or executables that are no longer backward compatible to an original 11.0 system. This condition will occur if you recompile with PBO (+Icompiler or linker option) or the +O4 option. You might create instrumented objects (ISOM) that an 11.0 system does not recognize.

Under these circumstances, one of the following types of error messages will be issued if you attempt to link the objects created using the HP-UX 11i compiler on an original 11.0 system.


NOTE

This code is not backward-compatible with the 11.0 release. Instrumented object files cannot be moved backward.


13.3 HP-UX Software Transition Kit (STK)

The HP-UX Software Transition Kit (STK) aids in transitioning your software to either the 32-bit or the 64-bit version of HP-UX 11i To transition your software and scripts, you may have to resolve issues such as data model and API changes. Many tools are available to help you resolve these issues. API file scanners are provided in the HP-UX 11i STK, while other tools are part of the HP-UX operating system, are included in HP-UX language products, or are supplied by third parties.

The HP-UX 11i STK provides step-by-step instructions for performing transitions, a complete set of background and technical documents, and file scanners to help you identify and resolve any required API changes in your source files.

In the following types of source files:

C and C++ programs
FORTRAN programs
COBOL programs
scripts
makefiles

the HP-UX 11.x STK file scanners can help you locate and fix any of the following which have changed or become obsolete:

functions
commands
path names
macros
structures and structure members
header files
language keywords
libraries
variables

One of the HP-UX 11i STK file scanners, scansummary, helps you plan your transition by summarizing the number and type of API impacts in your source files. The other tool, scandetail, helps you resolve those impacts by identifying the file name and line number where each impact occurs. Both tools provide links to more detailed information about each impact. The file scanners can also identify opportunities for using some enhanced features of HP-UX 11i.

To use the HP-UX 11i STK, you must install it. The HP-UX 11i STK is available free of charge via the Web:

http://devresource.hp.com/STK

Check this Web site often for updated content. The HP-UX 11i STK will eventually include tools and documentation that will help you successfully transition to the IA-64 architecture.

13.4 HP DCE/9000 (new)

HP Distributed Computing Environment (HP DCE/9000) Version 1.8 provides a high-quality, comprehensive, standards-based framework to develop, administer, and use distributed applications.

Kernel threads application development is now supported on HP-UX. The 32-bit version of the kernel threads DCE library (libdcekt) is now part of HP-UX base operating system. The 64-bit version of libdcekt is also included.


NOTE

It should be noted that only the DCE library (libdcekt) has been ported to 64-bit while the binaries and daemons which are part of the DCE products are still 32-bit.

The advantages of moving to 64 bit can be found under http://www.software.hp.com/STK/hpuxoverview.html#64-Bit.


The distinction between the International and US/Canada version of DCE components has been removed. That is, the 56-bit Data Encryption Standard (DES) which was earlier restricted to US/Canada is now available for all customers. This means there will only be one version of the DCE library and dced daemon which is based on the 56-bit DES version.


NOTE

The number of LAN interfaces supported by DCED is limited to 32 and the LAN interfaces supported by CDS is 12. If the number of LAN interfaces is more than 32, the environment variable RPC_SUPPORTED_NETADDRS can be used to specify the list of 32 LAN interfaces that are used by the Remote Procedure Call (RPC) application.


There are a number of new environment variables that have been added to support Remote Procedure Calls (RPCs) operations and to enable better usability:

Also, CMA threads are being obsoleted. It is recommended that all applications using CMA threads should start migrating to kernel threads and use libdcekt. See Section 8.2 Kernel Threads vs. CMA Threads (new) for additional information.

13.4.1 Compatibility Issues

All applications using the 64-bit library libdcekt may need to include /usr/include/dce/dce64.h. The site http://devresource.hp.com/STK contains 64-bit porting concepts and 64-bit compiler and linker changes needed to port the application to 64-bit.

DCE server products are not supported on workstations (Series 700 machines).

13.5 Extensions to pstat(2)

This extension provides new functionality to the pstat() system call that enables various system management and measurement tools to eliminate their dependency on the /dev/kmem pseudo-driver.

Today, many system management and measurement tools read kernel data structures through unsupported interfaces, such as the /dev/kmem pseudo-driver, to get information about open files, resource usage, process activity, and so on. Because kernel data structures change from release to release, this access method is fragile, incurring a high maintenance cost. To insulate these applications from the release-to-release variability in private kernel data structures, HP-UX 11i provides the enhanced pstat system call and a new set of wrappers.

The pstat interface is designed to allow future expansion of the interface, while preserving source and binary compatibility of programs written using pstat wrappers. The pstat interface is available in both 64-bit and 32-bit versions. Replacing the /dev/kmem access with calls to pstat wrappers will eliminate the need to re-release applications with each new HP-UX release.

Currently, the pstat() system call provides information about various system contexts, such as static, dynamic, virtual memory, process, open files, etc. HP-UX provides a number of libc wrappers (pstat_get()*) and corresponding structures (struct pst_()*) to get information from the kernel using pstat(). As part of this enhancement, new pstat() wrappers and corresponding structures are added and some existing ones are extended.

Compatibility is significantly improved by introducing a well documented interface that guarantees binary compatibility for kernel intrusive applications between releases. There is no impact to legacy behavior of current pstat() services.

There is no impact to application performance as compared to obtaining the data from /dev/kmem. No impact to system performance is expected from these pstat extensions.


NOTE

This release includes an enhanced version of pstat(). This version repairs some existing defects by adding more fields in pst_status struct to return process children usage information. The pstat(2) manpage reflects this added functionality. The enhancement poses no problem for 11.0 executables running on 11.0 Extension Pack or 11i, nor for any executables running on 11.0 Extension Pack, as long as they do not rely on the additional functionality.

Note, however, relocatable objects may incorrectly presume that the size of returned information is the same pre- and post-patch. It is possible to determine the size of information returned. pstat() users can use the size return value of the system call to maintain relocatable object compatibility and portability across the proposed change. This is documented in the manpage.

pstat() is not part of an industry standard, but was designed to accommodate changes of this nature while maintaining compatibility with earlier versions.


13.5.1 New Modules

The following table shows new pstat modules and the purpose of each:

pstat_getfile2()Provides information about open files of a process
pstat_getfiledetails()Provides stat equivalent information
pstat_getsocket()Provides detailed socket information
pstat_getstream()Provides detailed stream information
pstat_getpathname()Provides full pathname of an opened file (Reverse Pathname Lookup)
pstat_getmpathname()Provides a copy of the DNLC entries for a given file system


NOTE

Use of the call pstat_getmpathname() is limited to uid equal to 0. Use of the calls pstat_getfiledetails(), pstat_getsocket(), pstat_getstream(), and pstat_getpathanme() is limited to uid equal to 0 or effective ID match. In the case of effective ID match, access will only be granted if the target process is not and has never run as a setuid or setgid process.


13.5.2 New Data Structures

The following are new data structures being added to the PSTAT module:

pst_fileinfo2Describes per-file information. For the specified process, there is one instance of this context for each open file descriptor.
pst_fidUsed to efficiently re-access the opened files. This value is returned by pstat_getfile2(), pstat_getproc(), and pstat_getprocvm() calls. This ID is then passed to subsequent PSTAT calls such as pstat_getsocket() to efficiently re-access the opened files.
pst_filedetailsThis data structure contains detailed information specific to a particular open file. For a specified file, there is only one instance of this structure. This information includes stat equivalent information.
pst_socketThe PSTAT socket structure contains detailed information pertaining to an opened socket, such as type, state, protocol, address family, and options of the socket. For a specified socket, there is only one instance of this structure.
pst_streamThe PSTAT stream structure contains detailed information pertaining to a stream entity. This includes information about the head, names of modules pushed, and the driver of the stream.
pst_mpathnodeThis structure is returned by pstat_getmpathname() routine that provides a copy of the DNLC entries for a given file system. The information contained in this structure includes id of the current file or directory, parent of the current entry, and the name of the current entry. By traversing the DNLC entries in the reverse order, one can obtain the pathname for an opened file to the mount point.

In addition to the above data structures, several existing PSTAT data structures have been extended. These include: pst_dynamic, pst_vminfo, pst_vm_status, pst_status, pst_static, and pstun.

13.5.3 Documentation Changes

The existing pstat(2) manpage has been extended to reflect the added functionality.

13.6 Libraries

13.6.1 aC++ Runtime (libCsup*, libstd*, libstream*, librwtool*) (new)

The aC++ runtime provides the run-time environment necessary for deploying C++ based (aC++ compiled) applications on HP-UX 11i.

This release of the aC++ Runtime includes a new ANSI compliant Standard C++ library. The previous version of the runtime included the "classical" C++ STL library that corresponds to the pre-standard (Sept. 1998) definition of the C++ language and library. The updated C++ runtime included for HP-UX 11i retains the classical C++ library functionality but it also includes new components (libstd_v2 and libCsup_v2) that introduce a standard compliant set of C++ interfaces, as required by the "ISO/IEC 14882 Standard for the C++ Programming Language".

The added components, libstd_v2 and libCsup_v2, are new libraries with functionality that did not exist prior to this release of the C++ runtime. The details of the newly added libraries are covered in:

which are available after installation of version A.03.25 or later of the aC++ product.

Over time, with the acceptance of the new library, it is expected that the old classic library will be deprecated and possibly removed from some future operating system release.

Detailed manpages for the new library is included with the Independent Software Unit release. It is also discussed in the aC++ Online Help.

13.6.1.1 Impact

Overall (file) size of the C++ runtime will increase by about 44%, with 10 new libraries.

Provides access to the standard compliant C++ library for application developers (and deployment of such applications). This is by far the most heavily requested enhancement by the users of the aC++ compiler.

The performance of the new library (iostreams) may be slower.

13.6.1.2 Compatibility Issues

C++ application (source and binary) forward compatibility with 11.x is fully maintained by preserving the classic C++ library in the new runtime; source files, build systems and object files or libraries produced under HP-UX 11.0 with the previous version of C++ runtime should continue to work under the new runtime.

The new libraries are binary incompatible with the classic C++ libraries. The option -AAmust be used to enable the new libraries and headers.

To preserve backward source and runtime compatibility from HP-UX 11i to 11.0, application developers who develop C++ applications with the use of the new standard C++ library must ensure that the June 2000 Application Release dependent C++ library patches (C++ library and Header File patches: PHSS_21906, PHSS_21947, PHSS_21950, PHSS_21075, and PHSS_22217 as shown at http://www.hp.com/esy/lang/cpp/rels.html#11) are applied to the 11.0 system.

13.6.2 Changes to libc

13.6.2.1 Large Files Support for C++ Applications

libc has been modified to support large files for C++ applications. C++ applications can now access files greater than 2 GB. This is done by setting _FILE_OFFSET_BITS to 64 in 32-bit mode. More details can be found in the HP-UX Large Files White Paper on http://docs.hp.com.

13.6.2.2 HP CxDL Development Tool Support

libc support for HP CxDL Development tool has been included in the setjmp() and longjmp() family of APIs in both 64-bit and 32-bit libc.

13.6.2.3 libdbm

A new patch for the dbm libraries (libdbm(1) and libndbm(2)) has been created to increase performance of dbm_nextkey().

13.6.2.4 Header Files

Header files ftw.h and stdio.h were patched to enable C++ large files support.

In addition, numerous defects were fixed.

13.6.2.5 New Environment Variables for malloc

libc uses a single lock in the malloc() routines to make them thread-safe. In a multi-threaded application, there could be contention on this single lock if multiple threads are calling malloc and free at the same time. This patch provides multiple arenas, where malloc() can allocate space from, and a lock for each arena. Threads are distributed among the arenas. Two new environment variables are introduced:

These can be used to tune the number of arenas and the arena expansion factor for threaded applications. In general, the more threads in an application, the more arenas should be used for better performance. Expansion factors control the number of pages to expand each time and assumes the page size is 4096 bytes. The number of arenas can be from 4 to 64 for threaded applications. For non-threaded applications, only one arena is used regardless of whether this environment variable is set or not. However, you still can use this environment variable to change the expansion factor for non-threaded applications.

If the environment variable is not set, or the number of arenas is set to be out of the range, the default number of 8 is used. The expansion factor is from 1 to 4096; the default value is 32. Again, if the factor is out of the range, the default value will be used. For example:

$ export _M_ARENA_OPTS=8:32

where the number of arenas is 8, and the expansion size is 32*4096 bytes. In general, the more arenas you use, the smaller the expansion factor should be, and vice versa.

_M_SBA_OPTS turns on the small block allocator, and sets up parameters for the small block allocator, namely, maxfast, grain, num_smallblocks. Refer to mallopt() for details about the small block allocator, and its parameters. Applications with a small block allocator turned on usually run faster than with it turned off.

A small block allocator can be turned on through mallopt(); however, it is not early enough for C++/Java applications. The environment variable turns it on before the application starts.

mallopt() call can still be used the same way. If the environment variable is set, and no small block allocator has been used, the subsequent mallopt() calls can still overwrite whatever is set through _M_SBA_OPTS. If the environment variable is set, and a small block allocator has been used, then mallopt() will have no effect. For example:

$ export _M_SBA_OPTS=512:100:16

where the maxfast size is 512, the number of small blocks is 100, and the grain size is 16. You must supply all 3 values, and in that order. If not, the default ones will be used instead.

The _M_ARENA_OPTS and _M_SBA_OPTS environment variables have the following impact:


NOTE

Threaded applications which are linked with archive libc and other shared libraries where those shared libraries have dependencies on shared libc may break.


13.6.3 libc Performance Improvements (new)

13.6.3.1 Overall libc Performance Tuning

This information refers to the system library libc, /usr/lib/libc.sl. Several header files have been changed as described below. A new archive library has been added to allow linking the string and memory routines archived but the application as a whole can be linked shared.

There are now two different 32-bit system libraries. One is built for use on a PA1.1 machine and the other is built for use on a PA2.0 machine. The correct library is installed at installation time. Other changes to these libraries include a decreased calling overhead for the shared library. Also the build process makes use of pragmas introduced in release 10.20 to decrease the calling overhead in shared libraries.

In addition to the changes to the library builds, changes have been made to selected header files to allow building applications that have decreased calling overhead. These changes apply to both 32-bit and 64-bit applications

Two new libraries are added, /usr/lib/libcres.a and /usr/lib/pa20_64/libcres.a. These archive libraries include the common string and memory functions along with a improved performance qsort routine. A few other selected small routines are also included. The intent of this library is that an application can link this library archived while linking the application as a whole shared. The use of this archived library is a supported link mode and will not introduce the problems normally associated with a shared/archive link.

The 32-bit system libraries now have selected API's built with the pragmas HP_DEFINED_EXTERNAL, HP_LONG_RETURN and HP_NO_RELOCATION. When these three pragmas are used in the building of libc.sl it is referred to as a fastcalled library. The result of this is that the export stubs for the selected interfaces have been inlined in the library code. This reduces the call overhead. Applications that have already been built will benefit from this without any effort other than the replacement of this library. The benefit a given application will gain is very dependent on the applications use of the libc API's that have been fastcalled.

Along with the changes to the build process for libc.2, the following header files have been changed:

These header files now contain the necessary fastcall pragmas to enable building a fastcalled application. To make use of the pragmas to build the application, the define _HP_SHLIB_CALLS needs to be defined for the application compile. With this define, the application will now have the import stubs inlined in the application code further reducing the shared libary call overhead.


CAUTION

An application that has been built with the _HP_SHLIB_CALLS define can *ONLY* be used with a fastcalled libc. If the application also has APIs that are fastcalled and are part of the applications shared libraries, then that library must also be built with the fastcall technology


13.6.3.1.1 The /usr/lib/pa20_64/libc.2 Library

Although the build process for this library has not changed, the runtime architecture for HPPA-2.0 can make use of a reduced call overhead technology similar to that that exists with the 32-bit library. There is no restriction on matching the correct /usr/lib/pa20_64/libc.2 with the fastcalled application like there is with the 32-bit library.

There is a manpage available for libcres.a (5).

13.6.3.1.2 Compatibility Issues

An existing PA1.1 application will not have a compatibility issue with the new 32-bit fastcalled /usr/lib/libc.sl. However, if the fastcall technology is used to build an application, then that application can only be used with a fastcall technology library.

An existing 64-bit application does not have any compatibility issues with the existing /usr/lib/pa20_64/libc.sl libraries. If a 64-bit application is built with the fastcall technology, this application will not have any compatibility issues with an existing /usr/lib/pa20_64/libc.sl.

To make use of the application fastcall and the libcres.a features, changes will need to be made to existing make files.

13.6.3.1.3 Other Considerations

There is little to no impact from these changes. There is a slight (125KB) increase in amount of disk space required for libcres.a. The changes to the system libraries are transparent to current applications.

Any performance gains for an application are highly dependent on the application's use of libc.sl and what interfaces in this library are used.

The fastcall technology will be delivered with all systems. If there are compatibility concerns, the applications should not be built with this technology.

More API's in libc may make use of the fastcall technology in future releases. Appropriate changes to the header files will be delivered to track these changes.

13.6.3.2 Performance Improvements to libc's ftw(3C) and nftw(3C)

The libc functions ftw() and nftw() have been rewritten to operate faster, avoid stack overflow conditions, reduce data space usage, and improve parallelism in multi-threaded applications.

libc and commands which call ftw() and nftw() are affected.

13.6.3.2.1 ftw()

ftw() was rewritten to eliminate internal recursion, thus avoiding the possibility of a stack overflow on deep file trees. A single fixed-size data structure is allocated in the stack instead of using malloc() to separate buffers for each depth of the tree. Use of strlen() was eliminated, as well as trivial comparisons such as strcmp(buf,"."). The file descriptor re-use algorithm was changed from most-recently-opened to least-recently-opened which can show significant performance gains on very deep file trees.

ftw() will typically show 8% reductions in elapsed time and 50% or more reduction in heap space used.

13.6.3.2.2 nftw()

nftw() was rewritten similarly to ftw() with the same benefits. nftw() now fully conforms with the UNIX95 definition, including the fact that when the FTW_PHYS is not set, files are reported only once.

Threaded applications can obtain greater concurrency when specifying absolute path names for the starting path, and FTW_CHDIR is not set. In addition, an internal unbalanced binary tree was replaced with a much more efficient splay tree. The effect of this tree change becomes significant as the number of object inodes being tracked increases. Directory inodes are always tracked, and when executing in UNIX95 mode and the FTW_PHYS option is not set, all files and directories are tracked. When the number of tracked objects reaches about 20,000, the user CPU time with the splay tree is about half the user CPU time for the old nftw(). At 100,000 tracked inodes, the user CPU time is about 90% less for the splay tree.

Another performance improvement to nftw() eliminated calls to access() by checking the mode bits in the stat() buffer. This decreased system CPU time by approximately 4%.

Two defects were fixed in nftw():

nftw() improvements vary depending on options provided, with the most significant improvements seen in UNIX95 standard mode with the FTW_PHYS option not set, or when a very large number of directories exist in the file tree being traversed.

13.6.3.2.3 Documentation Change

The ftw(3C) and nftw(3C) manpages have been updated, particularly with respect to the two defect fixes and means of achieving best concurrency in threaded applications.

13.6.3.2.4 Other Issues

The code size of ftw() and nftw() has increased by about 40%, but the heap requirements are reduced by 50% or more.

If you relied on the FTW_CHDIR defects which were mentioned above, there may need to be an application change.

13.6.3.2.5 Performance Issues

Minimally, you should find that ftw() operates about 6% faster and nftw() 4% faster. On very large file trees where the number of tracked inodes is in the tens of thousands or more, the performance gain of nftw() could be 30% to 40% or more.

13.6.3.3 Performance Improvements to libc's malloc(3C)

A new environment variable, _M_CACHE_OPTS, is available to help tune malloc() performance in kernel-threaded applications. This environment variable configures a thread-private cache for malloc'ed blocks. If cache is configured, malloc'ed blocks are placed into a thread's private cache when free() is called, and may thereafter be allocated from cache when malloc() is called. Having such a cache potentially improves speed performance for some kernel-threaded applications, by reducing mutex contention among threads and by deferring coalescence of blocks.

The thread-private cache is only available for kernel-threaded applications, i.e. those linked with the pthread library. The installed shared pthread library version must be PHCO_19666 or later, or the application must be statically linked with an archive pthread library that is version PHCO_19666 or later, or else cache is not available.

By default cache is not active and must be activated by setting _M_CACHE_OPTS to a legal value. If _M_CACHE_OPTS is set to any out of range values, it is ignored and cache remains disabled.

There are two portions to the thread private cache: one for ordinary blocks and one for small blocks. Small blocks are blocks that are allocated by the small block allocator (SBA), which is configured with the environment variable _M_SBA_OPTS or by calls to mallopt(3C). The small block cache is automatically active whenever both the ordinary block cache and the SBA are active. The ordinary block cache is active only when it is configured by setting _M_CACHE_OPTS. There are no mallopt() options to configure the thread-private cache.

The following shows _M_CACHE_OPTS's subparameters and their meaning:

_M_CACHE_OPTS=<bucket_size>:<buckets>:<retirement_age>

<bucket_size> is (roughly) the number of cached ordinary blocks per bucket that will be held in the ordinary block cache. The allowable values range from 0 through 8*4096 = 32768. If <bucket_size> is set to 0, cache is disabled.

<buckets> is the number of power of 2 buckets that will be maintained per thread. The allowable values range from 8 though 32. This value controls the size of the largest ordinary block that can be cached. For example, if <buckets> is 8, the largest ordinary block that can be cached will be 2^8 or 256 bytes. If <buckets> is 16, the largest ordinary block that can be cached will be 2^20 or 65536 bytes, etc.

<bucket_size>*<buckets> is (exactly) the maximum number of ordinary blocks that will be cached per thread. There is no maximum number of small blocks that will be cached per thread if the small block cache is active.

<retirement_age> controls what happens to unused caches. It may happen that an application has more threads initially than it does later on. In that case, there will be unused caches, because caches are not automatically freed on thread exit -- by default they kept and assigned to newly-created threads. But for some applications, this could result in some caches being kept indefinitely and never reused. <retirement_age> sets the maximum amount of time in minutes that a cache may be unused by any thread before it is considered due for retirement. As threads are created and exit, caches due for retirement are freed back to their arena. The allowable values of <retirement_age> range from 0 to 1440 minutes (=24*60, i.e. one day). If <retirment_age> is 0, retirement is disabled and unused caches will be kept indefinitely. It is recommended that <retirement_age> be configured to 0 unless space efficiency is important and it is known that an application will stabilize to a smaller number of threads than its initial number.

In general, kernel threaded applications that benefit in performance from activating the small block allocator may also benefit further by activating a modest-sized ordinary cache, which also activates caching small blocks (from which most of the benefit is derived). For example, a setting that might be tried to begin with would be:

_M_SBA_OPTS=256:100:8
_M_CACHE_OPTS=100:20:0

The smallest ordinary cache that is legal and will activate small block caching (if the SBA is also configured) is

_M_CACHE_OPTS=1:8:0

It can happen that activating small block caching with this minimum level of ordinary cache gives all the performance benefit that can be gained from malloc cache, and increasing the ordinary block cache size further does not improve matters. Or, increasing cache size further may give some further improvement for a particular application.

The malloc() per-thread cache is a heuristic which may or may not benefit a given kernel-threaded application that makes intensive use of malloc. Only by trying different configurations can you determine whether any speed improvement can be obtained from per-thread cache for a given application, and what the optimal tuning is for that application.

13.6.3.3.1 Impact

No impact on performance if cache is not configured or if application is not kernel-threaded. There are possible significant speed performance improvements for some kernel applications if cache is configured.

There is a small additional space cost (in process heap size) associated with the cache machinery. There is no per-block space cost for caching small blocks. However, there is a small space cost per ordinary block cached. ISVs whose applications are very memory intensive may want to configure only a minimum-sized or very small ordinary cache when experimenting with this feature.

malloc() thread-private cache does not change the function of malloc() for nonthreaded or cma threaded applications. It does maintain binary compatibility. However, because it is a change in allocation policy, it can cause different sequences of addresses to be emitted for the same sequence of requests than a previous version of malloc would have emitted. This level of compatibility is more stringent than ordinary binary compatibility and has never been guaranteed across releases of malloc.

13.6.4 The libcres.a Library

libcres.a is a small archive library provided at 11i.

libcres.a contains string, memory and other functions, to provide customers running performance-critical applications with the benefit of a static link.

Linking statically with libc is not a supported method of linking an application. Any performance improvement is highly dependent on the application's use of the included functions. The functions included in this library are:

abs(), bsearch(), div(), ffs(), insque(), labs(), ldiv(), memchr(), memcmp(), memcpy(), memmove(), memset(), strcat(), strchr(), strcmp(), strcpy(), strcspn(), strlen(), strncat(), strncmp(), strcpy(), strrchr(), strspn(), strstr(), swab()

The libcres.a(5) manpage describes its use more thoroughly.

To make use of this library, existing makefiles must be modified to include it on the link line. Existing applications must be re-linked to use this library.

The modules of this library are compiled with the HP optimizing compiler using a +O4flag. As a result, the applications using this library can be linked only by using the HP optimizing compiler.

The functions in this library cannot be overwritten with a user-defined function of the same name, as is the case today with libc names. If this library is used, user libraries cannot contain identically named functions or unexpected results may occur.

Performance of some applications may improve by using this library. The improvement is highly dependent on the application's use of the included functions.

13.6.5 Linker and Object File Tools (ld, crt0.o, dld.sl, libdld.sl, chatr and odump) (new)

The following list summarizes the changes to linker and object file tools.

Linker changes:

Tools enhancements:

13.6.5.1 Details of Linker Changes

Incremental linking: Incremental linking provides significant linktime improvements for compile-link-debug development cycles by processing only those input files that are actually modified between cycles. Files that are not modified do not need to be reprocessed. For large application, incremental linking may provide up to 10x and sometimes greater improvements in linktime.

Unix 98: Support for the APIs dlopen, dlsym, dlerror and dlclose is added for 32-bit programs.

Filtered Libraries: Filtered shared libraries divide up a large library into one filter and several implementation libraries. The user links against the filter library, but the real definitions of data and functions actually resides in the implementation libraries. At run time, only those implementation libraries that are actually used are loaded. Filtered libraries can be nested; an implementation library can itself be a filtered library containing other implementation libraries.

GProf 32-bit support: GProf is an enhanced version of prof which produces call graph over the input generated by prof. However, the profiling of shared library was not supported in earlier releases. This release will support profiling of shared libraries using the environmental variable LD_PROFILE. No recompilation is required for profiling shared libraries.

ldd32: List dynamic dependencies of incomplete executables files or shared libraries support in dld.sl.

PLabel cache: +plabel_cacheis added to 32-bit linker and dld.sl to control the global symbol hash mechanism.

+objdebugonly: ld +objdebugonlyin both 32 bit and 64 bit, to ignore debug information from non-objdebug objects or archives and proceed in +objdebugmode.

13.6.5.2 Other Issues

Various serious and critical defects were repaired.

Forward and backward compatibility are maintained. Use of new features in this release may break backward compatibility.

Invoking chatr on some binaries built with an older linker may emit the following message: chatr(error): dl_header_ext.size != sizeof(dl_header_ext). Please update your version of the linker/chatr. This message should be regarded as a warning rather than an error. chatr operation will be successful in spite of the warning.

13.6.6 Changes to libm

The fesetround() and fehold() functions in fenv.h have been upgraded to the latest ISO C9x specification. Previously the functions returned nonzero to indicate success and zero to indicate failure; now they return zero to indicate success and nonzero to indicate failure.

Any code that depended on the return value will need to change. For example:

if (!fesetround(FE_UPWARD))

{/* deal with failure to set rounding direction */}

could be changed to:

if(fesetrod(FE_UPWARD))

{/* deal with failure to set rounding direction */}

Previous code that depended on the return value are not compatible beginning with the 11.0 May 1999 Extension Pack .

13.7 Changes to sendfile(2)

The sendfile() system call is used to send a file directly over the network without having to perform many separate send() commands.

In previous releases, sendfile() did not work properly with large files, that is, when an application made a call to sendfile() and was compiled with the following compiler flags: LARGEFILE(64)_SOURCE and/or FILE_OFFSET_BITS=64. These flags allowed a 32-bit application to access large files that were over 2GB in size.

These large file applications should be recompiled on 11i. If the 'nbytes' parameter is not set to zero and they are not recompiled, these applications will not execute on 11i. To work correctly, the large file applications need to be recoded with the new bsize_t and sbsize_t types. See the sendfile(2) and sendfile64(2) manpages for more information.

32-bit or 64-bit applications that use sendfile() and are not compiled with the LARGEFILE(64)_SOURCE or FILE_OFFSET_BITS=64 flags do not need to be changed or recompiled for HP-UX 11i.

13.8 Changes to confstr(3C) (new)

New machine identifier, partition identifier, and serial number parameters have been defined for the confstr() library function.

The new parameters for confstr() are defined as follows:

_CS_MACHINE_IDENT

Identifier for each physical machine. Returned as an opaque string of printable ascii characters.This string has the same value for all partitions in a physical machine. For hardware classes first released with HP-UX 11i or later, this ID is unique across all hardware classes. For earlier hardware classes, the ID number is unique only within the hardware class. A null string is returned if no ID number is available; this is expected to be the case only for prototype machines or other systems improperly configured in manufacturing.

_CS_PARTITION_IDENT

Identifier for each partition existing on a machine. Returned as an opaque string of printable ascii characters. For any machine not supporting partitions this value will be same as _CS_MACHINE_IDENT.

_CS_MACHINE_SERIAL

Machine serial number as found labeled on the external machine chassis. The value will be a printable ascii string. This string is not available on all classes of machines; if unavailable, the string will be empty. This string is not a unique identifier of the machine, since machines of different classes can have the same serial number. If a unique identifier is needed, use _CS_MACHINE_IDENT or _CS_PARTITION_IDENT.

The preferred method of calling these functions is defined in the confstr(3C) manpage as:

bufsize=confstr(_CS_MACHINE_IDENT,NULL,(size_t)0);
buffer=(char *)malloc(bufsize+1);
confstr(_CS_MACHINE_IDENT,buffer,bufsize+1);

The first line will return the length of the string to be returned, allocate memory based on this value, then call confstr() again to get the actual value.


Chapter 14: Licensing Products

14.1 Future Change for LicensePower/iFOR

HP plans to remove LicensePower/iFOR from the Core HP-UX software in a future release. This licensing product can be obtained directly from Isogon Corporation, the owner of the product.

To download LicensePower/iFOR, go to Isogon's Web site:

http://www.isogon.com/support/sptlpifor/download/download.htm

14.2 Impending LSSERV Software Obsolescence (new)

HP-UX 11i is the last release that will contain the LSSERV licensing product as a bundled part of the operating system.

You can obtain this product directly from its owner, the Isogon Corporation. You can also visit the Isogon CorporationWeb site for further information about LSSERV support at http://www.isogon.com.


Chapter 15: New and Changed Internationalization Features

15.1 Unicode Character Set

HP-UX 11i provides system level support for the Unicode 2.1/ISO-10646 character set. Hewlett-Packard's support for Unicode provides a basis of enabling heterogeneous interoperability for all locales.

ISO-10646 is an industry standard for defining a single encoding which uniquely encodes all the world's characters. Unicode 2.1 is the companion specification to ISO-10646, Unicode support conforms with existing X/Open (OpenGroup), POSIX, ISO C and other relevant UNIX-based standards.

HP-UX 11i supports Unicode/ISO-10646 by utilizing the UTF-8 (Universal Transformation Format - 8) representation for persistent storage. UTF-8 is an industry recognized 8-bit multibyte format representation for Unicode. This representation allows for successful data transmission over 8-bit networking protocols as well as for safe storage and retrieval within a historically byte-oriented operating system such as HP-UX.

For internal processing, HP-UX utilizes the four-octet (32-bit) canonical form specified in ISO-10646. This support allows parity with HP-UX's current wchar_t implementation which has been based on a 32-bit representation.

Full systems level support is provided for all locales provided in this release.

For more information on the Unicode features of Asian System Environment, see /usr/share/doc/ASX-UTF8.

A select subset of locale binaries have been provided for 32-bit application processing:

Table 15-1:
Base:
C.utf8C UTF-8
univ.utf8universal
Table 15-2:
European:
fr_CA.utf8French Canadian
fr_FR.utf8French
de_DE.utf8German
it_IT.utf8Italian
es_ES.utf8 Spanish
sv_SE.utfSwedish
Table 15-3:
Asian:
ja_JP.utf8 Japanese
ko_KR.utf8 Korean
zh_CN.utf8Simplified Chinese
zh_HK.utf8 Traditional Chinese (Hong Kong)
zh_TW.utf8Traditional Chinese

To enable Unicode support in applications, set the environment variable to a desired utf8 locale.

Locales are installed based on the current language filesets already installed on the target system. For example, if the system uses the International.German the German Unicode locale (de_DE.utf8) is installed.

Source files for ALL supported locales (34 total) have also been supplied for 64- or 32-bit applications.

To build Unicode locales use the localedef command. Refer to the localedef(1M) manpage. Systems must have the kernel parameters MAXDSIZ, MAXTSIZ, and SHMMAX set to at least 100MB to ensure adequate swap space allowance for successful localedef compilation of these locales.

15.1.1 Unicode Euro Enhancement

HP-UX 11i provides expanded Unicode support to align the character repertoire with the ISO 8859-15 locales that are being provided for Euro support. This will ensure full interoperability with the newly added support for the ISO 8859-15 codeset.

Specific enhancements are provided to allow Euro display and input capabilities though Xlib and new fonts.

A subset of existing European (and French Canadian) locales have been modified:

Table 15-4: Modified European Locales
LocaleCountry
fr_CA.utf8French Canadian
fr__FR.utf8French
de_DE.utf8German
it_ IT.utf8Italian
es_ ES.utf8Spanish
sv_SE.utf8Swedish

Source files for all supported European locales have also been modified. To build these locales, refer to the localedef(1M) manpage.

15.1.2 Size Requirement

Unicode support requires the following additional disk space requirements:

Base Unicode offering (installed on all systems): Approximately 10MB.

Unicode European locales and localized files:

Table 15-5:
French & French Canadian8.4 MB
German4.2 MB
Italian4.2 MB
Spanish4.2 MB
Swedish4.2 MB

Unicode Asian locales and localized files:

Table 15-6:
Japanese3.4 MB
Korean2.4 MB
Simplified Chinese2.5 MB
Hong Kong1.7 MB
Traditional Chinese4.2 MB

15.1.3 Performance Issues

Applications using Unicode support should see comparable performance as observed with other multibyte codesets. For those applications moving from a single-byte codeset to Unicode, some performance impact will be observed for some types of character based operations.

15.1.4 Streams PTY Driver

UTF-8 is supported on the Streams PTY driver's line discipline (LDTERM) module. The user does not interact with the Streams PTY driver directly; it runs underneath the dtterm window. The Streams PTY driver is responsible for providing a UTF-8 communication channel while dtterm is responsible for processing the UTF-8 code and displaying the characters on the screen.

Refer to eucset(1), ldterm(7) and the lp(1) model script for details.

15.2 Corrected Character Mappings to iconv(1) and iconv(3C)

This release contains defect fixes for incorrect character mappings. The corrections concern the Simplified Chinese, Traditional Chinese, Japanese, and Korean characters of HP-UX.

Corrected character converter mappings allow for improved interoperability when sending or receiving converted character data to/from Unicode-aware systems.

15.2.1 Correction for Simplified Chinese

A patch corrects an incorrect character mapping that occurs when converting between hp15CN and Unicode (UCS2)/UTF-8 for Simplified Chinese.

Specifically, the Simplified Chinese character "Double Vertical Line" mapped incorrectly when converting between hp15CN and UCS2/UTF-8. This character was being mapped to the "Parallel To" character, which is a different character.

The following table summarizes the change applied to iconv tables:

Table 15-7:
hp15CNincorrect UCS2correct UCS2Character Name
0xA1CE-0x2225Parallel To
0xA1AC0x22250x2016Double Vertical Line

The hp15CN=ucs2 and ucs2=hp15CN iconv converter tables are affected. These tables are shared by both UCS2 and UTF-8 conversions.

No compatibility problems are anticipated. However, if compatibility concerns arise with regard to persistent data stored either in Unicode (UCS2) or UTF-8 on an HP-UX system, it is possible to generate a simple conversion script to search for each occurrence of an incorrect value in either UCS2 or UTF-8 and convert it to the correct value, based on the following mapping:

Table 15-8:
Old UCS2UCS2Old UTF-8UTF-8Char Name
0x22250x20160xe288a50xe28096Double Vertical Line

15.2.2 Correction for Traditional Chinese

A patch corrects several incorrect character mappings that occur when converting between Big-5/EUC and Unicode (UCS2)/UTF-8 for Traditional Chinese.

In the case of Big-5 to/from UCS2/UTF-8, the "Ideographic Space" character was absent in the Unicode conversion table mapping:

Table 15-9:
big5incorrect UCS2correct UCS2 Char Name
0xA140- 0x3000Ideographic Space

The following table summarizes the changes applied for conversions between eucTW and UCS2:

Table 15-10:
eucTWincorrect UCS2correct UCS2Character Name
0xa1a60x30fb0x2022Bullet
0xa1b70x20140x2013EN Dash
0xa1b90x20130x2014EM Dash
0xa1b60xfe310xff5cFullwidth Vertical Line
0xa1b8 0xfe32 0xfe31 Presentation form Vertical EN Dash
0xa1ea 0x2032 0x2035 Reversed Prime
0xa1eb0x20350x2032Prime
0xa2b90x22640x2266Less-than over equal to
0xa2ba0x22650x2267Greater-than over equal to
0xa2c20xfe660xfe65Small Greater-Than
0xa2c30xfe650xfe66Small Equals Sign
0xa2de0xff5c0x2223Divides
0xa2e10xfe670xff0f Full-width Solidus
0xa2e40xffe50x00a5Yen Sign
0xa2e60xffe00x00a2Cent Sign
0xa2e70xffe10x00a3Pound Sign

iconv conversions between eucTW and UCS2 or UTF-8 may be affected.

Big-5 conversions with UCS2/UTF-8 are not directly impacted as only a missing table entry has been added.

eucTW=ucs2, ucs2=eucTW, big5=ucs2 and ucs2=big5 iconv converter tables are affected. These tables are shared by both UCS2 and UTF-8 conversions.

No compatibility problems are anticipated. However, if compatibility concerns arise with regard to persistent data stored either in Unicode (UCS2) or UTF-8 on an HP-UX system, it is possible to generate a simple conversion script to search for each occurrence of an incorrect value in either UCS2 or UTF-8 and convert it to the correct value, based on the following mappings:

Table 15-11:
Old UCS2UCS2Old UTF-8UTF-8Char Name
0x30fb0x20220xe383bb0xe280a2Bullet
0x20140x20130xe280940xe28093EN Dash
0x20130x20140xe280930xe28094EM Dash
0xfe310xff5c0xefb8b10xefbd9cFullwidth Vertical Line
0xfe320xfe310xefb8b20xefb8b1Presentation form Vertical EN Dash
0x20320x20350xe280b20xe280b5Reversed Prime
0x20350x20320xe280b50xe280b2Prime
0x22640x22660xe289a40xe289a6Less-than over equal to
0x22650x22670xe289a50xe289a7Greater-than over equal to
0xfe660xfe650xefb9a60xefb9a5Small Greater-Than
0xfe650xfe660xefb9a50xefb9a6Small Equals Sign
0xff5c0x22230xefbd9c0xe288a3Divides
0xfe670xff0f0xefb9a70xefbc8fFull-width Solidus
0xffe50x00a50xefbfa50xc2a5Yen Sign
0xffe00x00a20xefbfa00xc2a2Cent Sign
0xffe10x00a30xefbfa10xc2a3Pound Sign

15.2.3 Correction for Japanese

A patch corrects four incorrect Japanese character mappings that occur between Shift-JIS/EUC and Unicode (UCS2)/UTF-8.

The following table summarizes the changes applied:

Table 15-12:
sjiseucJPincorrect UCS2correct UCS2Character Name
0x81500xA1B10xFFE30x203EOverline
0x815C0xA1BD0x20150x2014Em Dash
0x818F0xA1EF0xFFE50x00A5Yen Sign
n/a0x8FA2B70x02DC0xFF5EFull-width Tilde

Affected iconv conversions are conversions between sjis and UCS2 or UTF-8 as well as conversions between eucJP and UCS2 or UTF-8.

sjis=ucs2, ucs2=sjis, eucJP=ucs2 and ucs2=eucJP are the affected iconv conversion tables. These tables are shared by both UCS2 and UTF-8 conversions.

No compatibility problems are anticipated. However, if compatibility concerns arise with regard to persistent data stored either in Unicode (UCS2) or UTF-8 on an HP-UX system, it is possible to generate a simple conversion script to search for each occurrence of an incorrect value in either UCS2 or UTF-8 and convert it to the correct value, based on the following mappings:

Table 15-13:
Old UCS2UCS2Old UTF-8UTF-8Char Name
0xFFE30x203E0xefbfa30xe280beOverline
0x20150x20140xe280950xe28094Em Dash
0xFFE50x00A50xefbfa50xc2a5Yen Sign
0x02DC0xFF5E0xcb9c0xefbd9eFull-width Tilde

15.2.4 Correction for Korean

A patch provides a defect fix to address standards non-conformancy for Korean Unicode (UCS2)/UTF-8 character mappings.

The currently supplied Korean iconv converter tables do not conform to the Unicode 2.1 and ISO-10646 (with 1997 amendments) standards in addition to the Korean national standard, KSC-5700. The current mappings are considered obsolete by all noted standards organizations.

The enhancement provides a set of standards-conformant iconv converter tables for converting between eucKR and Unicode/UTF-8. Specifically, the obsolete region of 0x3d2e - 0x4dff has been re-mapped to the 0xac00 - 0xd7ff region specified in Unicode 2.1 for Hangul.

Without this modification, it is impossible to share data with any other system which is standards conformant in adhering to the Unicode 2.1/ISO-10646/KSC-5700 standards.

Affected iconv conversions are any conversions between eucKR and UCS2 or UTF-8.

The iconv conversion tables affected by this modification are eucKR=ucs2 and ucs2=eucKR. These tables are shared by both UCS2 and UTF-8 conversions.

No compatibility problems are anticipated. However, if compatibility concerns arise with regard to persistent data stored either in Unicode (UCS2) or UTF-8 on an HP-UX system, it is recommended that the previously installed ucs2=eucKR table be saved and renamed prior to installation of this fix. Persistent data can then be converted back to eucKR using this old table and then reconverted to the correct Unicode/UTF-8 representation.

15.3 EURO (ISO 8859-15 Locales)

Euro support is provided via locale support for the ISO 8859-15 character set. ISO 8859-15 is a newly ratified character set that differs from ISO 8859-1 in that it supports eight new characters. Specific enhancements are provided to allow Euro display, input, and processing capabilities.

Fourteen new locales have been created based on ISO 8859-15:

Table 15-14:
LocaleLanguage (Country)
C.iso885915 "C"
da_DK.iso885915@euroDanish (Denmark)
de_DE.iso885915@euroGerman (Germany)
en_GB.iso885915@euroEnglish (Great Britain)
es_ES.iso885915@euroSpanish (Spain)
fi_FI.iso885915@euroFinnish (Finland)
fr_CA.iso885915@euroFrench (Canada)
fr_FR.iso885915@euroFrench (France)
fr_IS.iso885915@euroIcelandic (Iceland)
it_IT.iso885915@euroItalian (Italy)
nl_NL.iso885915@euroDutch (The Netherlands)
no_NO.iso885915@euroNorwegian (Norway)
pt_PT.iso885915@euroPortuguese (Portugal)
sv_SE.iso885915@euroSwedish (Sweden)

Source files for supported European locales are also being supplied.

Applications must elect to enable ISO 8859-15 support, by setting the LANG environment variable to the desired locale.

ISO 8859-15 support is part of HP-UX and is available to all platforms. ISO 8859-15 support is not automatically turned on for any application. No special configuration is required and there are no compatibility issues involved with the addition of this new feature.

Locales are installed, based on which current language filesets are already installed on a target system.

The LC_MONETARY environment variable will be set to the euro for all locales listed above except C.iso885915 and fr_CA.iso885915. Standard euro formatting rules will apply to ALL locales where this environment variable is set to the euro. As a result, users may encounter a change to the decimal and thousands separators for the currency, whereas decimal and thousands separators outside the monetary area stay the same as in previous locales.

For example in the French locale, the thousands separator is a space and the decimal point is a comma. However, the international standard for the thousands separator for the euro currency is a period. So, a user that has the LC_MONETARY locale category set to "fr_FR.iso885915@euro" will see the following behavior:

The LC_MONETARY value can be changed by users to their national currency unit.

ISO 8859-15 support is not automatically provided in any application. Applications which use the Euro symbol must elect to enable ISO 8859-15 support, by way of setting the LANG environment variable to the desired locale. Users enable ISO 8859-15 automatically in some locales when logging in through the CDE.

For more information, please see:

http://software.hp.com/products/EURO/index.html

15.3.1 CDE Support

New functionality was introduced in the CDE product to support input and display of the Euro symbol. (These changes are for both the workstation and the server.)

15.3.2 X Window Support

New functionality was added to Xlib to support input and display of the Euro symbol. This was done by adding internal support for the ISO8859-15 character set (as well as support of UTF8 on 11i). When an Xlib application is started, Xlib internals determine if the locale is set to an ISO8859-15 character set. If it is, Xlib will perform character lookups using the eight new symbols present in the ISO8859-15 character set. Currently, only applications linked with X11R6 (X Window version X11 Release 6) will support the ISO8859-15 character set. Older X11 versions are not currently supported.

15.3.3 Libraries

The libc and xlib libraries support the Euro symbol.

15.3.4 Codeset Converters

New iconv tables exist to support conversion from/to ISO 8859-15 and ISO 8859-1, ucs2, and utf8. The additional disk space in HP-UX 11i is 6.42MB. No additional memory is required.

15.3.5 LaserJet Printers

An important aspect of the euro support is printing the new symbol on LaserJet printers using existing standard lp(1) model files.The ISO8859-15 font set is resident on the HP 4500 Color LaserJet Printer, which contains the Euro symbol at position A4 (hexadecimal). Your data file must contain this code to print the Euro symbol.

A new utility will be provided to download the fonts to the printer RAM. These fonts will then reside in the printer's RAM until the next power cycle.

Use the lp option -ocs9N (or -oscs9N) to select the ISO 8859-15 character set as the primary (or secondary) character set. For example:

lp -dprinter_name -ocs9N -oother_ options print_filename


NOTE

The case is significant. Be sure to use an upper case "N".


15.4 Euro - ISO 10646/Unicode Support (new)

HP-UX 11i provides system level support for the Unicode 2.1/ISO-10646 character set. Hewlett-Packard's support for Unicode provides a basis of enabling heterogeneous interoperability for all geographic areas.

ISO-10646 is an industry standard for defining a single encoding which uniquely encodes all the characters of the modern world. Unicode 2.1 is the companion specification to ISO-10646. Unicode specification at revision 2.1 includes the Euro symbol at 0X20AC codepoint.

Euro support to input, store, retrieve, display and print the Euro symbol has been added for this release. In addition to the base functionalities, HP-UX 11i is providing the following new functionalities:

Specific enhancements are provided to locales, localedef, libc, Xlib and iconv converter tables to achieve those new functionalities.

A subset of existing European locales has been modified to support dual currency to meet euro standard monetary formatting.

The following table gives the list of euro locales being supplied which support dual currency:

Locale

Language/Country

de_DE.utf8

German (Germany)

es_ES.utf8

Spanish (Spain)

fr_FR.utf8

French (France)

it_IT.utf8

Italian (Italy)

sv_SE.utf8

Swedish (Sweden)

The following table gives the list of locale sources being supplied which include dual currency support:

Locale

Language/Country

da_DK.utf8

Danish (Denmark)

de_DE.utf8

German (Germany)

el_GR.utf8

Greek (Greece)

en_GB.utf8

English (Great Britain)

es_ES.utf8

Spanish (Spain)

i_FI.utf8

Finnish (Finland)

fr_FR.utf8

French (France)

is_IS.utf8

Icelandic (Iceland)

it_IT.utf8

Italian (Italy)

nl_NL.utf8

Dutch (The Netherlands)

no_NO.utf8

Norwegian (Norway)

pt_PT.utf8

Portuguese (Portugal)

sv_SE.utf8

Swedish (Sweden)

When the LANG and/or LC_* environment variables are set to a euro supported locale, the national monetary formatting rules are used. The LC_MONETARY environment variable should be set to the euro supported locale name with @euro modifier to use/access euro monetary formatting rules.

For example, to specify the Euro as the currency for French, the following should be set:

LANG =3D fr_FR.utf8
LC_MONETARY =3D fr_FR.utf8@euro

Similarly, to specify French francs the following should be set:

LANG=3Dfr_FR.utf8

To access the monetary unit and the related monetary formatting rules programmatically, the programmer needs to toggle between the alternate monetary units via setlocale(3C) calls:

/* Handle euro in strfmon(), ... */
setlocale(LC_MONETARY, "fr_FR.utf8@euro");

...
/* Handle French francs in strfmon(), ... */
setlocale(LC_MONETARY, "fr_FR.utf8");

When the LC_MONETARY environment variable is set to euro, the formatting in monetary category will use euro standard formatting rules whereas other categories will still use local convention in formatting. As a result, users may encounter a change to the decimal and thousandths separators for the currency, whereas decimal and thousandths separators outside the monetary area, like in numeric numbers, remain as per local conventions.

For example, in the French locale the thousandths separator is a space and the decimal point is a comma. However, the international standard for the thousandths separator for the euro currency is a period. So, a user that has the LC_MONETARY locale catagory set to "fr_FR.utf8@euro" will see the following behavior:

15.4.1 Commands

The localedel(1M) command has been enhanced to handle @euro modifier in order to build dual currency locale(s).

The lp(1) model scripts for the dual currency locales have been enhanced to print euro character.

15.4.2 libc

Standard libc supports @euro dual currency.

15.4.3 Codeset Converters

New iconv converter tables exist to support conversion from/to utf8, ucs2 and iso885915, PC codepages and IBM's euro enabled codepages.

New iconv converter tables are available to support conversion from utf8, ucs2, and iso885915 to IBM's euro enabled codepages and PC codepages:

Table 15-15: utf8 and IBM's codepages (EBCDIC)

utf8 <-> cp1140

utf8 <-> cp1141

utf8 <-> cp1142

utf8 <-> cp1143

utf8 <-> cp1144

utf8 <-> cp1145

utf8 <-> cp1146

utf8 <-> cp1147

utf8 <-> cp1148

utf8 <-> cp1149

Table 15-16: ucs2 and IBM's codepages (EBCDIC)

ucs2 <-> cp1140

ucs2 <-> cp1141

ucs2 <-> cp1142

ucs2 <-> cp1143

ucs2 <-> cp1144

ucs2 <-> cp1145

ucs2 <-> cp1146

ucs2 <-> cp1147

ucs2 <-> cp1148

ucs2 <-> cp1149

Table 15-17: iso885915 and IBM's codepages (EBCDIC)

iso885915 <-> cp1140

iso885915 <-> cp1141

iso885915 <-> cp1142

iso885915 <-> cp1143

iso885915 <-> cp1144

iso885915 <-> cp1145

iso885915 <-> cp1146

iso885915 <-> cp1147

iso885915 <-> cp1148

iso885915 <-> cp1149

Table 15-18: utf8 and PC codepages (EBCDIC)

utf8 <-> cp437

utf8 <-> cp737

utf8 <-> cp775

utf8 <-> cp850

utf8 <-> cp852

utf8 <-> cp855

utf8 <-> cp857

utf8 <-> cp1860

utf8 <-> cp861

utf8 <-> cp862

utf8 <-> cp863

utf8 <-> cp864

utf8 <-> cp865

utf8 <-> cp866

utf8 <-> cp869

utf8 <-> cp874

utf8 <-> cp1250

utf8 <-> cp1251

utf8 <-> cp1252

utf8 <-> cp1253

utf8 <-> cp1254

utf8 <-> cp1255

utf8 <-> cp1256

utf8 <-> cp1257

utf8 <-> cp1258

Table 15-19: ucs2 and PC codepages (EBCDIC)

ucs2 <-> cp437

ucs2 <-> cp737

ucs2 <-> cp775

ucs2 <-> cp850

ucs2 <-> cp852

ucs2 <-> cp855

ucs2 <-> cp857

ucs2 <-> cp1860

ucs2 <-> cp861

ucs2 <-> cp862

ucs2 <-> cp863

ucs2 <-> cp864

ucs2 <-> cp865

ucs2 <-> cp866

ucs2 <-> cp869

ucs2 <-> cp874

ucs2 <-> cp1250

ucs2 <-> cp1251

ucs2 <-> cp1252

ucs2 <-> cp1253

ucs2 <-> cp1254

ucs2 <-> cp1255

ucs2 <-> cp1256

ucs2 <-> cp1257

ucs2 <-> cp1258

15.4.4 Impact

To use euro monetary formatting rules, LC_MONETARY environment variable must be set to the euro supported locale name with the @euro modifier appended to it.

The size requirement for locale sources and binaries is 20.1MB, while the converter tables size requirement is 191KB.

There are no compatibility issues involved with the addition of these features.

Applications using UTF-8 locales should see improved collation performance as compared with UTF-8 locales delivered in the previous releases.

15.5 Asian System Environment (ASE) (new)

HP-UX provides Asian systems for the Asian countries of the Far East, consisting of the following products:

JSE

Japanese System Environment

KSE

Korean System Environment

SSE

Simplified-Chinese System Environment

TSE

Traditional-Chinese System Environment

HP-UX provides several Asian enhancements as server features, including some new Asian codesets, UDC (User Defined Characters, or Gaiji), printing, and codeset conversions with mainframe codesets.

The new, changed, deleted features as well as some troubleshooting information is described below. For further information, see the following documentation:

To get release information on earlier versions of ASE, see the following files:

15.5.1 New Features

15.5.2 Changed Feature

15.5.3 Deleted Features


NOTE

The Japanese input methods EGBridge and VJE-gamma will be obsoleted in an upcoming release.


15.5.4 Troubleshooting Information

15.6 Enhanced Print Capabilities in the Asian System Environment

HP-UX 11i contains enhancements to the printer capabilities of four Asian-country system environments (JSE, KSE, SSE, TSE), as itemized below.

15.6.1 Changes Common to All ASEs

For more information, see the following files in /usr/share/doc/:

ASX-JPN, ASX-JPN-S, ASX-JPN-E, ASX-KOR, ASX-SCH, ASX-TCH

15.6.2 Japanese System Environment (JSE)

For more information, see the following files in usr/share/doc/: ASX-JPN, ASX-JPN-S, ASX-JPN-E, PRINTER-JPN-S, PRINTER-JPN-E

15.6.3 Korean System Environment (KSE)

For more information, see the following file: /usr/share/doc/ASX-KOR.

15.6.4 Simplified-Chinese System Environment (SSE)

For more information, see the following file: /usr/share/doc/ASX-SCH.

15.6.5 Traditional-Chinese System Environment (TSE)

For more information, see the file: /usr/share/doc/ASX-TCH.

15.7 Multibyte Support Extension and Unix98 Support (new)

A new set of multibyte API's have been added to libc following C99 specification (ISO/IEC 9899:1999), and the Unix98 specification.

These APIs extend the already existing multibyte and wide character APIs in order to be able to:

Several new design concepts have been introduced:

15.7.1 Stream Orientation

A stream can be either wide character or byte oriented. The orientation of a stream is a concept based on an input/output model that assumes that characters are handled as wide-characters within an application and stored as multi-byte characters in files, and that all the wide-character input/output functions begin executing with the stream positioned at the boundary between two multi-byte characters.

After a stream is associated with a file, but before any operations are performed on the stream, the stream is without orientation. If a wide-character input or output function is applied to a stream without orientation, the stream becomes wide-oriented implicitly. Likewise, if a byte input or output operation is applied to a stream without orientation, the stream becomes byte-oriented implicitly. Once the stream becomes oriented, the orientation is fixed and cannot be changed until the stream is closed.

15.7.2 Restartable APIs and the Conversion State

A new set of APIs have been introduced to facilitate the conversion between multibyte character representations to wide character representations. These APIs use a new object type, mbstate_t, that can hold the conversion state information necessary to convert between sequences of multibyte characters and wide characters. The conversion state determines the behavior of a conversion between multibyte and wide-character encodings. For conversion from multibyte characters to wide characters, the conversion state stores information, such as the position, within the current multibyte character (as a sequence of charactes or a wide character accumulator). For conversions in either direction, the conversion state stores the current shift state, if any, and possibly, the encoding rule.

As these APIs store the partial character information, a multibyte sequence can be processed one byte at a time, and the processing can be interrupted and continued (i.e. restarted) at some other point in time, so the new multibyte/wide conversion utilities are thus made restartable by using the information in the mbstate_t object.

15.7.3 How to Get MSE/Unix98 Behavior

In order to get MSE/Unix98 behavior, the programs have to be compiled with the -D_XOPEN_SOURCE=500 macro definition and the variable UNIX_STD has to be defined in the environment.

Under the Korn, Bourne, and POSIX shells, this is done with:

UNIX_STD=98
export UNIX_STD

Under the C shell this is done using

setenv UNIX_STD 98

A cc compiler equal to HP92453-01 A.11.01.20 HP C Compiler or newer is required to get this functionality.

Below is a summary list of new and modified APIs. For further details, please refer to the corresponding manpages.

15.7.4 New Interfaces

The following APIs are newly added to libc and will not affect existing code:

15.7.4.1 btowc

btowc() returns the wide-character representation of a given single-byte character.

15.7.4.2 fwide

fwide() sets the stream orientation.

15.7.4.3 fwprintf, swprintf, wprintf

These APIs print formatted wide-character output.

15.7.4.4 fwscanf, swscanf, wscanf

These APIs process formatted wide-character input.

15.7.4.5 mbrlen

mbrlen() returns the number of bytes in a wide character. Note that the behavior of this function is affected by the LC_CTYPE category of the current locale.

15.7.4.6 mbrtowc

mbrtowc() converts a stream of bytes to a wide-character code. Note that the behavior of this function is affected by the LC_CTYPE category of the current locale.

15.7.4.7 mbsinit

mbsinit() determines whether the object pointed to by the first argument, which contains shift state information, describes an initial conversion state.

15.7.4.8 mbsrtowcs

mbsrtowcs() converts a character string to a wide-character string. Note that the behavior of this function is affected by the LC_CTYPE category of the current locale.

15.7.4.9 towctrans

towctrans() is provided for character transliteration. The current setting of the LC_CTYPE category should be the same as during the call to wctrans().

15.7.4.10 vfwprintf, vswprintf, vwprintf

These APIs are provided for printing wide-character formatted output of a stdarg argument. They are similar to fwprintf(3C) except that instead of being called with a variable number of arguments, they are called with an argument list as defined by <stdarg.h>.

15.7.4.11 wcrtomb

wcrtomb() converts a wide-character to a multibyte character. It determines the number of bytes needed to represent the character corresponding to the wide-character code whose value is specified by the second argument.

15.7.4.12 wcsrtombs

wcsrtombs() converts a wide-chracter string to a character string. Note that the behaviour of this function is affected by the LC_CTYPE category of the current locale.

15.7.4.13 wcsstr

wcsstr() finds a substring in a wide-chracter string. Note that the behavior of this function is affected by the LC_CTYPE category of the current locale.

15.7.4.14 wctob

wctob() converts wide-character to single-byte.

15.7.4.15 wctrans

wctrans() defines character mapping in the current locale. Note that the values returned by wctrans() are valid until a call to setlocale() that modifies the category LC_CTYPE.

15.7.4.16 wmemchr, wmemcmp, wmemcpy, wmemmove, wmemset

These APIs operate with wide-character in memory areas:

15.7.5 Modified interfaces

The following APIs may have a change in behavior or a parameter type change that could affect existing HP-UX code when the Unix98 support is selected:

15.7.5.1 fprintf, printf, snprintf, sprintf, fscanf, scanf, sscanf

printf(3C), scanf(3C) and related functions support the new qualifier l (the letter) to select wide character conversion in a given format string and set errno to EILSEQ if the data obtained from the input stream does not form a valid wide character.

15.7.5.2 fputwc, putwc, putwchar

The type of first argument is changed from wint_t to wchar_t.

15.7.5.3 freopen

Regardless of the mode of underlying stream, after a successful call to the freopen() function, the orientaion of the stream is cleared and the associated mbstate_t object is set to describe an initial conversion state.

15.7.5.4 wcschr, wcsrchr

The type of second argument is changed from wint_t to wchar_t.


Legal Notices

The information in this document is subject to change without notice.

Hewlett-Packard makes no warranty of any kind with regard to this manual, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Hewlett-Packard shall not be held liable for errors contained herein or direct, indirect, special, incidental or consequential damages in connection with the furnishing, performance, or use of this material.

Warranty

A copy of the specific warranty terms applicable to your Hewlett-Packard product and replacement parts can be obtained from your local Sales and Service Office.

Restricted Rights Legend

Use, duplication or disclosure by the U.S. Government is subject to restrictions as set forth in subparagraph (c) (1) (ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 for DOD agencies, and subparagraphs (c) (1) and (c) (2) of the Commercial Computer Software Restricted Rights clause at FAR 52.227-19 for other agencies.

HEWLETT-PACKARD COMPANY
3000 Hanover Street
Palo Alto, California 94304 U.S.A.

Use of this manual and flexible disk(s) or tape cartridge(s) supplied for this pack is restricted to this product only. Additional copies of the programs may be made for security and back-up purposes only. Resale of the programs, in their present form or with alterations, is expressly prohibited.

Copyright Notices

Copyright © 1983-2000 Hewlett-Packard Company. All rights reserved. Reproduction, adaptation, or translation of this document without prior written permission is prohibited, except as allowed under the copyright laws.

Copyright © 1979, 1980, 1983, 1985-93 Regents of the University of California. This software is based in part on the Fourth Berkeley Software Distribution under license from the Regents of the University of California.

©©©©©©©©©©©©©

Trademark Notices

DIGITALTM and PATHWORKSTM are trademarks of Digital Equipment Corporation.

MS-DOS® and Microsoft® are U.S. registered trademarks of Microsoft Corporation.

OSF/MotifTM is a trademark of the Open Software Foundation, Inc. in the U.S. and other countries.

UNIX® is a registered trademark in the United States and other countries, licensed exclusively through The Open Group.

VERITAS® is a registered trademark of VERITAS Software Corporation.

VERITAS File SystemTM is a trademark of VERITAS Software Corporation.

X Window SystemTM is a trademark of the Massachusetts Institute of Technology.


Table of Contents

Legal Notices

Table of Contents

Chapter 1: Overview of Release Notes for HP-UX 11i

1.1 What Is the Purpose of HP-UX Release Notes?

1.2 What's In the Remaining Chapters?

1.3 Where Should I Begin?

1.4 Overview of the HP-UX 11i Release
   1.4.1 Performance Considerations
   1.4.2 The HP-UX Operating Environment (OE)
      1.4.2.1 For HP 9000 Servers
      1.4.2.2 For HP 9000 Technical Workstations and Technical Servers

1.5 Migrating from Previous HP-UX Releases

1.6 Where Else Can I Find Present and Previous Versions of the Release Notes?

1.7 Other Sources of Information on HP-UX 11i
   1.7.1 README Documents
   1.7.2 White Papers
   1.7.3 HP-UX 11i Instant Information CD-ROM
   1.7.4 Manpages
   1.7.5 The HP-UX Documentation Set
   1.7.6 The HP Documentation Web Site

Chapter 2: Superdome Systems

2.1 Introduction (new)

2.2 New Superdome Systems at HP-UX 11i (new)

2.3 Superdome Machine Identifier (new)

2.4 Superdome Partitions (new)

2.5 Superdome Systems' Enablement (new)
   2.5.1 HP Superdome Systems' Hardware Path Format
   2.5.2 hd_fabric Driver

2.6 New and Modified Superdome Commands (new)
   2.6.1 New Commands
   2.6.2 Modified Commands
   2.6.3 Documentation Changes

2.7 Partition Manager (parmgr) (new)

2.8 Guardian Service Processor (GSP)

Chapter 3: Workstation/Server Specific Information

3.1 Systems That Are Fully Supported (new)

3.2 HP-UX V-Class Changes (new)
   3.2.1 Single-Bit Memory Error Handling Enhancement

3.3 SCSI Interface Driver scsi_c720
   3.3.1 Changing SCSI Speeds

3.4 Guardian Service Processor (GSP)
   3.4.1 GSP Logging Capabilities

3.5 N4000 Server Functionality
   3.5.1 Platform Infrastructure
      3.5.1.1 Impact on Legacy Systems
      3.5.1.2 Configuration Changes
      3.5.1.3 PAT PSM
      3.5.1.4 SBA PSM
      3.5.1.5 SAPIC PSM
      3.5.1.6 CB CDIO
      3.5.1.7 LBA CDIO
      3.5.1.8 PCI CDIO
      3.5.1.9 PCItoPCI CDIO

3.6 ttytype(1) Support for the N4000 Console

3.7 New stty(1) Options

3.8 Workstations
   3.8.1 Workstation Graphics Support
      3.8.1.1 Graphics Software Support
      3.8.1.2 Graphics Hardware Support
   3.8.2 Workstation Firmware Requirements
   3.8.3 Workstation Tuned Kernel Parameters
      3.8.3.1 CAE/ME/General Eng. Workstation 64-bit Kernel Parameter Defaults
      3.8.3.2 CAE/ME/General Eng. Workstation 32-bit Kernel Parameter Defaults
      3.8.3.3 EE Engineering Workstation 64-bit Kernel Parameter Defaults
      3.8.3.4 EE Engineering Workstation 32-bit Kernel Parameter Defaults
   3.8.4 X Window System (X11 R6) Run-Time Libraries on Workstations

Chapter 4: HP-UX 11i Operating Environments

4.1 HP-UX 11i Operating Environment Bundles (new)

4.2 HP-UX 11i Operating Environment (new)
   4.2.1 Apache Web Server for HP-UX
      4.2.1.1 Installing Apache Separately
      4.2.1.2 Documentation
   4.2.2 CIFS/9000 Client and CIFS/9000 Server
      4.2.2.1 CIFS Product Structure and Documentation
   4.2.3 Event Monitoring Service (EMS)
      4.2.3.1 Size Requirements
      4.2.3.2 Impact
      4.2.3.3 Documentation
   4.2.4 HP-UX Runtime Environment for the JavaTM 2 (JRE) Platform
      4.2.4.1 Impact
      4.2.4.2 Documentation
   4.2.5 HP-UX Support Tools: STM (online), ODE (offline) & EMS Hardware Monitors
      4.2.5.1 Impact
      4.2.5.2 Compatibility
      4.2.5.3 Documentation
   4.2.6 instant Capacity on Demand (iCOD)
      4.2.6.1 Impact
         4.2.6.1.1 Performance Issues
         4.2.6.1.2 Compatibility Issues
         4.2.6.1.3 Alternatives
         4.2.6.1.4 Documentation
   4.2.7 JavaTM Plug-In (JPI)
   4.2.8 Netscape Communicator
      4.2.8.1 Installation Requirements
   4.2.9 Pluggable Authentication Modules (PAM) Kerberos
      4.2.9.1 Installation Requirements
      4.2.9.2 Impact
      4.2.9.3 Coexistence Issues
      4.2.9.4 Documentation
   4.2.10 ServiceControl Manager (SCM)
      4.2.10.1 Documentation
   4.2.11 Netscape Directory Server (J4258BA) (selectable)
      4.2.11.1 Installation Requirements
      4.2.11.2 Impact
      4.2.11.3 Documentation
   4.2.12 Selectable Network Drivers (selectable)
   4.2.13 WebQoS Peak on HP-UX Packaged Edition (J4274AA) (selectable)
      4.2.13.1 Installation Requirements
      4.2.13.2 Documentation

4.3 HP-UX 11i Enterprise Operating Environment (new)
   4.3.1 GlancePlus Pak
      4.3.1.1 Supported Versions of HP-UX
   4.3.2 High Availability Monitors
      4.3.2.1 Installation Requirements
      4.3.2.2 Documentation:
   4.3.3 MirrorDisk/UX
      4.3.3.1 Impact
      4.3.3.2 Compatibility Issues
   4.3.4 Process Resource Manager (PRM)
      4.3.4.1 Installation Requirements
      4.3.4.2 Compatibility Issues
      4.3.4.3 Documentation

4.4 HP-UX 11i Mission Critical Operating Environment (new)
   4.4.1 Enterprise Cluster Master Toolkit
      4.4.1.1 Impact
      4.4.1.2 Documentation
   4.4.2 HP-UX Workload Manager
      4.4.2.1 Installation Requirements
      4.4.2.2 Compatibility Issues
      4.4.2.3 Documentation
   4.4.3 MC/ServiceGuard
      4.4.3.1 Impact
      4.4.3.2 Documentation
   4.4.4 MC/ServiceGuard NFS Toolkit
      4.4.4.1 Installation Requirements
      4.4.4.2 Software Requirements
      4.4.4.3 Hardware Requirements

4.5 HP-UX 11i Technical Computing Operating Environment (new)
   4.5.1 FirstSpace VRML Viewer
   4.5.2 HP 3D Technology for the Java Platform
      4.5.2.1 Installation Requirements
      4.5.2.2 Documentation
   4.5.3 High Performance Math Libraries (HP MLIB)
      4.5.3.1 Impact
      4.5.3.2 Documentation
   4.5.4 HP Message-Passing Interface (MPI)
      4.5.4.1 Documentation
   4.5.5 HP Visualize Conference
      4.5.5.1 Impact
      4.5.5.2 Compatibility Issues
      4.5.5.3 Documentation

Chapter 5: I/0 and Networking Cards

5.1 Online Addition and Replacement of I/O Adapters (new)

5.2 Network Drivers (new)
   5.2.1 New Network Driver btlan Pre-Installed in the HP-UX 11i Operating Environment
      5.2.1.1 Impact
      5.2.1.2 Files Changed
      5.2.1.3 Networking and I/O Card Pre-Installed Drivers
   5.2.2 Combine Pre-HP-UX 11i Configuration Files
      5.2.2.1 Manual Merging
         5.2.2.1.1 Manual Merging Procedure
   5.2.3 HSC and PCI 1000Base-SX/T (Gigabit Ethernet)
      5.2.3.1 Compatibility Issues
      5.2.3.2 Documentation Changes

5.3 EISA Interface Cards Are Not 64-bit Compatible

5.4 Performance Enhancements to the HSC FDDI Driver

Chapter 6: Installation

6.1 Cold Install Changes (new)

6.2 Ignite-UX Changes (new)
   6.2.1 Ignite-UX Version B.3.0
      6.2.1.1 Impact
         6.2.1.1.1 Documentation

6.3 update-ux Command Replaces swgettools (new)

6.4 Software Distributor (SD) (new)
   6.4.1 Multiple Target Management Capabilities Enabled
   6.4.2 POSIX Enhancements and Exceptions
   6.4.3 Change in swlist to Hide Superseded Patches by Default
   6.4.4 Determining 64-bit Capability from System, Not .supported_bits
   6.4.5 Searching for CD Only When Requested
   6.4.6 Streamlined GUI
   6.4.7 Shows Products Rather than Bundles After Auto-Selection
   6.4.8 Addition of Software Groups to GUI
   6.4.9 Layout Version Behavior
   6.4.10 Message Changes
   6.4.11 Output of swlist
   6.4.12 swpackage Change
   6.4.13 Bundle Selection
   6.4.14 control_utils file
   6.4.15 New Environment Variable SW_COMPATIBLE

6.5 SD-UX Changes to Patch Installation
   6.5.1 patch_match_target
   6.5.2 Patch Filtering
   6.5.3 Category Tag Information

6.6 set_parms Enhanced (new)

Chapter 7: General System Administration and Performance Monitoring

7.1 uname (1) Outputs B.11.11

7.2 Changes to System Administration Manager (SAM) (new)
   7.2.1 Disks and File Systems Area
   7.2.2 Kernel Configuration
   7.2.3 Network File Systems
   7.2.4 Network Interface Cards
   7.2.5 Peripheral Devices
   7.2.6 Printers and Plotters
   7.2.7 Terminal and Modems
   7.2.8 Documentation Change
   7.2.9 Possible Future Changes
   7.2.10 Additional SAM Changes

7.3 HP Distributed Print Service Deprecated (new)

7.4 CXperf Performance Monitoring Support

7.5 syslog File Logging Changes for su and login (new)

7.6 Process Resource Manager (PRM) Disk Bandwidth Control

7.7 Diagnostics: EMS Hardware Monitors
   7.7.1 Integration with Other Applications

7.8 New Option for top(1)

7.9 Improved ioscan(1M) Description Field for PCI Devices

Chapter 8: Process, Threads, Memory, and Kernel Parameters

8.1 HP-UX Gang Scheduling

8.2 Kernel Threads vs. CMA Threads (new)
   8.2.1 Compatibility Issues

8.3 q4 and Dynamic Process and Thread Allocation
   8.3.1 Process and Thread Tables Removed
   8.3.2 Other Features of Dynamic Process and Thread Allocation
   8.3.3 Impact
   8.3.4 Compatibility Issues

8.4 Large Private Data Space (new)
   8.4.1 New Options
   8.4.2 Compatibility Issues

8.5 Memory Windows
   8.5.1 Summary of Changes
   8.5.2 Compatibility Issues
   8.5.3 Configuration

8.6 HP-UX SCA Process and Memory Management (new)

8.7 Dynamic Tunables (new)

8.8 Asynchronous Disk Pseudo Driver (async) Compatibility (new)
   8.8.1 Impact
   8.8.2 Compatibility

8.9 System-V IPC Message Queue Enhancement (new)
   8.9.1 Impact
   8.9.2 Compatibility Issues
   8.9.3 Performance Issues
   8.9.4 Documentation Changes

8.10 System-V IPC SEMMSL Dynamic Kernel Tunable (new)
   8.10.1 Impact
   8.10.2 Compatibility Issues
   8.10.3 Performance Issues

8.11 SCSI Queue Depth Management (new)

8.12 Changes to mpctl() System Call (new)

Chapter 9: New and Changed Disk and File Management Features

9.1 Additional Support for Striping and Mirroring (new)

9.2 New Version of Journaled File System (JFS) (new)
   9.2.1 Compatibility Issues
   9.2.2 Performance Issues

9.3 Network File System Support for TCP/IP (new)
   9.3.1 Documentation Changes

9.4 Other NFS Changes
   9.4.1 Loopback Transport Support
   9.4.2 User-Space Threads
   9.4.3 NFS Server-Side Performance Enhancements

9.5 Mounting and Unmounting NFS File Systems Automatically Using AutoFS
   9.5.1 Impact
   9.5.2 Other Operational Differences
   9.5.3 Additional Information
   9.5.4 Configuration
   9.5.5 Documentation Change
   9.5.6 Obsolescence

9.6 HP Fibrechannel High Availability Disk and Closure

9.7 Fibre Channel Mass Storage Diagnostic Message and Kernel Tunable

Chapter 10: Internet and Networking Services

10.1 Base HP-UX Internet Services (new)
   10.1.1 Sendmail-8.9.3
      10.1.1.1 New Features
      10.1.1.2 Documentation
   10.1.2 BIND 8.1.2
      10.1.2.1 New Configuration File
      10.1.2.2 New Configurable Resolver Options
   10.1.3 "PAM-ized" rexecd and remshd
      10.1.3.1 /etc/pam.conf File Changes
      10.1.3.2 Using PAM-ized remshd in Secure Internet Services (SIS) Environment
   10.1.4 Changes for GateD
   10.1.5 DHCP with Nonsecure DNS Updates

10.2 Network Transport (new)
   10.2.1 ifconfig
   10.2.2 ndd
      10.2.2.1 Specific Changes
      10.2.2.2 Compatibility Issues
      10.2.2.3 Performance
   10.2.3 netstat
      10.2.3.1 Compatibility Issues
   10.2.4 Virtual IP (VIP) Address for the System
   10.2.5 setsockopt()
   10.2.6 T_OPTMGMT

10.3 New Versions of FTPD
   10.3.1 Secure Version of FTPD

10.4 STREAMS/UX (new)

10.5 Low Bandwidth X Extension (LBX)
   10.5.1 Performance Issues
   10.5.2 Proxy Manager (proxymngr)
   10.5.3 Remote Execution (RX) Service
   10.5.4 Security Extension
   10.5.5 Application Group Extension (XC-APPGROUP)
   10.5.6 SLS/d - Distributed SLS (HP Visualize Center Support)

Chapter 11: Security

11.1 Generic Security Services for Developing Secure Applications (new)
   11.1.1 Special Considerations
      11.1.1.1 Symbol Clashes
      11.1.1.2 Size Requirements
      11.1.1.3 Compatibility
      11.1.1.4 Documentation Changes

11.2 Execute Protected Stacks (new)
   11.2.1 Impact
   11.2.2 Compatibility

11.3 Configurable Security Features (new)

11.4 Password History Feature on Trusted Systems

11.5 Kerberos Client Software (new)
   11.5.1 Libraries
   11.5.2 Header Files
   11.5.3 Utilities
   11.5.4 Manpages
   11.5.5 Special Considerations
      11.5.5.1 Developing Secure Applications
      11.5.5.2 libsis.sl
      11.5.5.3 Unsupported Features
      11.5.5.4 Size Requirement
      11.5.5.5 Compatibility Issues

11.6 Auditing Commands/System Calls To Be Obsoleted

Chapter 12: Compatibility

12.1 Compatibility from HP-UX 11.0 to 11i
   12.1.1 Binary Compatibility
   12.1.2 Source Compatibility
   12.1.3 Data Compatibility
   12.1.4 Relocatable Object Compatibility
   12.1.5 Upgrade Compatibility
   12.1.6 HP-UX 10.x Applications on HP-UX 11i

12.2 Known Compatibility Exceptions from HP-UX 11.0 to 11i
   12.2.1 Memory Windows
   12.2.2 ONC+/NFS Security Correction
   12.2.3 IOSCAN Usability Enhancement
   12.2.4 ELF Undocumented Symbol Table Change
   12.2.5 IPv6 IPsec
   12.2.6 Non-Executable Stack
   12.2.7 128 CPU Support
   12.2.8 strftime() Support for Week Number
   12.2.9 Linker Support for PBO of 64-bit Shared Libraries
   12.2.10 DNS Bind
   12.2.11 NFS Mount Access Control
   12.2.12 Tighter Security for NFS Mounts
   12.2.13 Memory Size Increase for Process-Private Memory
   12.2.14 Removal of MAXTID and Change to MAXPID
   12.2.15 Fortran 90 GETARG Intrinsic Function
   12.2.16 Software Distributor Bundle Algorithm Change
   12.2.17 Software Distributor Automatic Generation of Depot or root Layout Version
   12.2.18 Software Distributor Log Messages Simplification
   12.2.19 Software Distributor System Update Process
   12.2.20 Software Distributor Reduces Amount of Information from Program swlist
   12.2.21 Software Distributor Changes Behavior with Unknown Attributes
   12.2.22 libc qsort() Algorithm Change
   12.2.23 libc SYSTEM_ID callbraph Change
   12.2.24 Customization of wctype Methods
   12.2.25 System V Message Queues Expanding Beyond Present 64KB Limit
   12.2.26 Maximum Number of Active Processors for pstat_getdynamic Changed
   12.2.27 Export filesystem (NFS) Security Defect Correction
   12.2.28 Support Tools Manager, EMS Hardware Monitors
   12.2.29 libc atof() Algorithm Change

12.3 Obsolescence and Deprecation of APIs
   12.3.1 Rationale and Objectives
   12.3.2 Terms and Definitions
   12.3.3 Archive/Static Libraries
   12.3.4 CMA Threads Obsolescence
      12.3.4.1 Background
      12.3.4.2 Options
      12.3.4.3 Customer Transition Aids
      12.3.4.4 List of APIs to be Deprecated/Obsoleted

Chapter 13: Programming

13.1 Changes to the linker/dld Interface

13.2 Instrumented Code Using PBO or +O4 Optimization

13.3 HP-UX Software Transition Kit (STK)

13.4 HP DCE/9000 (new)
   13.4.1 Compatibility Issues

13.5 Extensions to pstat(2)
   13.5.1 New Modules
   13.5.2 New Data Structures
   13.5.3 Documentation Changes

13.6 Libraries
   13.6.1 aC++ Runtime (libCsup*, libstd*, libstream*, librwtool*) (new)
      13.6.1.1 Impact
      13.6.1.2 Compatibility Issues
   13.6.2 Changes to libc
      13.6.2.1 Large Files Support for C++ Applications
      13.6.2.2 HP CxDL Development Tool Support
      13.6.2.3 libdbm
      13.6.2.4 Header Files
      13.6.2.5 New Environment Variables for malloc
   13.6.3 libc Performance Improvements (new)
      13.6.3.1 Overall libc Performance Tuning
         13.6.3.1.1 The /usr/lib/pa20_64/libc.2 Library
         13.6.3.1.2 Compatibility Issues
         13.6.3.1.3 Other Considerations
      13.6.3.2 Performance Improvements to libc's ftw(3C) and nftw(3C)
         13.6.3.2.1 ftw()
         13.6.3.2.2 nftw()
         13.6.3.2.3 Documentation Change
         13.6.3.2.4 Other Issues
         13.6.3.2.5 Performance Issues
      13.6.3.3 Performance Improvements to libc's malloc(3C)
         13.6.3.3.1 Impact
   13.6.4 The libcres.a Library
   13.6.5 Linker and Object File Tools (ld, crt0.o, dld.sl, libdld.sl, chatr and odump) (new)
      13.6.5.1 Details of Linker Changes
      13.6.5.2 Other Issues
   13.6.6 Changes to libm

13.7 Changes to sendfile(2)

13.8 Changes to confstr(3C) (new)

Chapter 14: Licensing Products

14.1 Future Change for LicensePower/iFOR

14.2 Impending LSSERV Software Obsolescence (new)

Chapter 15: New and Changed Internationalization Features

15.1 Unicode Character Set
   15.1.1 Unicode Euro Enhancement
   15.1.2 Size Requirement
   15.1.3 Performance Issues
   15.1.4 Streams PTY Driver

15.2 Corrected Character Mappings to iconv(1) and iconv(3C)
   15.2.1 Correction for Simplified Chinese
   15.2.2 Correction for Traditional Chinese
   15.2.3 Correction for Japanese
   15.2.4 Correction for Korean

15.3 EURO (ISO 8859-15 Locales)
   15.3.1 CDE Support
   15.3.2 X Window Support
   15.3.3 Libraries
   15.3.4 Codeset Converters
   15.3.5 LaserJet Printers

15.4 Euro - ISO 10646/Unicode Support (new)
   15.4.1 Commands
   15.4.2 libc
   15.4.3 Codeset Converters
   15.4.4 Impact

15.5 Asian System Environment (ASE) (new)
   15.5.1 New Features
   15.5.2 Changed Feature
   15.5.3 Deleted Features
   15.5.4 Troubleshooting Information

15.6 Enhanced Print Capabilities in the Asian System Environment
   15.6.1 Changes Common to All ASEs
   15.6.2 Japanese System Environment (JSE)
   15.6.3 Korean System Environment (KSE)
   15.6.4 Simplified-Chinese System Environment (SSE)
   15.6.5 Traditional-Chinese System Environment (TSE)

15.7 Multibyte Support Extension and Unix98 Support (new)
   15.7.1 Stream Orientation
   15.7.2 Restartable APIs and the Conversion State
   15.7.3 How to Get MSE/Unix98 Behavior
   15.7.4 New Interfaces
      15.7.4.1 btowc
      15.7.4.2 fwide
      15.7.4.3 fwprintf, swprintf, wprintf
      15.7.4.4 fwscanf, swscanf, wscanf
      15.7.4.5 mbrlen
      15.7.4.6 mbrtowc
      15.7.4.7 mbsinit
      15.7.4.8 mbsrtowcs
      15.7.4.9 towctrans
      15.7.4.10 vfwprintf, vswprintf, vwprintf
      15.7.4.11 wcrtomb
      15.7.4.12 wcsrtombs
      15.7.4.13 wcsstr
      15.7.4.14 wctob
      15.7.4.15 wctrans
      15.7.4.16 wmemchr, wmemcmp, wmemcpy, wmemmove, wmemset
   15.7.5 Modified interfaces
      15.7.5.1 fprintf, printf, snprintf, sprintf, fscanf, scanf, sscanf
      15.7.5.2 fputwc, putwc, putwchar
      15.7.5.3 freopen
      15.7.5.4 wcschr, wcsrchr