This section provides information on interfaces and frameworks that are unique to the Oracle Solaris OS.
The Oracle Solaris OS provides the ability to develop applications with separate, parallel threads to improve application performance. The Multithreaded Programming Guide covers the POSIX and Oracle 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 Oracle 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.
The Programming Interfaces Guide describes programming interfaces that are specific to the Oracle Solaris environment.
The Programming Interfaces Guide has information on the following subjects:
Memory and CPU management
Input and output interfaces
Interprocess communication and sockets
The Transport Layer Interface (TLI) and the X/Open Transport Interface (XTI)
The Oracle Solaris application binary interface
The Oracle Solaris OS includes two utilities that enable application developers to verify an application's compliance with the Oracle Solaris Application Binary Interface (ABI). Compliance with the Oracle Solaris ABI ensures that your code is portable across releases of the Oracle Solaris OS. The Oracle Solaris ABI defines the interfaces that are available for the use of application developers.
The appcert(1) utility statically examines the Oracle 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.
The Oracle Solaris OS provides Dynamic Host Configuration Protocol (DHCP) services. The Oracle 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 Oracle Solaris DHCP service. The manual gives an overview of the data access framework used by Oracle Solaris DHCP and general guidelines for developers. The book also provides sample code templates.
The Oracle 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 Oracle Solaris cryptographic framework, and process privileges. The book provides examples of use for the Generic Security Standard API and the Simple Authentication Security Layer.
The Oracle 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 Oracle 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 Oracle Solaris OS Man Page Collection.
The Device Driver Tutorial provides hands-on information about how to develop device drivers for the Oracle 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
Direct Memory Access (DMA)
Device context management
Compilation, installation, testing, and debugging drivers
Guidelines for drivers for 64-bit environments
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 Oracle Solaris Zones technology and discusses design considerations for applications that run in zones.
The Oracle 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 Oracle Solaris release to build global software products that support a variety of languages and cultural conventions.