New Features in Solaris Express 12/06
This section describes all features that are new or have been enhanced in
the Solaris Express 12/06 release.
Session Initiation Protocol Library (libsip)
This networking enhancement is new in the Solaris Express 12/06 release.
Session Initiation Protocol (SIP) is an application layer protocol that can be used
to initiate, modify, and terminate multimedia sessions such as Voice-over-IP (VoIP) and Instant
SIP library in Solaris provides a SIP stack, that conforms to
RFC 3261, and a set of API to write SIP applications. Primary users
of this library include developers who write SIP applications such as soft phones,
proxy servers, redirect servers, etc.
The library supports all SIP headers in RFCs 3261, 3262, 3265, 3323, and
For more information about SIP, see the sip(7P) man page.
ZFS Command History (zpool history)
This system administration tools enhancement is new in the Solaris Express 12/06 release.
ZFS automatically logs successful zfs and zpool commands that modify pool state
information. For example:
# zpool history
History for 'newpool':
2006-10-23.08:58:22 zpool create -f newpool c1t2d0
2006-10-23.08:59:02 zpool replace -f newpool c1t2d0 c1t3d0
2006-10-23.08:59:54 zpool attach -f newpool c1t3d0 c1t4d0
This feature enables you or Sun support personnel to identify the exact
set of ZFS commands that was executed to troubleshoot an error scenario.
The features of the history log are as follows:
The log cannot be disabled.
The log is saved persistently on disk, which means the log is saved across system reboots.
The log is implemented as a ring buffer. The minimum size is 128 Kbytes. The maximum size is 32 Mbytes.
For smaller pools, the maximum size is capped at 1% of the pool size, where size is determined at pool creation time.
The log does not require any administration. This means that you do not need to tune the size of the log or change the location of the log.
Currently, the zpool history command does not record user-ID, hostname, or zone-name.
For more information about troubleshooting ZFS problems, see ZFS Administration Guide.
Changes and Improvements to Removable Media Management
This device management enhancement is new in the Solaris Express 12/06 release.
Starting with this release, better services and methods that provide removable media management
have replaced previous features for managing removable media.
The following new features are available:
New removable media services are enabled and disabled by using SMF.
online 12:17:54 svc:/system/hal:default
online 12:17:56 svc:/system/filesystem/rmvolmgr:default
online 12:17:26 svc:/system/dbus:default
Removable media is now mounted automatically in the /media directory. However, symbolic links to /media are provided from previous media mount points, /cdrom and /rmdisk, for compatibility purposes.
For example, a compact flash memory card (/dev/dsk/c4d0p0:1) is mounted as follows:
$ ls /media/NIKON
For example, a USB memory stick (/dev/dsk/c3t0d0s0) is mounted as follows:
$ ls /media/U3
For example, a diskette (/dev/diskette0) is mounted as follows:
$ ls /media/floppy
The default removable media volume manager, rmvolmgr, is responsible for following activities:
Mounting and unmounting volumes.
The root instance of rmvolmgr starts at system boot. However, you can configure your session's configuration files to start an instance of rmvolmgr when you log in. When run within a user session, rmvolmgr only mounts devices owned by the current user or session and does not conflict with the root instance.
When rmvolmgr exits, it unmounts all media that it mounted.
For compatibility purposes, rmvolmgr creates symbolic links under the /cdrom, /floppy, /rmdisk directories to the actual mount points under /media.
A special rmvolmgr run mode is available for CDE compatibility.
The hardware abstraction layer (HAL) daemon, hald, provides a view of the device attached to a system. This view is updated automatically as hardware configuration changes, by hot-plugging or other mechanisms.
HAL represents a piece of hardware as a device object. A device object is identified by a unique device identifier (UDI) and carries a set of key-value pairs referred to as device properties. Some properties are derived from the actual hardware, some are merged from device information files (.fdi files) and some are related to the actual device configuration.
The following features are removed:
The vold daemon, the volfs file system, and the volfs service have been removed.
Logical device names for removable media under the /vol directory, such as /vol/dev/rdsk/... or /vol/dev/aliases/..., are no longer provided.
To access removable media by its logical device name, the /dev device should be used. For example:
Some vold device nicknames are no longer available. The following eject -l output identifies the available device nicknames for each device and in the example, the mounted media pathnames (/media/SOL_11_X86_4):
$ eject -l
The comma-separated list shows the nicknames that can be used to eject each device.
Customizations that were made in vold.conf and rmmount.conf are no longer available because these configuration files no longer exist. For information about managing media customizations, see Customizing Removable Media Management.
Commands that begin with vol* commands except for volcheck and volrmmount.
The following features provide backward compatibility with previous Solaris removable media features:
Removable media mount points have moved to the /media directory, which is used to mount removable media, such as CD-ROMs and USB devices. Symbolic links to /media from previous media mounts points, such as /cdrom and /rmdisk, are provided for compatibility purposes.
The rmformat command is still available. The output of this command is identical to what it looks in previous Solaris releases with vold disabled.
Looking for devices...
1. Logical Node: /dev/rdsk/c0t6d0s2
Physical Node: /[email protected],4000/[email protected]/[email protected],0
Connected Device: TOSHIBA DVD-ROM SD-M1401 1009
Device Type: DVD Reader
Size: 2.9 GB
Access permissions: <Unknown>
The eject command is available but has been enhanced. For more information, see Ejecting Removable Media.
Mounting and Unmounting Removable Media
Most commands that begin with vol* are removed in this release. A modified
version of rmmount and a new rmumount command are available to mount
and unmount removable media.
These commands can be used to mount by device name, label, or
mount point. For example, to mount an iPod:
% rmmount ipod
For example, to unmount the file systems on a DVD:
# rmumount cdrom
cdrom /dev/dsk/c0t6d0s5 unmounted
cdrom /dev/dsk/c0t6d0s0 unmounted
For more information, see the rmmount(1M) man page.
Mounting and Unmounting Diskettes
You can use the existing volcheck command to manually poll diskettes and mount
them if a new diskette is detected.
If you manually reformat diskette after it is connected to the system, HAL
is not automatically notified. Continue to use the volcheck command to notify the
system and attempt to automount a new file system on a diskette.
Ejecting Removable Media
As in previous Solaris releases, use the eject command to unmount and eject
removable media. However, the following eject options are available:
Forces the device to eject even if the device is busy.
Displays paths and nicknames of devices that can be ejected.
A CD-ROM tray close command is provided to the device. Not all devices support this option.
For example, to eject by its volume label:
% eject mypictures
As in previous Solaris releases, you might need to issue the volcheck
command before using the eject command to eject a diskette.
For more information, see the eject(1) man page.
Customizing Removable Media Management
For most customizations that were available in the vold.conf and rmmount.conf files,
you will need to either use Desktop Volume manager preferences or modify the
For rmmount.conf actions, you will need to use either Desktop Volume Manager actions, gconf, or HAL callouts.
Previously, rmmount.conf actions could be run as root on behalf of ordinary users. Now, this is done by installing callout executables in the /usr/lib/hal directory.
Disabling Removable Media Features
You can disable some or all removable media features in this release:
To prevent volumes from mounting outside of user sessions, disable the rmvolmgr service. For example:
# svcadm disable rmvolmgr
To prevent any volume management, disable the dbus, hal, and rmvolmgr services.
# svcadm disable rmvolmgr
# svcadm disable dbus
# svcadm disable hal
Disabling these services means that you would have to mount all media manually by using the mount command.
SPARC: Process Count Scalability
This system resources enhancement is new in the Solaris Express 12/06 release.
The process count scalability feature improves the process count scalability of the Solaris
OS. Currently, all UltraSPARC systems support a maximum of 8192 contexts. When
the number of processes exceeds 8192, then the kernel steals contexts to keep
the processes running. Stealing a context from a process involves the following tasks:
Cross-calling all CPUs that the process ran on
Invalidating the context for CPUs that are running threads of the process
Flushing the context from the TLBs of all CPUs that are running threads of the process
This procedure is very expensive and gets worse as the number of
processes rise beyond 8K. The process count scalability feature completely redesigns context management. The
contexts are managed on a per-MMU basis rather than a global basis which
enables efficient TLB flushing and greatly improves the scalability of context management.
The process count scalability feature also improves throughput on workloads that consist of
more than 8K active processes, or create and destroy processes at a high
rate, and is most beneficial on systems with many CPUs.
Packet Filter Hooks
This networking enhancement is new in the Solaris Express 12/06 release.
The packet filter hooks feature includes the following significant functionalities:
The packet filter hooks feature is part of a new API that
is internal to the kernel. Developers can use the API to work with
IP inside the kernel or to intercept packets.
x86: Fault Management For Next Generation AMD Opteron Processors
The fault management feature introduces error-handling and fault-management support for CPUs and memory
in systems that use AMD (TM) Opteron and Athlon 64 Rev F processors.
These processors are used in the “M2” products from Sun such as the
Sun Fire X2200 M2 and Ultra 20 M2. Previous Solaris releases provided fault
management support for Opteron and Athlon 64 revisions B through E.
Fault management support is enabled by default. The fault management service detects correctable
CPU and memory errors, the resulting telemetry is analyzed by diagnosis engines, and
errors and faults are corrected whenever possible. When errors cannot be corrected by
the system, the extended telemetry provides greater assistance to the system administrator.
For more information see https://www.opensolaris.org/os/community/fm/.
Name service switch enhancements
This release contains upward compatible changes to the name service switch (nss) and
to the Name Switch Cache Daemon - nscd(1M)- in order to deliver new
functionality including the following:
Better caching in nscd(1M) and management of connections within the updated framework.
Name service lookups that are access controlled at the naming service on a per-user basis. The updated switch framework adds support for this style of lookups using SASL/GSS/Kerberos in a manner that is compatible with the authentication model used in Microsoft Active Directory.
A framework for the future addition of putXbyY interfaces.