Introduction to the Solaris Developer Documentation
  Suche nur diese Buch
Sehen Sie dieses Buch:
Dieses Buch im PDF-Format herunterladen (607 KB)

Chapter 1 Introduction to the Solaris Developer Documentation

The SolarisTM Operating System (Solaris OS) provides developers with numerous interfaces, frameworks, and tools to take advantage of Solaris technologies. This manual provides a roadmap for developers to learn about the Solaris OS and provides links to sources of further information. The following topics are covered:

Which Solaris Distribution is Right for You?

The Solaris OS is available in a number of different distributions, all of them free of charge. The distribution you choose depends on how you want to use the Solaris OS. Use the table below to help you determine which distribution is right for you.

Solaris Distribution 

Use Profile 

Support 

Solaris 10 OS

Solaris 10 OS: http://www.sun.com/software/solaris/10/index.jsp

Download: http://www.sun.com/software/solaris/get.jsp

Use the Solaris 10 OS for mission critical activities and production, such as in a large enterprise. 

Complete support provided through a paid Sun Solaris subscription or Sun System service plan. See Solaris 10 Support and Services.

OpenSolaris OS

OpenSolaris OS: http://www.opensolaris.com/

Download: http://www.opensolaris.com/get/index.jsp

More information: OpenSolaris Information Center

Use the OpenSolaris OS to install a recent build of the OpenSolaris software in a slim install configuration that fits on a single CD. Then install additional software packages of your choice from the OpenSolaris package repository. 

The OpenSolaris binary distribution features a simplified installation from a single bootable Live CD. The Live CD can be used to run a working preview of the system without installing anything to the hard drive. The binary OpenSolaris release also features the Image Packaging System (IPS). The IPS is a software repository and distribution system that enables users to easily install software packages from the network onto their OpenSolaris systems. You can install software from the repository by issuing simple commands from a terminal on the OpenSolaris system, or by using the Package Manager application from the OpenSolaris desktop. 

Support through paid subscription services and developer assistance. See OpenSolaris Support.

OpenSolaris source code

Browse: http://src.opensolaris.org/source/

Download: http://www.opensolaris.org/os/get/

Build instructions: http://www.opensolaris.org/os/downloads/on/

Review and modify the latest OpenSolaris code. Join the OpenSolaris community to contribute ideas and code. 

Support provided through the OpenSolaris community only. No official Sun support. 


Note –

The .com site, http://www.opensolaris.com/, is dedicated to the OpenSolaris binary distribution. The open source project, community, and code is at the .org site, http://www.opensolaris.org/.


Learning About Development on the Solaris OS

The various vehicles for getting information about developing applications in the Solaris OS are:

  • Man pages – The reference manual (“man”) pages provide syntax and descriptions for commands, functions, structures, and file formats in the Solaris OS. If you know the name of the item you are seeking information about, type the man command followed by the item name at the command line. Man pages are also available as online documents from the Solaris 10 Reference Manual Collection. To learn how the Solaris man pages are organized, see Map to the Solaris OS Man Page Collection.

  • OS Manuals – A family of programming manuals describes APIs and frameworks in the Solaris OS. These manuals, which provide the fundamentals about Solaris technologies, are primarily grouped in the Solaris 10 Software Developer Collection.

  • Developer tools documentation – Two integrated development environments (IDE) are available, free of charge for use on the Solaris OS: the Sun Studio software and the NetBeans IDE.

    The Sun Studio software provides a rich development environment for developers who are writing software for the Solaris OS. Included are C, C++, and Fortran compilers, the dbx debugger, and performance analysis tools. See Using the Sun Studio Tools for a summary of the Sun Studio software.

    The NetBeans IDE provides developers with tools for creating professional cross-platform desktop, enterprise, web and mobile applications. For documentation, see the Documentation, Training & Support area on the NetBeans.org site. For a summary explanation of the NetBeans software, see Using the NetBeans IDE.

    An additional set of tools can be used with the Sun Studio tools to develop parallel applications designed to run on distributed-memory systems. See Using Sun HPC ClusterTools for more information.

  • Sun Developer Network web site – Highlights of the Sun Developer Network (SDN) Solaris and OpenSolaris Developer Center include the following:

  • Sun Learning eXchange – The Sun Learning eXchange (SLX) web site contains video and slide presentations on many topics. Use the Categories menu to select a category such as Developers or use the Search field to search for Solaris, OpenSolaris, DTrace, ZFS, and other topics.

  • SunSolve online support documents – SunSolveSM maintains a knowledge base of short articles that provide solutions for specific issues concerning Sun hardware and software products. See the Support Documents and Knowledge Base web pages at the SunSolve web site. SunSolve also provides patch information and special bulletins.

  • Sun instructor-led courses and online courses – Courses on the Solaris OS as well as other technologies offered by Sun are listed in the Sun Training course catalog. In particular, see the Solaris OS Developer Course List.

  • Retail books – You can also learn about the Solaris OS from books published by Sun Microsystems Press and the Sun BluePrints series.

    Notable books for Solaris developers are:

    • Solaris Application Programming by Darryl Gove, Prentice Hall PTR, January 6, 2008.

    • Solaris Performance and Tools: DTrace and MDB Techniques for Solaris 10 and OpenSolaris by Richard McDougall, Jim Mauro, and Brendan Gregg, Prentice Hall PTR, July 30, 2006.

    • Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture by Jim Mauro and Richard McDougall, Prentice Hall PTR, July 20, 2006.

    • Solaris Systems Programming by Rich Teer, Prentice Hall PTR, August 19, 2004.

    • The Java Tutorial, Fourth Edition by Isaac Rabinovitch, Sharon Zakhour, Scott Hommel, Jacob Royal and Thomas Risser, September 29, 2006.

  • Solaris 10 OS product literature – For product literature on the Solaris 10 OS including data sheets, tours, case studies, and white papers, see the Solaris Operating System web site.

  • Other Sun documentation – The following documentation sources can be useful to developers, although these manuals are less directly involved with Solaris OS development:

Map to the Solaris OS Man Page Collection

The Solaris OS provides detailed information about system internals through man pages. If you are unfamiliar with the man page concept, see the man page for the man(1) command itself or type man man on the command line. The Solaris OS provides more than 13,000 man pages. Man page collections are separated into sections, which vary slightly from vendor to vendor or even from one release to another release. Large sections are sometimes divided into volumes. References to commands often include the reference manual section or volume number next to the command. For example the man command might be referred to as man(1).

Viewing man pages at docs.sun.com offers several advantages over viewing man pages from the command line. Each section or volume is presented as a book with an index and preface, and an alphabetized list of items with their short descriptions. In some sections, an introductory page provides an overview of the section.

The man pages for the Solaris OS are organized into sections and volumes as follows:

Building Applications in the Solaris OS

This section provides information on Solaris facilities for developing applications, including packaging, compiling, debugging, and tuning applications.

Solaris Developer Tools

The Solaris OS includes a number of developer software packages, which are available when you install the appropriate Solaris software group for developers. For installation purposes, the Solaris OS is logically divided into software groups, which are collections of Solaris packages.

When you install the Solaris OS, you must select one of the following software groups, which contain the developer packages:

  • Developer

  • Entire

  • 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), a linker (ld), source control utilities (sccs), and build utilities such as make. The files are installed in /usr/css and /usr/sfw. See the article Building Software on the Solaris OS for a quick lesson in using some of the standard tools.


Note –

Most developers should use the more powerful Sun Studio and NetBeans development and build tools. See Using the Sun Studio Tools and Using the NetBeans IDE.


Using the Runtime Linker and Link Editor

The 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 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.

Kernel-Level Debugging

The Modular Debugger mdb is an extensible, general purpose debugging tool for the Solaris OS. The 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 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 Solaris Modular Debugger Guide also features information on kmdb, the kernel-level analogue to mdb.

Using the Sun Studio Tools

The Sun Studio software provides modules for creating, editing, building, debugging, and analyzing the performance of a C, C++, or Fortran application. Many Sun 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 Sun Studio software from Sun Studio Downloads.

The Sun Studio Express program offers early access releases of the next Sun Studio release in development. Download Sun Studio Express from Sun Studio Express Downloads.

Note that the Sun Studio IDE installs its own version of the NetBeans IDE. This NetBeans installation is not intended to be used independently of the Sun 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 Sun Studio or Sun Studio Express.

The Sun Studio software includes the following tools:

  • Sun Studio IDE – An integrated development environment that provides access to the Sun Studio C, C++, and Fortran tools.

    The Sun Studio IDE includes a NetBeans plugin that enables you to use the Solaris Dynamic Tracing facility (DTrace) from the 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 Solaris Dynamic Tracing in this manual for more information about DTrace. See the NetBeans DTrace GUI Plugin for more information about the plugin. If your version of Sun Studio does not have the DTrace GUI plugin, you can download the plugin from plugins.netbeans.org.

    The Sun Studio IDE also includes the DLight tool, which offers a variety of instrumentation that takes advantage of the Solaris Dynamic Tracing (DTrace) debugging and performance analysis functionality. For information about using the DLight tool, see the DLight Tutorial.

  • Sun Studio C compiler – Includes a C compiler, incremental link editor, and lint program.

  • Sun Studio C++ compiler – Includes a full-featured C++ compiler and interval arithmetic library.

  • Sun 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 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 Solaris OS.

  • OpenMP – A portable, pragma-based parallel programming model for shared memory multiprocessor architectures, is natively accepted and compiled by all three Sun 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 Sun Studio documentation:

Using the NetBeans IDE

NetBeans IDE (Integrated Development Environment) provides tools to help you build cross-platform applications for the 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.

  • PHP Development – A fast and lightweight PHP IDE with code completion and quick fixes, integrated FTP and Xdebug, and support for popular Web Services.

  • Java EE and Web Applications – Build web applications using Ajax, JavaScript, and CSS. Support for frameworks including JSF, Struts, Spring and Hibernate. Full set of tools for EJB development.

  • 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, and packaging of completed projects.

Visit the netbeans.org web site for more information. New users might find the following pages particularly useful:

AMP Stack for Web Application Development and Deployment

Two AMP stacks (Apache/MySQL/Perl or PHP) are available to developers on Solaris platforms: Web Stack and Cool Stack.

Web Stack Software

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 Solaris OS.

The OpenSolaris Web Stack project is associated with the Sun FreeWare (SFW) project. The Web Stack binaries are available for the OpenSolaris OS in the OpenSolaris package repository. See Installing the Web Development Stack for more information.

The Web Stack components include the following technologies:

  • Apache – A 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.

See the Information Resources section of the Installing the Web Development Stack for information about using the Web Stack components.

Cool Stack Software

Cool Stack software is a similar collection of open source AMP stack software, and was the predecessor and inspiration for the Web Stack project. Cool Stack, officially known as Sun Optimized Web Stack, is optimized for the Solaris 10 OS, and provides standalone packages that can be installed onto the Solaris 10 OS. Cool Stack does not deliver components into the OpenSolaris project, as Web Stack does.

You can find product information about Cool Stack at Sun Optimized Web Stack for the Solaris 10 OS.

You can download Cool Stack from http://cooltools.sunsource.net/coolstack/.

Using Sun HPC ClusterTools

The Sun HPC ClusterToolsTM software is a set of development tools that you can use to develop parallel applications designed to run on distributed-memory systems.

For Solaris 10, the latest Sun HPC ClusterTools software can be downloaded from the Sun HPC ClusterTools page.

Sun HPC ClusterTools 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 plug-in modules to support the following technologies:

    • The Sun 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 Sun HPC ClusterTools can be used with the Sun Studio compilers for C, C++, and Fortran.

See the Sun HPC ClusterTools documentation set for complete information about using the ClusterTools software.

Packaging Applications for the Solaris OS

Software programs must be incorporated into a package to be installed in the 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 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 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 Image Packaging System Guide and Image Packaging System Best Practices for more information about application packaging for IPS.

Solaris Dynamic Tracing

Solaris Dynamic Tracing (DTrace) is a comprehensive dynamic tracing framework for the 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 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:

Writing Java Programs for the Solaris OS

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) and the JDK. The SDN New to Java Programming Center is a good place to start learning about Java programming.

Supplying Platform-Independent Online Help

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 User's Guide 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 JAVAHELP-INTEREST mailing list for help from other JavaHelp users. Note also that the JavaHelp system has become an open source project at javahelp.dev.java.net.

Programming to Specific Hardware and Configurations

This section provides information for development on specific hardware platforms and architectures, including clustered environments.

Known Solaris Compatible Hardware

The Hardware Compatibility Lists (HCL) identifies hardware that is compatible with the Solaris 10 OS and the OpenSolaris OS. Separate lists identify systems and components that are compatible with the latest commercial versions of the Solaris OS and with the latest development versions. The HCL is available in a comma-separated value (CSV) format, for searching and sorting the list in a spreadsheet or database.

The Solaris for x86 Device Support list shows drivers and the devices they support for x86 Solaris 10 and OpenSolaris systems. Select a Solaris 10 release or an OpenSolaris release and then select a device type such as Network, Storage, or Video. Drivers of that type that are bundled in that selected release are displayed.

The Sun Device Detection Tool reports both built-in and third-party Solaris driver availability for x86 systems.

Testing x86 Hardware for Solaris Compatibility

See Solaris for x86 Device Support for the latest list of device support that comes built in to the Solaris OS.

On any x86 system, you can use the Installation Check Tool to determine quickly whether the system is likely to be able to install the Solaris OS.

The Hardware Certification Test Suite (HCTS) includes system certification tests, controller certification tests, a command-line interface , and a browser-based user interface. HCTS tests certify systems, motherboards, and various network, storage, and serial I/O controllers to work with the Solaris OS. HCTS collects log files, determines test pass or fail results, and generates a final test report. Hardware that passes HCTS certification testing is eligible to be included in the Hardware Compatibility List as Certified.

Developing in the x86 Assembly Language

The Solaris OS provides an assembly language for the x86 platform. The x86 Assembly Language Reference Manual describes the assembler that generates code for the 32-bit x86 processor architecture and translates source files that are in assembly language format into object files in linking format. This book describes the syntax of the Solaris x86 assembly language. The book also maps the instruction mnemonics of the Solaris x86 assembly language to the native x86 instruction set.

Developing in the SPARC Assembly Language

The Solaris OS provides an assembly language for the SPARC platform. The SPARC Assembly Language Reference Manual describes the assembler that runs on the SPARC architecture. The assembler translates source files that are in assembly language format into object files in linking format. The book describes the assembler syntax, and the executable and linking format. The relationship between hardware instructions of the SPARC architecture and the assembly language instruction set is discussed. The book also contains a description of the SPARC-V9 instruction set. Appendixes list the pseudo-operations that the SPARC assembler supports, with examples of their use. Other appendixes describe the available assembler command-line options and an example of the correspondence between the assembly code and the C code.

Developing 64–bit Applications for the Solaris OS

The Solaris OS provides a 64–bit computing environment along with backward compatibility for 32–bit applications. The Solaris 64-bit Developer’s Guide is written primarily for the application developer. The book provides guidance for choosing whether to use the 32–bit Solaris application development environment or the 64–bit environment. The manual explains the similarities and differences between the two environments, and explains how to write code that is portable between the two environments. This book also describes some of the tools provided by the operating system for developing 64-bit applications.

Developing for a Cluster Environment

The Solaris OS can be configured into a cluster environment to improve availability. The Sun Cluster Data Services Developer’s Guide for Solaris OS describes the Sun Cluster data service API. Developers can use this API to turn a standard user application such as a web browser or database into a highly available data service that can run in the Sun Cluster environment.

In addition, you can parallelize applications to enable them to reap the benefits of running in a clustered environment. Sun HPC ClusterTools are a set of parallel development tools for high-end distributed memory applications, featuring the Message Passage Interface (MPI) library. See Using Sun HPC ClusterTools for more information.

Network Programming in the Solaris OS

This section provides information on making remote procedure calls, programming a system management agent, and developing web-based enterprise management applications.

Making Remote Procedure Calls

The Solaris OS provides ONC+TM distributed services for making remote procedure calls (RPC). The ONC+ Developer’s Guide describes the ONC+ distributed services that were developed at Sun.

ONC+ technologies consist of a family of technologies, services, and tools:

  • Remote procedure calls (RPC).

  • Transport-independent remote procedure calls (TI-RPC) to make RPC applications transport independent.

  • External data representation (XDR), an architecture-independent specification for representing data.

  • Network Information Services Plus (NIS+), the enterprise naming service in the Solaris environment. This service provides a scalable and secure information base.

The book contains information on the rpcgen tool and the portmap utility. The book also contains code examples on the use of RPC.

Adding Device Management Information to the System Management Agent

The System Management Agent (SMA) is based on the open source Net-SNMP agent. The Solaris System Management Agent Developer’s Guide provides information for developers who want to extend the functionality of the agent. The manual provides information on the creation of Management Information Base (MIB) modules for SMA, and the interfaces that MIB modules use. Modules enable a specific application, device, system, or network to be managed through an SNMP management application. An appendix provides information about migrating an SEA subagent from the Solstice Enterprise AgentsTM software for use in the System Management Agent.

Developing Web-Based Enterprise Management Applications

The Solaris WBEM Developer’s Guide describes the components of the Solaris Web-Based Enterprise Management (WBEM) Software Development Kit (SDK). The manual explains how to use these components to develop WBEM-based applications.

The book describes the following subjects:

  • The Common Information Model (CIM) Object Manager

  • The WBEM Query Language (WQL)

  • Creating JavaBeansTM components with the Managed Object Format (MOF) compiler

  • WBEM security mechanisms

Programming with Solaris Interfaces and Frameworks

This section provides information on interfaces and frameworks that are unique to the Solaris OS.

Multithreaded Programming in the Solaris OS

The Solaris OS provides the ability to develop applications with separate, parallel threads to improve application performance. The Multithreaded Programming Guide covers the POSIX and Solaris threads APIs, programming with synchronization objects, and compiling multithreaded programs. This guide is for developers who want to use multithreading to separate a process into independent execution threads, improving application performance and structure. Appendixes contain examples of code for both POSIX and Solaris threads.

If you are new to multithreaded or parallel programming, see the article Making Sense of Parallel Programming Terms. The article explains terminology and contains links to additional sources of information about parallel programming.

For a more comprehensive understanding of programming with POSIX threads, consider reading the following retail books:

  • Programming with Threads by Steve Klieman, Devang Shah, and Bart Smaalders, 1st edition, January 23, 1996.

  • Programming with POSIX® Threads by David R. Butenhof, 1st edition, May 16, 1997.

Programming Interfaces

The Programming Interfaces Guide describes programming interfaces that are specific to the Solaris environment.

The Programming Interfaces Guide has information on the following subjects:

  • Memory and CPU management

  • Process scheduling

  • Input and output interfaces

  • Interprocess communication and sockets

  • The Transport Layer Interface (TLI) and the X/Open Transport Interface (XTI)

  • Transport selection

  • The Solaris application binary interface

The Solaris OS includes two utilities that enable application developers to verify an application's compliance with the Solaris Application Binary Interface (ABI). Compliance with the Solaris ABI ensures that your code is portable across releases of the Solaris OS. The Solaris ABI defines the interfaces that are available for the use of application developers.

The appcert(1) utility statically examines the Solaris library interfaces used by ELF binaries for instances of private interface usage. The apptrace(1) tool uses the link-auditing capability of the run time linker to dynamically trace library routine calls as the application runs.

Developing Custom Storage Modules for the DHCP Service

The Solaris OS provides Dynamic Host Configuration Protocol (DHCP) services. The Solaris DHCP service provides a framework that enables the development and use of custom databases for storing DHCP data. The Solaris DHCP Service Developer’s Guide describes how to enable the DHCP service to use additional data storage facilities. The manual enables developers to write a module to store DHCP data in a database that is not currently supported by the Solaris DHCP service. The manual gives an overview of the data access framework used by Solaris DHCP and general guidelines for developers. The book also provides sample code templates.

Developing Security Applications and Services in the Solaris OS

The Solaris Security for Developers Guide is for developers of applications that consume security services as well as developers of applications that provide security services. Programming interfaces are documented for the following services: PAM, SASL, GSS-API, the Solaris cryptographic framework, and process privileges. The book provides examples of use for the Generic Security Standard API and the Simple Authentication Security Layer.

Developing Device Drivers

The Solaris OS includes a set of standard interfaces for developing device drivers. The interfaces are known as the DDI/DKI, or Device Driver Interface/Driver-Kernel Interface. The DDI/DKI interfaces enable you to upgrade to a new Solaris release or migrate to a new platform without recompiling your driver. These interfaces are documented in man page section 9, described in Map to the Solaris OS Man Page Collection.

The Device Driver Tutorial provides hands-on information about how to develop device drivers for the Solaris OS. This book includes step-by-step descriptions for writing, building, installing, loading, and testing simple device drivers. This book also gives an overview of the driver development environment and the tools available to develop drivers. Links to driver development resources and techniques for avoiding some driver development problems are also provided.

The Writing Device Drivers manual provides much more complete information about developing drivers for character-oriented devices and block-oriented devices. Specific devices such as network devices, USB devices, and SCSI target and HBA devices are covered as well.

The Writing Device Drivers manual includes the following additional topics:

  • Multithreaded re-entrant drivers

  • Driver autoconfiguration

  • Programmed I/O

  • Direct Memory Access (DMA)

  • Power management

  • Hardening drivers

  • Device context management

  • Compilation, installation, testing, and debugging drivers

  • Guidelines for drivers for 64-bit environments

For more driver development resources, see the Device Drivers section of Software Developer Information Resources and the OpenSolaris Device Drivers Community.

Writing System Resource Management Applications

The Solaris Containers: Resource Management and Solaris Zones Developer’s Guide describes how to write applications that partition and manage system resources such as processor sets and thread scheduling classes. This book references the programming APIs provided to partition, schedule, and set bounds on the consumption of system resources. This book provides programming examples and a discussion of programming issues to consider when writing an application. This book also includes a brief overview of Solaris Zones technology and discusses design considerations for applications that run in zones.

Developing Software for International Audiences

The Solaris OS provides an internationalization architecture to assist in the development, deployment, and management of applications and language services from around the world. A single multilingual product provides support for 39 different languages and 162 locales. In addition, support is available for the complex text layout that is required for Thai and Hindi scripts. Bidirectional text capability is also supported for languages such as Arabic and Hebrew. The International Language Environments Guide describes how to use the current Solaris release to build global software products that support a variety of languages and cultural conventions.