JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Programming Interfaces Guide     Oracle Solaris 11.1 Information Library
search filter icon
search icon

Document Information

Preface

1.  Memory and CPU Management

2.  Session Description Protocol API

3.  Process Scheduler

4.  Locality Group APIs

5.  Input/Output Interfaces

6.  Interprocess Communication

7.  Socket Interfaces

8.  Programming With XTI and TLI

9.  Packet Filtering Hooks

10.  Transport Selection and Name-to-Address Mapping

11.  Real-time Programming and Administration

12.  The Oracle Solaris ABI and ABI Tools

A.  UNIX Domain Sockets

Index

Preface

The Programming Interfaces Guide describes the Oracle Solaris 11 network and system interfaces used by application developers.

SunOS 5.11 is the core of the Oracle Solaris 11 Operating System (Oracle Solaris OS), and conforms to the third edition of the System V Interface Description (SVID) and to the Single UNIX Specification, version 3 (SUSv3). SunOS 5.11 is fully compatible with UNIX System V, Release 4 (SVR4), and supports all System V network services.


Note - This Oracle Solaris release supports systems that use the SPARC and x86 families of processor architectures. The supported systems appear in the Oracle Solaris OS: Hardware Compatibility Lists http://www.oracle.com/webfolder/technetwork/hcl/index.html. This document cites any implementation differences between the platform types.


Audience

This book is intended for programmers who are new to theOracle Solaris platform or want more familiarity with some portion of the interfaces provided. Additional interfaces and facilities for networked applications are described in the ONC+ Developer’s Guide.

This manual assumes a familiarity with secure programming techniques, as communication with other systems or processes provides avenues for hackers to launch attacks. Appendix A, Secure Coding Guidelines for Developers, in Developer’s Guide to Oracle Solaris 11 Security contains information about issues that programmers should pay attention to when coding network applications. The chapter also contains information on the interfaces provided by the Oracle Solaris operating system to help make your application more resilient and secure.

This manual also assumes basic competence in programming, a working familiarity with the C programming language, and familiarity with the UNIX operating system, particularly networking concepts. For more information on UNIX networking basics, see the following books:

Organization of the Manual

The services and capabilities of the basic system interfaces and basic network interfaces of the Oracle Solaris OS platform are described in the following chapters.

Chapter 1, Memory and CPU Management describes the interfaces that create and manage memory mappings, do high performance file I/O, and control other aspects of memory management.

Chapter 2, Session Description Protocol API describes the API framework and library functions for the Solaris implementation of the Session Description Protocol (SDP).

Chapter 3, Process Scheduler describes the operation of the SunOS process scheduler, modification of the scheduler's behavior, the scheduler's interactions with process management interfaces, and performance effects.

Chapter 4, Locality Group APIs describes the interfaces used to control the behavior and structure of locality groups and resource priority for threads within those groups.

Chapter 5, Input/Output Interfaces describes basic and old-style buffered file I/O and other elements of I/O.

Chapter 6, Interprocess Communication describes older forms of non-networked interprocess communication.

Chapter 7, Socket Interfaces describes the use of sockets, which are the basic mode of networked communication.

Chapter 8, Programming With XTI and TLI describes the use of XTI and TLI to do transport-independent networked communication.

Chapter 9, Packet Filtering Hooks describes interfaces for developing network solutions at the kernel level such as security (packet filtering and firewall) solutions and network address translation (NAT) solutions.

Chapter 10, Transport Selection and Name-to-Address Mapping describes the network selection mechanisms used by applications to select a network transport and its configuration.

Chapter 11, Real-time Programming and Administration describes real-time programming facilities in the SunOS environment and their use.

Chapter 12, The Oracle Solaris ABI and ABI Tools describes the Oracle Solaris Application Binary Interface (ABI) and the tools used to verify an application's compliance with the Oracle Solaris ABI, appcert and apptrace.

Appendix A, UNIX Domain Sockets describes UNIX domain sockets.

Access to Oracle Support

Oracle customers have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.

Typographic Conventions

The following table describes the typographic conventions that are used in this book.

Table P-1 Typographic Conventions

Typeface
Description
Example
AaBbCc123
The names of commands, files, and directories, and onscreen computer output
Edit your .login file.

Use ls -a to list all files.

machine_name% you have mail.

AaBbCc123
What you type, contrasted with onscreen computer output
machine_name% su

Password:

aabbcc123
Placeholder: replace with a real name or value
The command to remove a file is rm filename.
AaBbCc123
Book titles, new terms, and terms to be emphasized
Read Chapter 6 in the User's Guide.

A cache is a copy that is stored locally.

Do not save the file.

Note: Some emphasized items appear bold online.

Shell Prompts in Command Examples

The following table shows the default UNIX system prompt and superuser prompt for shells that are included in the Oracle Solaris OS. Note that the default system prompt that is displayed in command examples varies, depending on the Oracle Solaris release.

Table P-2 Shell Prompts

Shell
Prompt
Bash shell, Korn shell, and Bourne shell
$
Bash shell, Korn shell, and Bourne shell for superuser
#
C shell
machine_name%
C shell for superuser
machine_name#