Solaris 9 9/02 操作环境的新增功能

软件开发者可用的 Solaris 9 功能

开发工具

功能说明  

Solaris 和 Linux 应用程序编程接口的兼容性

Solaris 8 软件的配套 CD 中提供的某些免费软件现在已集成在 Solaris 9 操作环境中。因此,软件应用程序开发者现在可以在 Solaris 操作环境中更轻松地开发和编译他们的免费应用程序。免费软件库包括以下内容:

  • glib

  • GTK+

  • Jpeg

  • libpng

  • Tcl/Tk

  • libtif

  • libxm12

有关在 Solaris 介质上可获得的免费软件的详细信息,请参见"免费软件"

选择 Live Upgrade 信息的 XML 输出

在命令行中使用 Solaris Live Upgrade 时,您现在可以使用 - X 选项选择 XML 输出。 此选项是在编写将 Solaris Live Upgrade 用作工具的程序或 shell 脚本时使用的。缺省输出是文本,但使用 -X 选项时,创建的是适于机器分析和解释的 XML。 -X 选项的输出对于所有信息(包括错误、警告、提示、一般信息 )都是 XML。

请参见 lucreate(1M) 手册页。

多页面大小支持

多页面大小支持 (MPSS) 允许程序使用硬件支持的任何页面大小访问虚拟内存的各部分。 以前,对于使用 mmap()() 函数映射的程序的堆栈、堆叠或匿名内存,只有 8-KB 的页面可用。

您可以调整大量占用内存的应用程序的性能以使用任何页面大小。可以使用硬件支持的任何页面大小(用于使用 mmap() 函数映射的堆栈、堆叠或 /dev/zero 专用内存)。使用较大的页面大小可能会显著提高使用大量内存的程序的性能。

有关详细信息,请参见 pagesize(1)mpss.so.1(1)ppgsz(1)memcntl(2)mmap(2)getpagesizes(3C) 手册页。

改进的多线程库

Solaris 9 发行版包括改进的和更快的多线程库。该库可以作为早期 Solaris 软件发行版中的替代 libthread

有关详细信息,请参见《Multithreaded Programming Guide》和 threads (3THR) 手册页。

Perl 5.6.1 版

Solaris 9 发行版提供了 Practical Extraction and Report Language (Perl) 新的缺省版本。Perl 新的缺省版本是 5.6.1。 Solaris 9 发行版中也包括 Perl 的一个早期版本(5.005_03 版本)。 此早期版本原来与 Solaris 8 发行版一起提供。 

有关详细信息,请参见 perl(1) 手册页。

统一的 diff 格式

diffsccs-sccsdiff 命令已被更新,以包括对 GNU 样式统一的 diff 格式的支持。在这种格式下,上下文行在差异列表中只打印一次。

有关这些命令的详细信息,请参见 diff(1)sccs-sccsdiff (1) 手册页。

Sysevent 框架

sysevent 框架将内核级和用户级系统事件通知给适当的应用程序。事件可以包括硬件和软件状态更改、错误和故障。

sysevent 框架包括以下组件:

  • syseventd 守护程序

  • syseventadm 命令

  • 用于事件数据提取和 sysevent 订阅的库 API

  • 驱动程序级系统事件 ddi_log_sysevent 的接口

syseventd 守护程序是一个用户级守护程序,它接受从内核发送出的系统事件缓冲区。 将事件缓冲区发送到 syseventd 之后,守护程序将尝试把事件传播给所有相关的终端事件订阅者。

可以使用 syseventadm 命令配置事件规范。这些规范随后被用来调用命令、应用程序或脚本以响应系统事件。

有关 sysevent 内核和库 API 的信息,请参见 syseventadm( 1M)syseventconfd( 1M)syseventd (1M) 手册页。

有关驱动程序级事件通知日志的详细信息,请参见 ddi_log_sysevent(9F)

内核伪随机数产生器

通过 /dev/random /dev/urandom 设备可以获得 Solaris 伪随机数产生器 (PRNG)。PRNG 提供具有标准接口的 ISV 访问密码操作、科学应用程序和仿真工具的伪随机数。PRNG 在 Solaris 内核中进行操作。PRNG 保护熵池的内容。PRNG 从内核内存页中收集熵数据,并随时保持高度的随机性。

有关详细信息,请参见 random( 7D) 手册页。

群集远程共享内存的应用程序接口

如果您开发扩展 Sun Cluster 环境用途的应用程序,则可以利用此接口。 使用新的远程共享内存 (RSM) API,可以设计应用程序以减少在高速群集上传递的信息的互连等待时间。 这些群集识别应用程序可以显著减少群集配置中响应事件所需要的时间。  

必须已经安装 Sun Cluster 3.0。 现有的 Sun Cluster 应用程序需要修改以采用这个新接口。  

有关详细信息,请参见《Programming Interfaces Guide》。 另外,librsm(3LIB) 手册页和"第 3 节: 扩展的库函数"(3RSM) 手册页包括了对 RSM 的参考。

gettext() API 函数 GNU 兼容版本

Solaris 9 发行版提供了 gettext() API 函数的 GNU 兼容版,同时保持了与 Solaris gettext() API 函数的向后兼容性。

  • libc 中的现有函数现在可以处理 Solaris 和 GNU 兼容的消息文件。现有函数包括以下函数:

    • gettext()

    • dgettext()

    • dcgettext()

    • textdomain()

    • bindtextdomain()

  • libc 中新的 GNU 兼容函数可以处理 GNU 兼容的消息文件。新的函数包括以下函数:

    • ngettext()

    • dngettext()

    • dcngettext()

    • bind_textdomain_codeset()

  • msgfmtgettext 公用程序现在可以处理 Solaris 消息文件以及 GNU 兼容的消息文件。

有关详细信息,请参见 gettext (3C) 手册页。

扩展的文件属性

UFS、NFS 和 TMPFS 文件系统已被增强,以包括扩展的文件属性。这些属性允许应用程序开发者将特定属性与文件相关联。例如,窗口系统的文件管理应用程序开发者可以选择将显示图标与文件相关联。 

有关详细信息,请参见"文件系统增强"

全新的固定优先级 (FX) 调度类

FX 调度程序为需要用户或应用程序控制调度优先级的进程提供了一个调度策略。请参见"系统资源增强"

动态主机配置协议 (DHCP)

动态主机配置协议 (DHCP) 服务允许主机系统接受 IP 地址和网络配置信息。引导时,从网络服务器接受此信息。在 Solaris 8 7/01 发行版之前,DHCP 配置数据只能存储在文本文件或 NIS+ 中。 现在,Solaris DHCP 服务中的数据访问已被重新设计为使用模块式的框架。Solaris DHCP 提供了一个 API,允许您编写共享对象,该对象支持任何用于存储 DHCP 数据的数据存储设备。 

Solaris DHCP Service Developer's Guide》提供了 Solaris DHCP 使用的数据访问框架的概述。 该指南也为开发者提供了一般准则。同时还包含一个 API 函数列表,您可以使用这些函数编写模块以支持新的数据存储。

有关详细信息,请参见《Solaris DHCP Service Developer's Guide》。

Solaris"Web Start Wizards"SDK 3.0.1

Solaris"Web Start Wizards"简化了本机 Solaris、Java 和非 Java 应用程序的安装、设置和管理。使用 Web Start Wizards,开发者可以将他们的 Solaris 版和 Microsoft Windows 版的应用程序封装在一起。安装向导管理平台特定事项。  

Web Start Wizards SDK 3.0.1 现在随 Solaris 9 发行版一起提供。可以使用 Solaris Web Start 安装程序安装 SDK 3.0.1。 

模块化调试器(mdb)

mdb 公用程序是实时操作系统低级调试和编辑的可扩展公用程序。该公用程序也可以调试系统故障转储、用户进程、用户进程核心转储和对象文件。在 Solaris 9 发行版中,mdb 提供了对 Solaris 内核的新的符号调试支持和新的内核调试程序命令。mdb 公用程序还提供了检查和控制实时运行用户进程的新功能,以及检查原始磁盘文件和设备的能力。

Solaris Modular Debugger Guide》和 mdb( 1) 手册页提供了有关详细信息。

音频增强功能

Solaris 9 操作环境中增加了新的音频目录。/usr/include/audio 目录是用于应用程序音频头文件的新目录。音频文件格式具有新的头文件 /usr/include/audio/au.h 和手册页 au(4)。

/usr/share/audio 目录是杂项音频文件的新的存储位置。/usr/demo/SOUND/sounds 目录中的音频文件已移至此处。创建了一个从 /usr/demo/SOUNDS/sounds /usr/share/audio/samples/au 的符号链接。此链接使当前应用程序和当前脚本能够运行而不会失败。

同时还针对音频核心模块修复了许多错误,从而提高了可靠性。 

有关详细信息,请参见《System Administration Guide: Basic Administration》。

向量化的系统调用:sendfilev()

sendfilev() 是向量化的系统调用,能明显改善从应用程序缓冲区或文件中发送数据的性能。 例如,在 Web 性能方面,Web 服务器可以在单个系统调用中构造 HTTP 响应。该 HTTP 响应包括头、数据和尾部以及服务器端包含的内容。该功能结合 Solaris 网络高速缓存和加速器 (NCA) 可以提供最佳的性能。 并且,sendfilev() 为响应启用了多个块(可能来自各种文件)的返回。

有关详细信息,请参见 sendfilev (3EXT)sendfile(3EXT) 手册页。

检验与 appcert 公用程序的文件一致性

appcert 公用程序检验对象文件与 Solaris ABI 的一致性。 符合 Solaris ABI 可以极大增加应用程序与 Solaris 软件未来发行版兼容的可能性。

有关详细信息,请参见《 Programming Interfaces Guide》中的"使用 appcert"。

通用安全服务应用程序编程接口 (GSS-API)

通用安全服务应用程序编程接口 (GSS-API) 是一个安全框架,能够使应用程序保护其发送的数据。  

请参见"安全性增强"

基于 Web 的企业管理工具

功能说明  

Solaris WBEM 服务 2.5

Solaris WBEM 服务 2.5 是 Sun Microsystem 基于 Web 的企业管理 (WBEM) 的实现。 WBEM 是一套与因特网相关的管理技术。这些技术用来统一企业计算环境的管理。WBEM 由分布式管理任务组 (DMTF) 开发,使组织能够提供一套集成的基于标准的管理工具。这些工具支持和促进了万维网技术。Solaris WBEM 服务在 Solaris 9 发行版中更新为 2.5 版。 

有关 WBEM 的更多开发者信息,请参见《Solaris WBEM SDK Developer's Guide》。

新增的 WBEM 批处理 API

Java 基于 Web 的企业管理 (WBEM) 客户机应用程序设计接口 (API) 现在支持客户机将多个通用接口模型 (CIM) 操作批处理为单个"请求和响应"。CIM 对象管理器现在也接受和服务于这些批处理请求。该设备在 Distributed Management Task Force (DMTF) Specification for CIM Operations Over HTTP 中定义。

客户机需要进行的远程调用次数也相应减少。  

有关详细信息,请参见《Solaris WBEM SDK Developer's Guide》。

增强的 WBEM CIM WorkShop

CIM WorkShop 为 WBEM 开发工具提供了一个图形用户界面。CIM WorkShop 可被设备、系统和网络应用程序开发者所使用。这些开发者可以通过 CIM WorkShop 查看和创建 WBEM 类和 WBEM 实例。 

在 CIM WorkShop 中,您可以执行以下操作: 

  • 查看和选择名称空间

  • 添加和删除名称空间

  • 查看、创建、修改和删除类

  • 给新的类添加和删除属性、限定符和方法

  • 查看、创建和删除实例

  • 查看、修改和删除实例值

  • 遍历关联项

  • 执行方法

  • 显示上下文相关帮助

在 CIM Workshop 中提供了以下增强功能和新增功能: 

  • 更新和修改过的上下文相关帮助。

  • 遍历关联项的能力。

  • 能够订阅和显示有关选定类的事件的信息,从而使您可以更轻松地调试使用事件的应用程序。仅当选择了 RMI 协议时才能使用这项新增功能。

  • 能够提交查找和显示 WBEM 信息的 WBEM 查询语言 (WQL) 查询。

有关详细信息,请参见《Solaris WBEM SDK Developer's Guide》。

新增对 WBEM 进程指示(外部)事件的支持

目前,WBEM 事件服务允许客户机应用程序在满足相关条件时异步接收指示。然而,唯一支持的指示属于类生命周期指示。生命周期指示表示实例的修改、创建和删除。 

虽然这类指示非常灵活且范围很广,但是设备可能需要公布不属于这种类型的指示。考虑到这项要求,DMTF 引入了进程指示结构作为当前指示结构的扩展。 WBEM 服务的进程指示现在可以处理这个扩展结构。

WBEM 服务的进程指示是 Sun Microsystems 事件模型中进程指示部分的实现。 进程指示类是设备发布的所有指示的超类。该超类也包括生命周期指示。 

订阅进程指示的过程与订阅生命周期指示的过程相同。  

有关详细信息,请参见《 Solaris WBEM SDK Developer's Guide》。

增强的 WBEM mofcomp 命令

托管对象格式 (Managed Object Format,MOF) 编译程序 (mofcomp) 现在允许在命令行中指定名称空间。 如果名称空间不存在,便会自行创建。

此外,MOF 编译程序现在生成 Java 接口和类源文件。 该功能允许您使用标准的 Java 接口,而不是 CIM 构建和 CIM 对象模型应用程序编程接口 (APIs)。 

对于每一个 CIMClass 都会生成一个接口和一个类文件。 生成的接口允许您创建不同的实现,同时保持互操作性。

有关详细信息,请参见《Solaris WBEM SDK Developer's Guide》。

为新的 Java WBEM SDK 添加了样例程序

Java WBEM 软件开发者工具包 (SDK) 现在包括一个新的样例 Java applet 和一些样例程序。Java applet 和样例程序安装在 /usr/demo/wbem 中。

Java WBEM SDK 样例程序向您说明如何使用事件、查询和批处理功能。 您可以将这些样例当作基础来开发自己的程序。  

有关详细信息,请参见《Solaris WBEM SDK Developer's Guide》。

Solaris WBEM 软件开发者工具包

Solaris 基于 Web 的企业管理 (WBEM) 软件开发者工具包 (SDK) 包含开发者用来创建应用程序的 API。基于 WBEM,这些应用程序可以在 Solaris 操作环境中访问数据和管理资源。Solaris WBEM SDK 还包括 CIM WorkShop。 CIM WorkShop 是开发者可以用来创建 WBEM 应用程序的 Java 应用程序。使用 CIM WorkShop,开发者可以查看样例 WBEM 客户机和此软件附带的提供者程序。 

有关详细信息,请参见《Solaris WBEM SDK Developer's Guide》。

新的 Solaris Provider

新的 Solaris Provider 允许开发者创建软件,以便在通用信息模型 (CIM) 环境中获取和设置有关托管设备的信息。Solaris Provider 为 CIM 对象管理器提供了 Solaris 操作环境中的托管资源的实例。  

Solaris 9 软件中有五个新的 Solaris Provider:

  • Solaris 设备和系统的 WBEM 性能监视器 - 提供正在运行 Solaris 操作环境的系统的各种统计信息。

  • WBEM 产品注册 - 提供添加、删除或修改系统中安装的新产品或现有产品的能力。

  • WBEM SNMP Provider - 允许 WBEM 服务通过简单网络管理协议 (SNMP) 发送信息,该协议是用于网络管理的因特网参考模型协议。

  • WBEM EEPROM Provider - 支持显示和修改 EEPROM 中的配置信息。

  • Provider for WBEM System Availability - 提供系统的重引导信息。该信息使应用程序能够计算系统启动和运行时间的百分比。这个提供程序还提供系统失败的原因:

    • 系统发生紧急情况

    • 系统被用户停止

    • 系统被用户关闭

有关详细信息,请参见《Solaris WBEM SDK Developer's Guide》。

编写设备驱动程序

功能说明  

帧缓冲区电源管理

有些设备(如某些磁带机和帧缓冲区)在驱动程序中断时不应断电(即使是在一个电源循环中)。 新接口 ddi_removing_power 将检查设备是否由于操作挂起而断电。可以指定新特性 no-involuntary-power-cycles 以确保设备不会无意断电。

有关详细信息,请参见 ddi_removing_power(9F)no-involuntary-power-cycles(9P) 手册页。

Sun StorEdge Traffic Manager

Sun StorEdge Traffic Manager 支持 I/O 设备(如光纤通道可访问存储)的多条路径。该功能可以在多个设备中平衡工作量。 Traffic Manager 将请求从失败的接口卡或存储设备重定向到正在运行的某个卡或设备上,从而提高了可靠性。 

驱动程序强化测试工具

驱动程序强化测试工具是 Solaris 设备的驱动程序开发工具。 当处于开发阶段的驱动程序访问它的硬件时,这个测试工具会发出各种仿真的硬件错误。 这个发出错误的测试工具会测试基于 SPARC 的设备驱动程序的恢复功能。  

有关详细信息,请参见 th_define(1M)th_manage( 1M) 手册页。

通用 LAN 驱动程序

驱动程序开发者可以使用通用 LAN 驱动程序 (GLD)。GLD 为 Solaris 网络驱动程序实现 STREAMS 和数据链路供应商接口 (DLPI) 的很多功能。在 Solaris 8 10/00 版之前,只有 Solaris Intel 平台版网络驱动程序中才有 GLD 模块。现在,Solaris SPARC 平台版网络驱动程序提供了 GLD 模块。

有关详细信息,请参见Writing Device Drivers》中的"Drivers for Network Devices"

Java 发行版

功能说明  

JavaHelp 1.1.2 版

JavaHelpTM 1.1.2 版是功能完备的、独立于平台的、可扩展的帮助系统。该系统允许开发者和作者将联机帮助并入 applet、组件、应用程序、操作系统和设备。有关详细信息,请参见以下 Web 站点:

http://java.sun.com/products

Java 2 SDK 标准版 1.4.0 版

Java 2 SDK 标准版 1.4.0 版 (J2SETM 1.4.0) 是 Java 2 SDK 标准版的升级版本。 这个升级版包括新的平台功能、新工具和公用程序。

有关这些增强功能的完整详细信息,请参见以下 Web 站点上的 J2SE 1.4.0 平台文档: 

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

Apache Web 服务器中的 JSP 1.2 和 Java Servlet 2.3 支持

Jakarta Tomcat 4.0.1 和 mod_jserv 模块已被添加到 Apache Web 服务器。该服务器现在支持 JavaServer PagesTM、JSP 1.2 版和 Java Servlets 2.3 版。

以下文件存储在 /etc/apache 中:

  • tomcat.conf

  • README.Solaris

  • zone.properties

  • jserv.properties

  • jserv.conf

有关启用 Tomcat 支持的信息,请参见 README.Solaris 文件。另请参见以下 Web 站点以获得配置信息:

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

Tomcat 和 mod-jserv 模块与 Apache 软件的其余部份一样,也是由 Sun 的外部组维护的开放源代码。这个组设法维持与早期版本的兼容性。