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

开发工具增强功能

Solaris 9 9/04 发行版包括 makecontext() 函数的更改。以前的 Solaris 9 发行版包括以下开发工具的增强功能:

makecontext() 函数的更改

此功能在 Solaris 9 9/04 发行版中是新增的。

ucontext_t 结构的 uc_stack 成员的语义在应用到 makecontext () libc 库函数的输入时有所更改。二进制兼容性在 Solaris 早期版本和 Solaris 10 之间得以保留。

使用此接口的应用程序在重新编译前必须先进行更新。有关详细信息,请参见 makecontext(3C) 手册页。

SPARC: 地址组

此功能在 Solaris 9 12/03 发行版中是新增的。

现在, 《Programming Interfaces Guide》 中有一章介绍了用于与地址组 (lgroups) 交互的接口。这些接口有助于应用程序有效地分配 CPU 和内存资源。此功能会使某些系统的性能得以提高。

链接程序和库更新

此功能在 Solaris 9 12/02 发行版中是新增的。

有关最新更新,请参见《Linker and Libraries Guide》中的附录  D “New Linker and Libraries Features and Updates”。该手册说明了 Solaris 9 系统中的新的链接程序编辑器功能,例如字符串表压缩、未引用部分清除和未引用相关性检测。

智能卡接口

此功能在 Solaris 9 8/03 发行版中是新增的。

Solaris 智能卡接口是用于智能卡终端的一组公共接口。卡终端供应商可在用户级的共享库上实现这些接口,以对 Solaris 中的智能卡终端提供设备级支持。这组 Solaris 智能卡终端接口基于可用作 Linux Smartcard 框架一部分的卡终端接口。Linux 的卡终端支持库可以被轻松地导入到 Solaris。

栈检查 API

此功能在 Solaris 9 4/03 发行版中是新增的。

栈检查 API 可用于与栈检查编译程序支持进行高级的交互操作。ForteTM 7.0 提供了栈检查编译程序支持功能。应该在编译时启用了栈检查的应用程序中使用这些 API 。这些应用程序可以管理自己的栈或试图检测自己的栈溢出。

对于维护自己的线程库的开发者,需要使用 setustack 接口以使库的用户能够在编译时启用栈检查功能。

请参见 stack_getbounds(3C) 手册页、stack_setbounds(3C) 手册页、stack_inbounds(3C) 手册页和 stack_violation(3C) 手册页。

使用 libumem 进行内存分配

此功能在 Solaris 9 4/03 发行版中是新增的。

libumem 是一种用户模式(非内核模式)内存分配程序库。使用 libumem 提供的功能,您可以调试内存泄漏和其他内存使用异常。

此功能的使用方法与标准应用程序二进制接口 (ABI) 分配程序(例如 malloc())相同。用户模式应用程序可以申请任意字节数目的内存,然后返回一个带有已分配内存地址的指针。

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

可以在以下 Web 站点获取有关《Solaris 内存放置优化和 Sun Fire 服务器》的技术白皮书:

http://www.sun.com/servers/wp/docs/mpo_v7_customer.pdf

Sun ONE Application Server

在 Solaris 9 12/02 发行版中,针对 SPARC 平台新增了此功能。在 Solaris 9 12/03 发行版中,此功能也适用于 x86 平台。有关详细信息,请参见Sun ONE Application Server 集成

Sun ONE Message Queue

Sun ONE Message Queue 是在 Solaris 9 12/02 发行版中针对 SPARC 平台新增的功能。Solaris 9 8/03 发行版的 x86 平台也支持 Sun ONE Message Queue。

Solaris 9 12/02 发行版支持 JMS 信息传送应用程序。这些应用程序基于 Sun ONE Message Queue(一种 JMS 提供程序)。有关详细信息,请参见 Sun ONE Message Queue

增强的 crypt() 函数

此功能在 Solaris 9 12/02 发行版中是新增的。

本 Solaris 发行版包含了对 crypt() 函数的扩展,并引入了 crypt_gensalt() 函数。这些增强功能使管理员可以更改用于遮蔽用户的 UNIX 登录口令的算法。

包含了用于 MD5 和 Blowfish 的模块。MD5 模块位于 crypt_sunmd5crypt_bsdmd5。Blowfish 模块位于 crypt_bsdbf

开发者可以创建替换口令遮蔽算法的新模块。Application developers must use the crypt_gensalt() function instead of manually generating the salt string for passing to the crypt() function.

用作替代算法的模块在 crypt.conf(4) 文件中指定。module_path 字段指定实现两个所需的函数的共享库对象的路径:

有关详细信息,请参见 crypt(3C) 手册页和 policy.conf(4) 手册页。

madvise() 函数的新标志

此功能在 Solaris 9 12/02 发行版中是新增的。

madvise() 函数使内核可以优化对用户定义的内存区域的访问。本 Solaris 发行版包括三个用于 madvise() 函数的新标志位:

有关 madvise() 函数的详细信息,请参见 madvise(3C) 手册页。

智能卡中间件 API

此功能在 Solaris 9 9/02 发行版中是新增的。

Solaris 智能卡框架现在可以提供底层的中间件 API。通过使用智能卡读卡器,这些 API 可以用来与智能卡交换数据。The APIs can be used in platforms such as the Sun BladeTM and Sun RayTM systems.用 Java 语言或 C 语言编写的应用程序可以使用这些接口。

有关详细信息,请参见 libsmartcard(3LIB) 手册页和 /usr/share/javadoc/smartcard 中的 JavaDocs。