summaryrefslogtreecommitdiffstats
path: root/doc/FAQ/basic.t
blob: 4f653650f962ecdd85254ea5237b7574b84e4214 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
@c
@c  COPYRIGHT (c) 1988-1999.
@c  On-Line Applications Research Corporation (OAR).
@c  All rights reserved.
@c
@c  $Id$
@c

@chapter Basic Information

The questions in this category are basic questions about RTEMS.  Where
did it come from, why is it, what is it, when should you use it, etc.?

@section What does RTEMS stand for?

RTEMS is an anacronym for the Real-Time Executive for Multiprocessor
Systems.

Initially RTEMS stood for the Real-Time Executive for Missile Systems
but as it became clear that the application domains that could use
RTEMS extended far beyond missiles, the "M" changed to mean Military.
At one point, there were both Ada and C implementations of RTEMS.  The
C version changed the "M" to mean Multiprocessor while the Ada version
remained with the "M" meaning Military.

@section What is RTEMS?

RTEMS is a real-time executive which provides a high performance
environment for embedded military applications including many
features. The following is just a short list of the features
avilable in RTEMS.  If you are interested in something that
is not on this list, please contact the RTEMS Team.  Features
are being added continuously.

@itemize @bullet

@item Standards Compliant
@itemize @bullet
@item POSIX 1003.1b API including threads
@item RTEID/ORKID based Classic API
@end itemize

@item TCP/IP Stack
@itemize @bullet
@item high performance port of FreeBSD TCP/IP stack
@item UDP, TCP
@item ICMP, DHCP, RARP
@item TFTP
@item RPC
@item FTPD
@item HTTPD
@item CORBA
@end itemize

@item Debugging
@itemize @bullet
@item GNU debugger (gdb)
@item DDD GUI interface to GDB
@item thread aware
@item debug over Ethernet 
@item debug over Serial Port
@end itemize

@item Filesystem Support
@itemize @bullet
@item In-Memory Filesystem (IMFS)
@item TFTP Client Filesystem
@end itemize

@item Basic Kernel Features
@itemize @bullet
@item multitasking capabilities
@item homogeneous and heterogeneous multiprocessor systems
@item event-driven, priority-based, preemptive scheduling
@item optional rate monotonic scheduling
@item intertask communication and synchronization
@item priority inheritance
@item responsive interrupt management
@item dynamic memory allocation
@item high level of user configurability
@end itemize

@end itemize


@section What standards does RTEMS support?

The original "Classic" RTEMS API is based on the Real-Time Executive
Interface Definition (RTEID) and the Open Real-Time Kernel Interface
Definition (ORKID).  RTEMS also includes support for POSIX threads
and real-time extensions.

With the addition of file system infrastructure, RTEMS supports
about 70% of the POSIX 1003.1b-1996 standard.  This standard
defines the programming interfaces of standard UNIX.   This means
that much source code that works on UNIX, also works on RTEMS.

@section What processors is RTEMS available for?

RTEMS is available for the following processor families:

@itemize @bullet
@item Motorola MC68xxx
@item Motorola MC683xx
@item Motorola ColdFire
@item Hitachi SH
@item Intel i386
@item Intel i960
@item MIPS
@item PowerPC
@item SPARC
@item AMD A29K
@item Hewlett-Packard PA-RISC
@end itemize

In addition, there is a port to UNIX which can be used as a prototyping
and simulation environment.

@section Executive vs. Kernel vs. Operating System (RTOS)

The developers of RTEMS developers use the terms executive and kernel
interchangeably.  In the embedded system community, the terms executive
or kernel are generally used to refer to small operating systems.
So we consider it proper to refer to RTEMS as an executive, a kernel,
or an operating system.

@section Where/why was it developed?

RTEMS was developed by On-Line Applications Research Corporation (OAR)
for the U.S. Army Missile Command prior to that organizations merger
with the Aviation Command that resulted in the new command, U. S. Army
Aviation and Missile command (AMCOM).  The original goal of RTEMS was
to provide a portable, standards-based real-time executive for which
source code was available and royalties were paid.

In other words, RTEMS was open source before open source was cool.

@section Are there no similar commercial products?

Yes, but not all are based on standards and the open source philosophy.

@section How can I get RTEMS?

RTEMS is distributed by OAR Corporation via the Internet.  Point your
favorite browser at the following URL and following the link:

@c this version should work
@c @set OAR-URL http://www.OARcorp.com
@c @uref{@value{OAR-URL},@value{OAR-URL}}
@uref{http://www.OARcorp.com,http://www.OARcorp.com}

@section What about support?

OAR Corporation provides numerous services for RTEMS including support,
training, and custom development.

@section Are there any mailing lists?

The primary RTEMS mailing list is @code{rtems-list@@oarcorp.com}.  You 
can subscribe by sending a message with the word @b{subscribe rtems-list}
as the body to @code{majordomo@@oarcorp.com}.

@section Are there any license restrictions?

RTEMS is licensed under a modified version of the GNU General Public License
(GPL).  The modification places no restrictions on the applications which
use RTEMS but protects the interests of those who work on RTEMS.

The TCP/IP network stack included with RTEMS is a port of the FreeBSD
network stack and is licensed under different terms that also do not
place restrictions on the application.

@section Are there any export restrictions?

No.