Changeset c098290 in rtems-docs


Ignore:
Timestamp:
01/11/19 11:54:20 (5 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
5, master
Children:
89a33b3
Parents:
c4da705
git-author:
Sebastian Huber <sebastian.huber@…> (01/11/19 11:54:20)
git-committer:
Sebastian Huber <sebastian.huber@…> (01/14/19 06:15:27)
Message:

user: Move "Ecosystem" into "Introduction"

Location:
user
Files:
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • user/index.rst

    rc4da705 rc098290  
    2727
    2828    overview/index
    29     ecosys/index
    30 
    3129    start/index
    3230    hosts/index
  • user/overview/index.rst

    rc4da705 rc098290  
    11.. SPDX-License-Identifier: CC-BY-SA-4.0
     2
     3.. Copyright (C) 2016 Chris Johns <chrisj@rtems.org>
    24
    35Introduction
     
    182184
    183185    - Support to stay in synchronization with FreeBSD
     186
     187.. _ecosystem:
     188
     189Ecosystem
     190=========
     191.. index:: Ecosystem
     192
     193The RTEMS Ecosystem is the collection of tools, packages, code, documentation
     194and online content provided by the RTEMS Project. The ecosystem provides a way
     195to develop, maintain, and use RTEMS. It's parts interact with the user, the
     196host environment, and each other to make RTEMS accessible, useable and
     197predicable.
     198
     199The ecosystem is for users, developers and maintainers and it is an ongoing
     200effort that needs your help and support. The RTEMS project is always improving
     201the way it delivers the kernel to you and your feedback is important so please
     202join the mailing lists and contribute back comments, success stories, bugs and
     203patches.
     204
     205What the RTEMS project describes here to develop, maintain and use RTEMS does
     206not dictate what you need to use in your project. You can and should select the
     207work-flow that best suites the demands of your project and what you are
     208delivering.
     209
     210Rational
     211--------
     212
     213RTEMS is complex and the focus of the RTEMS Ecosystem is to simplify the
     214complexity for users by providing a stable documented way to build, configure
     215and run RTEMS. RTEMS is more than a kernel running real-time applications on
     216target hardware, it is part of a project's and therefore team's workflow and
     217every project and team is different.
     218
     219RTEMS's ecosystem does not mandate a way to work. It is a series of parts,
     220components, and items that are used to create a suitable development
     221environment to work with. The processes explained in this manual are the same
     222things an RTEMS maintainer does to maintain the kernel or an experienced user
     223does to build their production system. It is important to keep this in mind
     224when working through this manual. We encourage users to explore what can be
     225done and to discover ways to make it fit their needs. The ecosystem provided by
     226the RTEMS Project will not install in a single click of a mouse because we want
     227users to learn the parts they will come to depend on as their project's
     228development matures.
     229
     230The RTEMS Ecosystem provides a standard interface that is the same on all
     231supported host systems. Standardizing how a user interacts with RTEMS is
     232important and making that experience portable is also important. As a result
     233the ecosystem is documented at the command line level and we leave GUI and IDE
     234integration for users and integrators.
     235
     236Standardizing the parts and how to use them lets users create processes and
     237procedures that are stable over releases. The RTEMS Ecosystem generates data
     238that can be used to audit the build process so their configuration can be
     239documented.
     240
     241The ecosystem is based around the source code used in the various parts,
     242components and items of the RTEMS development environment. A user can create
     243an archive of the complete build process including all the source code for long
     244term storage. This is important for projects with a long life cycle.
     245
     246Open Source
     247-----------
     248
     249RTEMS is an open source operating system and an open source project and this
     250extends to the ecosystem. We encourage users to integrate the processes to
     251build tools, the kernel and any 3rd party libraries into their project's
     252configuration management processes.
     253
     254All the parts that make up the ecosystem are open source. The ecosystem uses a
     255package's source code to create an executable on a host so when an example
     256RTEMS executable is created and run for the first time the user will have built
     257every tool as well as the executable from source. The RTEMS Project believes
     258the freedom this gives a user is as important as the freedom of having access
     259to the source code for a package.
     260
     261Deployment
     262----------
     263
     264The RTEMS Project provides the ecosystem as source code that users can download
     265to create personalised development environments. The RTEMS Project does not
     266provide packaging and deployment for a specific host environment, target
     267architecture or BSP. The RTEMS Project encourages users and organizations to
     268fill this role for the community.
     269
     270Building and Deploying Tool Binaries
     271~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     272
     273If you wish to create and distribute your build or you want to archive a build
     274you can create a tar file. We term this deploying a build. This is a more
     275advanced method for binary packaging and installing of tools.
     276
     277By default the RTEMS Source Builder installs the built packages directly and
     278optionally it can also create a *build set tar file* or a *package tar file*
     279per package built. The normal and default behaviour is to let the RTEMS Source
     280Builder install the tools. The source will be downloaded, built, installed and
     281cleaned up.
     282
     283The tar files are created with the full build prefix present and if you follow
     284the examples given in this documentation the path is absolute. This can cause
     285problems if you are installing on a host you do not have super user or
     286administrator rights on because the prefix path may references part you do not
     287have write access too and tar will not extract the files. You can use the
     288``--strip-components`` option in tar if your host tar application supports it
     289to remove the parts you do not have write access too or you may need to unpack
     290the tar file somewhere and copy the file tree from the level you have write
     291access from. Embedding the full prefix path in the tar files lets you know what
     292the prefix is and is recommended. For example if
     293``/home/chris/development/rtems/4.11`` is the prefix used you cannot change
     294directory to the root (``/``) and untar the file because the ``/home`` is root
     295access only. To install a tar file you have downloaded into your new machine's
     296``Downloads`` directory in your home directoty you would enter:
     297
     298.. code-block:: shell
     299
     300    $ cd /somewhere
     301    $ tar --strip-components=3 -xjf \
     302          $HOME/Downloads/rtems-4.11-sparc-rtems4.11-1.tar.bz2
     303
     304A build set tar file is created by adding ``--bset-tar-file`` option to the
     305``sb-set-builder`` command::
     306
     307    $ ../source-builder/sb-set-builder --log=l-sparc.txt \
     308             --prefix=$HOME/development/rtems/4.11 \
     309             --bset-tar-file \     <1>
     310             4.11/rtems-sparc
     311    Source Builder - Set Builder, v0.2.0
     312    Build Set: 4.11/rtems-sparc
     313    config: expat-2.1.0-1.cfg
     314    package: expat-2.1.0-x86_64-freebsd9.1-1
     315    building: expat-2.1.0-x86_64-freebsd9.1-1
     316    config: tools/rtems-binutils-2.22-1.cfg
     317    package: sparc-rtems4.11-binutils-2.22-1
     318    building: sparc-rtems4.11-binutils-2.22-1
     319    config: tools/rtems-gcc-4.7.2-newlib-1.20.0-1.cfg
     320    package: sparc-rtems4.11-gcc-4.7.2-newlib-1.20.0-1
     321    building: sparc-rtems4.11-gcc-4.7.2-newlib-1.20.0-1
     322    config: tools/rtems-gdb-7.5.1-1.cfg
     323    package: sparc-rtems4.11-gdb-7.5.1-1
     324    building: sparc-rtems4.11-gdb-7.5.1-1
     325    installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11 <2>
     326    installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11
     327    installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11
     328    installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11
     329    tarball: tar/rtems-4.11-sparc-rtems4.11-1.tar.bz2      <3>
     330    cleaning: expat-2.1.0-x86_64-freebsd9.1-1
     331    cleaning: sparc-rtems4.11-binutils-2.22-1
     332    cleaning: sparc-rtems4.11-gcc-4.7.2-newlib-1.20.0-1
     333    cleaning: sparc-rtems4.11-gdb-7.5.1-1
     334    Build Set: Time 0:15:25.92873
     335
     336.. topic:: Items
     337
     338  1. The option to create a build set tar file.
     339
     340  2. The installation still happens unless you specify ``--no-install``.
     341
     342  3. Creating the build set tar file.
     343
     344You can also suppress installing the files using the ``--no-install``
     345option. This is useful if your prefix is not accessiable, for example when
     346building Canadian cross compiled tool sets::
     347
     348    $ ../source-builder/sb-set-builder --log=l-sparc.txt \
     349                --prefix=$HOME/development/rtems/4.11 \
     350                --bset-tar-file \
     351                --no-install \      <1>
     352                4.11/rtems-sparc
     353    Source Builder - Set Builder, v0.2.0
     354    Build Set: 4.11/rtems-sparc
     355    config: expat-2.1.0-1.cfg
     356    package: expat-2.1.0-x86_64-freebsd9.1-1
     357    building: expat-2.1.0-x86_64-freebsd9.1-1
     358    config: tools/rtems-binutils-2.22-1.cfg
     359    package: sparc-rtems4.11-binutils-2.22-1
     360    building: sparc-rtems4.11-binutils-2.22-1
     361    config: tools/rtems-gcc-4.7.2-newlib-1.20.0-1.cfg
     362    package: sparc-rtems4.11-gcc-4.7.2-newlib-1.20.0-1
     363    building: sparc-rtems4.11-gcc-4.7.2-newlib-1.20.0-1
     364    config: tools/rtems-gdb-7.5.1-1.cfg
     365    package: sparc-rtems4.11-gdb-7.5.1-1
     366    building: sparc-rtems4.11-gdb-7.5.1-1
     367    tarball: tar/rtems-4.11-sparc-rtems4.11-1.tar.bz2    <2>
     368    cleaning: expat-2.1.0-x86_64-freebsd9.1-1
     369    cleaning: sparc-rtems4.11-binutils-2.22-1
     370    cleaning: sparc-rtems4.11-gcc-4.7.2-newlib-1.20.0-1
     371    cleaning: sparc-rtems4.11-gdb-7.5.1-1
     372    Build Set: Time 0:14:11.721274
     373    $ ls tar
     374    rtems-4.11-sparc-rtems4.11-1.tar.bz2
     375
     376.. topic:: Items
     377
     378  1. The option to supressing installing the packages.
     379
     380  2. Create the build set tar.
     381
     382A package tar file can be created by adding the ``--pkg-tar-files`` to the
     383``sb-set-builder`` command. This creates a tar file per package built in the
     384build set::
     385
     386    $ ../source-builder/sb-set-builder --log=l-sparc.txt \
     387            --prefix=$HOME/development/rtems/4.11 \
     388            --bset-tar-file \
     389            --pkg-tar-files \        <1>
     390            --no-install 4.11/rtems-sparc
     391    Source Builder - Set Builder, v0.2.0
     392    Build Set: 4.11/rtems-sparc
     393    config: expat-2.1.0-1.cfg
     394    package: expat-2.1.0-x86_64-freebsd9.1-1
     395    building: expat-2.1.0-x86_64-freebsd9.1-1
     396    config: tools/rtems-binutils-2.22-1.cfg
     397    package: sparc-rtems4.11-binutils-2.22-1
     398    building: sparc-rtems4.11-binutils-2.22-1
     399    config: tools/rtems-gcc-4.7.2-newlib-1.20.0-1.cfg
     400    package: sparc-rtems4.11-gcc-4.7.2-newlib-1.20.0-1
     401    building: sparc-rtems4.11-gcc-4.7.2-newlib-1.20.0-1
     402    config: tools/rtems-gdb-7.5.1-1.cfg
     403    package: sparc-rtems4.11-gdb-7.5.1-1
     404    building: sparc-rtems4.11-gdb-7.5.1-1
     405    tarball: tar/rtems-4.11-sparc-rtems4.11-1.tar.bz2
     406    cleaning: expat-2.1.0-x86_64-freebsd9.1-1
     407    cleaning: sparc-rtems4.11-binutils-2.22-1
     408    cleaning: sparc-rtems4.11-gcc-4.7.2-newlib-1.20.0-1
     409    cleaning: sparc-rtems4.11-gdb-7.5.1-1
     410    Build Set: Time 0:14:37.658460
     411    $ ls tar
     412    expat-2.1.0-x86_64-freebsd9.1-1.tar.bz2           sparc-rtems4.11-binutils-2.22-1.tar.bz2
     413    sparc-rtems4.11-gdb-7.5.1-1.tar.bz2 <2>           rtems-4.11-sparc-rtems4.11-1.tar.bz2 <3>
     414    sparc-rtems4.11-gcc-4.7.2-newlib-1.20.0-1.tar.bz2
     415
     416.. topic:: Items
     417
     418  1. The option to create packages tar files.
     419
     420  2. The GDB package tar file.
     421
     422  3. The build set tar file. All the others in a single tar file.
    184423
    185424Support
Note: See TracChangeset for help on using the changeset viewer.