Software Developer Kit Introduction
  Search only this book
Download this book in PDF

SDK Components

2

The SDK is made up of individual software technologies and supporting documentation. The software technologies and the supporting documentation are called the components of the SDK. This chapter describes each SDK component and tells you about the documentation associated with that component. If a component has features that are new in the Solaris 2.4 release; they are listed. At the end of this chapter, documentation that supports software development, but is not closely associated with a software component of the SDK, is listed and described.

Multithreaded Programming

The operating system kernel is multithreaded, allowing for asymmetric, multiple processors to execute the kernel at the same time. This allows for application concurrence, or the execution of applications written as independent computations. The multithreaded kernel is on the Solaris CD-ROM disc. For further information, see the Multithreaded Programming Guide, which introduces multithread programming concepts and describes basic use of threads, synchronization functions, and the Solaris two-level model.

STREAMS Framework

STREAMS, a framework for character I/O, is implemented throughout the operating system. The STREAMS framework provides you with:
  • Integral functions.
  • A set of utility routines.
  • Facilities that expedite software design and implementation.
For further information on the STREAMS framework, see the STREAMS Programmer's Guide which provides information on the use of the STREAMS mechanism at user and kernel levels.

Network Applications

In a Solaris development environment, you can write network applications without coding the details of specific protocols and address formats. This is network transport independence. The Solaris programming environment provides these capabilities through the ONC+ facilities. ONC+ is a family of network protocols for connecting large heterogeneous networks.
Remote procedure call (RPC), which is included in ONC+, enables an application to execute procedures on remote systems over a network. The transport layer interface (TLI) makes a protocol-enhanced RPC enabling RPC programs to run across multiple network transports. External data representation (XDR) in ONC+ allows applications to exchange data across heterogeneous hardware systems. The rpcgen tool for RPC is included as a standard part of Solaris programming environment. You can use the rpcgen tool to generate templates for client programs and server routines in a high-level, C-like language called RPC language. The code generator creates the necessary RPC code to be included in the client and server pieces of the application.
For further information, see the Network Interfaces Programmer's Guide, which describes the use of basic, intermediate, and high-level facilities to:
  • Develop distributed applications
  • Convert existing applications from single-computer to distributed-computer
  • Maintain distributed applications in the Solaris 2.x environment.

New Features

There is a new networking interface in the Solaris 2.4 release. It is the multithreaded-safe server remote procedure call (RPC) interface. The multithreaded-safe client RPC interface was new in the Solaris 2.3 release. You may invoke these interfaces to put a server into one of two multithreaded
modes: auto mode or user mode. The auto mode is easy to use and powerful. The user mode requires that you know more about multithreaded interfaces and issues, but offers more flexibility. These RPC interfaces are described in the Network Interfaces Programmer's Guide.

ToolTalk Messaging Services

The ToolTalk service included in the Solaris development environment is a network-spanning, interprocess messaging system. Applications can create, send, and receive messages by calling ToolTalk functions from the ToolTalk application-programming interface (API) library. The ToolTalk service enables independent applications to communicate with other applications without having direct knowledge of each other. The ToolTalk service allows one application to effectively be replaced with another application as long as both applications support the same ToolTalk interface. For further information on the ToolTalk service, see:
  • ToolTalk User's Guide--This guide describes ToolTalk. It discusses ToolTalk functionality, including modifying applications to use ToolTalk. It describes ToolTalk messaging and message sets. Use this guide if you are creating or maintaining ToolTalk applications, or if you are a system administrator supporting ToolTalk developers.
  • ToolTalk Reference Manual--This manual describes the API components, commands, and error messages.
  • ToolTalk White Paper--This paper provides a brief and high-level discussion of ToolTalk features and benefits. Read this paper if you want a quick overview of ToolTalk.
  • Introduction to the ToolTalk Service White Paper--This paper gives an introduction to ToolTalk. It discusses how ToolTalk can fit into a system and a product strategy. This paper is for non-developers who want to understand what ToolTalk is and how it can relate to their products.
  • The ToolTalk Service White Paper--This papers gives a technical introduction to ToolTalk, models, services, and terminology. It contains an overview of all basic ToolTalk capabilities, what they do, and how you would use them. Read this paper if you want to evaluate or use ToolTalk.
  • Designing and Writing a ToolTalk Procedural Protocol--This paper describes the general principles for designing, writing, and implementing ToolTalk protocols.
  • The ToolTalk Desktop Services Message Set White Paper--This paper describes a basic set of ToolTalk messages that are designed to facilitate control and cooperation among clients on a desktop (for example, launching, halting, control, or passing output from one client to another).
  • The ToolTalk Document and Media Exchange Message Set White Paper--This paper describes a set of ToolTalk messages designed to facilitate the exchange of multimedia data (for example, graphics, sound, video) among cooperating applications.
  • A Simple Demonstration of How the ToolTalk Service Works--This paper explains how to design and build applications that interoperate with other applications that are using the ToolTalk service.
  • The ToolTalk Service and Project DOE Relationship--This paper describes the relationship between the ToolTalk Service and the direct object environment (DOE) project at SunSoft.
  • The Messaging Object Service--This paper describes the messaging-object-service for project-DOE objects and how you can use this service in your object oriented applications. It also describes how applications can send, specify, and receive other applications.

VISUAL for Solaris

The VISUAL for Solaris environment includes several graphics and multimedia software foundation libraries. Foundation libraries are the lowest-level device-independent layer of the Solaris software. This level of interface is designed to support a wide variety of common functions. You can build higher-level libraries on top of the foundation libraries, or the foundation libraries can be used directly by a software application. These foundation libraries enable you to create applications that incorporate 2-D and 3-D graphics, imaging, and digital video. The libraries are the XGL graphics library (which serves as a foundation library for Solaris PEX) and the XIL imaging library.
The VISUAL for Solaris environment also includes the OpenWindows X Server and libraries (X11/Xlib) and the Display PostScript (DPS) libraries.
For further information on the VISUAL for Solaris environment, see the Solaris Visual White Paper, which gives an overview and philosophy of the VISUAL for Solaris environment.

Solaris XGL 3.1 Graphics Library

The Solaris XGL Graphics Library is a graphics interface, providing foundation-level geometry graphics support for Solaris-based applications. The XGL graphics library is both an API and a geometry foundation library that provides:
  • A set of low-level graphics primitive operations for 2-D and 3-D geometric applications.
  • High performance rendering capabilities for a wide variety of graphics operations across numerous graphics hardware platforms.
  • An API that presents an immediate-mode graphics programming model.
  • Support for graphics-based applications, such as CAD programs.
  • A foundation library for higher-level graphics APIs, such as PEXlib, PHIGS, and GKS.
The XGL runtime library is delivered on the Solaris 2.4 CD-ROM disc. The XGL developer libraries and documentation are delivered on the SDK CD-ROM disc. For further information on the XGL graphics library, see the following documents:
  • XGL Programmer's Guide--This guide provides information and example programs that you can use if you are writing applications using the XGL graphics library.
  • XGL Reference Manual--This manual includes the manual pages that describe the syntax for using the operators (functions) and attributes in the XGL graphics library.
  • The XGL White Paper--This paper describes the purpose, structure, and features of functions in the XGL graphics library.

Solaris PEX 2.2

The PEX runtime environment is an implementation of the X Consortium PEX specification. The PEX client-side runtime library (PEXlib) is an extension to the X Window System for support of fully accelerated distributed 3-D graphics.
PEX software consists of PEXlib and a PEX server-extension shared-object file. PEXlib is an application programmer interface to the PEX protocol in the same way that Xlib is an application programmer interface to the core X protocol.
PEXlib provides application portability across hardware platforms and enables 3-D graphics rendering on local and remote displays. The PEX runtime packages are on the Solaris 2.4 CD-ROM disc.

Note - See the Software Developer Kit Installation Guide for special instructions on how to install the PEX software packages.

The PEXlib implementation for the Solaris 2.4 release is based on the PEXlib--Specification and C Language Binding: Version 5.1, which is available from the X Consortium. The PEX server is based on the PEX Protocol Specification, Version 5.1P. Portable additions to PEXlib and the PEX server are from the Common Open Software Environment's Common Graphics Environment (CGE) PEX 5.1 Specification. For further information on PEX, see the following documentation:
  • PEXlib Programming Manual, O'Reilly and Associates, Inc.--This manual describes PEXlib, the programming library for 3-D graphics, and how to use it. It also recommends how to write PEXlib programs for better interoperability across any vendor's PEX implementation.
  • PEXlib Reference Manual, O'Reilly and Associates, Inc.--This manual contains manual pages for each PEXlib routine.
  • Solaris PEX 2.2 Implementation Specification--This specification describes PEX software implementation and limitations.
  • CGE PEX 5.1 Portability Guide--This guide assists you in creating portable and interoperable PEXlib applications across platforms supporting the CGE.

Solaris XIL 1.2 Imaging Library

The XIL 1.2 Imaging Library is a foundation library that provides image processing and digital-video applications. The ISV interface enables you to access the functions in the library as C subroutines. The XIL imaging library supports:
  • Image processing
  • Image compression
  • A wide variety of general digital video applications
  • Higher level APIs
All users who are running the Solaris operating system can run XIL applications because the XIL runtime environment is included with the Solaris software. For further information on the XIL imaging libraries, see:
  • XIL Programmer's Guide--This guide describes, in detail, how to use the XIL imaging library to create imaging or video applications. It includes discussion of input, output, and error handling. It also describes image-processing functions and covers using the XIL imaging library to compress and decompress sequences of digital images.
  • XIL Reference Manual--This manual contains all the manual pages available with the XIL imaging library.
  • The XIL White Paper--This paper describes the purpose, structure, and features of functions in the XIL imaging library.

Open Windows Libraries and OpenWindows X Server 3.4

OpenWindows, the X-based window system environment, is a standard part of the Solaris development environment. The OpenWindows environment is network-based, offering the X protocol interface. An application that you write in this environment can take advantage of multiple machines distributed over the network. The OpenWindows libraries (X11/Xlib, and Display PostScript) and the OpenWindows X Server are on the Solaris CD-ROM disc. For more information on Openwindows libraries and the OpenWindows X Server, see the following manuals:

New Features

With the Solaris 2.4 release, the following OpenWindows X Server features are new:
  • Support for x86 and SPARC architectures
  • An addition to the graphics porting interface (GPI) to support transparent overlays
  • An enhanced direct graphics access (DGA) drawable interface
  • OWconfig file format enhancements

Windows Graphical User Interface Toolkits

There are three window graphical user interface (GUI) toolkits available for application development:
  • Motif
  • XView
  • OLIT
The Motif toolkit supports the Motif graphical user interface and is delivered through the SDK. XView and OLIT support the OPEN LOOK graphical user interface and are delivered as a standard part of the Solaris release. All three toolkits provide the routines and libraries for designing user interfaces and handling events such as mouse pointing and user input.
The Motif toolkit is the SunSoft strategic-toolkit for the future. If you are planning to develop new applications, SunSoft strongly encourages you to use the Motif toolkit. If you have existing applications based on XView or OLIT you can continue to do application enhancement or maintenance using the XView or OLIT toolkits.

Motif Toolkit

The Motif toolkit gives you a head start in creating applications for the new Common Desktop Environment (CDE). It includes a comprehensive set of tools that include the:
  • Motif libraries
  • Motif window manager
  • User interface language (UIL) compiler
The Motif toolkit is based on the industry standard X Window System and X Toolkit Intrinsics from the X Consortium. It works with X11R5 libraries, making it portable across a range of hardware platforms. The Motif toolkit also offers a set of drag-and-drop operations, enabling you to create graphical user models for data selection and transfer. The UIL compiler enables rapid user-interface design and prototyping without requiring massive amounts of code, significantly reducing application development time.
The Motif runtime libraries and header files are on the Solaris 2.4 CD-ROM disc in the SUNWmfrun package. The SUNWmfrun package is in the All or Developer cluster of the Solaris 2.4 release. For further information on the Motif toolkit, see the following documents:
  • OSF Application Environment Specification (AES) User Environment Volume, Revision C, PTR Prentice Hall--This specification describes how to use the Open Software Foundation (OSF) and Motif GUI. It describes how to manipulate windows on-screen, use applications written for the Motif environment, and customize the Motif desktop environment.
  • OSF/Motif Programmer's Guide, Release 1.2, PTR Prentice Hall--This guide describes how to use the OSF/Motif API to create Motif applications. It gives an overview of the Motif widget-set architecture, explains Motif toolkit features, and presents a model and examples for constructing Motif applications.
  • OSF/Motif Programmer's Reference, Release 1.2, PTR Prentice Hall--This manual describes the API for the OSF/Motif GUI. It is a reference manual for OSF/Motif commands and functions (it describes all toolkit, window manager, and user interface language commands and functions).
  • OSF/Motif 1.2 Style Guide, PTR Prentice Hall--This guide describes the behavior specifications of the OSF/Motif GUI. It guides application developers, widget developers, user interface system developers, and window manager developers in the design and implementation of new products consistent with the OSF/Motif user interface.
  • OPEN LOOK to Motif GUI Transition Guide--This guide describes how to migrate from OPEN LOOK to Motif with the Motif 1.2.3 toolkit.

New Features

With the Solaris 2.4 release, the following Motif Toolkit features are new:
  • The Motif release is upgraded from 1.2.2 to 1.2.3.
  • The API and form widget implementation are now completely in line with the OSF standard. See the OPEN LOOK to Motif GUI Transition Guide for more information.

XView Toolkit

The XView toolkit is an X11 Windows System-based user-interface toolkit. It supplies you with a set of prebuilt OPEN LOOK objects such as buttons and menus. You can use these objects to build OPEN LOOK-compliant applications. See the XView Developer's Notes, which include XView developer information not present in the O'Reilly XView documentation set. These notes contain two parts:
  • Motif interoperability and XView panel issues
  • Internationalizing XView applications.

OPEN LOOK Intrinsics Toolkit

The OPEN LOOK Intrinsics Toolkit (OLIT) is an X Window System-based widget set and library that you can use to create applications supporting the OPEN LOOK graphical interface. Widgets are user interface objects such as:
  • Buttons
  • Scrollbars
  • Control areas
  • Text edit areas
  • drawing areas
When you create and manipulate widgets with the OPEN LOOK Intrinsics Toolkit, you can create an OPEN LOOK user interface for your application. See the following documents for more information on OLIT:
  • OLIT Reference Manual--This manual provides descriptions of the OLIT widget set and related convenience functions that you can use with the widget set. It guides you in developing internationalized OLIT applications using these widgets and functions.

OpenWindows 3.0.1 Developer's Guide

The OpenWindows Developer's Guide (Devguide) is a GUI builder for developing OPEN LOOK applications. It is designed to make your job easier. Devguide is a programming tool that lets you create and try user interfaces without writing any code. Because you can create and modify an interface easily, you can concentrate on designing and testing interfaces and enhancing functionality, rather than on coding.
Once you finish with interface design, you can save significant time and reduce cost by using one of the included code generators, gxv or golit, to generate XView or OLIT application code.
Most of the principles common to the OpenWindows environment are present in Devguide. You can select, drag, and drop objects using a mouse to quickly create and test an interface design before any code is created. Devguide enables you to create applications that integrate with the Solaris DeskSet(TM) environment, not only in look and feel, but also in interoperability. This capability provides you with a consistent and easy-to-use desktop.
Devguide also enables you to create applications that can be easily localized for the international market. For more information on Devguide see the following documents:

Devguide Motif Utilities

Devguide Motif utilities enable you to migrate Devguide-generated OPEN LOOK applications to Motif. The code generators, gmf and guil, take the Devguide user interface GIL files and output Motif C and Motif UIL source code, respectively. You can continue to add C code to the Motif or UIL code to complete an application. The generated UIL Motif code can also be fed back into a third party Motif GUI builder for further development and testing. For further information on Devguide Motif utilities, see the OPEN LOOK to Motif GUI Transition Guide, which describes how to migrate from OPEN LOOK to Motif applications with the Motif 1.2.3 toolkit.

Supplemental On-line Documentation

In addition to the documents described in the component sections of this chapter, the following on-line documentation is also provided with the SDK. This documentation is available in three on-line documentation sets called:
  • Solaris 2.4 Software Developer AnswerBook
  • Solaris 2.4 Reference Manual AnswerBook
  • Solaris 2.4 Supplemental Developer AnswerBook
For a complete list of SDK documentation, see "A Complete List of SDK Documentation" on page 25.
These documents are in the Solaris 2.4 Software Developer AnswerBook on-line documentation set:
  • System Services Guide--This guide describes the operating-system services. It also provides information for experienced programmers and system administrators writing or administering real-time applications.
  • Standards Conformance Reference Manual--This manual describes how the Solaris programming environment and the operating system comply to such industry standards as the:

    TM · Application Binary Interface, X/Open

    · IEEE Standard 1003.1 (Posix.1)

  • SPARC Compliance Definition
If you adhere to the guidelines in this manual, you can write applications that are consistent across conforming systems.
  • Programming Utilities Guide--This guide describes the following built-in operating system programming tools: m4, make, sccs, lex, prof, yacc, and System V make.
  • SPARC Assembly Language Reference Manual--This manual describes the SPARC Assembler. It includes the Assembler syntax, executable and linking format, conversion of files, and instruction-set mapping.
  • Linker and Libraries Guide--This manual describes the operations of the operating system linker and libraries, summarizes their mechanisms, and describes how to use them to build executable programs and libraries.
  • Solaris Binary Compatibility Guide--This guide describes how to use the binary compatibility package, which supports SunOS 4.x applications in the SunOS 5.4 environment.
  • Solaris Source Compatibility Guide--This guide describes how the SunOS/BSD Source Compatibility Package supports the SunOS 4.x commands, library routines, and files in the SunOS 5.4 environment.
  • Desktop Integration Guide--This guide instructs ISVs who wish to integrate their applications with other applications and tools that run in the OpenWindows environment.
The following documents are provided in the Solaris 2.4 Reference Manual AnswerBook on-line documentation set:
The following document is provided in the Solaris 2.4 Supplemental Developer AnswerBook on-line documentation set:
  • Application Packaging Developer's Guide--This guide describes how to create an installable package for application software and gives examples of package creation. It also describes how to create a CD-ROM disc that contains a package.