source: rtems/doc/user/preface.texi @ abdeac2a

4.115
Last change on this file since abdeac2a was abdeac2a, checked in by Joel Sherrill <joel.sherrill@…>, on 12/06/11 at 15:12:48

2011-12-06 Joel Sherrill <joel.sherrill@…>

PR 1793/doc

  • .cvsignore, Makefile.am, README, configure.ac, index.html.in, main.am, project.am, ada_user/.cvsignore, ada_user/ada_user.texi, ada_user/example.texi, bsp_howto/.cvsignore, bsp_howto/bsp_howto.texi, cpu_supplement/.cvsignore, cpu_supplement/cpu_supplement.texi, cpu_supplement/preface.texi, develenv/.cvsignore, develenv/develenv.texi, develenv/intro.texi, filesystem/.cvsignore, filesystem/filesystem.texi, filesystem/preface.texi, networking/.cvsignore, networking/networking.texi, networking/preface.texi, porting/.cvsignore, porting/porting.texi, porting/preface.texi, posix1003.1/.cvsignore, posix1003.1/posix1003_1.texi, posix_users/.cvsignore, posix_users/posix_users.texi, posix_users/preface.texi, shell/.cvsignore, shell/preface.texi, shell/shell.texi, started/.cvsignore, started/started.texi, user/.cvsignore, user/c_user.texi, user/dirstat.texi, user/example.texi, user/glossary.texi, user/preface.texi: Convert from texi2www to texi2html.
  • texi2html_init.in: New file.
  • rtems_footer.html.in, rtems_header.html.in: Removed.
  • Property mode set to 100644
File size: 8.9 KB
Line 
1@c
2@c  COPYRIGHT (c) 1989-2011.
3@c  On-Line Applications Research Corporation (OAR).
4@c  All rights reserved.
5@c
6@c  $Id$
7@c
8
9@node Preface, Overview, List of Figures, Top
10@unnumbered Preface
11
12In recent years, the cost required to develop a
13software product has increased significantly while the target
14hardware costs have decreased.  Now a larger portion of money is
15expended in developing, using, and maintaining software.  The
16trend in computing costs is the complete dominance of software
17over hardware costs.  Because of this, it is necessary that
18formal disciplines be established to increase the probability
19that software is characterized by a high degree of correctness,
20maintainability, and portability.  In addition, these
21disciplines must promote practices that aid in the consistent
22and orderly development of a software system within schedule and
23budgetary constraints.  To be effective, these disciplines must
24adopt standards which channel individual software efforts toward
25a common goal.
26
27The push for standards in the software development
28field has been met with various degrees of success.  The
29Microprocessor Operating Systems Interfaces (MOSI) effort has
30experienced only limited success.  As popular as the UNIX
31operating system has grown, the attempt to develop a standard
32interface definition to allow portable application development
33has only recently begun to produce the results needed in this
34area.  Unfortunately, very little effort has been expended to
35provide standards addressing the needs of the real-time
36community.  Several organizations have addressed this need
37during recent years.
38
39The Real Time Executive Interface Definition (RTEID)
40was developed by Motorola with technical input from Software
41Components Group.  RTEID was adopted by the VMEbus International
42Trade Association (VITA) as a baseline draft for their proposed
43standard multiprocessor, real-time executive interface, Open
44Real-Time Kernel Interface Definition (ORKID).  These two groups
45are currently working together with the IEEE P1003.4 committee
46to insure that the functionality of their proposed standards is
47adopted as the real-time extensions to POSIX.
48
49This emerging standard defines an interface for the
50development of real-time software to ease the writing of
51real-time application programs that are directly portable across
52multiple real-time executive implementations.  This interface
53includes both the source code interfaces and run-time behavior
54as seen by a real-time application.  It does not include the
55details of how a kernel implements these functions.  The
56standard's goal is to serve as a complete definition of external
57interfaces so that application code that conforms to these
58interfaces will execute properly in all real-time executive
59environments.  With the use of a standards compliant executive,
60routines that acquire memory blocks, create and manage message
61queues, establish and use semaphores, and send and receive
62signals need not be redeveloped for a different real-time
63environment as long as the new environment is compliant with the
64standard.  Software developers need only concentrate on the
65hardware dependencies of the real-time system.  Furthermore,
66most hardware dependencies for real-time applications can be
67localized to the device drivers.
68
69A compliant executive provides simple and flexible
70real-time multiprocessing.  It easily lends itself to both
71tightly-coupled and loosely-coupled configurations (depending on
72the system hardware configuration).  Objects such as tasks,
73queues, events, signals, semaphores, and memory blocks can be
74designated as global objects and accessed by any task regardless
75of which processor the object and the accessing task reside.
76
77The acceptance of a standard for real-time executives
78will produce the same advantages enjoyed from the push for UNIX
79standardization by AT&T's System V Interface Definition and
80IEEE's POSIX efforts.  A compliant multiprocessing executive
81will allow close coupling between UNIX systems and real-time
82executives to provide the many benefits of the UNIX development
83environment to be applied to real-time software development.
84Together they provide the necessary laboratory environment to
85implement real-time, distributed, embedded systems using a wide
86variety of computer architectures.
87
88A study was completed in 1988, within the Research,
89Development, and Engineering Center, U.S. Army Missile Command,
90which compared the various aspects of the Ada programming
91language as they related to the application of Ada code in
92distributed and/or multiple processing systems.  Several
93critical conclusions were derived from the study.  These
94conclusions have a major impact on the way the Army develops
95application software for embedded applications. These impacts
96apply to both in-house software development and contractor
97developed software.
98
99A conclusion of the analysis, which has been
100previously recognized by other agencies attempting to utilize
101Ada in a distributed or multiprocessing environment, is that the
102Ada programming language does not adequately support
103multiprocessing.  Ada does provide a mechanism for
104multi-tasking, however, this capability exists only for a single
105processor system.  The language also does not have inherent
106capabilities to access global named variables, flags or program
107code.  These critical features are essential in order for data
108to be shared between processors.  However, these drawbacks do
109have workarounds which are sometimes awkward and defeat the
110intent of software maintainability and portability goals.
111
112Another conclusion drawn from the analysis, was that
113the run time executives being delivered with the Ada compilers
114were too slow and inefficient to be used in modern missile
115systems.  A run time executive is the core part of the run time
116system code, or operating system code, that controls task
117scheduling, input/output management and memory management.
118Traditionally, whenever efficient executive (also known as
119kernel) code was required by the application, the user developed
120in-house software.  This software was usually written in
121assembly language for optimization.
122
123Because of this shortcoming in the Ada programming
124language, software developers in research and development and
125contractors for project managed systems, are mandated by
126technology to purchase and utilize off-the-shelf third party
127kernel code.  The contractor, and eventually the Government,
128must pay a licensing fee for every copy of the kernel code used
129in an embedded system.
130
131The main drawback to this development environment is
132that the Government does not own, nor has the right to modify
133code contained within the kernel.  V&V techniques in this
134situation are more difficult than if the complete source code
135were available. Responsibility for system failures due to faulty
136software is yet another area to be resolved under this
137environment.
138
139The Guidance and Control Directorate began a software
140development effort to address these problems.  A project to
141develop an experimental run time kernel was begun that will
142eliminate the major drawbacks of the Ada programming language
143mentioned above. The Real Time Executive for Multiprocessor Systems
144(RTEMS) provides full capabilities for management of tasks,
145interrupts, time, and multiple processors in addition to those
146features typical of generic operating systems.  The code is
147Government owned, so no licensing fees are necessary.  RTEMS has
148been implemented in both the Ada and C programming languages.
149It has been ported to the following processor families:
150
151@itemize @bullet
152@item Altera NIOS II
153@item Analog Devices Blackfin
154@item Atmel AVR
155@item ARM
156@item Freescale (formerly Motorola) MC68xxx
157@item Freescale (formerly Motorola) MC683xx
158@item Freescale (formerly Motorola) ColdFire
159@item Intel i386 and above
160@item Lattice Semiconductor LM32
161@item MIPS
162@item PowerPC
163@item Renesas (formerly Hitachi) SuperH
164@item Renesas (formerly Hitachi) H8/300
165@item Renesas M32C
166@item Renesas M32R
167@item SPARC
168@item Texas Instruments C3x/C4x
169@end itemize
170
171Support for other processor families, including RISC, CISC, and DSP, is
172planned.  Since almost all of RTEMS is written in a high level language,
173ports to additional processor families require minimal effort.
174
175RTEMS multiprocessor support is capable of handling
176either homogeneous or heterogeneous systems.  The kernel
177automatically compensates for architectural differences (byte
178swapping, etc.) between processors.  This allows a much easier
179transition from one processor family to another without a major
180system redesign.
181
182Since the proposed standards are still in draft form,
183RTEMS cannot and does not claim compliance.  However, the status
184of the standard is being carefully monitored to guarantee that
185RTEMS provides the functionality specified in the standard.
186Once approved, RTEMS will be made compliant.
187
188This document is a detailed users guide for a
189functionally compliant real-time multiprocessor executive.  It
190describes the user interface and run-time behavior of Release
191@value{VERSION} of the @value{LANGUAGE} interface
192to RTEMS.
193
Note: See TracBrowser for help on using the repository browser.