What's New in the Solaris 9 Operating Environment

Chapter 3 What's New for Software Developers

This chapter highlights new software development features that have been added to the Solaris 9 operating environment.

Development Tools

Feature Description 

Release Date 

Compatibility of Solaris and Linux Application Programming Interfaces

Some of the freeware libraries and supporting utilities that were available on the Solaris 8 Software Companion CD are now integrated in the Solaris 9 operating environment. As a result, software application developers can now develop and compile their freeware applications more easily in the Solaris operating environment. Libraries include glib, GTK+, Jpeg, libpng, Tcl/Tk, libtif, and libxm12. For further information about freeware available on the Solaris media, see "Other Software".

Solaris 9 

Choice of XML Output for Live Upgrade Messages

When using Solaris Live Upgrade at the command line, you can now choose XML output with the -X option. This option is for use when writing programs or shell scripts that use Solaris Live Upgrade as a tool. The default output is text, but with the -X option, the XML suitable for machine parsing and interpretation is created. The output for the -X option is XML for all messages, including error, warning, informational, general.

See the man page, lucreate(1M).

Solaris 9 

Multiple Page Size Support

Multiple Page Size Support (MPSS) allows a program to use any hardware-supported page size to access portions of virtual memory. Previously only 8-KB pages were available for a program's stack, heap, or anonymous memory mapped with mmap().

You can tune large, memory-intensive applications performance to use any page size that is supported by hardware for stack, heap, or /dev/zero private memory mapped with mmap(). The use of larger page sizes might significantly improve the performance of programs that intensively use large amounts of memory.

For more information, see the man pages for pagesize(1), mpss.so.1(1), ppgsz(1), memcntl(2), mmap(2) and getpagesizes(3C).

Solaris 9 

Improved Multithreading Library

The Solaris 9 release includes an improved and faster multithreading library, which was available as the alternate libthread in previous Solaris software releases.

For further information, see the Multithreaded Programming Guide and the threads(3THR) man page.

Solaris 9 

Perl Version 5.6.1

A new, default version of the Practical Extraction and Report Language (Perl) is available in the Solaris 9 release. The new default version of Perl is version 5.6.1. Also included in the Solaris 9 release is an older Perl version, version 5.005_03, which was previously included with the Solaris 8 release. 

For further information, see the perl(1) man page.

Solaris 9 

Unified diff Format

The diff and sccs-sccsdiff commands have been updated to include support for the GNU-style unified diff format in which context lines are only printed once in the listing of differences.

For information on these commands, see the diff(1) and sccs-sccsdiff(1) man pages.

Solaris 9 

Sysevent Framework

The sysevent framework enables notification of kernel-level and user-level system events, such as hardware and software state changes, errors, and faults, to applications that should be notified of these events.

Components of the sysevent framework include the following:

  • syseventd(1M) daemon

  • syseventadm(1M) command

  • Library APIs for event data extraction and sysevent subscription

  • A driver-level system event notification interface, ddi_log_sysevent(9F)

The syseventd daemon is a user-level daemon that accepts delivery of system event buffers from the kernel. After an event buffer has been delivered to syseventd, the daemon then attempts to propagate the event to all interested end-event subscribers.

The syseventadm command can be used to configure event specifications that are subsequently used to invoke commands, applications, or scripts in response to a system event.

For information on the sysevent kernel and library APIs, see the man pages syseventadm(1M), syseventconfd(1M), and syseventd(1M).

See ddi_log_sysevent(9F) for information about driver-level event notification logging.

Solaris 8 1/01 

Updated in Solaris 8 4/01 

Kernel Pseudo-Random Number Generator

The Solaris Pseudo-Random Number Generator (PRNG) which is available through the /dev/random and /dev/urandom devices provides ISVs with a standard interface to access pseudo-random numbers for cryptographic operations, scientific applications, and simulation tools. The PRNG operates in the Solaris kernel and protects the contents of the entropy pool. The PRNG gathers entropic data from kernel memory pages and maintains a high level of randomness at all times.

For further information, see the random(7D) man page.

Solaris 9 

Application Interface to Remote Shared Memory on Clusters

If you develop applications that extend the use of a Sun Cluster environment, you can benefit from this interface. Using the new Remote Shared Memory (RSM) API, you can program your applications to lower the latency for message passing over high-speed cluster interconnects. Such cluster-aware applications can significantly reduce the time that is required to respond to events in a clustered configuration.  

You must have Sun Cluster 3.0 installed. Existing Sun Cluster applications will need to be modified to exploit the new interface. 

For further information, see the Programming Interfaces Guide. Also, the librsm(3LIB) man pages and the "Section 3: Extended Library Functions" (3RSM) man pages include references to RSM.

Solaris 8 10/01 

GNU-Compatible Version of the gettext API Functions

The Solaris 9 release provides a GNU-compatible version of the gettext API functions, while maintaining backward compatibility with Solaris gettext API functions.

  • Existing gettext(), dgettext(), dcgettext(), textdomain(), and bindtextdomain() functions in libc now can handle both Solaris and GNU-compatible message files.

  • New GNU-compatible ngettext(), dngettext(), dcngettext(), and bind_textdomain_codeset() functions in libc can handle GNU-compatible message files.

  • The msgfmt and the gettext utilities now can handle both Solaris and GNU-compatible message files.

For further information, see the gettext(3C) man page.

Solaris 9  

Extended File Attributes

The UFS, NFS, and TMPFS file systems have been enhanced to include extended file attributes, which enable application developers to associate specific attributes to a file. For example, a developer of a file management application for a windowing system might choose to associate a display icon with a file.  

For further information, see "File System Enhancements".

Solaris 9  

New Fixed-Priority (FX) Scheduling Class

The FX scheduler provides a scheduling policy for processes that require user or application control of scheduling priorities. See "System Resources Enhancements".

Solaris 9  

Dynamic Host Configuration Protocol (DHCP)

The Dynamic Host Configuration Protocol (DHCP) service enables host systems to receive IP addresses and network configuration information at boot time from a network server. Before the Solaris 8 7/01 release, DHCP configuration data could only be stored in text files or NIS+. Now, data access in the Solaris DHCP service has been redesigned to use a modular framework. Solaris DHCP provides an API that enables you to write shared objects to support any data storage facility for storing DHCP data.  

The Solaris DHCP Service Developer's Guide provides an overview of the data access framework that is used by Solaris DHCP, general guidelines for developers, and a listing of the API functions that you can use to write a module to support a new data store.

For further information, see the Solaris DHCP Service Developer's Guide.

Solaris 8 7/01 

Solaris Web Start Wizards SDK 3.0.1

Solaris Web Start Wizards simplify the installation, setup, and administration of native Solaris, Java, and non-Java applications. With Solaris Web Start Wizards software, developers can copackage both Solaris and Microsoft Windows versions of their applications. The installation wizard manages the platform specifics.  

The Web Start Wizards SDK 3.0.1 is now included with the Solaris 9 release and can be installed by using the Solaris Web Start installation program. 

Solaris 9 

Modular Debugger (mdb)

mdb(1) is an extensible utility for low-level debugging and editing of the live operating system, operating system crash dumps, user processes, user process core dumps, and object files. In the Solaris 9 release, mdb provides new symbolic debugging support for the Solaris kernel, new kernel debugger commands, new features for examination and control of live running user processes, and the ability to examine raw disk files and devices.

The Solaris Modular Debugger Guide and mdb(1) man page provide more information.

Solaris 9 

Audio Enhancements

New audio directories have been added to the Solaris 9 operating environment. /usr/include/audio is a new directory for application audio header files. The audio file format has a new header file, /usr/include/audio/au.h, and man page, au(4).

/usr/share/audio is a new depository for miscellaneous audio files. The audio files from /usr/demo/SOUND/sounds have been moved here. A symbolic link from /usr/demo/SOUNDS/sounds to /usr/share/audio/samples/au has been created so that current applications and scripts run without failure.

Numerous bug fixes have been made to the audio kernel modules to improve reliability. 

For further information, see the System Administration Guide: Basic Administration.

Solaris 9 

Vectored Sendfile System Call: sendfilev()

sendfilev(), a vectored sendfile system call, enables better performance for sending data from application buffers or files. For example, in web performance, a web server can construct an HTTP response (header, data, and trailer as well as server side includes) in a single system call. This feature provides optimal performance with the Solaris Network Cache and Accelerator (NCA), because it enables the return of multiple chunks, which might come from various files for the response.

For further information, see the man page sendfilev(3EXT).

Solaris 8 7/01 

Verify File Conformance With the appcert Utility

The appcert utility verifies an object file's conformance to the Solaris ABI. Conforming to the Solaris ABI greatly increases an application's probability of being compatible with future releases of Solaris software.

For more information, see "Using appcert" in the Programming Interfaces Guide.

Solaris 8 4/01 

Generic Security Services Application Programming Interface (GSS-API)

The Generic Security Services Application Programming Interface (GSS-API) is a security framework that enables applications to protect the data they transmit. See "Security Enhancements".

Solaris 8 6/00 

Web-Based Enterprise Management Tools

Feature Description 

Release Date 

Solaris WBEM Services 2.5

Solaris WBEM Services 2.5 is Sun Microsystems' implementation of Web-Based Enterprise Management (WBEM). WBEM is a set of management and Internet-related technologies that are intended to unify the management of enterprise computing environments. Developed by the Distributed Management Task Force (DMTF), WBEM enables organizations to deliver an integrated set of standards-based management tools that support and promote World Wide Web technology. Solaris WBEM Services was updated to version 2.5 in the Solaris 9 release. 

For further developer information about WBEM, see the Solaris WBEM SDK Developer's Guide.

Solaris 9 

New WBEM Batching API Added

The Java Web-Based Enterprise Management (WBEM) client application programming interface (API) now supports the batching of multiple Common Interface Model (CIM) operations by a client into a single request and response. The CIM Object Manager now accepts and services these batched requests as well. This facility is defined in the Distributed Management Task Force (DMTF) Specification for CIM Operations Over HTTP.

The number of remote calls that a client needs to make is consequently reduced. 

For further information, see the Solaris WBEM SDK Developer's Guide.

Solaris 9 

WBEM CIM WorkShop Enhanced

CIM WorkShop provides a graphical user interface for the WBEM development tool through which instrumentation, system, and network application developers can view and create WBEM classes and instances.  

In CIM WorkShop, you can do following: 

  • View and select namespaces

  • Add and delete namespaces

  • View, create, modify, and delete classes

  • Add and delete properties, qualifiers, and methods to new classes

  • View, create, and delete instances

  • View, modify, and delete instance values

  • Traverse associations

  • Execute methods

  • Display contextual help

Enhancements and new features that are available in CIM Workshop include the following: 

  • Updated and corrected contextual help.

  • Ability to traverse associations.

  • Ability to subscribe to and display information about events for a selected class, thus enabling you to debug applications that use events more easily. You can use this new feature only when you select the RMI protocol.

  • Ability to submit WBEM Query Language (WQL) queries to search for and display WBEM information.

For further information, see the Solaris WBEM SDK Developer's Guide.

Solaris 9  

Support for WBEM Process Indication (Extrinsic) Events Added

Currently, WBEM event services enable client applications to asynchronously receive indications when conditions of interest are met. However, the only supported indications belong to the class life cycle indications, which denote the modification, the creation, and the deletion of an instance. 

While this class of indications is very flexible and wide ranging, instrumentation might need to publish indications that do not fall into this category. Given this requirement, the DMTF introduced the process indication hierarchy as an extension to the current indication hierarchy. The process indications for WBEM services now handle this extended hierarchy.

Process indications for WBEM services is Sun Microsystems' implementation of the process indication portion of the event model. The process indication class is the superclass of all indications that are published by instrumentation, which also includes the life cycle indications. 

The process of subscribing to process indications is the same as the process of subscribing to life cycle indications. 

For further information, see the Solaris WBEM SDK Developer's Guide.

Solaris 9  

WBEM mofcomp Command Enhanced

The Managed Object Format (MOF) compiler (mofcomp) now allows you to specify a namespace on the command line. If the namespace does not exist, it is created.

In addition, the MOF Compiler now generates Java interface and class source files. This feature enables you to use standard Java interfaces, as opposed to having to learn the CIM constructs and the CIM object model application programming interfaces (APIs). 

For each CIMClass, an interface and a class file are generated. The interface is generated to enable you to create different implementations while maintaining interoperability.

For further information, see the Solaris WBEM SDK Developer's Guide.

Solaris 9  

New Java WBEM SDK Sample Programs Added

The Java WBEM Software Developer's Kit (SDK) now includes a new sample Java applet and sample programs. The Java applet and sample programs are installed in /usr/demo/wbem.

The Java WBEM SDK sample programs show you how to use events, queries, and batching. You can use these samples as a basis for developing your own programs. 

For further information, see the Solaris WBEM SDK Developer's Guide.

Solaris 9  

Solaris WBEM Software Developer's Kit

The Solaris Web-Based Enterprise Management (WBEM) Software Developer's Kit (SDK) includes APIs that developers use to create applications, based on WBEM, that access data and manage resources in the Solaris operating environment. The Solaris WBEM SDK also includes CIM WorkShop, a Java application that developers can use to create WBEM applications and view the sample WBEM client and provider programs included with the software. 

For more information, see the Solaris WBEM SDK Developer's Guide.

Solaris 8 4/01 

New Solaris Providers

The new Solaris Providers enable developers to create software that gets and sets information about managed devices in a Common Information Model (CIM) environment. A Solaris Provider provides the CIM Object Manager with instances of managed resources in the Solaris operating environment. 

Five new Solaris Providers are available in the Solaris 9 software:

  • WBEM Solaris Device/System Performance Monitor Provider - Provides a variety of statistical information about a system on which the Solaris operating environment is running.

  • WBEM Product Registry Provider - Provides the ability to add, delete, or modify new or existing products that are installed on a system.

  • WBEM SNMP Provider - Enables WBEM services to deliver information by means of the Simple Network Management Protocol (SNMP), a protocol of the Internet reference model that is used for network management.

  • WBEM EEPROM Provider - Enables the display and modification of configuration information in the EEPROM.

  • WBEM System Availability Provider - Provides reboot information about a system so that applications can compute the percentage of time that a system has been up and running. This provider also supplies reasons why a system failed:

    • System panic occurred

    • System halted by a user

    • System shut down by a user

For further information, see the Solaris WBEM SDK Developer's Guide.

Solaris 9 

Writing Device Drivers

Feature Description 

Release Date 

Frame Buffer Power Management

Some devices, such as certain tape drives and frame buffers, should not lose power (even in a power cycle) when their drivers are detached. A new interface, ddi_removing_power(9F), checks if a device will lose power as a result of a suspend operation. A new property, no-involuntary-power-cycles, can be specified to ensure that the device is not powered down unintentionally.

For more information, see the ddi_removing_power(9F) and no-involuntary-power-cycles(9P) man pages.

Solaris 9 

Sun StorEdge Traffic Manager

The Sun StorEdge Traffic Manager supports multiple paths for I/O devices such as Fibre Channel-accessible storage. This feature balances the workload across multiple devices and increases reliability by redirecting requests from a failed interface card or storage device to an operational card or device. 

Solaris 9 

Driver Fault Injector Harness

The driver fault injector harness is a Solaris device driver development tool. The harness injects a wide range of simulated hardware faults when the driver under development accesses its hardware. The harness tests the impact of the test fault conditions on a SPARC based device driver. 

For more information, see the man pages th_define(1M) and th_manage(1M).

Solaris 8 1/01 

Generic LAN Driver

Driver developers can use the Generic LAN driver (GLD) to implement much of the STREAMS and Data Link Provider Interface (DLPI) functionality for a Solaris network driver. Until the Solaris 8 10/00 release, the GLD module was available only for Solaris Intel Platform Edition network drivers. Now GLD is available for the Solaris operating environment SPARC Platform Edition network drivers.

For more information, see "Drivers for Network Devices" in Writing Device Drivers.

Solaris 8 10/00 

Language Support

Feature Description 

Release Date 

Universal Language Coverage

The Solaris 9 operating environment now includes support for 162 locale environments, covering 39 languages on the Solaris 9 Software CDs, the Solaris 9 DVD, and the Solaris 9 Languages CD.  

For further information, see "Language Support". Also, see the International Language Environments Guide.

Solaris 9 

Enhanced Asian Language Support

The Solaris 9 release offers broader support for the Asian languages with new input methods and collation sequences for Simplified Chinese, Traditional Chinese, Korean, and Thai. This release also supports new native locale environments for Hong Kong (zh_HK.BIG5HK) and China (GB18030).

For further information about Asian language support in the Solaris 9 release, see "Language Support". Also, see the International Language Environments Guide.

Solaris 9 

Support for the New Chinese GB18030-2000 Character Set

Beginning with the Solaris 8 2/02 release, the Solaris platform enables input, display, and print for the entire GB18030-2000 character set (including nearly 30,000 characters). Any application that runs on the Solaris platform can thus benefit from a wider set of Chinese characters. See "Language Support" for further information on this feature.

Solaris 8 2/02 

Improved Data Interoperability

Data interoperability with non-Solaris environments has been improved in the Solaris 9 release with the addition of new iconv utilities for data conversion between UTF-8 and the following native encodings: HKSCS, GB18030, ISO 8859-11, and Hindi. Additionally, Japanese language support has been expanded through iconv modules that convert between Solaris Japanese locale codesets and Japanese mainframe codesets from Fujitsu, Hitachi, and NEC.

For further information on language support in the Solaris 9 release, See "Language Support". Also, see the International Language Environments Guide.

Solaris 9 

New European and Middle Eastern Keyboard Support

The Solaris 9 release has added Sun I/O keyboard support for TurkeyQ, TurkeyF, and Arabic, and support for the Sun Ray USB keyboard for TurkeyQ, TurkeyF, Belgian, and Arabic.  

For further information about European and Middle Eastern language support in the Solaris 9 release, see "Language Support". Also, see the International Language Environments Guide.

Solaris 9 

New TrueType Fonts

The new TrueType fonts provide a common appearance between the codesets and offer support for the same typefaces across the codesets. The TrueType fonts are common to all European locales. Each Asian locale has its own TrueType fonts file. 

For further information, see the International Language Environments Guide.

Solaris 9 

Expanded Unicode Support

The Solaris 9 release offers broader support for Unicode with the addition of new Unicode (UTF-8) locales for Thailand, India, Hong Kong, Turkey, Egypt, Brazil, Finland, and Belgium-Walloon.  

For further information about Unicode support in the Solaris 9 release, see "Language Support". Also, see the International Language Environments Guide.

Solaris 8 10/00 

Updated in Solaris 8 4/01 and in Solaris 9 

Print Filter Enhancement - the mp Program

The mp(1) program accepts international text files from various Solaris locales and produces output for the specified locale. Because the complex text layout (CTL) is supported in mp, the output contains proper text layout, such as bidirectional text rendering and shaping. Depending on the mp system font configuration for each locale, the PostScript output file can contain glyph images from Solaris system-resident scalable or bitmap fonts.

For more information, see "Print Filter Enhancement mp(1)" in the International Language Environments Guide.

Solaris 8 4/01 

Java Releases

Feature Description 

Release Date 

JavaHelp v. 1.1.2

JavaHelpTM v. 1.1.2 is a full-featured, platform-independent, extensible help system that enables developers and authors to incorporate online help in applets, components, applications, operating systems, and devices. For more information, refer to the following Web site:

http://java.sun.com/products

Solaris 9 

Java 2 SDK, Standard Edition v. 1.4.0

The Java 2 SDK Standard Edition v. 1.4.0 (J2SETM 1.4.0) is an upgrade release for Java 2 SDK, Standard Edition. The upgrade release includes new platform features, and new tools and utilities.

For full details on these enhancements, see the J2SE 1.4.0 platform documentation at the following Web site: 

http://java.sun.com/j2se/1.4/docs/relnotes/features.html

Solaris 9 

JSP 1.2 and Java Servlet 2.3 Support in Apache Web Server

With the addition of Jakarta Tomcat 4.0.1 and the mod_jserv module, the Apache web server now supports JavaServer PagesTM (JSP Version 1.2) and Java Servlets (Version 2.3).

The following files are stored in /etc/apache:

  • tomcat.conf

  • README.Solaris

  • zone.properties

  • jserv.properties

  • jserv.conf

See the README.Solaris file for information on enabling Tomcat support. Also refer to the following Web site for configuration information:

http://jakarta.apache.org/tomcat/tomcat-4.0-doc/index.html

Tomcat and the mod-jserv module, like the rest of Apache software, is open source code that is maintained by a group external to Sun. This group seeks to maintain compatibility with previous releases.

Solaris 9