Documentation Home
> ChorusOS 5.0 Application Developer's Guide
ChorusOS 5.0 Application Developer's Guide
Book Information
Preface
Part I Basic Application Development
Chapter 1 ChorusOS Development Environment
Overview of the Sun Embedded Workshop Development Environment
Target Software Architecture
Protocols for Communicating Between the Host and Target
Host and Target Development Tools
Development Environment Components
Configuration Tools
Chapter 2 Getting Started
General Principles
Programming Conventions
Program Entry Point
Libraries
Supervisor Application Binaries
User Application Binaries
Before Starting
Target File System Setup
Building the Target NFS Root
Creating a Basic Application
Creating a Basic "Hello" Application
Running the Application
Debugging in ChorusOS Systems
Chapter 3 ChorusOS Actors and Processes
ChorusOS Application Types
Processes
ChorusOS Actors
Commonalities Between Processes and Actors
Actor and Process Identification
User and Supervisor Processes and Actors
Execution Environment of Actors and Processes
Application Context
Standard I/O
Allocating Memory
Terminating an Application
Spawning a Process or Actor
Spawning a Process
Spawning an Actor
Deleting Actors and Processes
Process and Actor Commands
Launching a Process or Actor Using arun
Listing Processes Using aps
Killing Processes Using akill
Chapter 4 Building Makefiles and Configuring the System Image
Building Makefiles with ChorusOSMkMf
ChorusOS Configuration Files
The ChorusOS System Image
ChorusOS Configuration Tools
Using Ews
Adding an Application to the System Image
Adding a Boot Actor With Ews
Rebuilding the System Image
Adding a Non-Boot Application
Part II ChorusOS APIs
Chapter 5 Introduction to ChorusOS Applications
About ChorusOS Applications
Application Types
ChorusOS APIs
Naming Conventions
ChorusOS Microkernel APIs
ChorusOS POSIX APIs and Extensions
POSIX API Libraries
libc.a/libc.so and libstdc++.a
Other Libraries
POSIX Extensions
Multithreading
Mathematical API
ChorusOS API Restrictions
Chapter 6 Building Applications for ChorusOS Systems
Using make and imake
The make Environment
The imake Environment
imake Variable Definitions
imake Build Rules
imake Packaging Rules
imake Examples
Using imake with Multiple Source Files
Libraries, Actors and Processes
Library Types
Actors, Processes and Libraries
Static and Dynamic Linking
Runtime Linker
Environment Variables
Supported Features
Dynamic Programming
Building a Dynamic Library
Building a Dynamic Process
Building a Shared Library
Building a Shared Process
Examples of Dynamic and Shared Applications
Dynamic Link at Application Start-up
Explicit Link of a Dynamic Library Using dlopen
Dynamic Link of a Shared Library at Application Start-up
Explicit Linking of a Shared Library Using dlopen
Chapter 7 ChorusOS Threads
Working with Threads
Creating a Thread
Deleting a Thread
Multithreaded Programming
Managing Per-Thread Data
Threads and Libraries
Chapter 8 Native Memory Management
Managing Memory
Memory Region Descriptors
Allocating and Freeing Memory Regions
Sharing Memory Between Applications
Chapter 9 Scheduling and Synchronization
Setting Scheduling Attributes
Semaphores
Using Semaphores
Mutual Exclusion Locks
Chapter 10 Local Access Points
Local Access Points in ChorusOS Systems
The LAPBIND Feature
The LAPSAFE Feature
Using Local Access Points
Chapter 11 Native Messaging and Interprocess Communications
ChorusOS Message Queues (MIPC)
Using ChorusOS Message Queues
ChorusOS IPC
How IPC Works
Message Handlers
IPC_REMOTE
Using IPC
Deciding Which Message Service to Use
Benefits of Using MIPC
Benefits of Using IPC
Chapter 12 Time Management
Time Management Services
Clock Service (tick)
Handling the Clock
Date
Using the Date Service
The Timeout Service
Using Time Outs
Timers
Using Timers
Chapter 13 Exceptions
Exception Handlers
Abort Handlers
Using Abort Handlers
Trap Handlers
Using Trap Handlers
Chapter 14 Analyzing System Failure : Black Boxes, Watchdog Timers, and Logging
Software Black Box
Black Box APIs
Using the Black Box
Filtering APIs
Using the Filtering APIs
Watchdog Timer
Using a Watchdog Timer
System Logging
Using System Logging
Chapter 15 Recovering From Application Failure: Hot Restart
Getting Started with Hot Restart
System configuration
Features
Memory Requirements and Design Constraints
Tunable Parameters
Building the System Image
Running the Hot Restart Demonstration Program
Using Persistent Memory
Introduction to Persistent Memory Programming
A Basic Application
Allocating and Retrieving a Persistent Memory Block
Freeing a Persistent Memory Block
Responsibility
Freeing a Persistent Memory Block Explicitly
Using Restartable Processes
Introduction
Types of Restartable Processes
Restartable Process Credentials
Restartable Processes and Persistent Memory
The Restartable Process Lifecycle
Initial Load
Group Restart
Freeing Persistent Memory
Clean Termination
Group Termination
Killing Restartable Processes
Site Restart
Putting It All Together: the restartSpawn Example Program
Hot Restart Programming Environment
Hot Restart Header Files and Directories
Make Environment
Example Application Code
Compiling and Running the Examples
The "hello world" Restartable process
helloRestart.c
Imakefile for helloRestart.c
The restartSpawn Example
HR_parent.c
HR_child.c
Imakefile for HR_parent.c and HR_child.c
Part III Advanced Topics
Chapter 16 Compatibility With POSIX Standards
Divergence From POSIX Standards
Process Management
Signals
Input and Output
System Databases
Synchronization
Memory Management
Threads
Realtime Files and System Calls
ChorusOS Services Derived From FreeBSD
Chapter 17 Performance Profiling
Introduction to Performance Profiling
Preparing to Create a Performance Profile
Configuring the System
Compiling the Application
Launching a Performance Profiled Application
Running a Performance Profiling Session
Starting a Performance Profiling Session
Stopping a Performance Profiling Session
Generating Performance Profiling Reports
Analyzing Performance Profiling Reports
Function Header
Call Graph Description
Sample Profiling Report
Performance Profiler Description
Performance Profiling Library
Performance Profiler Server
Performance Profiling Clock
Notes About Accuracy
Index
A
B
C
D
E
F
H
I
K
L
M
O
P
R
S
T
© 2010, Oracle Corporation and/or its affiliates