Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The DAT group has divided RTEMS and DAT support code into a number of "dynamically shared objects" which are structurally the same as the shared libraries one uses under Linux [ELF]

Anchor
refELF
refELF
. There are two kinds of linking, or binding pieces of compiled code into a single functioning whole. The first kind of linking, static linking, creates the shared objects from the ".o" files produced by the compiler. The second kind of linking, dynamic linking, loads shared objects into memory on demand while the program is already running. As the name implies a single copy of a shared object's code and data may be used by a number of other shared objects which reduces the use of memory. There is also a potential reduction gained from loading only those shared objects that contain what's actually needed.

...

A shared object file's loadable content is divided into a small number of "segments". Each segment has a set of permission flags: (R)eadable, (W)riteable ans e(X)ecutable. In shared objects built for DAT systems there's normally one RX segment containing instructions and read-only data and one RW section containing non-constant data. The dynamic linker uses the CPU's memory management unit (MMU) to set the access type of the memory allocated to each segment to match the segment's permission flags.

Anchor
noteELF
noteELF
[ELF] The file format used is the standard Executable and Linkable Format used by Linux systems. The ELF standard defines three kinds of objects: compiler output (not directly executable), executable main programs and executable dynamic shared objects. DAT systems allow the loading and execution only of files in the third format.

...