Go to main content

Oracle® Solaris 11.3 新增功能

退出打印视图

更新时间: 2016 年 11 月
 
 

针对开发者的增强功能

本节介绍此发行版中针对开发者的增强功能,这些增强功能提供了最先进的库和可靠的框架,使得在 Oracle Solaris 平台上开发应用程序变得非常容易。

用于应用程序开发的 SSM API

Oracle Solaris 包括新增的和更新的 C 库 SSM API。例如,应用程序使用自身的定制内存分配器时,这些 API 可用于启用内存损坏问题的检测。

有关更多信息,请参见 adi(3C)adi(2)memcntl(2)mmap(2)siginfo(3HEAD) 手册页。

Silicon 安全内存管理库

新的用户级内存管理库 libadimalloc 定义利用 SSM 的标准 libc-malloc(3C) 系列函数的版本。此外,libadimalloc 库还提供广泛的调试支持。

有关更多信息,请参见 libadimalloc(3LIB) 手册页。有关调试支持的更多信息,请参见 adimalloc_debug(3MALLOC) 手册页。

Oracle Solaris Studio 中的 SSM 支持

Oracle Solaris Studio 开发工具包含对 SSM 的支持,并向开发者提供附加诊断以快速查找和修复与 SSM 运行时相关的错误。代码分析器是 Oracle Solaris Studio 中的高级分析工具,在您编译应用程序时它可以使用静态分析来检测编码错误。代码分析器还可防止应用程序出现运行时动态分析的内存错误。此外,通过对未测试的函数进行评级的专利技术,它会显著增大代码覆盖率。运行动态的 Oracle Solaris Studio 代码分析器的分析功能,Discover 包括库 libdiscoverADI,该库使 Discover 能够了解和检测由 SSM 识别的运行时相关内存错误。任何 C 或 C++ 应用程序都可以预装入此库,在已启用 SSM 错误检查的情况下运行。如果检测到内存错误,Discover 就会输出综合的错误分析报告。

有关如何使用 Oracle Solaris Studio 开发工具查找和修复由 SSM 识别的内存访问错误的信息,请参见以下文章:https://community.oracle.com/docs/DOC-912448。有关更多信息,请参见 mdb(1)dtrace(1M) 手册页。

Posix Spawn 函数

C 库包括一个新的 API,它使 Java 能够更快更有效地运行。新 API posix_spawn_file_actions_addchdir_np() 使您能够通过使用 posix_spawn() 函数指定所创建进程的工作目录。Java 使用 posix_spawn() 函数创建未产生额外内存开销的子进程。

有关更多信息,请参见 posix_spawn(3C)posix_spawn_file_actions_addchdir_np(3C) 手册页。

增强了信号传送

已添加到 C 库的新接口表示对 Oracle Solaris POSIX/UNIX 多线程进程模型的更改。这些接口不仅允许进程相互发送信号,而且还允许向进程内的线程发送信号(通过与不同进程上的任何特定线程直接交互)。

有关更多信息,请参见 proc_thr_kill(3C)proc_thr_sigqueue(3C) 手册页。

新事件源

信号现在作为事件源添加到为事件端口定义的现有事件源组中。此增强功能使事件端口能够具有等待信号事件以及现有的事件源组的进程。

有关更多信息,请参见 port_create(3C)port_associate(3C)port_dissociate(3C) 手册页。

随机数和平均信息量收集系统调用

Oracle Solaris 11.3 包括两个新的系统调用 getentropy(2)getrandom(2),提供它们是为了从内核中收集平均信息量或随机位。与在 /dev/random/dev/urandom 设备上使用 open(2)read(2) 相比,这些系统调用是更好的选择。

有关更多信息,请参见 getentropy(2)getrandom(2) 手册页。

命名线程

在 Oracle Solaris 11.3 中,现在可以标记应用程序的线程以简化调试应用程序。可观察性工具(如 psprstatDTrace)可以基于分配的名称显示度量。此功能对于具有许多线程的应用程序(如 Java)尤其有用。

有关更多信息,请参见 prstat(1M)pthread_attr_setname_np(3C) 手册页。

DTrace noresolve 运行时选项

DTrace 现在包括通过新的运行时选项 –x noresolve 防止自动解析用户空间符号的功能。在大型静态链接二进制文件的符号解析需要很长时间时,此选项可能很有用。

DTrace EoIB SDT 探测器

eoibeibnx 模块中的新 DTrace SDT 探测器提供了基于 InfiniBand 的以太网 (Ethernet over InfiniBand, EoIB) 实现的更好可观察性。

相关信息

用于 RAD 的基于 REST 的管理接口