This section provides information on Oracle Solaris facilities for developing applications, including compiling, debugging, tuning, and packaging applications.
The Oracle Solaris OS includes a number of developer software packages, which are available when you install the appropriate Oracle Solaris software group for developers. For installation purposes, the Oracle Solaris OS is logically divided into software groups, which are collections of Oracle Solaris packages.
When you install the Oracle Solaris OS, you must select one of the following software groups, which contain the developer packages:
Entire Plus OEM
With these software groups, you get compilers such as the GNU C compiler (gcc) and the Java compiler (javac). Also installed are the GNU source-level debugger (gdb) and the modular debugger (mdb and kmdb), a linker (ld), source control utilities (sccs), and build utilities such as make. See the article Building Software on the Solaris OS for a quick lesson in using some of the standard tools.
The Oracle Solaris OS provides a link editor and runtime linker. The Linker and Libraries Guide covers the link editor ld(1), the runtime linker ld.so.1(1), the ELF object file format, and shared objects, which are sometimes referred to as shared libraries.
The manual is intended for a range of programmers who are interested in the Oracle Solaris linkers, from the beginner to the advanced user. Beginners learn the principal operations of the link editor and runtime linker. Intermediate programmers learn to create and use efficient custom libraries. Advanced programmers, such as language-tools developers, learn how to interpret and generate object files. A chapter on application binary interfaces describes how to manage the evolution of an interface that is provided by a dynamic object. Other chapters cover thread-local storage and mapfile directives.
The Modular Debugger mdb is an extensible, general purpose debugging tool for the Oracle Solaris OS. The Oracle Solaris Modular Debugger Guide describes how to use the mdb(1) command to debug complex software systems. The guide emphasizes the facilities that are available for debugging the Oracle Solaris kernel and associated device drivers and modules. The guide includes a complete reference for the mdb language syntax, debugger features, and the mdb module programming API.
The Oracle Solaris Modular Debugger Guide also features information on kmdb, the kernel-level analogue to mdb.
The Oracle Solaris Studio software provides modules for creating, editing, building, debugging, and analyzing the performance of a C, C++, or Fortran application. Many Oracle Solaris Studio tools have both a GUI and command-line equivalent. Those tools with GUIs provide online help. For the command-line versions, use the associated man pages. If you start dbx from the command line, type commands at the (dbx) prompt to get a brief description of each dbx command.
Download Oracle Solaris Studio software from Sun Studio Downloads.
The Oracle Solaris Studio Express program offers early access releases of the next Oracle Solaris Studio release in development. Download Oracle Solaris Studio Express from Oracle Solaris Studio Express Downloads.
Note that the Oracle Solaris Studio IDE installs its own version of the NetBeans IDE. This NetBeans installation is not intended to be used independently of the Oracle Solaris Studio software, and you might experience errors if you use it separately. If you want to use the NetBeans IDE, you should install the NetBeans IDE separately from installing Oracle Solaris Studio or Oracle Solaris Studio Express software.
The Oracle Solaris Studio software includes the following tools:
Oracle Solaris Studio IDE – An integrated development environment that provides access to the Oracle Solaris Studio C, C++, and Fortran tools.
A NetBeans plugin enables you to use the Oracle Solaris Dynamic Tracing facility (DTrace) from the Oracle Solaris Studio IDE. DTrace enables you to explore the inner workings of the software programs running on your system. The DTrace GUI plugin enables you to use DTrace from the IDE by running D scripts in a window. The plugin includes several D scripts that can be easily extended and customized to suit your needs. See Oracle Solaris Dynamic Tracing in this manual for more information about DTrace. The Oracle Solaris Studio 12 Update 1 IDE includes the NetBeans DTrace GUI plugin. For Oracle Solaris Studio 12.2, the DTrace GUI plugin is separate. See NetBeans DTrace GUI FAQ and documentation.
The Oracle Solaris Studio 12 Update 1 IDE also includes the DLight tool, which offers a variety of instrumentation that takes advantage of the Oracle Solaris Dynamic Tracing (DTrace) debugging and performance analysis functionality.
Oracle Solaris Studio C compiler – Includes a C compiler, incremental link editor, and lint program.
Oracle Solaris Studio C++ compiler – Includes a full-featured C++ compiler and interval arithmetic library.
Oracle Solaris Studio Fortran compiler – Includes a full-featured environment and libraries for both f95 and f77.
dbx Debugger – An interactive, source-level, command-line debugging tool.
Sun Memory Error Discovery Tool (Discover) – An advanced development tool for detecting memory access errors.
Uncover – A simple and easy to use command-line tool for measuring code coverage of applications.
DLight – A separate tool for Oracle Solaris Studio 12.2, different from the DLight tool that is integrated into the Oracle Solaris Studio 12 Update 1 IDE. The Oracle Solaris Studio 12.2 DLight tool includes three profiling tools for processes in the AMP stack, in addition to profiling tools for C, C++, and Fortran programs.
Oracle Solaris Studio dmake make tool – A command-line tool for building targets in distributed, parallel, or serial mode.
Math libraries – A floating-point environment that is supported by software and hardware on SPARC and x86 platforms that run the Oracle Solaris OS.
OpenMP – A portable, pragma-based parallel programming model for shared memory multiprocessor architectures, is natively accepted and compiled by all three Oracle Solaris Studio compilers.
Performance Analyzer – A GUI and command-line tool for collecting and analyzing performance data.
Thread Analyzer – A GUI and command-line tool for analyzing the execution of multithreaded programs and checking for a variety of multithreaded programming errors.
Sun Performance Library – A library of Sun-specific extensions and features for using optimized, high-speed mathematical subroutines for solving linear algebra and other numerically intensive problems.
See the following web sites for Oracle Solaris Studio documentation:
NetBeans IDE (Integrated Development Environment) provides tools to help you build cross-platform applications for the Oracle Solaris OS and other operating platforms. The NetBeans IDE is available from netbeans.org. To see the installation guide, go to the Releases & Planning page, click the “General Info” link for the release you want, and then find the Installation Instructions on that page.
The NetBeans IDE contains the following features:
Java Desktop Applications – Create professional desktop applications using the NetBeans Java GUI Builder with Swing Application Framework and Beans Binding support. Build rich internet applications with JavaFX.
PHP Development – A fast and lightweight PHP IDE with code completion and quick fixes, integrated FTP and Xdebug, and support for popular Web Services.
Ruby and Ruby on Rails Development – Powerful Ruby editor with code completion and debugger, and full support for Ruby on Rails. Includes the JRuby runtime.
Visual Mobile Development – Create, test and debug GUI applications that run on mobile phones, set-top boxes, and PDAs.
C and C++ Development – Full-featured C/C++ editor, debugger, project templates, support for multiple project configurations, remote development, performance profiling, and packaging of completed projects.
Visit the netbeans.org web site for more information. New users might find the following pages particularly useful:
NetBeans Plugin Portal for plugin modules
NetBeans Wiki with New and Noteworthy, community documentation, and answers to Frequently Asked Questions
Web Stack software is a collection of popular open source web technologies that enable developers to easily build and deploy web applications. Web Stack includes an AMP (Apache/MySQL/Perl or PHP) stack that has been optimized for the Oracle Solaris OS. See Sun GlassFish Web Stack Documentation for more information.
The Web Stack components include the following technologies:
Apache – An HTTP web server, which serves web pages to web clients such as browsers.
MySQL – A relational database engine (DBMS) that can be used to store most dynamic data for web applications.
PHP – A scripting language, which is used to embed instructions within HTML pages to provide dynamic content. A NetBeans plugin for PHP can also be installed in the NetBeans IDE from the Tools > Plugins > Available Plugins menu.
PostgreSQL – An object-relational database management system (ORDBMS). PostgreSQL uses a client/server model.
Ruby on Rails – A framework for web application development. Ruby is the object-oriented programming language. Rails is an open source Ruby framework for developing web-based, database-driven applications. In Web Stack, Ruby includes extensions for OpenSSL, curses, Tcl/Tk, and readline. The NetBeans IDE includes support for Ruby and JRuby.
Squid – A fully-featured HTTP/1.0 proxy server. Squid offers a rich access control, authorization and logging environment to develop web proxy and content serving applications.
memcached – memcached is a high-performance, distributed memory object caching system, which speeds up dynamic web applications by alleviating database load.
Tomcat Servlet container server software, which processes Java Servlet and JavaServer Pages (JSP) applications to provide dynamic web pages.
The Oracle Message Passing Toolkit, formerly Sun HPC ClusterTools, is a set of development tools that you can use to develop parallel applications designed to run on distributed-memory systems.
For Oracle Solaris 10, the latest Oracle Message Passing Toolkit can be downloaded from the Oracle Message Passing Toolkit page.
Oracle Message Passing Toolkit includes the following technologies:
Open Message Passing Interface (Open MPI) – an open source implementation of the Message Passing Interface (MPI) standard. Open MPI is fully compliant with the MPI 2 standard including complete MPI I/O implementation and one-sided communications between MPI processes.
Open Run-Time Environment (ORTE) – provides a basic set of parallel job management facilities, and includes plugin modules to support the following technologies:
The Oracle Grid Engine, which allows parallel jobs to be launched and maximizes the utilization of shared resources.
The Portable Batch System (PBS), a job scheduler that allocates network resources to batch jobs on networked, multi-platform environments.
The Oracle Message Passing Toolkit can be used with the Oracle Solaris Studio compilers for C, C++, and Fortran. The Oracle Message Passing Toolkit is integrated with Oracle Solaris Studio Performance Analyzer to deliver full profiling capabilities for MPI applications, including MPI States, a feature unique to Performance Analyzer. The Oracle Message Passing Toolkit also supports the popular Totalview and Allinea DDT parallel debuggers.
See the Sun HPC ClusterTools documentation set for complete information about using the Oracle Message Passing Toolkit.
Software programs must be incorporated into a package to be installed in the Oracle Solaris OS. The Application Packaging Developer’s Guide provides step-by-step instructions and relevant background information for designing, building, and verifying System V, or SVR4 packages on the Oracle Solaris OS. A chapter with case studies provides several package creation examples in a variety of situations. This document also includes descriptions of advanced techniques that you might find to be helpful during the package creation process.
Unbundled packages, which are not part of the Oracle Solaris OS, can use the class mechanism to customize server/client installations.
Relocatable packages can be designed to accommodate the desires of the administrator.
A complex product can be delivered as a set of composite packages that automatically resolve package dependencies.
A package designer can customize the upgrading and patching process.
Patched packages can be delivered in the same way as unpatched packages. Archives for backing out the software can also be included in the product.
For OpenSolaris releases, applications can be packaged for the Image Packaging System (IPS). See the OpenSolaris 2010.05 Image Packaging System Guide and Multi-platform Packaging for Layered Distros for more information about application packaging for IPS.
Oracle Solaris Dynamic Tracing (DTrace) is a comprehensive dynamic tracing framework for the Oracle Solaris OS. The DTrace facility provides a powerful infrastructure to enable administrators, developers, and service personnel to concisely answer arbitrary questions about the behavior of the operating system and user programs. DTrace can help developers identify performance issues and bugs in applications. The Oracle Solaris Dynamic Tracing Guide describes in depth how to use DTrace to observe, debug, and tune system behavior. This guide also includes a complete reference for bundled DTrace observability tools and the D programming language.
In addition to the manual, you can find links to training, articles and other resources for DTrace at the following locations:
Tutorial: DTrace by Example where you can search for DTrace articles, such as:
DTrace page on BigAdmin
DTrace Topics wiki at SolarisInternals.com
The Java software is optimized to deliver superior performance to server-side and client-side Java technology applications in an enterprise environment. The java.sun.com web site provides complete documentation for Java Platform, Standard Edition (Java SE). The SDN New to Java Programming Center is a good place to start learning about Java programming.
The JavaHelp system is a full-featured, platform-independent, extensible help system that enables you to incorporate online help in applets, components, applications, operating systems, and devices. You can also use the JavaHelp software to deliver online documentation for web applications. The JavaHelp System product page includes links for downloading JavaHelp software and the JavaHelp System User's Guide and other documentation. Note that the JavaHelp system is not an authoring system, but a help infrastructure. The product page also includes information about third-party help authoring tools that support the JavaHelp system. In addition, you can subscribe to the mailing list to get help from other JavaHelp users.