Oracle Solaris 开发者文档介绍

第 1 章 Oracle Solaris 开发者文档介绍

Oracle Solaris 操作系统 (Oracle Solaris Operating System, Oracle Solaris OS) 为开发者提供了大量接口、框架和工具,以便充分利用 Oracle Solaris 技术。本手册为开发者提供学习 Oracle Solaris OS 的路线图,并提供指向详细信息来源的链接。本章包含以下主题:

哪个 Oracle Solaris 分发版适合您?

选择什么样的 Oracle Solaris OS 分发版取决于要如何使用该系统。

Oracle Solaris 10 操作系统

使用 Oracle Solaris 10 OS 以进行对业务而言至关重要的活动和生产(例如大型企业中的活动和生产)。

有关 Oracle Solaris 10 OS 的信息,请参见 Oracle Solaris 产品站点。

要获取 Oracle Solaris 10 OS,请参见 Get It: Oracle Solaris 10(获取 Oracle Solaris 10)。可下载 Oracle Solaris 10 OS,也可下载用于 VirtualBox 的 Oracle Solaris 10 设备映像,或者订购 DVD 介质工具包。还可以获取有关 Oracle 操作系统的高级支持的信息。

OpenSolaris 操作系统

下载 OpenSolaris OS 的精简安装配置版,此版本能够包含在单张 CD 中。从该 CD 安装基本 OS,然后从 OpenSolaris 软件包系统信息库选择安装其他软件包。或者使用自动安装程序安装 OpenSolaris OS,并且在多台机器上完成工作环境。

有关 OpenSolaris OS 或如何获取 OpenSolaris OS 的更多信息,请参见 OpenSolaris 产品站点。可下载 LiveCD 映像,也可下载自动安装程序可引导映像,或者订购介质。还可以下载 VirtualBox。

有关自动安装程序的信息,请参见《OpenSolaris 2010.05 自动化安装程序指南》Migrating From Solaris Custom JumpStart to OpenSolaris Automated Installer(从 Solaris Custom JumpStart 迁移到 OpenSolaris Automated Installer)。

了解有关在 Oracle Solaris OS 中进行开发的信息

用于获取有关在 Oracle Solaris OS 中开发应用程序的信息的各种渠道包括:

Oracle Solaris OS Man Page Collection 介绍

Oracle Solaris OS 通过手册页提供了有关系统内部各要素的详细信息。如果对手册页的概念不熟悉,请参见 man(1) 命令本身的手册页或在命令行中键入 man man。Oracle Solaris OS 提供了超过 13,000 个手册页。手册页集分成若干节,在不同的供应商以至不同的发行版之间,会存在轻微差异。有时,大的节会分为多个卷。对命令的引用通常在命令旁边包括参考手册节编号或卷编号。例如,man 命令可能被称为 man(1)。

比起从命令行查看手册页来,在 docs.sun.com 上查看手册页有几个优点。每一节或每一卷都以书籍的形式提供,并具有索引和前言,以及带有简短描述的按字母顺序排列的项目列表。在某些节中,会有一个介绍性的页提供该节的概述。

Oracle Solaris OS 手册页以如下方式组织到节和卷中:

在 Oracle Solaris OS 中生成应用程序

本节提供了有关用于开发应用程序(包括编译、调试、调优和打包应用程序)的 Oracle Solaris 功能的信息。

Oracle Solaris 开发者工具

Oracle Solaris OS 包括许多开发者软件包,当您为开发者安装适当的 Oracle Solaris 软件组后这些软件包便会可用。出于安装目的,Oracle Solaris OS 在逻辑上划分为软件组,这些软件组是 Oracle Solaris 软件包的集合。

安装 Oracle Solaris OS 时,必须选择以下软件组(它们包含开发者软件包)之一:

通过这些软件组,您可获取一些编译器,如 GNU C 编译器 (gcc) 和 Java 编译器 (javac)。同时安装的还有 GNU 源级调试器 (gdb) 和模块调试器 (mdbkmdb)、链接程序 (ld)、源代码控制实用程序 (sccs),以及生成实用程序,例如 make。有关使用某些标准工具的快速课程,请参见文章 Building Software on the Solaris OS(在 Solaris OS 上生成软件)。


注 –

大多数开发者应该使用更为强大的 Oracle Solaris Studio 和 NetBeans 开发和生成工具。请参见使用 Oracle Solaris Studio 工具使用 NetBeans IDE


使用运行时链接程序和链接编辑器

Oracle Solaris OS 提供了链接编辑器和运行时链接程序。《链接程序和库指南》介绍了链接编辑器 ld(1)、运行时链接程序 ld.so.1(1)、ELF 目标文件格式和共享对象(有时被称为共享库)。

该手册适用于广大对 Oracle Solaris 链接程序感兴趣的程序员,包括初学者到高级用户。初学者可以学习链接编辑器和运行时链接程序的基本操作。中级程序员可以学习创建和使用高效的自定义库。高级程序员(例如语言工具开发者)可以学习如何解释和生成目标文件。其中有关应用程序二进制接口的一章介绍了如何管理由动态对象提供的接口的发展和演变。其他章节介绍了线程局部存储和 mapfile 指令。

内核级别的调试

模块调试器 mdb 是一个可扩展的 Oracle Solaris OS 通用调试工具。《Solaris 模块调试器指南》介绍了如何使用 mdb(1) 命令来调试复杂的软件系统。该指南强调了可用于调试 Oracle Solaris 内核以及关联设备驱动程序和模块的功能。该指南包含有关 mdb 语言语法、调试器功能和 mdb 模块编程 API 的完整参考资料。

Oracle Solaris Modular Debugger Guide》还包含有关 kmdb(即 mdb 的内核级别类似程序)的信息。

使用 Oracle Solaris Studio 工具

Oracle Solaris Studio 软件提供了多个模块,用于创建、编辑、生成和调试 C、C++ 或 Fortran 应用程序并分析其性能。很多 Oracle Solaris Studio 工具都有 GUI 和等效的命令行两个版本。这些工具如果带有 GUI 就会提供联机帮助。对于命令行版本,请使用关联手册页。如果从命令行启动 dbx,请在 (dbx) 提示符下键入 commands,以获取每个 dbx 命令的简要说明。

Sun Studio 下载选项 下载 Oracle Solaris Studio 软件。

Oracle Solaris Studio Express 程序提供了正在开发中的下一个 Oracle Solaris Studio 发行版的 Early Access 发行版。从 Oracle Solaris Studio Express Downloads(Oracle Solaris Studio Express 下载)下载 Oracle Solaris Studio Express。

请注意,Oracle Solaris Studio IDE 会安装其自己的 NetBeans IDE 版本。此 NetBeans 安装不适合独立于 Oracle Solaris Studio 软件使用,如果单独使用它,可能会出现错误。如果要使用 NetBeans IDE,应该与安装 Oracle Solaris Studio 或 Oracle Solaris Studio Express 软件区别开来单独安装 NetBeans IDE。

Oracle Solaris Studio 软件包括以下工具:

有关 Oracle Solaris Studio 文档,请参见以下 Web 站点:

使用 NetBeans IDE

NetBeans IDE(Integrated Development Environment,集成开发环境)提供了相应的工具,可帮助您生成适用于 Oracle Solaris OS 和其他操作平台的跨平台应用程序。可从 netbeans.org 获得 NetBeans IDE。要查看安装指南,请转至版本与计划页面,单击所需发行版对应的“常规信息 (General Info)”链接,然后在该页面上找到安装说明 (Installation Instructions)

NetBeans IDE 包含以下功能:

有关更多信息,请访问 netbeans.org Web 站点。新用户可能会发现以下页面尤为有用:

适用于 Web 应用程序开发和部署的 AMP 组合

Web Stack 软件是常用开源 Web 技术的集合,通过这些技术,开发者可以轻松地生成和布署 Web 应用程序。Web Stack 包括已针对 Oracle Solaris OS 进行优化的 AMP(Apache/MySQL/Perl 或 PHP)组合。有关更多信息,请参见 Sun GlassFish Web Stack Documentation(Sun GlassFish Web Stack 文档)。

Web Stack 组件包括以下技术:

使用 Oracle 消息传递工具包

Oracle 消息传递工具包(以前称为 Sun HPC ClusterTools)是一组开发工具,可用于开发专用于在分布式内存系统上运行的并行应用程序。

对于 Oracle Solaris 10,可以从 Oracle Message Passing Toolkit(Oracle 消息传递工具包)网页下载最新的 Oracle 消息传递工具包。

Oracle 消息传递工具包中包括以下技术:

Oracle 消息传递工具包可与 C、C++ 和 Fortran 的 Oracle Solaris Studio 编译器结合使用。此工具包集成 Oracle Solaris Studio Performance Analyzer,从而为 MPI 应用程序(包括 MPI 状态,一种 Performance Analyzer 特有的功能)提供完整的文件配置功能。而且工具包还支持流行的 Totalview 和 Allinea DDT 并行调试器。

有关使用 Oracle 消息传递工具包的完整信息,请参见 Sun HPC ClusterTools 文档集。

打包 Oracle Solaris OS 的应用程序

软件程序必须经过打包才能安装到 Oracle Solaris OS 中。《应用程序包开发者指南》提供了用于在 Oracle Solaris OS 上设计、生成和验证 System V 或 SVR4 软件包的逐步说明和相关背景信息。其中附有案例研究的一章提供了几个在各种不同情况下的软件包创建示例。本文档还包括在软件包创建过程中可能会用到的一些高级技术的说明。

对于 OpenSolaris 发行版,可为映像包管理系统 (Image Packaging System, IPS) 打包应用程序。有关 IPS 应用程序打包的更多信息,请参见《OpenSolaris 2010.05 映像包管理系统指南》和 Multi-platform Packaging for Layered Distros(适用于分层 Distros 的多平台打包)。

Oracle Solaris 动态跟踪

Oracle Solaris 动态跟踪 (Dynamic Tracing, DTrace) 是一个用于 Oracle Solaris OS 的全面的动态跟踪框架。DTrace 工具提供了一个强大的基础结构,使管理员、开发者和服务人员能够简明地回答有关操作系统和用户程序行为的任意问题。DTrace 可帮助开发者识别应用程序中的性能问题和错误。《Oracle Solaris Dynamic Tracing Guide》深入介绍了如何使用 DTrace 观察、调试和调优系统行为。本指南还包含一整套关于捆绑的 Dtrace 观察工具和 D 编程语言的参考资料。

除了该手册以外,您还可以在以下位置找到指向有关 DTrace 的培训、文章和其他资源的链接。

为 Oracle Solaris OS 编写 Java 程序

此 Java 软件已经进行了优化,以便在企业环境中向服务器端和客户机端的 Java 技术应用程序提供更高的性能。java.sun.com Web 站点提供了关于 Java Platform, Standard Edition (Java SE) 的完整文档。SDN New to Java Programming Center 是一个开始学习 Java 编程的好地方。

提供独立于平台的联机帮助

JavaHelp 系统是一个功能完备的、独立于平台的可扩展帮助系统,使用该系统可将联机帮助合并到 applet、组件、应用程序、操作系统和设备中。也可使用 JavaHelp 软件提供 Web 应用程序的联机文档。JavaHelp System(JavaHelp 系统)产品页包含下载 JavaHelp 软件和《JavaHelp System User's Guide》及其他文档的链接。请注意,JavaHelp 系统不是设计系统,而是一个帮助基础结构。该产品页还包含有关支持 JavaHelp 系统的第三方帮助制作工具的信息。另外,您可以订阅邮件列表,以得到其他 JavaHelp 用户的帮助。

针对特定的硬件和配置编程

本节提供了有关在特定硬件平台和体系结构(包括群集环境)上进行开发的信息。

已知的 Oracle Solaris 兼容硬件

Hardware Compatibility Lists(硬件兼容性列表,HCL)标识了与 Oracle Solaris 10 OS 和 OpenSolaris OS 兼容的硬件。与 Oracle Solaris OS 最新商业版本及最新开发版本兼容的系统和组件分别使用不同的列表列出。HCL 以逗号分隔值 (Comma-Separated Value, CSV) 格式提供,以便在电子表格或数据库中搜索和排序该列表。

Solaris on x86 Platforms Device Support(x86 平台上的 Solaris 设备支持)列表显示 x86 Oracle Solaris 10 和 OpenSolaris 系统支持的驱动程序和设备。选择某个 Oracle Solaris 10 发行版本或 OpenSolaris 发行版本,然后选择设备类型,例如 Network(网络)、Storage(存储)或 Video(视频)。将显示与选定发行版本捆绑的对应类型的驱动程序。

Oracle Device Detection Tool(Oracle 设备检测工具)可为 x86 系统报告内置 Oracle Solaris 驱动程序和第三方 Oracle Solaris 驱动程序。

测试 x86 硬件的 Oracle Solaris 兼容性

有关内置到 Oracle Solaris OS 的设备支持的最新列表,请参见 Solaris on x86 Platforms Device Support(x86 平台上的 Solaris 设备支持)。

在任何 x86 系统上,都可以使用 Installation Check Tool 来快速确定系统是否能够安装 Oracle Solaris OS。

Hardware Certification Test Suite (HCTS) 包括系统认证测试、控制器认证测试、命令行界面和一个基于浏览器的用户界面。HCTS 测试认证系统、主板和各种要在 Oracle Solaris OS 中使用的网络、存储以及串行 I/O 控制器。HCTS 会收集日志文件,以确定测试结果是通过还是失败,然后生成最终的测试报告。通过 HCTS 认证测试的硬件都可以作为认证级硬件添加到硬件兼容性列表中。

使用 x86 汇编语言进行开发

Oracle Solaris OS 提供了针对 x86 平台的汇编语言。《x86 Assembly Language Reference Manual》介绍了用于为 32 位 x86 处理器体系结构生成代码并将汇编语言格式的源文件转换为链接格式的目标文件的汇编程序。本书介绍了 Oracle Solaris x86 汇编语言的语法。本书还介绍了如何将 Oracle Solaris x86 汇编语言的指令助记符映射到本机 x86 指令集。

使用 SPARC 汇编语言进行开发

Oracle Solaris OS 提供了针对 SPARC 平台的汇编语言。《SPARC Assembly Language Reference Manual》介绍了在 SPARC 体系结构上运行的汇编程序。汇编程序可以将汇编语言格式的源文件转换为链接格式的目标文件。本书介绍了汇编程序语法以及可执行链接格式。本书讨论了 SPARC 体系结构的硬件指令和汇编语言指令集之间的关系。本书还包含 SPARC-V9 指令集说明。一些附录列出了 SPARC 汇编程序支持的伪操作,并附有相应的使用示例。其他附录中描述了可用的汇编程序命令行选项,并举例说明了汇编代码与 C 代码之间的关系。

为 Oracle Solaris OS 开发 64 位应用程序

Oracle Solaris OS 提供了 64 位的计算环境,并且向后兼容 32 位应用程序。《Solaris(64 位)开发者指南》主要是为应用程序开发者编写的。本书对选择使用 32 位 Oracle Solaris 应用程序开发环境还是使用 64 位环境提供了指导。该手册说明了这两种环境之间的相同之处和不同之处,以及如何编写可在这两种环境之间进行移植的代码。本书还介绍了一些操作系统提供的用于开发 64 位应用程序的工具。

为群集环境开发

可以将 Oracle Solaris OS 配置为群集环境以提高可用性。《Sun Cluster Data Services Developer’s Guide for Solaris OS》介绍了 Sun Cluster 数据服务 API。开发者可以使用该 API 将标准用户应用程序(例如 Web 浏览器或数据库)转换为可在 Oracle Solaris Cluster 环境中运行的高可用性数据服务。有关虚拟化环境中的高可用性的信息,请参见 Oracle Solaris Containers 功能和 Oracle VM Server for SPARC

另外,您可以并行化应用程序以使其获得在群集环境中运行的好处。Oracle Message Passing Toolkit(Oracle 消息传递工具包,以前称为 Sun HPC ClusterTools)是一组用于高端分布式内存应用程序的并行开发工具集。有关更多信息,请参见使用 Oracle 消息传递工具包

Oracle Solaris OS 中的网络编程

本节提供了有关实现远程过程调用、编写系统管理代理以及开发基于 Web 的企业管理应用程序的信息。

实现远程过程调用

Oracle Solaris OS 为实现远程过程调用 (remote procedure call, RPC) 提供了 ONC+ 分式布服务。《ONC+ Developer’s Guide》介绍了 Sun 开发的 ONC+ 分布式服务。

ONC+ 技术包括了一系列相关技术、服务和工具:

本书包含有关 rpcgen 工具和 portmap 实用程序的信息。本书还包含有关使用 RPC 的代码示例。

将设备管理信息添加到系统管理代理中

系统管理代理 (System Management Agent, SMA) 以开源的 Net-SNMP 代理为基础。《Solaris System Management Agent Developer’s Guide》为希望扩展该代理的功能的开发者提供了相应的信息。该手册提供了有关为 SMA 创建管理信息库 (Management Information Base, MIB) 模块的信息以及 MIB 模块所使用的接口的信息。使用模块,可以通过 SNMP 管理应用程序对特定应用程序、设备、系统或网络进行管理。附录提供了有关从 Solstice Enterprise Agents 软件迁移 SEA 子代理以便在系统管理代理中使用的信息。

开发基于 Web 的企业管理应用程序

《Solaris WBEM Developer’s Guide》介绍了 Oracle Solaris 基于 Web 的企业管理 (Web-Based Enterprise Management, WBEM) 软件开发工具包 (Software Development Kit, SDK) 的组件。该手册说明了如何使用这些组件来开发基于 WBEM 的应用程序。

本书介绍了以下主题:

利用 Oracle Solaris 接口和框架编程

本节提供了有关 Oracle Solaris OS 特有的接口和框架的信息。

Oracle Solaris OS 中的多线程编程

Oracle Solaris OS 提供了利用独立的并行线程来进行应用程序开发的能力,以此提高应用程序的性能。《多线程编程指南》介绍了 POSIX 和 Oracle Solaris 线程 API、如何使用同步对象编程以及如何编译多线程程序。本指南适用于希望使用多线程技术将一个进程分成多个独立的执行线程,从而改善应用程序性能和结构的开发者。附录中包含了 POSIX 和 Oracle Solaris 线程的代码示例。

如果您对多线程编程或并行编程不是很熟悉,请参见文章《Making Sense of Parallel Programming Terms》。该文章对术语进行了解释,并且包含指向有关并行编程的其他信息来源的链接。

为了更全面地了解使用 POSIX 线程编程,请考虑阅读以下零售书籍:

编程接口

《编程接口指南》介绍了特定于 Oracle Solaris 环境的编程接口。

编程接口指南》提供了有关以下主题的信息:

Oracle Solaris OS 包括两个实用程序,应用程序开发者可以使用它们来检验应用程序是否符合 Oracle Solaris 应用程序二进制接口 (Application Binary Interface, ABI) 的要求。符合 Oracle Solaris ABI 的要求可以确保代码在多个 Oracle Solaris OS 发行版之间具有可移植性。Oracle Solaris ABI 定义了适用于应用程序开发者的可用接口。

appcert(1) 实用程序会对 ELF 二进制代码所使用(例如用于专用接口)的 Oracle Solaris 库接口执行静态检查。apptrace(1) 工具使用运行时链接程序的链接审计功能来动态跟踪应用程序运行时的库例程调用。

为 DHCP 服务开发自定义存储模块

Oracle Solaris OS 提供了动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP) 服务。Oracle Solaris DHCP 服务提供了一个框架,使用该框架可开发和使用自定义数据库以存储 DHCP 数据。《Solaris DHCP Service Developer’s Guide》介绍了如何使 DHCP 服务能够使用其他数据存储功能。通过学习该手册,开发者可编写模块以便在当前不受 Oracle Solaris DHCP 服务支持的数据库中存储 DHCP 数据。该手册概述了 Oracle Solaris DHCP 所使用的数据访问框架,并为开发者提供了一般性指南。该书还提供了样例代码模板。

在 Oracle Solaris OS 中开发安全应用程序和服务

《Solaris 开发者安全性指南》适用于使用安全服务的应用程序开发者以及提供安全服务的应用程序开发者。该指南针对以下服务对编程接口进行了说明:PAM、SASL、GSS-API、Oracle Solaris 加密框架和进程权限。本书提供了有关使用通用安全标准 API 和简单验证安全层的示例。

开发设备驱动程序

Oracle Solaris OS 包括一组用于开发设备驱动程序的标准接口。这些接口称为 DDI/DKI,即设备驱动程序接口 (Device Driver Interface)/驱动程序内核接口 (Driver-Kernel Interface)。通过 DDI/DKI 接口可升级到新的 Oracle Solaris 发行版或迁移到新的平台,而无需重新编译驱动程序。在手册页的第 9 节中说明了这些接口,Oracle Solaris OS Man Page Collection 介绍对该节进行了介绍。

《Device Driver Tutorial》提供了有关如何为 Oracle Solaris OS 开发设备驱动程序的实践信息。本书包括有关编写、生成、安装、装入和测试简单设备驱动程序的逐步说明。本书还概述了驱动程序开发环境和可用于开发驱动程序的工具。此外,本书还提供了指向驱动程序开发资源和技术(用于避免某些驱动程序开发问题)的链接。

《编写设备驱动程序》手册提供了有关为面向字符的设备和面向块的设备开发驱动程序的更为完整的信息。该手册还述及到一些特定设备,例如,网络设备、USB 设备、SCSI 目标和 HBA 设备。

编写设备驱动程序》手册包含以下附加主题:

有关驱动程序开发资源的更多信息,请参见 Software Developer Information Resources(软件开发者信息资源)的 Device Drivers(设备驱动程序)部分和 OpenSolaris Device Drivers Community(OpenSolaris 设备驱动程序社区)。

编写系统资源管理应用程序

《Solaris 10 资源管理器开发者指南》介绍了如何编写对系统资源(例如处理器集和线程调度类)进行分区和管理的应用程序。本书引用了所提供的对系统资源进行分区、调度和设置使用边界的编程 API。本书提供了编程示例,并讨论了编写应用程序时应考虑的编程问题。本书还包括对 Oracle Solaris Zones 技术的简要概述,并讨论了在区域中运行的应用程序的设计注意事项。

开发面向国际用户的软件

Oracle Solaris OS 提供了国际化体系结构,以协助在世界范围内开发、部署和管理应用程序和语言服务。一个单一的多语言产品可以提供对 39 种不同语言和 162 个语言环境 (locale) 的支持。此外,对泰文和印地文脚本所需的复杂文本布局也提供了支持。还对阿拉伯文和希伯来文等语言提供了双向文本功能。《国际语言环境指南》介绍了如何使用当前 Oracle Solaris 发行版生成支持各种语言和文化习俗的全球性软件产品。