Documentation Home
> ChorusOS 4.0 Introduction
ChorusOS 4.0 Introduction
Book Information
Preface
Part I Technical Overview
Chapter 1 Technical Overview
Introduction to Sun Embedded Workshop
Sun Embedded Workshop Components
Supported Processor Families
Features and Benefits
Multi-platform Development Environment
Portable Binary System
Super-Configurability
High Availability
Memory Protection
Hot Restart
Dynamic Reconfiguration
Support for Legacy APIs
Support for Java(TM) Applications
Transparent Inter-Process Communication (IPC)
Operating System Components
The Core Executive
Optional Operating System Services
Actor Management
ACTOR_EXTENDED_MNGT
USER_MODE
DYNAMIC_LIB
GZ_FILE
Scheduling
ROUND_ROBIN
Memory Management
VIRTUAL_ADDRESS_SPACE
ON_DEMAND_PAGING
Hot Restart and Persistent Memory Management
Inter-thread communication
SEM
EVENT
RTMUTEX
Time Management
TIMER
VTIMER
DATE
RTC
Inter-process communication
IPC
IPC_REMOTE
IPC_REMOTE_COMM
MIPC
POSIX_MQ
POSIX_SHM
LAP
LAPBIND
LAPSAFE
Tools support
LOG
PERF
MON
DEBUG_SYSTEM
C_INIT Options
LOCAL_CONSOLE
RSH
File System Options
FIFOFS
NFS_CLIENT
NFS_SERVER
MSDOSFS
UFS
I/O Management
BPF
FS_MAPPER
IDE_DISK
DEV_MEM
RAM_DISK
FLASH
VTTY
SCSI_DISK
IOM_IPC
IOM_OSI
Networking
SLIP
POSIX_SOCKETS
PPP
AF_LOCAL
Administration
ADMIN_CHORUSSTAT
ADMIN_IFCONFIG
ADMIN_MOUNT
ADMIN_RARP
ADMIN_ROUTE
ADMIN_SHUTDOWN
ADMIN_NETSTAT
Configuring ChorusOS
The Extended Profile
The Basic Profile
Development Environment Components
Debugging Architecture
Management Utilities
Development Lifecycle
Installing Sun Embedded Workshop
Installing the Development Environment
Installing a Boot Server
Installing on a Target System
Developing an Application
Configuring the System
Writing an Application
Tuning
Developing a System
Part II Using ChorusOS
Chapter 2 Using ChorusOS
The ChorusOS System Image
Downloading the System Image
Basic Environment
Building an Application Actor
Embedding your Actor in the System Image
Running your Actor in the Basic Environment
Extended Environment
Communicating with the Target Using rsh
Mounting the Host File System
Security
Running the "Hello World" Example
Input/Output Management
System Administration in the Extended Environment
C_INIT Actor
System Start-up
Initialization Examples
Chapter 3 Configuring and Tuning
Configuration Options
Feature Options
Configuration Profiles
Tunable Parameters
Static Parameters
Dynamic Parameters
System Image Components
Configuration Files
Configuration Tools
Graphical Configuration Tool
User Interface Overview
Navigation Pane
Other Windows
Configuring a ChorusOS Operating System Image
Open a Configuration File
Browse the Configuration Tree
Disabled Elements
Invalid Elements
Configuring the Features and Tunables
Setting a ChorusOS operating system Environment Variable
Adding an Environment Variable
Modifying the Value of an Environment Variable
Deleting an Environment Variable
Adding an Actor to the ChorusOS System Image
Saving the Modified Configuration
Rebuilding the System Image
Command-line Configuration Tool
Displaying the Configuration
Selecting a Configuration Profile
Adding, Removing, or Listing a Feature
Adding a Feature
Removing a Feature
Listing a Feature
Changing Tunable Parameter Values
Modifying the System Environment
Rebuilding the System Image
Part III Programming Overview
Chapter 4 Programming Overview
ChorusOS Applications
Programming Conventions
General Principles
Program Entry Point
Libraries
Supervisor Actor Binaries
User Actor Binaries
Application Programming Interfaces
Naming Conventions
Basic Environment APIs
Extended Environment API
Other APIs
POSIX Micro Real-time Profile API
Mathematical API
Sun RPC API
GNU 2.7.1 C++ API
Multithreading
Header Files
Developing ChorusOS Applications
make Environment
imake Environment
imake Variable Definitions
imake Build Rules
imake Packaging Rules
Examples
Simple imake Example
imake with Multiple Source Files
Using Dynamic Libraries
Static and Dynamic Linking
Building a Dynamic Library
Building a Dynamic Program
Dynamic Programming
Runtime Linker
Environment Variables
Supported Features
Examples
Dynamic Link at Actor Start-up
Building the Dynamic Library
Building the Dynamic Program
Running the Dynamic Program
Explicit Link Using dlopen
Building the Program and the Library
Running the Dynamic Program
Chapter 5 Using Actors
Actor Definition
Naming Actors
User and Supervisor Actors
Loading Actors
Boot Actors
Loading Actors Dynamically
Execution Environment of Actors
Actor Context
Standard Input/Output (I/O)
Allocating Memory
Terminating an Actor
Spawning an Actor
Chapter 6 Multithreaded Programming with the ChorusOS Operating System
Basic Multi-Thread Programming
Thread Handling
Getting a Thread Identifier
Creating a Thread
Deleting a Thread
Synchronizing Threads
Semaphores
Mutexes
Basic Scheduling Control
Managing Per-Thread Data
Threads and Libraries
Chapter 7 Memory Management
Memory Region Descriptors
Allocating and Freeing Memory Regions
Sharing Memory Between Two Actors
Chapter 8 Inter-actor Communication
Introduction
Message Queues
Local Access Points
IPC
Chapter 9 Time Management
Time Management Services
Current Time
Timers
Part IV Debugging and Performance Profiling
Chapter 10 System and Application Debugging
Preparing the System for Symbolic Debugging
Compiling for Debugging
Enabling Debugging for Components Built with imake
Enabling Debugging for Components Built with mkmk
Configuring the Debug Agent
Application Debugging Architecture
Architecture Overview
Setting up a Debugging Session
RDBC Configuration and Usage
System Debugging Architecture
Architecture Overview
Setting up a Debugging Session
Starting and Configuring the ChorusOS DebugServer
Identifying the Serial Device
DebugServer Slot Numbers
DebugServer Environment Variable
DebugServer Configuration File
Starting the DebugServer
Stopping the DebugServer
Registering a Target
Updating Target Information
Deactivating a Target
Reactivating a Target
Removing a Target
RDBS Configuration and Usage
Concurrent System and Application Debugging
Example XRAY/RDBS debug session
The chls tool
Troubleshooting
Sample XRAY Start-up Script
Chapter 11 Performance Profiling
Introduction to Performance Profiling
Preparing to Create a Performance Profile
Configuring the System
Compiling the Application
Launching the Performance Profiled Application
Running a Performance Profiling Session
Starting the Performance Profiling Session
Stopping the Performance Profiling Session
Generating Performance Profiling Reports
Analyzing Performance Profiling Reports
Performance Profiler Description
The Performance Profiling Library
The Performance Profiler Server
The Performance Profiling Clock
Notes About Accuracy
Appendix A Configuring IPC
Generic IPC Configuration
IPC Feature Configuration
Site Number Administration
Specific IPC Configuration
Remote IPC over Ethernet Data-link
Remote IPC over VME Bus
Glossary
Index
A
B
C
D
E
F
G
H
I
L
M
N
O
P
R
S
T
U
V
W
X
© 2010, Oracle Corporation and/or its affiliates