The cpukit/ directory contains a set of subdirectories which
contains the source files comprising the executive portion of
the RTEMS development environment as well as portable support
libraries such as support for the C Library and filesystems.
The API specific and "SuperCore" (e.g. score/ directory)
source code files are separated into distinct directory trees.
The following is a description of each of the subdirectories
under cpukit/:
${RTEMS_ROOT}/cpukit/aclocal/
This directory contains the custom M4 macros which are available to
the various GNU autoconf configure.ac scripts throughout
the CPU Kit portion of the RTEMS source tree.
GNU autoconf interprets configure.ac
files to produce the configure files used to tailor
RTEMS build for a particular host and target environment. The
contents of this directory will not be discussed further in this
document.
${RTEMS_ROOT}/cpukit/automake/
This directory contains files which are "Makefile fragments."
They are included as required by the various Makefile.am
files throughout the CPU Kit portion of the RTEMS source tree.
${RTEMS_ROOT}/cpukit/ftpd/
This directory contains the RTEMS ftpd server.
${RTEMS_ROOT}/cpukit/httpd/
This directory contains the port of the GoAhead
web server to RTEMS.
${RTEMS_ROOT}/cpukit/include/
This directory contains header files which are private to
RTEMS and not considered to be owned by any other component
in the CPU Kit.
${RTEMS_ROOT}/cpukit/itron/
This directory contains the implementation of the
ITRON API.
${RTEMS_ROOT}/cpukit/libblock/
This directory contains support code for using
Block Devices such as hard drives, floppies, and
CD-ROMs. It includes the generic IO primitives
for block device drivers, disk caching support,
and a RAM disk block device driver.
${RTEMS_ROOT}/cpukit/libcsupport/
This directory contains the RTEMS specific support routines
for the Newlib C Library. This includes what are referred
to as system calls and found in section 2 of the traditional
UNIX manual. In addition, it contains a thread-safe
implementation of the Malloc family of routines as well
as BSD and POSIX services not found in Newlib.
${RTEMS_ROOT}/cpukit/libfs/
This directory contains the various non-networked
filesystem implementations for RTEMS. It includes
the In-Memory FileSystem (IMFS), the mini-IMFS,
and FAT filesystems.
${RTEMS_ROOT}/cpukit/libi2c/
This directory contains the RTEMS I2C framework.
${RTEMS_ROOT}/cpukit/libmd/
This directory contains a port of the standard MD5
checksum code.
${RTEMS_ROOT}/c/src/libmisc/
This directory contains support facilities which
are RTEMS specific but otherwise unclassified. In
general, they do not adhere to a standard API.
Among the support facilities in this directory are
a /dev/null device driver, the Stack
Overflow Checker, a mini-shell, the CPU and
rate monotonic period usage monitoring libraries,
and a utility to "dump a buffer" in a nicely
formatted way similar to many ROM monitors.
${RTEMS_ROOT}/cpukit/libnetworking/
This directory contains the port of the FreeBSD
TCP/IP stack to RTEMS.
${RTEMS_ROOT}/cpukit/librpc/
This directory contains the port of the FreeBSD
RPC/XDR source to RTEMS.
${RTEMS_ROOT}/cpukit/posix/
This directory contains the RTEMS implementation
of the threading portions of the POSIX API.
${RTEMS_ROOT}/cpukit/pppd/
This directory contains a port of the free implementation
of the PPPD network protocol.
${RTEMS_ROOT}/cpukit/rtems/
This directory contains the implementation of the
Classic API.
${RTEMS_ROOT}/cpukit/sapi/
This directory contains the implementation of RTEMS
services which are required but beyond the realm
of any standardization efforts. It includes
initialization, shutdown, and IO services.
${RTEMS_ROOT}/cpukit/score/
This directory contains the "SuperCore" of RTEMS.
All APIs are implemented in terms of SuperCore services.
For example, Classic API tasks, POSIX threads, and ITRON
tasks are all implemented in terms of SuperCore threads.
This provides a common infrastructure and a high degree
of interoperability between the APIs. For example,
services from all APIs may be used by any task/thread
independent of the API used to create it.
Within the score/ directory the CPU dependent modules are found.
The score/cpu/ subdirectory contains a subdirectory for each
target CPU supported by this release of the RTEMS
executive. Each processor directory contains the CPU dependent
code necessary to host RTEMS. The no_cpu directory provides a
starting point for developing a new port to an unsupported
processor. The files contained within the no_cpu directory
may also be used as a reference for the other ports to specific
processors.
${RTEMS_ROOT}/cpukit/shttpd/
This directory contains the port of the Simple HTTPD
web server to RTEMS.
${RTEMS_ROOT}/cpukit/telnetd/
This directory contains the RTEMS telnetd server.
${RTEMS_ROOT}/cpukit/wrapup/
This directory is responsible for taking the individual
libraries and objects built in each of the components
in the RTEMS CPU Kit source tree and bundling them
together to form the single RTEMS library librtemscpu.a. This
library contains all BSP and CPU model specific software.
${RTEMS_ROOT}/cpukit/zlib/
This directory contains a port of the GNU Zlib compression
library to RTEMS.