summaryrefslogtreecommitdiffstats
path: root/c_user/preface.rst
diff options
context:
space:
mode:
Diffstat (limited to 'c_user/preface.rst')
-rw-r--r--c_user/preface.rst176
1 files changed, 0 insertions, 176 deletions
diff --git a/c_user/preface.rst b/c_user/preface.rst
deleted file mode 100644
index e593a9e..0000000
--- a/c_user/preface.rst
+++ /dev/null
@@ -1,176 +0,0 @@
-.. comment SPDX-License-Identifier: CC-BY-SA-4.0
-
-.. COMMENT: COPYRIGHT (c) 1988-2008.
-.. COMMENT: On-Line Applications Research Corporation (OAR).
-.. COMMENT: All rights reserved.
-
-Preface
-#######
-
-In recent years, the cost required to develop a software product has increased
-significantly while the target hardware costs have decreased. Now a larger
-portion of money is expended in developing, using, and maintaining software.
-The trend in computing costs is the complete dominance of software over
-hardware costs. Because of this, it is necessary that formal disciplines be
-established to increase the probability that software is characterized by a
-high degree of correctness, maintainability, and portability. In addition,
-these disciplines must promote practices that aid in the consistent and orderly
-development of a software system within schedule and budgetary constraints. To
-be effective, these disciplines must adopt standards which channel individual
-software efforts toward a common goal.
-
-The push for standards in the software development field has been met with
-various degrees of success. The Microprocessor Operating Systems Interfaces
-(MOSI) effort has experienced only limited success. As popular as the UNIX
-operating system has grown, the attempt to develop a standard interface
-definition to allow portable application development has only recently begun to
-produce the results needed in this area. Unfortunately, very little effort has
-been expended to provide standards addressing the needs of the real-time
-community. Several organizations have addressed this need during recent years.
-
-The Real Time Executive Interface Definition (RTEID) was developed by Motorola
-with technical input from Software Components Group. RTEID was adopted by the
-VMEbus International Trade Association (VITA) as a baseline draft for their
-proposed standard multiprocessor, real-time executive interface, Open Real-Time
-Kernel Interface Definition (ORKID). These two groups are currently working
-together with the IEEE P1003.4 committee to insure that the functionality of
-their proposed standards is adopted as the real-time extensions to POSIX.
-
-This emerging standard defines an interface for the development of real-time
-software to ease the writing of real-time application programs that are
-directly portable across multiple real-time executive implementations. This
-interface includes both the source code interfaces and run-time behavior as
-seen by a real-time application. It does not include the details of how a
-kernel implements these functions. The standard's goal is to serve as a
-complete definition of external interfaces so that application code that
-conforms to these interfaces will execute properly in all real-time executive
-environments. With the use of a standards compliant executive, routines that
-acquire memory blocks, create and manage message queues, establish and use
-semaphores, and send and receive signals need not be redeveloped for a
-different real-time environment as long as the new environment is compliant
-with the standard. Software developers need only concentrate on the hardware
-dependencies of the real-time system. Furthermore, most hardware dependencies
-for real-time applications can be localized to the device drivers.
-
-A compliant executive provides simple and flexible real-time multiprocessing.
-It easily lends itself to both tightly-coupled and loosely-coupled
-configurations (depending on the system hardware configuration). Objects such
-as tasks, queues, events, signals, semaphores, and memory blocks can be
-designated as global objects and accessed by any task regardless of which
-processor the object and the accessing task reside.
-
-The acceptance of a standard for real-time executives will produce the same
-advantages enjoyed from the push for UNIX standardization by AT&T's System V
-Interface Definition and IEEE's POSIX efforts. A compliant multiprocessing
-executive will allow close coupling between UNIX systems and real-time
-executives to provide the many benefits of the UNIX development environment to
-be applied to real-time software development. Together they provide the
-necessary laboratory environment to implement real-time, distributed, embedded
-systems using a wide variety of computer architectures.
-
-A study was completed in 1988, within the Research, Development, and
-Engineering Center, U.S. Army Missile Command, which compared the various
-aspects of the Ada programming language as they related to the application of
-Ada code in distributed and/or multiple processing systems. Several critical
-conclusions were derived from the study. These conclusions have a major impact
-on the way the Army develops application software for embedded
-applications. These impacts apply to both in-house software development and
-contractor developed software.
-
-A conclusion of the analysis, which has been previously recognized by other
-agencies attempting to utilize Ada in a distributed or multiprocessing
-environment, is that the Ada programming language does not adequately support
-multiprocessing. Ada does provide a mechanism for multi-tasking, however, this
-capability exists only for a single processor system. The language also does
-not have inherent capabilities to access global named variables, flags or
-program code. These critical features are essential in order for data to be
-shared between processors. However, these drawbacks do have workarounds which
-are sometimes awkward and defeat the intent of software maintainability and
-portability goals.
-
-Another conclusion drawn from the analysis, was that the run time executives
-being delivered with the Ada compilers were too slow and inefficient to be used
-in modern missile systems. A run time executive is the core part of the run
-time system code, or operating system code, that controls task scheduling,
-input/output management and memory management. Traditionally, whenever
-efficient executive (also known as kernel) code was required by the
-application, the user developed in-house software. This software was usually
-written in assembly language for optimization.
-
-Because of this shortcoming in the Ada programming language, software
-developers in research and development and contractors for project managed
-systems, are mandated by technology to purchase and utilize off-the-shelf third
-party kernel code. The contractor, and eventually the Government, must pay a
-licensing fee for every copy of the kernel code used in an embedded system.
-
-The main drawback to this development environment is that the Government does
-not own, nor has the right to modify code contained within the kernel. V&V
-techniques in this situation are more difficult than if the complete source
-code were available. Responsibility for system failures due to faulty software
-is yet another area to be resolved under this environment.
-
-The Guidance and Control Directorate began a software development effort to
-address these problems. A project to develop an experimental run time kernel
-was begun that will eliminate the major drawbacks of the Ada programming
-language mentioned above. The Real Time Executive for Multiprocessor Systems
-(RTEMS) provides full capabilities for management of tasks, interrupts, time,
-and multiple processors in addition to those features typical of generic
-operating systems. The code is Government owned, so no licensing fees are
-necessary. RTEMS has been implemented in both the Ada and C programming
-languages. It has been ported to the following processor families:
-
-- Adapteva Epiphany
-
-- Altera NIOS II
-
-- Analog Devices Blackfin
-
-- Atmel AVR
-
-- ARM
-
-- Freescale (formerly Motorola) MC68xxx
-
-- Freescale (formerly Motorola) MC683xx
-
-- Freescale (formerly Motorola) ColdFire
-
-- Intel i386 and above
-
-- Lattice Semiconductor LM32
-
-- NEC V850
-
-- MIPS
-
-- Moxie Processor
-
-- OpenRISC
-
-- PowerPC
-
-- Renesas (formerly Hitachi) SuperH
-
-- Renesas (formerly Hitachi) H8/300
-
-- Renesas M32C
-
-- SPARC v7, v8, and V9
-
-Since almost all of RTEMS is written in a high level language, ports to
-additional processor families require minimal effort.
-
-RTEMS multiprocessor support is capable of handling either homogeneous or
-heterogeneous systems. The kernel automatically compensates for architectural
-differences (byte swapping, etc.) between processors. This allows a much
-easier transition from one processor family to another without a major system
-redesign.
-
-Since the proposed standards are still in draft form, RTEMS cannot and does not
-claim compliance. However, the status of the standard is being carefully
-monitored to guarantee that RTEMS provides the functionality specified in the
-standard. Once approved, RTEMS will be made compliant.
-
-This document is a detailed users guide for a functionally compliant real-time
-multiprocessor executive. It describes the user interface and run-time
-behavior of Release 4.10.99.0 of the C interface to RTEMS.