Changeset 52f4890 in rtems-docs


Ignore:
Timestamp:
Jan 7, 2019, 6:46:08 AM (3 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
3177018
Parents:
65f54a9
git-author:
Sebastian Huber <sebastian.huber@…> (01/07/19 06:46:08)
git-committer:
Sebastian Huber <sebastian.huber@…> (01/09/19 08:24:02)
Message:

user: Rework overview

Move "Overview", "Real-time Applicaiton Systems" and "Real-time
Executive" chapters as sections into new "Introduction" chapter. Add
"Feature" section.

Location:
user
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • user/glossary/index.rst

    r65f54a9 r52f4890  
    1212    architecture compiler for each support RTEMS architecture.
    1313
     14  APA
     15    Arbitrary Processor Affinity
     16
     17  API
     18    Application Programming Interface
     19
    1420  Binutils
    1521    GNU Binary Utilities such as the assembler ``as``, linker ``ld`` and a
     
    2430    A continuous inteagration build server.
    2531
     32  C11
     33    ISO/IEC 9899:2011
     34
     35  C++11
     36    ISO/IEC 14882:2011
     37
    2638  Crosscompiler
    2739
     
    3244    Dynamically Linker Library used on Windows.
    3345
     46  EDF
     47    Earliest Deadline First
     48
     49  EMB²
     50    `Embedded Multicore Building Blocks <https://embb.io>`_
     51
     52  FAT
     53    File Allocation Table
     54
     55  Futex
     56    Fast User-Space Locking
     57
     58  IMFS
     59    In-Memory File System
     60
     61  JFFS2
     62    Journalling Flash File System version 2
     63
    3464  GCC
    35     GNU Compiler Tool chain. It is the GNU C/C++ compiler, binutils and GDB.
     65    GNU Compiler Collection
    3666
    3767  GDB
    3868    GNU Debugger
     69
     70  GNU
     71    GNU's Not Unix
    3972
    4073  Host
     
    5083    Minimal GNU system for 64bit Windows. MinGW64 is not the MinGW project.
    5184
     85  MrsP
     86    Multiprocessor Resource-Sharing Protocol
     87
    5288  MSYS2
    5389    Minimal System 2 is a fork of the MinGW project's MSYS tool and the MinGW
     
    5894    programs.
    5995
     96  NFSv2
     97    Network File System version 2
     98
     99  OMIP
     100    :math:`O(m)` Independence-Preserving Protocol
     101
     102  OpenMP
     103    Open Multi-Processing
     104
    60105  POSIX
    61106    Portable Operating System Interface is a standard that lets software be
     
    65110    A path used when building a package so all parts of the package reside
    66111    under that path.
     112
     113  RFS
     114    RTEMS File System
    67115
    68116  RSB
     
    76124    interface standards such as POSIX and BSD sockets.
    77125
     126  SMP
     127    Symmetric Multiprocessing
     128
    78129  Target
    79130    A target is the hardware or simulator a BSP built executable runs on.
     
    85136    RTEMS test suite located in the ``testsuites/`` directory.
    86137
     138  TLS
     139    Thread-Local Storage
     140
    87141  Waf
    88142    Waf build system.  For more information see http://www.waf.io/
     143
     144  YAFFS2
     145    `Yet Another Flash File System version 2 <https://git.rtems.org/sebh/rtems-yaffs2.git>`_
  • user/overview/index.rst

    r65f54a9 r52f4890  
    11.. comment SPDX-License-Identifier: CC-BY-SA-4.0
    22
     3Introduction
     4============
     5
    36Overview
    4 ========
    5 
    6 Welcome to the :ref:term:`RTEMS` User Manual.
    7 
    8 This document covers the topics a user of RTEMS needs to be able to install,
    9 configure, build and create applications for the RTEMS operating system.
    10 
    11 RTEMS, Real-Time Executive for Multiprocessor Systems, is a real-time executive
    12 (kernel) which provides a high performance environment for embedded
    13 applications with the following features:
    14 
    15 .. sidebar:: Developers
    16 
    17   Developers should look at the :r:url:`devel` for technical information. The
    18   design and development of RTEMS is located there.
    19 
    20 - standards based user interfaces
    21 
    22 - multitasking capabilities
    23 
    24 - homogeneous and heterogeneous multiprocessor systems
    25 
    26 - event-driven, priority-based, preemptive scheduling
    27 
    28 - optional rate monotonic scheduling
    29 
    30 - intertask communication and synchronization
    31 
    32 - priority inheritance
    33 
    34 - responsive interrupt management
    35 
    36 - dynamic memory allocation
    37 
    38 - high level of user configurability
    39 
    40 - open source with a friendly user license
    41 
    42 RTEMS provides features found in modern operating systems:
    43 
    44 - file systems
    45 
    46 - networking
    47 
    48 - USB
    49 
    50 - permanent media such as flash disks, cards and USB devices
    51 
    52 - support for various languages
    53 
    54 - parallel programming language support
     7--------
     8
     9You are someone looking for a real-time operating system.  This document
     10
     11- presents the basic features of RTEMS, so that you can decide if it is worth to
     12  look at,
     13
     14- gives you a :ref:`quick start <QuickStart>` to install all the tools
     15  necessary to work with RTEMS, and
     16
     17- helps you to build an example application on top of RTEMS.
     18
     19Features
     20--------
     21
     22The Real-Time Executive for Multiprocessor Systems (:ref:term:`RTEMS`) is a
     23multi-threaded, single address-space, real-time operating system with no
     24kernel-space/user-space separation.  It is capable to operate in an
     25:ref:term:`SMP` configuration providing a state of the art feature set.
     26
     27RTEMS is licensed under a
     28`modified GPL 2.0 or later license with an exception for static linking <https://git.rtems.org/rtems/tree/LICENSE>`_
     29[#]_.  It exposes no license requirements on application code.  The third-party
     30software used and distributed by RTEMS which may be linked to the application
     31is licensed under permissive open source licenses.  Everything necessary to
     32build RTEMS applications is available as open source software.  This makes you
     33completely vendor independent.
     34
     35RTEMS provides the following basic feature set:
     36
     37- :ref:term:`APIs <API>`
     38
     39    - :ref:term:`POSIX` with
     40      `pthreads <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/pthread.h.html>`_
     41      (enables a broad range of standard software to run on RTEMS)
     42
     43    - `Classic <https://docs.rtems.org/branches/master/c-user.pdf>`_
     44
     45    - :ref:term:`C11` (including
     46      `thread <https://en.cppreference.com/w/c/thread>`_ support)
     47
     48    - :ref:term:`C++11` (including
     49      `thread <https://en.cppreference.com/w/cpp/thread>`_ support)
     50
     51    - Newlib and :ref:term:`GCC` internal
     52
     53- Programming languages
     54
     55    - C/C++/OpenMP (RTEMS Source Builder, RSB)
     56
     57    - Ada (RSB, ``--with-ada``)
     58
     59    - Erlang
     60
     61    - Fortran (RSB, ``--with-fortran``)
     62
     63    - Python and MicroPython
     64
     65- Parallel languages
     66
     67    - :ref:term:`EMB²`
     68
     69    - Google Go [#]_
     70
     71    - :ref:term:`OpenMP` 4.5
     72
     73- Thread synchronization and communication
     74
     75    - Mutexes with and without locking protocols
     76
     77    - Counting semaphores
     78
     79    - Binary semaphores
     80
     81    - Condition variables
     82
     83    - Events
     84
     85    - Message queues
     86
     87    - Barriers
     88
     89    - :ref:term:`Futex` (used by :ref:term:`OpenMP` barriers)
     90
     91    - Epoch Based Reclamation (libbsd)
     92
     93- Locking protocols
     94
     95    - Transitive Priority Inheritance
     96
     97    - :ref:term:`OMIP` (SMP feature)
     98
     99    - Priority Ceiling
     100
     101    - :ref:term:`MrsP` (SMP feature)
     102
     103- Scalable timer and timeout support
     104
     105- Lock-free timestamps (FreeBSD timecounters)
     106
     107- Responsive interrupt management
     108
     109- C11/C++11 :ref:term:`TLS` [#]_
     110
     111- Link-time configurable schedulers
     112
     113    - Fixed-priority
     114
     115    - Job-level fixed-priority (:ref:term:`EDF`)
     116
     117    - Constant Bandwidth Server (experimental)
     118
     119- Clustered scheduling (SMP feature)
     120
     121    - Flexible link-time configuration
     122
     123    - Job-level fixed-priority scheduler (:ref:term:`EDF`) with support for
     124      one-to-one and one-to-all thread to processor affinities (default SMP
     125      scheduler)
     126
     127    - Fixed-priority scheduler
     128
     129    - Proof-of-concept strong :ref:term:`APA` scheduler
     130
     131- Focus on link-time application-specific configuration
     132
     133- Linker-set based initialization (similar to global C++ constructors)
     134
     135- Operating system uses fine-grained locking (SMP feature)
     136
     137- Dynamic memory allocators
     138
     139    - First-fit (default)
     140
     141    - Universal Memory Allocator
     142      (`UMA <https://www.freebsd.org/cgi/man.cgi?query=uma&sektion=9>`_ ,
     143      libbsd)
     144
     145- File systems
     146
     147    - :ref:term:`IMFS`
     148
     149    - :ref:term:`FAT`
     150
     151    - :ref:term:`RFS`
     152
     153    - :ref:term:`NFSv2`
     154
     155    - :ref:term:`JFFS2` (NOR flashes)
     156
     157    - :ref:term:`YAFFS2` (NAND flashes, GPL or commercial license required)
     158
     159- Device drivers
     160
     161    - Termios (serial interfaces)
     162
     163    - I2C (Linux user-space API compatible)
     164
     165    - SPI (Linux user-space API compatible)
     166
     167    - Network stacks (legacy, libbsd, lwIP)
     168
     169    - USB stack (libbsd)
     170
     171    - SD/MMC card stack (libbsd)
     172
     173    - Framebuffer (Linux user-space API compatible, Qt)
     174
     175    - Application runs in kernel-space and can access hardware directly
     176
     177- libbsd
     178
     179    - Port of FreeBSD user-space and kernel-space components to RTEMS
     180
     181    - Easy access to FreeBSD software for RTEMS
     182
     183    - Support to stay in synchronization with FreeBSD
    55184
    56185Real-time Application Systems
    57 =============================
     186-----------------------------
    58187
    59188Real-time application systems are a special class of computer applications.
     
    90219
    91220Real-time Executive
    92 ===================
     221-------------------
    93222
    94223Fortunately, real-time operating systems, or real-time executives, serve as a
     
    128257standard software components, the time and cost required to develop
    129258sophisticated real-time applications are significantly reduced.
     259
     260.. [#] The goal is to use the
     261       `BSD 2-Clause license
     262       <https://git.rtems.org/rtems/tree/LICENSE.BSD-2-Clause>`_ for new code
     263       or code those copyright holder agreed to a license change, see `#3053
     264       <https://devel.rtems.org/ticket/3053>`_ for the details.
     265
     266.. [#] See `#2832 <https://devel.rtems.org/ticket/2832>`_.
     267
     268.. [#] Thread-local storage requires some support by the tool chain and the
     269       RTEMS architecture support, e.g. context-switch code.  It is supported
     270       at least on ARM, PowerPC, RISC-V, SPARC and m68k.  Check the
     271       `RTEMS CPU Architecture Supplement <https://docs.rtems.org/branches/master/cpu-supplement.pdf>`_
     272       if it is supported.
  • user/start/index.rst

    r65f54a9 r52f4890  
    55
    66.. index:: Quick Start
     7
     8.. _QuickStart:
    79
    810Quick Start
Note: See TracChangeset for help on using the changeset viewer.