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.
- formal model#
A model of a computing component (hardware or software) that has a mathematically based semantics.
- GCC#
This term is an acronym for GNU Compiler Collection.
- GNAT#
- 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.
- scenario#
In the context of formal verification, in a setting that involves many concurrent tasks that interleave in arbitrary ways, a scenario describes a single specific possible interleaving. One interpretation of the behaviour of a concurrent system is the set of all its scenarios.
- semantics#
This term refers to the meaning of text or utterances in some language. In a software engineering context these will be programming, modelling or specification languages.
- 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:
explicitly defined ELF symbol in a source code file
assembler language data in a source code file
C language object with static storage duration
C language object with thread-local storage duration
collection of software components (this is a software architecture element)
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:
assembler language function in a source code file
C language function (external and internal linkage)
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.