Component-based architecture for super-configurability:
The ChorusOS operating system uses a highly-flexible,
component-based architecture that allows different services to
be configured into the runtime instance of the operating system.
This allows the runtime to be finely tuned, according to the
underlying hardware platform, the memory footprint
requirements and the application features.
Mission-critical high-availability: From its origin, the
ChorusOS operating system has been defined and architectured
with the goal to fully comply with the real-time embedded
requirements for network equipments. It has been used in
real-life telecom products where mission-critical and high
performance are keys for the past 6 years, with customers
shipping equipments dedicated to PSTN and IP switching.
Exceptional scaleability: the component-based design of the
ChorusOS operating system allows a very high degree of
scaleability. It can be as small as 10Kbytes; additional
components can be added, to create a tailor made instance, to
the level of the resources available.
Multiple OS personalities and APIs: multiple operating system
personalities and APIs can be run simultaneously on a common
hardware platform. This feature allows quick integration of
existing applications on top of the ChorusOS operating system.
The system can be extended by adding new applications that run
over standard APIs, to create powerful combinations of legacy
applications, real-time POSIX applications and Java™
technology applications.
Support for Java technology: The support for multiple OS
personalities provided by Sun Embedded Telecom Platform has
enabled to include key Java technologies valuable in network
equipment, such as the Java Dynamic Management Kit™
framework. It brings an efficient plug-in for network management
applications.
Transparent distribution: The ChorusOS operating system's
Inter-Process Communication (IPC) feature allows applications
to be distributed across multiple machines. The IPC feature
makes the process location entirely transparent to the
application.
Code re-use: ChorusOS implementations are upward
compatible. Developers can therefore reuse applications on the
same core operating system, for a larger range of equipment.
For example, an ATM router card is developed, using a small
instance of the ChorusOS operating system; later another
project, to develop a broadband ATM switch, can build on the
routing module, reusing the code.
Applications: Telecom/Datacom
Private and public switches (PBXs).
Datacom systems.
Internetworking equipment.
Transmission equipment.
Line cards.
Cellular networks.
Network monitoring equipment.
Satellite transmission systems.
Enhancements in Version 4.0
Version 4.0 of the ChorusOS operating system provides the following
enhancements:
A full binary product
Portable CPU family binary
BSPs for porting on new platforms, adapting the boot
method, changing/adding device drivers
Reference implementations
Enhanced high availability features
Simplified high availability management
Modular, configurable
Enhanced TCP/IP
Updated TCP/IP (BSD 2.2.7)
Multiple network interfaces
Extended routing, IP forwarding and multicast
DHCP
Enhanced and simplified administration
Operating system configuration
Independent operating system components: devices, file
systems, networking, dynamic application loading
Reduced memory footprint, higher modularity and
improved scaleability
Enhanced operating system features
Dynamic libraries
C++ exceptions
Full support for flash memory
Line disciplines
Device file system
Sun Embedded WorkShop™ 4.0:
Open debugger integration framework
System debugging
GUI based configuration tool
Uniform configuration data
Uniform application, board support package (BSP) and
driver development environment
Key Features
A component-based operating system architecture with
replaceable system components. These are selected as needed
to meet memory footprint, performance and feature
requirements of the target system.
High real-time performance.
High availability:
On the fly dynamic software reconfiguration.
Hot restart of system and application software.
Efficient emulation of in-house or third-party execution
environments simultaneously with other APIs for straightforward
migration of legacy applications.
Efficient co-hosting of multiple operating system personalities
and APIs:
CHORUS native API
RT-POSIX (1003.1b/lc)
Java™ runtime and services
Legacy OS.
Binary Package
Available for a CPU family
With the support of reference platforms
A Board Support Package (BSP) framework for
complementing or developing BSPs
Benefits
Unprecedented scalability and flexibility; fine-grained
customization of the operating system to meet hardware
capabilities and application requirements for improved
performance, reliability and cost optimization.
Real-time performance for critical real-time applications.
On-the-fly software updates and error recovery.
Ability to leverage software investments in legacy code, and to
add off-the-shelf applications.
Advanced operating system features and support of open
system environments, provided by industry-standard APIs.
Ability to generate either I/O and network versions, or both, as
needed. This enables generation of slimline versions which
require reduced memory for embedded systems.
Portability on various platforms
Adaptation, extension of boot methods
Adaptation, addition of device drivers
Development of BSPs by 3rd parties
Sun Embedded WorkShop 4.0
Sun Embedded WorkShop software provides a state-of-the-art,
integrated development environment for the ChorusOS operating
system. It includes an easy-to-use graphical user interface, and a
complete host-target toolset. It is available on the Solaris™ operating
system and Microsoft Windows NT.
Product Components
Sun Embedded WorkShop 4.0 software includes the following product
components:
GNU C and C++ cross development tools:
g++.
GNU gcc cross-assembler.
GNU binutils (binary file utilities).
Microtec XRAY for ChorusOS operating system, a debugging
tool which comprises an integrated set of tools which simplify
the edit-compile-download-debug cycle. It provides:
Enhanced C++ debugging.
Per thread breakpoints.
An easy to use, graphical user interface.
Support for debugging in multithreaded, multiboard and
heterogeneous environments.
Support for debugging user application as well as system
code (interrupt routines, drivers, etc.).
A unique `window-per-task' interface for simpler debugging
in multitasking/multiprocessing environments.
Open framework for supporting Host-Target tools, in particular
debuggers.
System configuration tools (GUI based), for selecting:
the components of the ChorusOS operating system to be
loaded on the target,
the actors to be loaded at boot time,
the resources allocated to OS services (e.g. amount of
memory)
the environment variables defining the configuration of
system services (e.g. an IP address)
Libraries (C and C++):
Thread-safe C++.
ANSI-C (POSIX 1003.1 compliant).
POSIX 1003.1 conformant timers, message queues,
shared memory, semaphores, I/Os and pthreads.
POSIX 1003.1g conformant sockets.
Thread-safe mathematical ANSI-C.
C++ iostream; C++ exceptions.
Per-thread private data.
X11, Xaw, Xext, Xmu and Xt libraries.
Application management utilities:
Netboot: used to boot the ChorusOS operating system
remotely, by 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: 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: used to log operating system events as they
occur on the target.
Monitoring: 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: used to benchmark the operating system.
Runtimes of the ChorusOS operating system version 4.0.
Host-Target Development
Solaris and Microsoft Windows NT hosts.
ANSI-C and C++ cross development.
Application and system programming interfaces.
ChorusOS 4.0 Operating System
Product Features
The ChorusOS operating system architecture provides a fine-grained
selection of OS components, layered on top of a core executive. They
can be replaced by other similar components to fit particular hardware
capabilities or specific application requirements, for an optimal
configuration.
Executive
Micro core executive:
10 Kbytes
Single multi-threaded application support
User-provided management of interrupts, traps and
exceptions.
Core executive:
Supports multiple, independent users or trusted system
applications.
Supports applications in user or supervisor address
space.
Performs dynamic memory management.
Schedulers
Real-time scheduler: Priority-based pre-emptive FIFO.
Multi-class scheduler:
Priority-based pre-emptive FIFO
Priority-based with fixed-time quantum
UNIX time sharing and real-time
User-defined policy.
Memory Management
Flat memory: Management of physical memory, no protection.
Protected memory: Multiple protected address spaces.
Paged memory: Page-based protected address spaces.
Virtual memory: On-demand paging.
Communications
Local IPC: Single-board, asynchronous, synchronous and
multi-cast communication.
Distributed IPC: Location-transparent communication.
Mailboxes: zero-copy, messages of configurable size.
Real-time message queues.
Synchronization
Semaphores
Mutexes
Real-time mutexes (to avoid priority inversion)
Event flags.
Time Services
Timers: One-shot or periodic, usable from both supervisor and
user mode applications.
Time of day: Universal time.
Time utilities: High-level OS services, profiling, benchmarking.
Interrupt Management
Generic interrupt.
User-provided interrupt management.
File Systems
UNIX® -compatible UFS and FFS file systems (with 64-bits disk
and file sizes).
Flash File System, based on MS-DOS file system (with long file
names).
Drivers for SCSI and IDE controllers and Flash Memory.
NFS™ file sharing (client and server).
Execution in place of binaries stored in Flash Memory.
Embedded File system for built-in devices and drivers
registration.
ANSI-C stdio.
Networking
Full TCP/UDP/IP stacks, including in particular
Support of multiple network interfaces
Routing between multiple interfaces
IP forwarding, IP multicast.
Sockets.
SLIP, PPP, with demand-dial establishment of connection.
Serial lines: line disciplines, pseudo-tty.
DHCP.
Name servers (DOMAIN, IEN116, file-based).
rsh, Xclients (Xlib, Xt, Xmu, Xext, Xaw).
Sun RPC.
Ethernet, Serial line, VME-backplane and cPCI support.
Administration
Easy administration of embedded configurations
Embedded built-in administration tools (no need for loading
utilities)
Embedded command line interpreter (TCL)
Applications management
Dynamic creation of applications.
Loading of compressed binaries.
Execution of applications loaded in RAM.
Dynamic libraries.
High Availability
Dynamic reconfiguration of application software.
Debug-compatible hot restart of system and application
software.
Target Platforms
UltraSPARC™ IIi
PowerPC 603, 604, 750, 821, 823, 860, 8260
x86, Pentium
and also1
microSPARC™ II, IIep, SPARClet, SPARClite™
ARM 7TDMI, ARM 710, StrongARM 1100.