This chapter describes new features of the Solaris 2.6 release in detail. For a table listing features with brief descriptions, see Chapter 2, What's New at a Glance.
The Solaris 2.6 operating environment includes advanced technologies for multithreading, symmetric multiprocessing, integrated TCP/IP-based networking, and centralized network administration tools. This Solaris release provides many new and exciting features that improve an already powerful, stable, operating environment.
Here are some of our new and exciting features:
Solaris Web Start
Java Virtual Machine
HotJava browser
Web technologies such as WebNFS
Support for large files
Network/Web server and database performance improvements
AnswerBook2 online documentation system
Conformance to X/Open UNIX 95 standards
Network management and system administration such as NTP, SNMP, DMI, DHCP, and VLSM
Power Management
Year 2000 ready
Expanded language coverage is provided
The Solaris 2.6 operating environment lays the foundation for Java computing by bundling the Java Virtual Machine, the interpreter for the Java language, with the Solaris software. The HotJava browser is also conveniently bundled with Solaris. It is an easy-to-use Internet browser for exploring the World Wide Web and is recommended for viewing AnswerBook2 online documentation and installing by browser.
The Java Virtual Machine 1.1 provides access to the Java platform for the Solaris operating environment. It is compatible with the 1.1 Java Developer KitTM from JavaSoftTM. It includes the standard Java compiler (javac), the Java interpreter (java), the Java class file disassembler (javap), and the C-header and stub file generator (javah). The Solaris Java Virtual Machine also includes the just-in-time (JIT) compiler, improving performance.
The Java Virtual Machine uses Solaris native threads, which provides multiprocessor support for Java threads. Use of Solaris native threads also improves Java application scalability and integration with native methods.
Also included is the appletviewer, which enables you to run applets outside of the context of a World Wide Web browser.
javald(1), another enhancement used to manage Java applications, generates wrappers to execute Java programs. The wrapper ensures that a Java program executed with JAVA_HOME,
CLASSPATH
, and LD_LIBRARY_PATH
environment variables set correctly for the program.
For more information, see Network Interfaces Programmer's Guide.
The HotJava browser provides an easy-to-use, customizable user interface for exploring the Internet. The HotJava browser provides:
Java applet support
Applets are small programs that can be included on a web page, much like images can be included.
Network security
The HotJava browser provides a secure environment for running applets. It supports signed applets, which enables you to fine-tune the desired level of security.
Full HTML support
HTML is the language used to create web pages. The HotJava browser supports the latest HTML standard, which is currently HTML 3.2.
HTML verification
Whenever you display a page with HTML errors, the HotJava HTML Errors button is activated. Click on this button for a list of the errors. This is useful if you are developing your own HTML page or if you are having trouble displaying a page.
Multithreaded applications support
Because the HotJava browser is written in the Java multithreaded language several actions can take place simultaneously. For example, the browser can fetch multiple images at the same time, or it can clone HotJava pages, allowing you to have several HotJava windows open at one time.
External viewer applications
There is a multitude of file types on the World Wide Web. When the HotJava browser encounters a file that it can't display in a web page, it starts up an appropriate external viewer application to display the file, based on its type. A graphical user interface is provided to enable you to specify your own content or application viewer.
Fully configurable user interface
You can easily customize the HotJava browser to look and work the way you please. Much of this customization can be done without any programming.
Extensible support for content and protocol handlers
The HotJava browser provides extensible support for new data types and protocols. A Java programmer can define new content and protocol handlers to use.
The Solaris operating environment is the intranet and Internet leader, and a powerful and reliable web platform. It is the premier operating environment for building a robust web-based network infrastructure. As companies move toward using the Web both internally and externally, powerful Solaris features such as WebNFS that provide speedy access to web files become crucial.
WebNFS software enables file systems to be accessible through the Web using the NFS protocol. This protocol is very reliable and provides greater throughput under a heavy load. Also, files can be made publicly accessible without the overhead associated with an anonymous ftp site.
Additional information may be found in NFS Administration Guide.
Solaris 2.6 performance enhancements focused on improving database and web performance while maintaining the already high levels of file server and time-share performance seen in the Solaris 2.5.1 release.
Significant efforts were made to improve performance of the system for database engines. Work focused on two areas: virtual memory (VM) improvements and I/O throughput improvements.
VM changes focused on reducing overhead by using larger pages for the shared memory area used by database engines to share and store data. Instead of using the default system page size for pages in this area, a large page size of 4 Mbytes is used. This reduces the amount of internal work the system has to do when managing the descriptions attached to each process for pages the process is using. When coupled with existing mechanisms for sharing these descriptions, a performance increase of about 12% was achieved on various industry standard tests.
I/O throughput jumped as the result of low-level changes that minimized the overhead associated with processing large lists of pages for I/O. These modifications reduced the overhead associated with converting the virtual address used by the system to the physical address needed by the device drivers to execute I/O requests. With these improvements, the cost of doing I/O to physical devices dropped dramatically.
Throughput improvements have been demonstrated in a recent Informix TPC-C benchmark which
produced 15,461 tpmC at $134/tpmC
with 13,000 users
on an SMCC E4000 with 14 * 250 Mhz cpus and 5 Gbytes of memory.
This produced the highest Informix TPC-C number ever produced and reflects the best price/performance in the mid-range class.
TPC-C is a benchmark conducted under the auspices of the Transaction Performance Processing Council (TPC). It simulates a warehouse distribution system. Data is contained in nine tables and five transactions are executed against this data in prespecified mixes. The figure of merit is tpmC, which is shorthand for transactions per minute" in the TPC-C benchmark.
Many customers are interested in placing data directly on disk without buffering it in memory. The Solaris 2.6 release provides direct I/O to do this. Bulk I/O operations use large buffer sizes to transfer large files (files larger than physical memory). An example of a bulk I/O operation is downloading large amounts of satellite data to a file.
Direct I/O data is read or written into a process's address space without incurring the overhead of the operating system's page caching mechanism.
See the directio(3C)man page for more information.
Improvements were made to low-level I/O support routines that dramatically improved throughput for I/O to disk devices without a file system (raw devices). (Raw devices are often used for database files.) The driver for the SPARCstorage Array was rewritten to improve its throughput.
Previous efforts in improving network throughput had focused on improving throughput for long-lived connections. These efforts resulted in the highest NFS server performance numbers in the industry. The web server area represents an entirely different paradigm since it emphasizes short-lived connections with little bandwidth demand during the connection. Some of the work for the Solaris 2.6 release to greatly improve that aspect of performance was packaged and released as the Solaris Internet Server Supplement (SISS) for the Solaris 2.5.1 release.
Web server performance improvements were achieved in several places, ranging from the socket interface layer, the TCP/IP protocol stack, and the STREAMS framework. The socket interface layer was redesigned as a file system (sockfs), thereby removing the need to duplicate socket code in the socket library as well as the STREAMS socket module. This significantly improved the performance for the short-lived connections that are common on the Web. The TCP/IP changes consist both of improvements to efficiently handle large numbers of connections as well as further improvements to the multithreading of the opening and closing of connections and sockets. Finally, the STREAMS framework has been restructured to allow more efficient opening and closing of TCP/IP sockets.
The Standard Performance Evaluation Corporation (SPEC) has released SPECweb96, a standardized benchmark for comparing web server performance. The benchmark is designed to provide comparable measures of how well systems can handle HTTP GET requests. SPEC based the work load on analysis of server logs from Web sites ranging from a small personal server up through some of the Internet's most-popular servers. Built upon the framework of the SPEC SFS benchmark, SPECweb96 can coordinate the driving of HTTP protocol requests from single- or multiple-client systems. For the latest Solaris 2.6 SPECweb96 submissions and more information on SPECweb96 benchmarks, please visit the SPEC web site: http://www.specbench.org.
The kernel sockets implementation provides improved compatibility with SunOSTM 4.x and BSD sockets, enabling higher socket performance.
TCP large windows provides the support described in RFC1323. It is designed to improve performance over high bandwidth networks such as ATM, or high-delay networks such as satellite links, by expanding the amount of data that can be outstanding in a TCP session from 65535 bytes to approximately 1 Gbyte.
Zero copy TCP/hardware checksum functionality can be used to increase TCP throughput in certain situations. It does so by avoiding the copying of data and by using hardware checksum logic in the network interface when available. Currently, the only network interface that contains the hardware checksum logic is the SunATM 622 interface.
For more information, see Transport Interfaces Programming Guide.
The Solaris operating environment is large and complex; its structure gives customers the flexibility to meet their needs. New features enable customers to easily install and manage the Solaris environment are
Solaris Web Start, a web-browser installation tool
An installation card to step customers through the installation
A device Configuration Assistant for x86 machines
A new, easy-to-use desktop
This section describes new features in the Solaris 2.6 software that affect installation.
The Solaris software is the industry's first operating system that can be installed via a web browser. Solaris Web Start is a browser-based utility that guides users through the selection and installation of both Solaris and copackaged application software. Its graphical user interface also facilitates file system configuration.
The utility's built-in suite of online information answers questions about the product itself, the software it installs, and the hardware platforms it supports. Use of the utility is optional: users can exit at any point and proceed with one of the more traditional Solaris installation methods.
For more information, see the module Using Solaris Web Start in Information Library for Solaris 2.6 (Intel Platform Edition) or Information Library for Solaris 2.6 (SPARC Platform Edition).
A documentation reorganization makes finding information on how to install Solaris software easier. The desktop product contains a small, step-by-step guide that describes installing the Solaris software from a local CD-ROM. The server product contains an advanced guide for setting up servers and clients, and a description of how to automate installations using custom JumpStartTM software.
The Configuration Assistant interface is part of the new booting system for the Solaris (Intel Platform Edition) software. It determines which hardware devices are in the machine, accounts for the resources each device uses, and enables you to choose which device to boot from. The booting software, including the Configuration Assistant, is installed on the system's hard disk along with the Solaris operating environment. A file that contains the hardware configuration information for the system being installed is also installed on the hard disk. Each time the system is booted, the configuration information is passed to the Solaris kernel. The Configuration Assistant must be re-run any time the hardware configuration is changed.
For information on how to use the Configuration Assistant to help solve device configuration problems, see the modules (xref)Configuring Devices and the Troubleshooting in Information Library for Solaris 2.6 (Intel Platform Edition).
The Solaris CD layout has been changed in the Solaris 2.6 release. Slice 0 has been reorganized to make it more intuitive and extensible. It contains only control files and the Solaris_2.6 directory at the top level. The control files at the top level on slice 0 are the same control files found on previous Solaris CDs. The control files are .cdtoc, .slicemapfile, and .install_config.
For more information, see Solaris Advanced Installation Guide.
The upgrade option for the Solaris 2.6 release provides an auto-layout feature to reallocate disk space if the current file systems don't have enough space for the upgrade. This new feature is provided in the interactive Solaris installation program and by a new set of custom JumpStart profile keywords.
For more information, see Solaris Advanced Installation Guide.
In previous Solaris releases, the system administrator could only test profiles that used the initial option. The Solaris 2.6 release now enables the pfinstall command to test profiles that use the upgrade option, so an administrator can see if a profile will do what is wanted before using it to upgrade a system. This is especially useful with the new disk-space reallocation feature.
To test an upgrade profile, you must run the pfinstall -D command on the system that you're going to upgrade (against the system's disk configuration). You cannot test an upgrade profile using a disk configuration file.
For more information, see Solaris Advanced Installation Guide.
The Solaris 2.6 release now enables you to change a system's boot device during the installation. A system's boot device is the disk slice where the root file system is installed and, consequently, where the installed system will boot from.
Also, the installation program can now update the system's EEPROM if you change the new boot device, so the system can automatically boot from it (SPARC systems only). In previous releases, changing the system's boot device during an installation meant that you had to manually change the system's EEPROM so it could automatically boot from the new boot device.
This new feature is provided in the interactive Solaris installation program and by the new custom JumpStart boot_device profile keyword.
For more information, see Solaris Advanced Installation Guide.
In previous releases, the first part of the Solaris installation program tried to obtain system configuration information about a system (such as the system's peripheral devices, host name, IP address, name service) from the name service databases. The installation program prompted you if it couldn't find the information. If you didn't want to be prompted, you had to preconfigure the system configuration information in the name service.
Using the Solaris 2.6 sysidcfg file, you can now preconfigure system configuration information through a set of keywords. You can choose to provide one or more of the keywords to preconfigure varying levels of system configuration information.
The sysidcfg file can reside on a remote system or on a UFS or PCFS diskette in the system's local diskette drive. If you choose to put the sysidcfg file on a remote system, you have to use the -p option of the add_install_client command to specify where the system being installed can find the sysidcfg file.
When installing the base (English) Solaris 2.6 CD, you'll be prompted to select an English locale, because a new, 8-bit English local (en_US) has been added to Solaris 2.6. If you don't want to be prompted for the locale, you must preconfigure the locale information. For more information about the new en_US locale, see the "New Locales in the Base Installation."
For more information, see Solaris Advanced Installation Guide.
The kdmconfig program is used to configure the mouse, graphics adapter, and monitor on an x86 system. If an OWconfig file already exists, kdmconfig will extract any usable information from it. In addition, this updated version of kdmconfig will also retrieve information left in the devinfo tree by the devconf program, and use that information to automatically identify devices. Any attribute values, such as manufacturer or model information, returned by probes for a given device (unless it is "Unknown") take precedence over the value received for the same attribute from the OWconfig file.
If all attribute values in the Confirm Configuration screen are obtained (none are "Unknown"), the default choice is Save and Exit Configuration. If information is needed, the program selects the first Unknown device as the default configuration selection. You can override the default selection by either selecting another device you want to configure or by selecting Save and Exit Configuration instead. When you exit, kdmconfig checks for Unknown devices and warns you about potential problems with the X Window System if values are missing. After reading the warnings, you can either continue with the configuration or exit the program and configure the devices later.
The changes regarding the sequence of screens for configuring individual devices are
You can now choose one of the ports (COM1 to COM4, /dev/tty00 to /dev/tty03, respectively) when configuring a serial mouse.
When configuring a Graphics Card/Monitor, users are now always presented with the choice of monitors following the selection of the graphics card, and the choices on other screens that follow (such as resolution and the like) depend on both card and monitor selections.
The program is similar to the previous version with regard to the character user interface and the function keys used to navigate within the program.
For addition information regarding the kdmconfig program, see the kdmconfig(1M) man page.
The installation window in the English Solaris 2.6 CD offers several English language locales. To use 8-bit characters, install through one of the en_XX options. The locale used in the installation becomes the default system locale.
The C locale was installed by default in the base English releases prior to this release.
Locale Name |
Language/Territory |
Code Set |
---|---|---|
C |
American English |
7-bit |
en_AU |
Australian English |
8-bit |
en_CA |
Canadian English |
8-bit |
en_UK |
UK English |
8-bit |
en_US |
American English |
8-bit |
For more detailed information on locale installation, see Solaris 2.6 SPARC Platform Edition) Release Notes or Solaris 2.6 (Intel Platform Edition) Release Notes.
The AnswerBook2 documentation system uses a web browser-based interface that enables you to view and print a variety of Solaris information, including existing AnswerBook documents and man pages. The AnswerBook2 software provides a robust search engine that enables you to easily find information throughout the documentation library. You can install the AnswerBook2 document collections locally or on a centralized documentation server, and you can customize the AnswerBook2 documentation library.
For more information about the AnswerBook2 system, see the module Accessing Online Documentation in Information Library for Solaris 2.6 (SPARC Platform Edition) or Information Library for Solaris 2.6 (Intel Platform Edition).
The Solaris 2.6 release has the Common Desktop Environment (CDE) as the default desktop. It continues to support the OpenWindows desktop.
The Solaris Common Desktop Environment (CDE) is an advanced Motif-based desktop with an easy-to-use interface that provides a consistent look and feel across UNIX platforms. SunSoft, Hewlett-Packard Company, IBM Corporation, and Novell, Inc. each contributed technologies to establish a new cross-platform standard for user and application interfaces based on the X Window System and Motif.
While maintaining compliance with the CDE standards, Solaris CDE offers additional benefits to its users and developers, including performance improvements and significant defect fixes, thus providing a higher quality product. Existing OpenWindows utilities were integrated with CDE via a special folder in Application Manager. New features include a spell checker and an image viewer to display, rotate, scale, and convert graphic images and PostScript files.
With Solaris CDE you can run OpenWindows applications without modification, with drag-and-drop interaction from OpenWindows applications to CDE applications. All OpenWindows and OPEN LOOK applications run without any need for modification, recompilation, or unwieldy compatibility libraries. If you are used to the OpenWindows environment, you have access to the familiar backdrops, color palettes, and pop-up Workspace menu.
The CDE user environment includes the following features:
Login Manager for logging into the desktop, which is available automatically as your workstation is booted. Choose from the Remote Login menu item Options menu to be able to run your desktop on any system on your network.
An Integrated Motif environment that contains a Front Panel from which you can launch desktop applications. You can customize your desktop look by choosing such things as font size, color, and backdrop.
The Workspace menu, which is a pop-up menu that contains items for managing the desktop workspace.
An online Help information system that provides information on the various desktop applications.
The CDE 1.2 Development Environment is included in optional packages for users who develop software in CDE. These packages contain:
Utility applications, man pages, libraries, and header files to help you develop CDE applications
Widgets to ease porting OPEN LOOKTM and Microsoft Windows applications to CDE, as well as terminal emulator, text editor, and file selection box widgets
Application Builder, a tool for creating graphical user interfaces that use CDE application program interfaces (APIs)
Desktop KornShell (dtksh), a scripting language
Demonstration programs in source form for Motif, ToolTalkTM messaging, and other CDE services
Web- and Internet-aware features in File Manager and Enterprise Mailer
Spell checker integrated into Text Editor and Enterprise Mailer
Basic IMAP4 support in Enterprise Mailer
Removable media support for CD-ROMs and diskettes
Access Control List (ACL) support
Multimedia image and audio support
Auto lock screen
Federated Naming Space (FNS) support in Calendar (for NIS+ only)
Power Management software enables users to be more frugal with power consumption on desktop systems when they are not being used. By default, UltraSPARC desktop systems power off when not used for 30 minutes. The system can later be restored by Power Management software to the state it was in before it was powered off. Users can modify or turn off Power Management if needed.
For more information, see Using Power Management.
The OpenWindows 3.6 desktop and libraries have been updated with bug fixes and prepared for the year 2000. The OpenWindows 3.6 environment provides the following features:
The OPEN LOOK Window Manager, olwm, a client to the X server, which manages:
Window placement
Workspace Programs menu
Window and icon opening and closing
Application starting and exiting
For more information, see the olwm(1) man page.
Internationalization, which enables you to select the local language, time format, and numeric format for the workspace and the DeskSetTM applications.
If you have a localized version of the Solaris 2.6 release, you can install localization packages that provide support for European or Asian locales
The X server, the platform of the OpenWindows environment for window applications
The X server is a program that is the foundation for the OpenWindows environment. It is the X11R6 sample server with a Display PostScript (DPS) imaging system extension. The X server also includes several X extensions, a font server 0 and DPS font enhancements:
Default key bindings for Motif on Sun
An executable, xmbind, that enables you to change your keybindings without restarting olwm
For more information, see the Xsun(1)(), Xserver(1)(), and X11(7)() man pages.
All localized versions of Solaris, including English, includes the new local support listed in Table 3-2.
Table 3-2 New User Locales Included in Solaris 2.6
Country |
Locale-Name |
ISO Code Set |
---|---|---|
Austria |
de_AT (German Partial Locale) |
8859-1 |
Estonia |
et |
8859-1 |
Czech |
cz |
8859-2 |
Hungary |
hu |
8859-2 |
Poland |
pl |
8859-2 |
Latvia |
lv |
8859-4 |
Lithuania |
lt |
8859-4 |
Russia |
ru |
8859-5 |
Greece |
el |
8859-7 |
Turkey |
tr |
8859-9 |
These locales are supported through the SUNWploc1, SUNWplow1, and SUNWpldte packages, which are part of the Entire cluster.
Two locales, Greek and Russian, are based on non-Latin scripts and require an optional SMCC keyboard for text input.
Two locals, which are Unicode 2.0 and ISO 10646 compliant, have been added. These locales enable multiscript input and output and are the first locales provided in the Solaris environment with this capability. These locales support the CDE environment only, including the Motif and CDE libraries.
Font Admin enables easy installation and usage of fonts for the X Window System. It supports TrueType, Type0, Type1, and CID fonts for multibyte languages, and provides comparative font preview capability. It is fully integrated into the CDE desktop.
TrueType fonts are supported through X and DPS. Font Admin allows for easy installation and integration of third party fonts into the Solaris environment.
For more information, see the X/Open web site at http://www.xopen.org.
Solaris 2.6 software has been re-architected to the historical dependency on the Extended UNIX Codeset (EUC). Additional codeset support and locales for popular Asian PC encoding standards, ShiftJIS (PCK) in Japan, Big5 in PRC, and Johap in Korea are also provided. These locales support the CDE environment only, including the Motif and CDE libraries.
Solaris User Registration is a registration mechanism invoked when the user first brings up the Solaris 2.6 desktop environment. By registering, customers can take advantage of Sun's commitment to providing superior service and support. Registered users will be regularly informed about new Solaris releases, upgrade offers, and promotions that they can use to enhance their systems.
Many customers rely on the Solaris operating environment as the foundation for mission critical applications. New standards in the Solaris operating environment show Sun's continuing involvement in providing a stable operating environment. Continuous improvements in support for standards are shown in these new features.
Sun's Solaris 2.6 operating environment is year 2000 ready. The Solaris 2.6 release uses unambiguous dates and follows the X/Open guidelines where appropriate. For further information, including the definition of year-2000 compliance, see the Year 2000 web page at http://www.sun.com/y2000.
The previous release of Solaris was compliant with much of Spec 1170. Solaris 2.6 software now meets all the requirements.
Areas changed in the Solaris 2.6 release to meet the Spec 1170 requirements:
System interfaces and headers
System headers were updated to bring them up to compliance with Spec 1170.
X/Open curses
A new library has been added to support the interfaces defined by this specification. Significant support for internationalized curses capabilities, pads, terminfo database access, and color manipulation has been added.
Networking services
New X/Open standardized socket and IP address resolution interfaces are available.
The X/Open Transport Interface (XTI) is an evolution and standardization of the set of interfaces that were supported by the Transport Layer Interface (TLI) in SVR4. TLI continues to be available for compatibility, but new development should use XTI.
For more information, see Transport Interfaces Programming Guide.
Federated Naming Service (FNS) is now compliant with the X/Open XFN CAE definition.
POSIX 1003.1b support is completed. The Solaris software has provided all of the interfaces for POSIX 1003.1b since the Solaris 2.3 release. A subset of those interfaces was functional in that they provided services instead of returning "Not Supported." This release finishes support for POSIX 1003.1b (with the exception of the -PRIORITIZED IO option).
This standards feature is of interest to developers interested in writing portable, standards-compliant code. It is also of interest to developers interested in higher performance message passing or semaphore code who otherwise would use System V messages or semaphores and who can accept the more limited functionality offered by POSIX.
As of the Solaris 2.6 release, POSIX 1003.1b support is provided for the following:
Asynchronous I/O (except prioritized I/O)
Mapped files
Memory locking
Memory protection
Message passing
Priority scheduling
Realtime signals
Semaphores
File synchronization
Shared memory objects
Synchronized I/O
Timers
Support for many of these features has been available in the Solaris operating environment for several releases in a non-standards-conformant way.
The ISO 10646 standard defines Unicode 2.0, including UCS-2 and UTF-8 (the standard UNIX implementation). All implementations specified in this standard are Unicode 2.0 compliant.
The Solaris operating environment provides developers with the documentation, development software libraries, productivity tools, sample code, and testing tools needed to develop software applications for the Solaris runtime environments. This section describes new features to help developers dealing with large files (over 2 Gbytes), multithreaded applications, and X servers and libraries.
The large files project supports files that are larger than or equal to 2 Gbytes. Large-file semantics are supported on UFS, NFS, and CacheFS file systems. Applications will be able to create and access files up to
One Tbyte on UFS-mounted file systems
The limit of the NFS server for NFS- and CacheFS-mounted file systems
Existing file I/O interfaces have been modified to detect the error when they are used with a large file. New data types (most with suffixes of 64 or 64_t) and new interfaces (most with suffixes of 64) are provided to operate on large files.
An existing application running on Solaris 2.x software should be checked for the following points:
To make the application large-file compatible (for example, "large-file safe in Solaris 2.6"), examine the application's source code to ensure that use of existing interfaces is appropriate and has the correct error-handling characteristics when a large file is encountered.
For your application to work with large files (for example, "large-file aware"), you must examine and modify your source code. Examples for areas to modify include:
Output and in-memory formatting strings such as %ld to %ll
Any variable for temporary storage of sizes or offset information must be correctly sized to avoid truncation
Function parameters and return values should be checked and corrected if necessary.
For more information, see NFS Administration Guide and System Administration Guide.
Versioning and scoping are related enhancements to the link editor in the Solaris operating environment. Developers of dynamic objects can use these technologies to define sequential versions of a dynamic object's binary interface within the object and reduce global symbols to local scope. These capabilities provide the means to control interface evolution across software releases, inherit global symbols from previous versions, record version dependencies, and describe internal implementation changes.
Versioning and scoping enable developers to provide stable interfaces for program development, achieve standards compliance, and protect implementation changes (such as bug fixes) from the object's public interface. An added benefit can be reduced object size and runtime relocation cost, which can improve an application's runtime performance.
For the Solaris 2.6 operating environment, the system libraries take advantage of this technology and have been both scoped and versioned.
For more information, see Linker and Libraries Guide.
Scheduler activations provide additional kernel scheduling support for multithreaded applications. This is implemented as a private interface between the kernel and the libthread library (or libpthread), without changing the libthread (libpthread) interface. Among other things, this enables the thread library to implement adaptive mutex locks. Adaptive mutex locks is where a thread trying to acquire a lock spins if the thread holding the lock is currently running on a processor, and blocks otherwise.
See the libsched(3X) man page for more information.
Pre-emption control allows applications to give scheduling hints to the kernel to prevent preemption for short periods of time. This can improve the performance of some classes of applications such as database servers.
The previous flat /proc file system has been restructured into a directory hierarchy that contains additional subdirectories for state information and control functions. It also provides a watchpoint facility to monitor access to, and modification of, data in the process address space. The new /proc file structure provides complete binary compatibility with the old /proc interface.
The adb(1) command has been modified to use the new /proc watchpoint facility. It now provides data breakpoints to cause the subject processes to stop on access to specified variables.
For more information, see the adb(1) man page.
FNS is now compliant with the X/Open XFN CAE definition. FNS has also been enhanced to include support for Lightweight Directory Access Protocol (LDAP). It also provides improved support for the files and NIS back ends.
For more information, see Federated Naming Service Programming Guide, Solaris Naming Administration Guide, and Solaris Naming Setup and Configuration Guide.
Asynchronous I/O support for tapes provides an interface to improve performance on the high performance tape devices. With the ability to queue up to requests, this feature significantly improves the I/O throughput.
The SDK software is now built into the Solaris environment and is no longer an unbundled product. All the information a developer needs to produce applications and graphics handlers for end-user Solaris runtime environments is now available in the Solaris software.
The Solaris VISUALTM software includes several graphics and multimedia software foundation libraries. Foundation libraries are the lowest-level device-independent layer of the Solaris software. This level of interface is designed to support a wide variety of common functions. You can build higher-level libraries on top of the foundation libraries, or the foundation libraries can be used directly by a software application. These foundation libraries create applications that incorporate 2-D and 3-D graphics, imaging, and digital video. The libraries are the XGL graphics library (which serves as a foundation library for the Solaris PEX software) and XIL imaging library.
The Solaris PEX 3.0.2 RTE consists of a PEX client-side runtime library (PEXlib) and a PEX server-extension shared-object file (Solaris PEX server). PEXlib is an API to PEX protocol as Xlib is to core X protocol. PEXlib provides application portability across hardware platforms and enables 3-D graphics rendering on local and remote displays. The OpenWindows Version 3.6 X11 server automatically loads the PEX shared-object extension when it receives a PEX request from a PEX client.
The PEXlib implementation for the Solaris 2.6 release is based on PEXlib - Specification and C Language Binding: Version 5.1, available from the Massachusetts Institution of Technology. The PEX server extension is based on PEX Protocol Specification, Version 5.1.
Solaris PEX 3.0.2 RTE is included in the Solaris 2.6 release and should be installed if you are planning to
Run PEXlib-based graphics client applications
Display any 3-D graphics from client applications that perform rendering on remote displays through the PEX protocol
To install PEX, choose the entire distribution software group when installing the Solaris 2.6 software.
For more information on PEX, see:
Also, the following books are available at bookstores:
PEXlib Programming Manual, O'Reilly and Associates, Inc.
PEXlib Reference Manual, O'Reilly and Associates, Inc.
The XGL library is a 2-D and 3-D immediate-mode API that provides application portability across hardware platforms and enables graphics applications to get optimal performance from graphics accelerators. The XGL version 3.3 library enables applications to determine transparency support level and includes a new attribute to enable user control over edge offset.
The XGL 3.3 runtime environment (RTE) is included with the Solaris 2.6 release and should be installed if users at your site are running graphics applications. It is not always obvious whether an application requires the XGL RTE; therefore, you should install the XGL RTE if you are installing CDE or OpenWindows software, since an application may reference the XGL libraries.
For more information on XGL, see XGL Programmer's Guide or XGL Reference Manual.
The XIL library is an imaging API that provides a basic set of functions for imaging and video applications. The library provides a strategy for low-level software interfaces (foundation libraries) and enables APIs and API developers to port their code to these foundation libraries.
The XIL 1.3 runtime environment (RTE) is included with the Solaris 2.6 release and should be installed if users at your site are running imaging applications. It is not always obvious whether an application requires the XIL RTE; therefore, you should install the XIL RTE if you are installing either OpenWindows or CDE software, since an application may reference the XIL libraries.
The XIL 1.3 library API is fully backwards compatible. This means that existing applications can be run without modification or recompilation.
The XIL 1.3 library is MT-hot. Developers can write multithreaded applications without putting locks around XIL functions. Multiple threads from the API will execute correctly as long as they do not require data from the same image. The library itself also is MT-hot. It takes advantage of multiprocessor systems without applications having to be rewritten.
The XIL 1.3 library stores very large images in buffers of memory called tiles. If a region of an image within a tile boundary is needed, only that tile is loaded into memory, thereby increasing performance.
The library also includes a new storage object, which supports conventional contiguous storage as well as tiled or stripped storage for XIL images. The storage object serves as a container for the image's attributes, such as its scanline and pixel stride, and its data pointer. Storage is not allocated for the image until you export the image and modify it directly. This saves on memory use.
The XIL 1.3 library now supports the 32-bit single-precision, IEEE floating-point data type. Using this data type enables you to develop highly sophisticated scientific imaging applications.
The XIL 1.3 library supports temporary images, which are images used as an intermediate step in creating a subsequent image. They may only be written to, and read from, once. Temporary images are particularly advantageous for large images, because XIL can release the storage associated with them when it's no longer needed.
The XIL 1.3 library supports the new XIL_GENERAL() storage format. This format provides the flexibility of specifying each band of a multiband image as a separate memory buffer. Furthermore, each band can have its own scanline and pixel stride.
The XIL 1.3 library now supports the XIL_BAND_SEQUENTIAL format for all data types, not just XIL_BIT images.
The XIL 1.3 library includes Kodak Color Management System (KCMS) support. You can achieve very close color matching between a display image and the actual stored image.
The Kodak Color Management System (KCMS) software product is a color management solution that ensures color consistency from input devices to output devices. It is technology licensed from Eastman Kodak that was developed in conjunction with SunSoft.
KCMS now supports multithreaded programs: it is multithread safe (MT-safe). If your KCMS application uses multithread capabilities, you do not need to put locks around KCMS library calls.
For more information, see KCMS Application Developer's Guide.
The X11R6 Base Windowing System includes the latest fixes and patches from the X Consortium.
For more information, see the X/Open web site at http://www.xopen.org.
The Double Buffer Extension (DBE) provides a standard way to use double-buffering within the framework of the X Window System. Double-buffering uses two buffers, called "front" and "back," that hold images. The front buffer is visible to the user; the back buffer is not. A detailed specification is available via an internet browser in ftp://ftp.x.org/pub/DOCS/DBE/.
For more information, see the X/Open web site at http://www.xopen.org.
The Solaris operating environment now supports files larger than approximately 2 Gbytes. New interfaces are provided to operate on large files for developers who want to do asynchronous I/O to large files.
The large files project supports files that are larger than or equal to 2 Gbytes. Large file semantics are supported on UFS, NFS, and CacheFS file systems. Applications are able to create and access files up to
One Tbyte on UFS mounted file systems
The limit of the NFS server for NFS and CacheFS mounted file systems.
Existing file I/O interfaces have been modified to detect an error when they are used with a large file. New data types (most with suffixes of 64 or 64_t) and new interfaces (most with suffixes of 64) are provided to operate on large files.
A new mount option is available to disable the large-file support on UFS file systems. This gives the system administrator a way to ensure that older applications that are not able to safely handle large files will continue to work.
The default mount option is largefiles. The largefiles option means that a file system mounted with this option allows creation of files larger than or equal to 2 Gbytes.
A file system mounted with this option does not have to contain files larger than 2 Gbytes.
Once a file system has been mounted with the largefiles option, if a large file has been created in that file system, it cannot be remounted with the nolargefiles option until the fsck command is run to confirm the absence of large files.
An existing application running on Solaris 2.x software should be checked for the following points:
To make the application large-file compatible (for example, "large-file safe in Solaris 2.6"), examine the application's source code to ensure that use of existing interfaces is appropriate and ensure the correct error-handling characteristics when a large file is encountered.
For your application to work with large files (for example, "large-file aware"), you must examine and modify your source code. Examples of areas to modify include:
Output and in-memory formatting strings such as %ld to %lld
Any variable used for temporary storage of sizes or offset information must be correctly sized to avoid truncation.
Function parameters and return values should be checked and corrected if necessary.
For more information, see NFS Administration Guide and System Administration Guide.
The Solaris operating environment provides a new set of interfaces for developers who want to do asynchronous I/O to large files. The following interfaces accept 64-bit AIO:
aio_read64
aio_write64
lio_listio64
aio_suspend64
aio_error64
aio_return64
The following interfaces exist, but are not supported:
aio_fsync64
aio_cancel64
These interfaces also work with KAIO. KAIO is the optimized path for doing I/O to raw files. When using the interfaces with KAIO to raw files, there is a significant performance improvement.
The Solaris operating environment supports another set of AIO interfaces that pre-dates POSIX. These interfaces have also been updated for large file support:
aioread64
aiowrite64
The Solaris operating environment provides a sophisticated security system that controls the way users access files, protect system databases, and use system resources. Solaris security is network-wide security, providing security over several different systems, not just one. The Solaris security system is designed to accommodate different security models, giving users the flexibility to choose the model that best fits their needs now and in the future. There are a number of new features that add to the Solaris security system in the areas of access control, encryption, and authentication.
Kerberos authentication uses DES encryption to improve security over the network. The kernel implementations of NFS and RPC network services have been modified to add support for a new RPC authentication flavor that is based on the Generalized Security Services API (GSS-API). This support contains the hooks to add stronger security to the NFS environment.
The share and mount commands have been altered to provide NFS support for Kerberos. Also, the share command now allows for multiple authentication flavors from different clients.
For more information, refer to NFS Administration Guide.
The user-level RPC implementation has been modified to add support for a new authentication flavor. This flavor is based on the GSS-API and provides the hooks to add stronger authentication, privacy, and integrity for RPC-based services.
The PAM framework enables you to "plug in" new authentication technologies without changing the login, ftp, or telnet commands. You can also use PAM to integrate UNIX login with other security mechanisms like DCE or Kerberos.
Mechanisms for account, session, and password management can also be plugged in using this framework.
Some of the benefits PAM provides are
Flexible configuration policy
Ease of use for the end user
The ability to pass optional parameters to the user authentication services
For more information, see System Administration Guide.
The Solaris operating environment now supports and includes Domain Name System (DNS) Berkeley Internet Name Daemon (BIND) version 4.9.4 patch level 1. BIND is the most popular implementation of DNS. BIND is critical for Internet connectivity because it provides an Internet naming service that stores host (IP) addresses, mail information, and similar data for lookup purposes. BIND always includes a number of programs and the resolver library. The main program is named, the daemon that provides DNS information. Applications such as telnet communicate with named via the resolver library.
BIND 4.9.4-P1 provides new security over the Internet. The older version of BIND did little to prevent DNS spoofing. Intruders could cause BIND to provide incorrect name data. Services that use this (some of which do not verify data) could be tricked into allowing remote access to unauthorized users. The 4.9.4 version fixes many holes in security.
For more information, see Solaris Naming Administration Guide.
The Solaris operating environment provides a stable and reliable networking environment. New network management and system administration features in this release expand tools for managing this environment.
This Solaris release supports NTP, which provides both precise time and/or network clock synchronization for use in distributed computing environments. In the past, Solaris customers could use a publicly available version of NTP. The new support provides increased time precision.
Based on the new extensible agent technology or Master/subagent technology, SunSoft provides the solution Solstice Enterprise Agents (SEA). The agents consist of a Master Agent and subagents. The Master Agent receives and responds to Simple Network Management Protocol (SNMP) or Desktop Management Interface (DMI) requests. The responses are sent after retrieving the appropriate values from the respective subagents. The subagents manage information bases (MIBs or MIFs) designed for specific components and applications. Enterprise Agents also enable users to integrate and use SNMP-based Legacy Agents.
SEA is for both component developers and system and network managers who want to develop custom SNMP or DMI subagents to instrument different components, subsystems, and applications within a device to enable management from an SNMP management console.
Dynamic Host Configuration Protocol (DHCP) enables a host to get an Internet protocol (IP) address and other system configuration parameters preconfigured by the administrator on the DHCP sever. DHCP also enables the host to give up this address when it is no longer required, or when the designated period for its use ends. This protocol improves on the traditional IP address allocation where the system administrator must assign or change each IP address individually. Both DHCP server and client-side support are provided.
For more information, see TCP/IP Network Administration Guide.
Client failover provides for a high level of availability of read-only file systems by allowing the client to mount files from another server as needed. The failover is transparent to the client, so work is not disturbed if one server has problems as long as there is a replica available.
More information about NFS client failover can be found in NFS Administration Guide.
Previously, the Solaris operating environment supported the use of a single netmask for each network number in use on a network. The netmask determines which bits of an IP network number represent the subnet, and which represent the host number. Using variable-length subnet masks (VLSM) enables more efficient use of IP addresses in large networks. With VLSM, the TCP/IP administrator can now use multiple netmasks for a given network number, tailoring each mask according to the size of each individual subnetwork. When deciding how to route an IP packet, Solaris automatically uses the longest matching netmask.
For example, in prior releases an administrator could subdivide the network 192.168.1.0 into eight subnets by using a netmask of 255.255.255.224. By using VLSM, this network number can instead be broken into
Two subnets with a netmask of 255.255.255.192, and
Four subnets with a netmask of 255.255.255.224
In addition, the use of VLSM allows supernetting or aggregation of network numbers, which can result in substantial savings in the sizes of routing tables carried by network routers. These two techniques make it possible to implement Classless Inter-Domain Routing (CIDR) as described in RFC1519.
To fully utilize VLSM in a network, CIDR-aware protocols such as OSPF, BGP-4, or RIPv2 must be used.
For more information, see TCP/IP and Data Communications Administration Guide.
The Solaris operating environment now conforms to the de facto routing socket interface as implemented by 4.4 BSD. This interface enables netmask information to be shared between routing protocol implementations and the kernel. It can also be used by implementations of CIDR-aware routing protocols.
Although the Solaris software does not deliver a routing daemon that implements these protocols, TCP/IP administrators are advised to contact the Merit GateD Consortium (http://www.gated.org/) for information on Gated. Gated is a program that implements these and other routing protocols and uses the routing socket interface.
Processor sets allow a group of processors to be allocated for the exclusive use of one or more applications. The /usr/sbin/psrset command gives a system administrator control over the creation, management, and binding of processes into processor sets.
See the psrset(1M) man page for more information.
autofs is a file system that automatically mounts file systems as needed and unmounts them when they are not being used. The new automount daemon is now fully multithreaded. This enables concurrent servicing of multiple mount requests. The new functionality makes the service more reliable.
The autofs service now supports browsability of indirect autofs maps. All mountable entries under an autofs mount point can be visible without the overhead of mounting them first. By default the /home and /net autofs mount points will have browsing disabled, but all other indirect mount points will be browsable. The ability to browse can be administered at the host level with the automount command and at a name-space level through the autofs maps.
In addition, better on-demand mounting of hierarchically related file systems is included. Previous releases automounted an entire set of file systems if they were hierarchically related, even if only one file system was referenced. Now, the file system that is referenced is dynamically mounted without the other file systems in the hierarchy.
For more information, see NFS Administration Guide.
NIS+ backup and restore provide a quick and efficient method of backing up and restoring NIS+ namespaces.
For more information, see Solaris Naming Administration Guide.
NIS+ administrators can now specify NIS+ server search order for clients that need naming services. Server use can be balanced among various clients by designating different servers for different clients as "preferred" (primary). The order in which the client seeks out other servers when it cannot obtain information from its preferred server can be specified. This feature is particularly useful when a NIS+ domain spans a Wide Area Network (WAN) link. Administrators can reduce network traffic over the WAN link by specifying that clients first try to obtain the naming service from servers on the client's side of the link. NIS+ administrators can also specify what a client does when no preferred server is available.
For more information, see Solaris Naming Administration Guide.
The Solaris operating environment now natively supports the NIS server. In previous Solaris releases, the NIS server was supported under emulation mode by the NIS+ server or by an unbundled product named NSkit. Bundling the NIS server is intended to aid the transition from the SunOS 4.x to the Solaris 2.6.
CFS boot enables AutoClient systems to boot more quickly with less network traffic by booting from a local CacheFS disk cache. The first system boot populates the cache, and system boots that follow are satisfied from the cache.
For more information, see System Administration Guide.
In previous releases, patch installation and removal tools and their corresponding documentation were delivered as part of each patch shipped. These tools are now part of the Solaris software, which provides the following benefits:
There is less wasted space on user systems. (Tools are installed once instead of with each patch.)
Multiple patch handling is easier.
The patchadd and patchrm commands are used to add and remove patches from a Solaris 2.x system. They cannot be used to manage patches on a Solaris 1.x system.
You can add one or more patches to a system, client, service, or a net install image.
A patch is added to the local system by typing, for example:
# patchadd /var/spool/patch/104946-02 |
A patch is added to a client by specifying the client's root directory on a server, for example:
server# patchadd -R /export/root/client1 /var/spool/patch/104946-02 |
A patch is added to a service area (a usr file system, from any Solaris release setup on a server that is usually mounted as read only by the clients the server serves) by specifying the service area on the server, for example:
server# patchadd -S Solaris_2.3 /var/spool/patch/104946-02 |
If a patch contains both root and usr packages in the patch, the patchadd command must be issued twice: once with the -R option to apply the patch's root package, and once with the -S option to apply the patch's usr package.
See the patchadd(1M) and patchrm(1M) man pages and System Administration Guide for more information.
Isalist is a set of utilities for SPARC systems that enables users to find out which instruction sets are supported on their machines and also to determine which one will perform the best for them. The set of utilities include:
The isalist command, which prints out an ordered list of supported instruction set
The optisa command, which prints out the best instruction set out of this list
A pragmatic interface, which is the equivalent of using the sysinfo system call
Currently there are many variations of the SPARC processor, some of which can be treated as separate instruction sets. An application binary that is compiled for one variation may not run, or may run with performance degradation, or may run normally on a machine implementing a different variation. The Isalist utilities provide a standard interface so users can choose their application binary correctly to obtain maximum performance. For example, a system administrator can write a wrapper script and use the output of isalist and optisa to choose the appropriate binary for a given application.
The Solaris 2.6 print software offers a better solution than the LP print software in previous Solaris releases. System administrators can easily set up and manage print clients using the NIS or NIS+ name services. This means you can centralize print administration for a network of systems and printers.
Solaris 2.6 print software features include:
Redesign of print packages
Print protocol adapter
SunSoft Print Client
Network printer support
The Solaris 2.6 print packages have been redesigned to provide greater flexibility and modularity of print software installation and to allow installation of a smaller client footprint.
Redesign features include:
The ability, with a custom installation, to install only the client software on the print client, allowing for a smaller client footprint.
All packages, client and server, are installed by default on all machines. You can choose to install client software only on print client machines by customizing your installation.
PostScript filter software contained in the print package SUNWpsf.
The new set of print packages is:
- SunSoft Print - Client (root)
- SunSoft Print - Client (usr)
- SunSoft Print - LP Server (root)
- SunSoft Print - LP Server (usr)
- PostScript Filters (usr)
- SunSoft Print - Source Compatibility (usr)
The removed print packages are:
- LP Print Service (root)
- LP Print Service - Client (usr)
- LP Print Service - Server (usr)
Print commands contained in SUNWscpu have been moved and placed into SUNWsclplp (SunSoft Print - Source Compatibility).
The Solaris 2.6 print protocol adapter replaces the Service Access Facility (SAF), the network listener, and lpNet on the inbound side of the LP spooler with a more modular, modern design.
This replacement provides the following features:
Complete BSD print protocol implementation plus extended Solaris functionality
Allows multiple spooling systems to coexist on the same host and have access to the BSD print protocol
Can be extended by third-party application developers to support other printing protocols such as Apple, Novell, and so on.
The new print protocol adapter is compatible with print clients set up in previous Solaris 2.x releases if the BSD protocol was used to configure these clients. If not, you have to modify the previous Solaris 2.x print client configuration to the BSD protocol using the Solstice AdminTools utility, Solstice AdminSuite Printer Manager, or the lpsystem command.
The SunSoft Print Client software was previously released as an unbundled product. It was available on the Solaris Migration CD and as part of the Solstice AdminSuite 2.x suite of administration products. It is now bundled with the Solaris 2.6 release.
The SunSoft Print Client software is
Substantially smaller (183 Kbytes total) than the previous Solaris release.
Interoperable with BSD protocol as described in RFC-1179. This includes SunOS 4.x, Solaris 2.x, HP-UX, and other operating environments.
The SunSoft Print Client software uses a NIS map, NIS+ table, or a single file to provide centralized client administration in the Solaris 2.6 release.
On client systems, the /etc/lp directory structure is replaced with a configuration database that can be stored in a:
Printer not in the client database (server:printer)
User file ($HOME/.printers)
System file (/etc/printers.conf)
NIS map (printers.conf.byname)
NIS+ FNS context
The client software uses a more streamlined implementation, thus providing reduced client overhead and generally quicker and more accurate responses to print status requests.
The printers.conf file is administered like a standard NIS map or NIS+ table.
The lpset(1M) command is used to create the printers.conf file.
The print client software packages are SUNWpcr and SUNWpcu.
The Solaris 2.6 print software provides base-level support for network-attached printers. This is achieved with the following features:
A new interface script, /usr/lib/lp/model/netstandard, is specifically designed to support network printers. This script collects the spooler and print database information needed to perform network printing and passes it to the print output module.
A new print output module, netpr, is called from the netstandard interface script to print the print job by opening a network connection to the printer, creating the correct protocol instructions, and sending the data to the printer.
The netpr binary currently supports two protocols: BSD print protocol and TCP pass-through.
See (Solaris) System Administration Guide and Solstice AdminSuite 2.3 Administration Guide for more information.
The Solaris operating environment continues to provide the software needed to support new hardware.
The PC Card Standard defines a 68-pin interface between a credit-card sized peripheral and the PC Card socket in the computer. It also defines a software architecture that enables the computer's operating system to configure and control the PC Card peripheral dynamically, upon insertion.
The Solaris 2.6 release provides a UNIX implementation of the PC Card Standard, bundled with a number of drivers for common PC Cards. The Solaris Card Services provide PC Card driver interfaces with ANSI C language bindings, enabling drivers to be written that are independent of the particular platform and host architecture.
For more information, see Writing PCMCIA Device Drivers which is available on Sun's external web page on the Device Driver Kit Web site.
The new filesync feature ensures that data is moved automatically between the portable computer and the server. filesync is primarily intended for use on nomadic systems, although it may also be useful for backup and file replication on more permanently connected systems. Its purpose is to keep copies of files in sync between multiple systems, typically a server and a portable computer.
filesync can be used to maintain lists of files and directories to be kept in sync between multiple systems. Each time it is invoked, it examines all the files on both systems, determines which files have changed, and propagates the changes (creations, deletions, edits). It can deal with changes in both directions, and with conflicting changes.