This section contains a summary of the key features and benefits of Sun Embedded Workshop.
Sun Embedded Workshop provides complete support, tools, and libraries for developing C and C++ applications on a range of supported platforms. Development takes place on one system (the host), even though the software will eventually run on a very different device (the target), or on a variety of targets.
Sun Embedded Workshop 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.
For each supported processor family, Sun Embedded Workshop 4.0 comes with the implementation of at least one target platform and provides a complete set of well defined interfaces allowing you to port the ChorusOS operating system to other target boards. The Boot Kernel Interface (BKI) and Device Driver Interface (DDI) available in the binary release of ChorusOS allows you to customize the boot method and to add new drivers.
Sun Embedded Workshop 4.0 uses a flexible, component-based architecture that allows different services to be configured into the runtime instance of the ChorusOS operating system.
Essential services required to support real-time applications running on the target system are provided by the core executive, and each optional feature of the operating system is implemented as a separate runtime component that can be added to or removed from the operating system, as required. This means that the operating system can be very accurately configured to meet the exact needs of a given application or environment, saving on memory and improving performance.
The core executive can support multiple, independent applications running in both user and supervisor memory space.
By taking advantage of the component-based architecture, the application designer can choose between an extremely small operating system that offers simple scheduling and memory options, or a fully-featured, multi-API software platform.
As well as making it possible to produce multiple versions of the operating system, each of which is optimized for its own environment, the component-based architecture provides the following additional benefits:
Applications developed to run on a minimal configuration can also run unchanged on a more complex configuration, thus providing an evolutionary path for right-sizing devices and systems.
The programming interfaces for the operating system components are available publicly, providing an open environment for combining third-party system software and development tools.
Building large, highly-available systems is a complex and challenging undertaking that has required significant advances in design, implementation, and testing methodologies. For example, the telecommunications industry faces severe reliability and availability constraints imposed by international standards and market pressure. Yet, until recently, very few commercially available operating systems could provide the appropriate level of support to be able to offer true 7 by 24 operation.
The ChorusOS operating system incorporates several features that successfully address the needs of this demanding market, including:
Different applications can run in different memory address spaces protected from one another. If one application fails, it can corrupt only its own data but cannot corrupt the data of other applications, or of the system itself. This mechanism confines errors and prevents their propagation.
An important benefit of the ChorusOS operating system is its hot restart capability, which provides one of the fastest mechanisms available in the industry today for restarting applications or entire systems if a serious error or failure occurs.
The conventional technique, cold restart, involves rebooting or reloading an application from scratch. This causes unacceptable downtime in most systems, and there is no way to return the application to the state in which it was executing when the error occurred.
The ChorusOS hot restart feature allows execution to recommence without reloading code or data from the network or from disk. When a hot-restartable process fails, persistent memory is preserved, its text and data segments are reinitialized to their original content without accessing stable storage, and the process resumes at its entry point. Hot restart is significantly faster than the conventional cold restart technique and retains the critical information that allows an application to be reconstructed quickly with little or no interruption of service. Furthermore, the hot restart technique has been applied to the entire ChorusOS operating system and not only to the applications it runs, thus ensuring a very high quality of service availability.
For detailed information about the hot restart feature, refer to the ChorusOS 4.0 Hot Restart Programmer's Guide.
The dynamic process management feature of the ChorusOS operating system allows processes to be loaded dynamically, from either disk or the network, without first halting the system. This provides the basis for a dynamic reconfiguration capability that minimizes service downtime, and keeps existing services available while the system is modified or upgraded. Dynamic reconfiguration also relies on the inter-process communication (IPC) facilities of the ChorusOS operating system to transfer inbound communication to the new processes transparently.
For example, with the ChorusOS operating system running in a Private Branch Exchange (PBX), new features such as call forwarding (or follow me) can be added without interrupting the basic telephone service and without reconfiguring the entire telephone network.
One of the challenges facing software developers working in the telecommunications and data communications industries is the need to select the most appropriate of the proliferation of public standards and proprietary solutions available to them. By investing in a given solution, application vendors and service providers can quickly find themselves locked into a legacy API that once seemed to offer state-of-the-art functionality. In some cases, finding that they can no longer keep pace with emerging technology, they are forced to either fall behind or to abandon their original investment.
The ChorusOS operating system offers software developers a way to protect their existing investments, while providing a smooth migration path to new platforms running the ChorusOS operating system. It does this by:
Providing a way for applications to handle traps, which allows software developers to create proprietary subsystems to emulate any API.
Providing, via its modular structure, a way to create a basic system that provides common services, plus several subsystems built on this base and sharing the base, each providing support for a given API.
Supporting multiple APIs running on the same system concurrently, in such a way that diverse applications can communicate transparently.
The ChorusOS operating system provides an execution environment that, when combined with a Java(TM) Runtime Environment (JRE), supports real-time applications and Java applications running on the same machine, each in the appropriate environment.
Based on industry standards, the Transparent Inter-Process Communication (IPC) facility of the ChorusOS operating system allows applications to be distributed across multiple machines, and to run in a heterogeneous environment that comprises hardware and software with stark operational and programming incompatibilities.
At a lower level, one of the components of the ChorusOS operating system provides transparent IPC that recognizes whether a given process is available locally, or is installed on a remote system that is also running the ChorusOS operating system. When a process is accessed, the IPC identifies the shortest path and quickest execution time that can be used to reach it, and communicates in a manner that makes the location entirely transparent to the application.