本节提供了有关用于开发应用程序(包括编译、调试、调优和打包应用程序)的 Oracle Solaris 功能的信息。
Oracle Solaris OS 包括许多开发者软件包,当您为开发者安装适当的 Oracle Solaris 软件组后这些软件包便会可用。出于安装目的,Oracle Solaris OS 在逻辑上划分为软件组,这些软件组是 Oracle Solaris 软件包的集合。
安装 Oracle Solaris OS 时,必须选择以下软件组(它们包含开发者软件包)之一:
开发者
整个
整个软件组附加 OEM
通过这些软件组,您可获取一些编译器,如 GNU C 编译器 (gcc) 和 Java 编译器 (javac)。同时安装的还有 GNU 源级调试器 (gdb) 和模块调试器 (mdb 和 kmdb)、链接程序 (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 软件提供了多个模块,用于创建、编辑、生成和调试 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 IDE-一个集成的开发环境,提供了访问 Oracle Solaris Studio C、C++ 和 Fortran 工具的方式。
NetBeans 插件能够从 Oracle Solaris Studio IDE 使用 Oracle Solaris 动态跟踪工具 (Dynamic Tracing facility, DTrace)。使用 DTrace 可探测系统上运行的软件程序的内部工作情况。通过 DTrace GUI 插件,您可以通过在窗口中运行 D 脚本来从 IDE 使用 DTrace。该插件包括多个 D 脚本,您可以轻松地扩展和自定义这些脚本来符合您的需要。有关 DTrace 的更多信息,请参见本手册Oracle Solaris 动态跟踪。Oracle Solaris Studio 12 Update 1 IDE 包含 NetBeans DTrace GUI 插件。对于 Oracle Solaris Studio 12.2,DTrace GUI 插件单独提供。请参见 NetBeans DTrace GUI FAQ 和文档。
Oracle Solaris Studio 12 Update 1 IDE 还包含 DLight 工具,该工具可提供各种检测,这些检测会利用 Oracle Solaris 动态跟踪 (Oracle Solaris Dynamic Tracing, DTrace) 调试和性能分析功能。
Oracle Solaris Studio C 编译器-包括 C 编译器、增量链接编辑器和 lint 程序。
Oracle Solaris Studio C++ 编译器-包括功能完备的 C++ 编译器和区间运算库。
Oracle Solaris Studio Fortran 编译器-包括 f95 和 f77 的功能完备的环境及库。
dbx 调试器-一种交互式的源代码级别的命令行调试工具。
Sun 内存错误发现工具 (Discover)-用于检测内存访问错误的高级开发工具。
Uncover-简便地使用命令行工具测量应用程序的代码覆盖率。
DLight-用于 Oracle Solaris Studio 12.2 的单独工具,与集成到 Oracle Solaris Studio 12 Update 1 IDE 的 DLight 工具不同。Oracle Solaris Studio 12.2 DLight 工具包括三个用于 AMP 堆栈中的进程的文件配置工具,以及用于 C、C++ 和 Fortran 程序的文件配置工具。
Oracle Solaris Studio dmake make 工具-一种用于以分布式、并行或串行模式生成目标的命令行工具。
数学库-运行 Oracle Solaris OS 的 SPARC 和 x86 平台上的软件和硬件所支持的浮点环境。
OpenMP-适用于共享内存多处理器体系结构的可移植的、基于 pragma 的并行编程模型,所有三个 Oracle Solaris Studio 编译器都可在本地接受和编译该模型。
性能分析器-用于收集和分析性能数据的 GUI 和命令行工具。
线程分析器-用于分析多线程程序的执行情况以及检查多种多线程编程错误的 GUI 和命令行工具。
Sun 性能库-特定于 Sun 的扩展和功能库,用于使用优化的高速数学子例程来解决线性代数和其他数值密集型问题。
有关 Oracle Solaris Studio 文档,请参见以下 Web 站点:
wikis.sun.com 上的 Sun Studio Compilers and Tools(Sun Studio 编译器和工具)
NetBeans IDE(Integrated Development Environment,集成开发环境)提供了相应的工具,可帮助您生成适用于 Oracle Solaris OS 和其他操作平台的跨平台应用程序。可从 netbeans.org 获得 NetBeans IDE。要查看安装指南,请转至版本与计划页面,单击所需发行版对应的“常规信息 (General Info)”链接,然后在该页面上找到安装说明 (Installation Instructions)。
NetBeans IDE 包含以下功能:
Java 桌面应用程序-使用 NetBeans Java GUI Builder(支持 Swing 应用程序框架和 Bean 绑定)创建专业桌面应用程序。使用 JavaFX 生成丰富的 Internet 应用程序。
PHP 开发-快捷的轻量级 PHP IDE,具有代码完成和快速修复功能,集成了 FTP 和 Xdebug,并支持常用的 Web 服务。
Java EE 和 Web 应用程序-使用 Ajax、JavaScript 和 CSS 生成 Web 应用程序。支持包括 JSF、Struts、Spring 和 Hibernate 在内的框架。用于进行 EJB 开发的完整工具集。
Ruby 和 Ruby on Rails 开发-具有代码完成功能的强大 Ruby 编辑器和调试器,完全支持 Ruby on Rails。包括 JRuby 运行时。
可视移动开发-创建、测试和调试在移动电话、机顶盒和 PDA 上运行的 GUI 应用程序。
C 和 C++ 开发-功能完备的 C/C++ 编辑器、调试器、项目模板,支持多项目配置、远程开发、性能文件配置以及对已完成项目进行打包。
有关更多信息,请访问 netbeans.org Web 站点。新用户可能会发现以下页面尤为有用:
Guided Video Tour of the NetBeans IDE(NetBeans IDE 的指导视频教程)
NetBeans IDE Java Quick Start Tutorial(NetBeans IDE Java 快速入门教程)
NetBeans documentation(NetBeans 文档)
NetBeans Plugin Portal(NetBeans 插件门户),提供插件模块相关信息
NetBeans Wiki,以及 New and Noteworthy(新增和值得注意的功能)、社区文档和常见问题解答
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 组件包括以下技术:
Apache-可向 Web 客户端(例如浏览器)提供 Web 页的 HTTP Web 服务器。
MySQL-可用于存储 Web 应用程序的大部分动态数据的关系数据库引擎 (relational database engine, DBMS)。
PHP-用于在 HTML 页中嵌入指令以提供动态内容的脚本语言。还可通过“工具”>“插件”>“可用插件”菜单将适用于 PHP 的 NetBeans 插件安装在 NetBeans IDE 中。
PostgreSQL-对象关系数据库管理系统 (object-relational database management system, ORDBMS)。PostgreSQL 使用客户机/服务器模型。
Ruby on Rails-用于进行 Web 应用程序开发的框架。Ruby 是面向对象的编程语言。Rails 是一个开源 Ruby 框架,用于开发基于 Web 的数据库驱动应用程序。在 Web Stack 中,Ruby 包括 OpenSSL、curses、Tcl/Tk 和 readline 的扩展。NetBeans IDE 包括对 Ruby 和 JRuby 的支持。
Squid-功能完备的 HTTP/1.0 代理服务器。Squid 提供了一个丰富的访问控制、授权和日志记录环境,以开发 Web 代理和内容服务应用程序。
memcached-memcached 是一个高性能的、分布式内存对象缓存系统,它通过减轻数据库负荷提高动态 Web 应用程序的速度。
Tomcat Servlet 容器服务器软件,它处理 Java Servlet 和 JavaServer Pages (JSP) 应用程序以提供动态 Web 页。
Oracle 消息传递工具包(以前称为 Sun HPC ClusterTools)是一组开发工具,可用于开发专用于在分布式内存系统上运行的并行应用程序。
对于 Oracle Solaris 10,可以从 Oracle Message Passing Toolkit(Oracle 消息传递工具包)网页下载最新的 Oracle 消息传递工具包。
Oracle 消息传递工具包中包括以下技术:
开放式消息传递接口 (Open Message Passing Interface, Open MPI)-消息传递接口 (Message Passing Interface, MPI) 标准的开源实现。开放式 MPI 与 MPI 2 标准完全兼容,包括完整的 MPI I/O 实现和 MPI 进程之间的单向通信。
开放式运行时环境 (Open Run-Time Environment, ORTE)-提供一组基本的并行作业管理工具,并且包括插件模块以支持以下技术:
Oracle Grid Engine,它允许启动并行作业并最大限度地提高共享资源的利用率。
可移植批处理系统 (Portable Batch System, PBS),一个作业调度程序,可在联网的多平台环境中将网络资源分配给批处理作业。
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 上设计、生成和验证 System V 或 SVR4 软件包的逐步说明和相关背景信息。其中附有案例研究的一章提供了几个在各种不同情况下的软件包创建示例。本文档还包括在软件包创建过程中可能会用到的一些高级技术的说明。
不属于 Oracle Solaris OS 的非随附软件包可以使用类机制来自定义服务器/客户机安装。
可针对管理员的需要设计可重定位的软件包。
复杂产品可以通过能够自动解决软件包相关性问题的复合软件包集合形式提供。
软件包设计者可以自定义升级和修补过程。
修补后的软件包可以以与未修补的软件包同样的方式提供。用于卸载软件的归档文件也可以包含在产品中。
对于 OpenSolaris 发行版,可为映像包管理系统 (Image Packaging System, IPS) 打包应用程序。有关 IPS 应用程序打包的更多信息,请参见《OpenSolaris 2010.05 映像包管理系统指南》和 Multi-platform Packaging for Layered Distros(适用于分层 Distros 的多平台打包)。
Oracle Solaris 动态跟踪 (Dynamic Tracing, DTrace) 是一个用于 Oracle Solaris OS 的全面的动态跟踪框架。DTrace 工具提供了一个强大的基础结构,使管理员、开发者和服务人员能够简明地回答有关操作系统和用户程序行为的任意问题。DTrace 可帮助开发者识别应用程序中的性能问题和错误。《Oracle Solaris Dynamic Tracing Guide》深入介绍了如何使用 DTrace 观察、调试和调优系统行为。本指南还包含一整套关于捆绑的 Dtrace 观察工具和 D 编程语言的参考资料。
除了该手册以外,您还可以在以下位置找到指向有关 DTrace 的培训、文章和其他资源的链接。
《DTrace Quick Start Guide: Observing Native and Web Applications in Production》
Using DTrace with Sun Studio Tools to Understand, Analyze, Debug, and Enhance Complex Applications(《结合使用 DTrace 和 Sun Studio 工具了解、分析、调试和增强复杂的应用程序》)
《Using DTrace to Demystify Watchpoints in the Sun Studio dbx Debugger》(《使用 DTrace 在 Sun Studio dbx 调试器中澄清监视点》)
《Tutorial: DTrace by Example》(《教程:DTrace 示例》)可用于搜索 DTrace 文章,例如:
《How to Add DTrace Probes to an Application》(《如何向应用程序添加 DTrace 探针》)
《DTrace Quick Reference Guide》(《DTrace 快速参考指南》)
《How to use Oracle Solaris DTrace from Oracle Solaris and OpenSolaris Systems》
BigAdmin 上的 DTrace 页
OpenSolaris DTrace Community(OpenSolaris DTrace 社区)
SolarisInternals.com 上的 DTrace 主题 wiki
此 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 用户的帮助。