summaryrefslogtreecommitdiffstats
path: root/eng/glossary.rst
diff options
context:
space:
mode:
Diffstat (limited to 'eng/glossary.rst')
-rw-r--r--eng/glossary.rst177
1 files changed, 177 insertions, 0 deletions
diff --git a/eng/glossary.rst b/eng/glossary.rst
new file mode 100644
index 0000000..a015eda
--- /dev/null
+++ b/eng/glossary.rst
@@ -0,0 +1,177 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. Copyright (C) 2022, 2023 Trinity College Dublin
+.. Copyright (C) 2017, 2019 embedded brains GmbH & Co. KG
+.. Copyright (C) 1988, 1998 On-Line Applications Research Corporation (OAR)
+
+Glossary
+********
+
+.. glossary::
+ :sorted:
+
+ 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 :term:`GNU` assembler
+ program for the target architectures.
+
+ C language
+ The C language for this project is defined in terms of
+ :term:`C11`.
+
+ C11
+ The standard ISO/IEC 9899:2011.
+
+ CCB
+ This term is an acronym for Change Control Board.
+
+ Doorstop
+ `Doorstop <https://github.com/doorstop-dev/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 <https://en.wikipedia.org/wiki/Executable_and_Linkable_Format>`_.
+
+ formal model
+ A model of a computing component (hardware or software) that has a
+ mathematically based :term:`semantics`.
+
+ GCC
+ This term is an acronym for `GNU Compiler Collection <https://gcc.gnu.org/>`_.
+
+ GNAT
+ *GNAT* is the :term:`GNU` compiler for Ada, integrated into the
+ :term:`GCC`.
+
+ GNU
+ This term is an acronym for `GNU's Not Unix <https://www.gnu.org/>`_.
+
+ interrupt service
+ An *interrupt service* consists of an
+ :term:`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 :term:`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 :term:`Linear Temporal Logic`.
+
+ refinement
+ A *refinement* is a relationship between a specification and its
+ implementation as code.
+
+ reification
+ Another term used to denote :term:`refinement`.
+
+ ReqIF
+ This term is an acronym for
+ `Requirements Interchange Format <https://www.omg.org/spec/ReqIF/About-ReqIF/>`_.
+
+ 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:
+
+ * :term:`software unit`
+
+ * explicitly defined :term:`ELF` symbol in a
+ :term:`source code` file
+
+ * :term:`assembler language` data in a source code file
+
+ * :term:`C language` object with static storage duration
+
+ * C language object with thread-local storage duration
+
+ * :term:`thread`
+
+ * :term:`interrupt service`
+
+ * 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
+ :term:`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 :term:`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:
+
+ * :term:`assembler language` function in a
+ :term:`source code` file
+
+ * :term:`C language` function (external and internal linkage)
+
+ A *software unit* is a :term:`software component`.
+
+ source code
+ This project uses the *source code* definition of the
+ `Linux Information Project <http://www.linfo.org/source_code.html>`_:
+ "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 <https://en.wikipedia.org/wiki/Thread_(computing)>`_:
+ "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
+ :term:`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 :term:`software component`.
+
+ thread
+ This term has the same meaning as :term:`task`.
+
+ YAML
+ This term is an acronym for `YAML Ain't Markup Language <https://yaml.org/>`_.