16. Glossary

API

This term is an acronym for Application Programming Interface.

assembler language

The assembler language is a programming language which can be translated very easily into machine code and data. For this project assembler languages are restricted to languages accepted by the GNU assembler program for the target architectures.

C language

The C language for this project is defined in terms of C11.

C11

The standard ISO/IEC 9899:2011.

CCB

This term is an acronym for Change Control Board.

Doorstop

Doorstop is a requirements management tool.

EARS

This term is an acronym for Easy Approach to Requirements Syntax.

ELF

This term is an acronym for Executable and Linkable Format.

GCC

This term is an acronym for GNU Compiler Collection.

GNAT

GNAT is the GNU compiler for Ada, integrated into the GCC.

GNU

This term is an acronym for GNU’s Not Unix.

interrupt service

An interrupt service consists of an Interrupt Service Routine which is called with a user provided argument upon reception of an interrupt service request. The routine is invoked in interrupt context. Interrupt service requests may have a priority and an affinity to a set of processors. An interrupt service is a software component.

Interrupt Service Routine

An ISR is invoked by the CPU to process a pending interrupt.

ISVV

This term is an acronym for Independent Software Verification and Validation.

Linear Temporal Logic

This is a logic that states properties about (possibly infinite) sequences of states.

LTL

This term is an acronym for Linear Temporal Logic.

refinement

A refinement is a relationship between a specification and its implementation as code.

reification

Another term used to denote refinement.

ReqIF

This term is an acronym for Requirements Interchange Format.

RTEMS

This term is an acronym for Real-Time Executive for Multiprocessor Systems.

software component

This term is defined by ECSS-E-ST-40C 3.2.28 as a “part of a software system”. For this project a software component shall be any of the following items and nothing else:

Please note that explicitly defined ELF symbols and assembler language data are considered a software component only if they are defined in a source code file. For example, this rules out symbols and data generated as side-effects by the toolchain (compiler, assembler, linker) such as jump tables, linker trampolines, exception frame information, etc.

software product

The software product is the RTEMS real-time operating system.

software unit

This term is defined by ECSS-E-ST-40C 3.2.24 as a “separately compilable piece of source code”. For this project a software unit shall be any of the following items and nothing else:

A software unit is a software component.

source code

This project uses the source code definition of the Linux Information Project: “Source code (also referred to as source or code) is the version of software as it is originally written (i.e., typed into a computer) by a human in plain text (i.e., human readable alphanumeric characters).”

target

The system on which the application will ultimately execute.

task

This project uses the thread definition of Wikipedia: “a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system.”

It consists normally of a set of registers and a stack. The scheduler assigns processors to a subset of the ready tasks. The terms task and thread are synonym in RTEMS. The term task is used throughout the Classic API, however, internally in the operating system implementation and the POSIX API the term thread is used.

A task is a software component.

thread

This term has the same meaning as task.

YAML

This term is an acronym for YAML Ain’t Markup Language.