The development environment provided in Sun Embedded Workshop has the following major components:
A C and C++ Development Toolchain, including the GNU gcc and g++ cross-compilers, which are widely-recognized as amongst the best C and C++ compilers available on the market in terms of robustness, efficiency, and speed.
A new debugging framework and a C and C++ reference debugger, Mentor Graphics Corporation XRAY Debugger for ChorusOS, which offers the following features:
Easy-to-use graphical user interface
Support for debugging several applications running on multiple targets with different processor architectures
Multithreaded user and supervisor applications, including relocatable ones, can be debugged
Flexible thread handling: one window per thread, breakpoint per thread or per application
The ChorusOS operating system abstractions related to debugged applications or global to the system can be visualized
Application debug over Ethernet or serial line, and system debug over a serial line.
Configuration Tools: The ChorusOS operating system is configured simply by providing a list of the components that are required. Sun Embedded Workshop 4.0 includes a graphical tool, called ews, for configuring the system. This tool provides a user-friendly interface for configuring the ChorusOS operating system, and shows the dependencies between components. A command-line interface for configuration is also available. In addition to the ability to select only the components required for the operating system, Sun Embedded Workshop 4.0 supports three other levels of system configuration:
Resources. For the list of selected components, it is possible to fix the amount of resources to be managed, and to set the value of certain tunable parameters. For example, the amount of memory reserved for network buffers.
Boot Actors. It is possible to include additional actors in the memory image that are loaded at boot time.
Environment. System-wide configuration parameters can be fixed by setting environment strings, similar to environment variables used in UNIX systems, which the operating system and actors retrieve when they are initialized.
A set of libraries:
Thread-safe C++
ANSI-C (POSIX 1003.1 compliant)
POSIX 1003.1-compliant timers, message queues, shared memory, semaphores, and pthreads
POSIX 1003.1-compliant I/O
POSIX 1003.1g-compliant sockets
Thread-safe mathematical ANSI-C
C++ iostream
C++ exceptions
STL 3.1 (Standard Template Library)
Management of per-thread private data
X11
, Xaw
, Xext
, Xmu
, and Xt
libraries
Sun RPC
This release of the ChorusOS operating system introduces an open, debugging architecture, as specified by the ChorusOS Debug Architecture and API Specifications document. The debug architecture relies on a host-resident server which abstracts the target platform to host tools, in particular debuggers. This API specification document is intended to be used by third parties who wish to implement their own debuggers for ChorusOS systems.
The debug server is intended to connect to various forms of target systems, through various forms of connections such as target through serial line, target through Ethernet, core file, target through BDM, or ICE.
This debug architecture provides support for two debugging modes:
application debug
system debug
In the application debugging mode, debuggers connect to multi-threaded processes or actors. Debugging an actor is non intrusive for the system and other actors, except for actors expecting services from the actor.
In system debugging mode, debuggers connect to the operating system seen as a virtual single multi-threaded process. Debugging the system is highly intrusive, since a breakpoint will stop all system operations. System debugging is designed to allow debugging of all the various parts of the operating system, for example: the boot sequence, the kernel, the BSP and the system protocol stacks.
For more details, see Chapter 10, System and Application Debugging.
Sun Embedded Workshop 4.0 also provides several utilities for managing the operating system and applications running on the target. These utilities include components that can be added to the operating system configuration.
Bootmonitor is used to boot the ChorusOS operating system remotely, by using tftp, when the target does not provide an embedded boot facility. This facility is not available on all targets.
Default Console is used to direct all console I/O to a remote host over a serial line.
Remote Shell is used to execute commands remotely on the target from the host. In particular, this feature allows applications to be loaded dynamically.
Resource Status is used to list the current status of all operating system resources, for example, actors, threads, and memory.
Logging (LOG
) is used to log operating system events as they occur on the target.
Monitoring (MON
) is used to monitor operating system objects, so that user-defined routines are called when certain operations are performed, or certain events occur, on specified objects.
Profiling is used to run profiling sessions on system applications.
Benchmarking (PERF
) is used to benchmark the operating system.