ChorusOS 5.0 Features and Architecture Overview

Multi-Platform Development Environment

The Sun Embedded Workshop software, the ChorusOS operating system development environment, provides the tools and libraries for developing C and C++ applications on a range of supported platforms. Development takes place on one system, the host (UltraSPARC), and the operating system is deployed on one or more supported reference target boards.

The ChorusOS operating system 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.

The development environment includes:

C & C++ Development Toolchain:

GNU gcc and g++ cross-compilers.

C & C++ Symbolic Debugger:

GNU GDB debugger for the ChorusOS operating system allows you to see what is going on inside an application while it executes or what an application was doing at the moment it crashed. The GDB Debugger offers the following features:

  • Easy-to-use graphical user interface (GUI)

  • Support for debugging several applications running on multiple targets with different processor architectures

  • Debugging of multithreaded user and supervisor applications, including relocatable applications

  • Flexible thread handling: one window per thread, breakpoint per thread or per application

  • Visualization of ChorusOS abstractions related to debugged applications or global to the system

  • Application debug over Ethernet or serial line, and system debug over serial line

  • Ability to debug almost every piece of code, including the boot process, the C_OS, the drivers and the applications

An Embedded Debugger:

Which provides symbolic debugging for all system applications and can be called automatically in the case of unrecoverable error.

Configuration Tools:

The ChorusOS operating system is configured simply by providing a list of the required components. The configuration tools provided, as part of the Sun Embedded Workshop software, manage any hidden dependencies or possible incompatibilities.

The configuration tools are designed to be flexible enough to be extended to configure any other system component (OS or drivers) or even application actors that are part of the ChorusOS operating system image.

You can use either the graphical interface, called Ews, or a command-line interface to view and modify the characteristics of a ChorusOS operating system image. In addition to the possibility of selecting only the required components for the operating system, the Sun Embedded Workshop software supports three other levels of system configuration:

Resources

For the list of components selected, it is possible to fix the amount of resources to be managed, and to set the value of tunable parameters; for example, the amount of memory reserved for network buffers.

Boot Actors

It is possible to include additional actors in the system image loaded at boot time.

Environment

System-wide configuration parameters can be fixed by setting UNIX-like environment strings that the operating system and actors retrieve upon initialization; for example, an IP address can be defined globally by setting LOCAL_INADDR="192.33.15.18" using the configuration tool.

A set of Libraries:
  • Thread-safe C++

  • ANSI-C (POSIX 1003.1 compliant)

  • POSIX 1003.1 timers, message queues, shared memory, and semaphores

  • POSIX 1003.1 pthreads

  • POSIX 1003.1g sockets

  • BSD File I/O

  • Thread-safe mathematical ANSI-C

  • Mathematical IEEE-754

  • Library resolve for DNS/NIS client access

  • C++ iostream

  • C++ exceptions

  • C++ STL Management of per-thread private data

  • LDAP

  • Sun RPC

  • X11, Xaw, Xext, Xmu, and Xt libraries

The Sun Embedded Workshop software also provides several utilities for managing the operating system and applications running on the target. These utilities include components that you can add to the operating system configuration.

The application management utilities include:

Netboot:

Used to boot the ChorusOS operating system remotely using TFTP, when the target does not provide an embedded boot facility

Default Console:

Used to direct all console I/O to a local display or to a remote host via a serial line

Remote Shell (rsh):

Used to execute commands remotely on the target from the host; in particular, this feature allows applications to be loaded dynamically

Resource Status:

Used to list the current status of all operating system resources. For example, actors, threads, and memory.

Logging (LOG):

Used to log operating system events as they occur on the target

Monitoring (MON):

Used to monitor operating system objects, so that user-defined routines are called when certain operations are performed on specified objects

Profiling:

Used to run profiling sessions on system applications

Benchmarking (PERF):

Used to benchmark the operating system