Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions docs/modules/os/operating_systems/docs/certifiable/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
..
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

.. _comp_doc_os_certifiable:

Certifiable Level
#################

These are the certifiable-supported Operating Systems for Eclipse S-CORE.

See see :ref:`platform_assumptions` for the exact requirements for each level (Tier).



Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
177 changes: 177 additions & 0 deletions docs/modules/os/operating_systems/docs/community/autosd.rst
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should add a template that standardizes the information presented. I would also like the ability to filter for specific platform so making them as needs would be nice. Please include and link that in the onboarding page and apply it for autosd:

Platform Name
=============

.. platform:: <platform name>
   :id: platform__<platform name snake case>
   :level: <community/functinal/certifiable>
   :maintainer: <GitHub Handles>

Short overview of the platform and why it is relevant for S-CORE.
Keep this to 3-6 lines. Mention what the OS is and the intended usage context.

Target maintainers/integration assistance
-----------------------------------------

GitHub Handles of the target maintainers.


Integration assistance
----------------------

- Provide the names or mailing lists that users can contact for help with S‑CORE integration.
- Use bullet points for multiple contacts.


Integration manual
------------------

- Summarise how to obtain and use the integration manual for this platform.
- Link to external documentation if it exists.


Build instructions
------------------

Explain how to build an image of this platform and how to build S-CORE for it.

.. code-block:: console

  # example commands to build an image
  curl -o /tmp/image-builder.sh https://example.com/image-builder.sh
  chmod +x /tmp/image-builder.sh
  sudo bash /tmp/image-builder.sh --distro <distro> --target <target>

Provide any additional context, such as how to boot or run the image (e.g. with QEMU).

Toolchain
---------

- Explain how to set up Bazel toolchains for this platform.
- Include a short example ``MODULE.bazel`` snippet.


Bug interface
-------------

- Explain how users can report bugs (mailing lists, issue trackers, Matrix/Slack channels etc.).



Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@odra this is still open. I would also link the template in the onboarding section above.

Copy link
Contributor Author

@odra odra Jan 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added as "os_onboarding_template.rst"

Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
..
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

.. _comp_doc_os_community_autosd:

.. os: AutoSD
:id: os__autosd
:level: community
:maintainer: odra

Red Hat AutoSD
##############

AutoSD is the upstream binary distribution that serves as the public, in-development preview and functional precursor
of the Red Hat In-Vehicle Operating System (OS).

AutoSD is downstream of CentOS Stream, so it retains most of the CentOS Stream code with a few divergences,
such as an optimized automotive-specific kernel rather than CentOS Stream's kernel package.

Red Hat In-Vehicle OS is based on both AutoSD and RHEL, both of which are downstreams of CentOS Stream.

Target Maintainers/Integration Assistance
-----------------------------------------

GitHub Handles of the target maintainers.

- Leonardo Rossetti - @odra

Integration Assistance
----------------------

The following fulfills :need:`aou_req__platform__integration_assistance`

+----------------+-----------------------------+
| .. centered:: Leonardo Rossetti |
+----------------+-----------------------------+
| Github Handler | @odra |
+----------------+-----------------------------+
| Slack Handler | @lrossett |
+----------------+-----------------------------+


Integration Manual
------------------

The following fulfills :need:`aou_req__platform__os_integration_manual`

Build Instructions
^^^^^^^^^^^^^^^^^^

Building an AutoSD image can be done by using "aib": https://gitlab.com/CentOS/automotive/src/automotive-image-builder

Sample usage:

.. code:: bash

export OCI_IMAGE=localhost/score:latest
export AIB_DISTRO=autosd10-sig

aib build-builder --distro ${AIB_DISTRO}
aib build --target qemu --distro ${AIB_DISTRO} image.aib.yml ${OCI_IMAGE}
aib to-disk-image ${OCI_IMAGE} autosd-score.qcow2

As an alternative, you can replace the bare metal "aib" usage with a bash script that runs the tool inside an OCI container:

.. code:: bash

curl -o auto-image-builder.sh "https://gitlab.com/CentOS/automotive/src/automotive-image-builder/-/raw/main/auto-image-builder.sh"
chmod +x auto-image-builder.sh

You can then replace the usage of "aib" with "auto-image-builder.sh" (requires sudo):

.. code:: bash

export OCI_IMAGE=localhost/score:latest
export AIB_DISTRO=autosd10-sig
# set the container storage to the local "_builder" directory to avoid permissions issues
export AIB_LOCAL_CONTAINER_STORAGE=$PWD/_build/containers-storage

sudo -E ./auto-image-builder.sh build-builder --distro ${AIB_DISTRO}
sudo -E ./auto-image-builder.sh build --target qemu --distro ${AIB_DISTRO} image.aib.yml ${OCI_IMAGE}
sudo -E ./auto-image-builder.sh to-disk-image ${OCI_IMAGE} autosd-score.qcow2

If using QEMU, you can run the image using the following command:

.. code:: bash

/usr/bin/qemu-system-x86_64 \
-drive file=/usr/share/OVMF/OVMF_CODE_4M.fd,if=pflash,format=raw,unit=0,readonly=on \
-drive file=/usr/share/OVMF/OVMF_VARS_4M.fd,if=pflash,format=raw,unit=1,snapshot=on,readonly=off \
-enable-kvm \
-m 2G \
-smp $(nproc) \
-machine q35 \
-cpu host \
-device virtio-net-pci,netdev=n0 \
-netdev user,id=n0,hostfwd=tcp::2222-:22 \
-daemonize \
-display none \
-drive file=disk.qcow2,index=0,media=disk,format=qcow2,if=virtio,id=rootdisk,snapshot=off

Toolchain
^^^^^^^^^

Upstream documentation: https://github.com/eclipse-score/inc_os_autosd/tree/main/toolchain

A Bazel toolchain defintion is provided for users to build their Bazel modules and components with AutoSD's tooling (compilers, libraries, etc).

Sample usage (MODULE.bazel file):

.. code:: starlark

# Use local path during development, or git_override for published versions
local_path_override(
module_name = "os_autosd",
path = "/path/to/inc_os_autosd/"
)

bazel_dep(name = "os_autosd", version = "1.0.0")

# Configure AutoSD 9 GCC toolchain
autosd_10_gcc = use_extension("@os_autosd//toolchain/autosd_10_gcc:extensions.bzl", "autosd_10_gcc_extension")
autosd_10_gcc.configure(
c_flags = ["-Wall", "-Wno-error=deprecated-declarations", "-Werror", "-fPIC"],
cxx_flags = ["-Wall", "-Wno-error=deprecated-declarations", "-Werror", "-fPIC"],
)

use_repo(autosd_10_gcc, "autosd_10_gcc_repo")
register_toolchains("@autosd_10_gcc_repo//:gcc_toolchain_linux_x86_64")

**NOTE:** AutoSD's tooling does not support cross compilation.



Mixed Critical Orchestration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Upstream documentation: https://sigs.centos.org/automotive/features-and-concepts/con_mixed-criticality/

Mixed Critical Orchestration, aka MCO, can be achieved with the following components:

* Systemd: the init system that is responsible for workload orchestration
* Eclise BlueChi: extends Systemd to enable multi-node and multi domain orchestration
* QM: Quality management environment that is composed of two sub-systems: a dedicated rootfs partition + container isolation

ASIL and QM connectivity is done either via an IPC socket or shared memory (/dev/shm).

.. image:: _assets/autosd-mco.png
:align: center

Bug Interface
-------------

The following fulfills :need:`aou_req__platform__bug_interface`

+------------------------------------+---------------------------------------------------------------------------+
| |
+------------------------------------+---------------------------------------------------------------------------+
| CentOS SIG Automotive Mailing List | https://lists.centos.org/hyperkitty/list/automotive-sig@lists.centos.org/ |
+------------------------------------+---------------------------------------------------------------------------+
| Gitlab Issue Tracker | https://gitlab.com/CentOS/automotive/sig |
+------------------------------------+---------------------------------------------------------------------------+
| CentOS SIG Matrix Channel | https://app.element.io/#/room/#centos-automotive-sig:fedoraproject.org |
+------------------------------------+---------------------------------------------------------------------------+
| Eclipse SDV Slack Channel | #autosd (https://sdvworkinggroup.slack.com/archives/C0986LJ9EJH) |
+------------------------------------+---------------------------------------------------------------------------+
27 changes: 27 additions & 0 deletions docs/modules/os/operating_systems/docs/community/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
..
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************
.. _comp_doc_os_community:

Community Level
###############

.. toctree::
:titlesonly:

autosd.rst

These are the community-supported Operating Systems for Eclipse S-CORE.

See see :ref:`platform_assumptions` for the exact requirements for each level (Tier).
22 changes: 22 additions & 0 deletions docs/modules/os/operating_systems/docs/functional/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
..
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

.. _comp_doc_os_functional:

Functional Level
################

These are the functional-supported Operating Systems for Eclipse S-CORE.

See see :ref:`platform_assumptions` for the exact requirements for each level (Tier).
65 changes: 65 additions & 0 deletions docs/modules/os/operating_systems/docs/index.rst
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should describes the onboarding, maybe something like this (in separate file):

.. _platform-onboarding:

Onboarding and Promotion of Platforms
=====================================

This page describes how platforms are added and promoted.

The process requirements are defined in :ref:`platform_assumptions`.

Principle
---------

Promotion has two phases:

1. **Eligibility (Platform Maintainer)**:
   The platform maintainer resolves the **supplier** requirements of the target level.
   Only if these requirements are fulfilled, the OS can be considered for promotion.

2. **Acceptance + Lifecycle Guarantees (S-CORE)**:
   S-CORE reviews the promotion request.
   If accepted at **Functional** or **Certifiable**, S-CORE commits to maintain the
   guarantees of the accepted level across all increments.

Community level onboarding
--------------------------

**What it means**
  In-tree best-effort integration.
  S-CORE provides no guarantees.

**Eligibility requirements (Platform Maintainer / supplier requirements)**
  The OS maintainer must fulfil the Community level supplier requirements as defined in:
  :ref:`platform_assumptions`.

**Review and acceptance (S-CORE)**
  S-CORE reviews the documentation entry for completeness and consistency.
  Acceptance only means the platform is listed in-tree.
  No infrastructure or lifecycle support is implied.

Promotion to Functional
-----------------------

**What it means**
  S-CORE provides functional guarantees for the accepted reference integration and
  maintains them across all increments.

**Eligibility requirements (Platform Maintainer / supplier requirements)**
  The platform maintainer must fulfil the Functional level supplier requirements as defined in:
  :ref:`platform_assumptions`.

**Additional acceptance requirements (S-CORE / system integrator requirements)**
  From Functional level onwards, S-CORE must be able to continuously validate the platform.
  This requires infrastructure and test integration.

**Required approvals**
  Promotion to Functional requires explicit approval by:

  * Platform maintainers
  * Architecture WG
  * Infrastructure WG (CI / build & test environment support)
  * Testing WG
  * Quality Management

Promotion to Certifiable
------------------------

**What it means**
  S-CORE provides certifiability-oriented guarantees for the accepted reference integration
  and maintains them across all increments.

**Eligibility requirements (Platform Maintainer / supplier requirements)**
  The platform maintainer must fulfil the Certifiable level supplier requirements as defined in:
  :ref:`platform_assumptions`.

**Additional acceptance requirements (S-CORE / system integrator requirements)**
  Certifiable level implies additional safety/security expectations and evidence handling.

**Required approvals**
  Promotion to Certifiable requires explicit approval by:

  * OS module maintainers
  * Architecture WG
  * Infrastructure WG
  * Testing WG
  * Quality Management
  * Safety Manager
  * Security Manager

Demotion
--------

If the eligibility requirements or the S-CORE lifecycle guarantees of an accepted platform
can no longer be maintained, the platform must be demoted to the highest level that can be
sustained.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@odra this is still open

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added as onboarding.rst

Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
..
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

.. _comp_doc_os:

Operating Systems
=================

.. toctree::
:maxdepth: 2
:hidden:

onboarding/index
community/index
functional/index
certifiable/index

An operating system is an environment on which S-CORE is integrated and executed.

In the context of the OS module, **S-CORE acts as the platform integrator**:
S-CORE maintainers integrate and validate specific OS environments as S-CORE
reference platforms and document the practical usage for downstream users.

Operating Systems are categorized into the following **levels**:

* **Community Level**: integrated on a best-effort basis. S-CORE provides **no guarantees**
that the platform builds or runs reliably.
* **Functional Level**: S-CORE provides **functional guarantees** (build + tests for the
reference integration).
* **Certifiable Level**: S-CORE provides **certifiability-oriented guarantees** for the
reference integration and documents additional safety/security expectations.

The concrete level requirements are defined in :ref:`platform_assumptions`.

Roles and responsibilities
--------------------------

Platform integrations follow the process requirements defined in:
:ref:`platform_assumptions`.

Two roles from the process requirements are relevant:

* **Supplier**: provides an external SW element (e.g. OS / hypervisor) that S-CORE uses.
* **System Integrator**: integrates the S-CORE SW-platform into a system.

In the S-CORE Software Platforms, these roles map to:

* **Platform Maintainer** (Supplier role): resolves the *supplier* requirements.
The platform maintainer provides the prerequisites so that the platform can be considered
for promotion to a level.

* **S-CORE** (System Integrator role): resolves the *system integrator* requirements.
Once S-CORE accepts a platform at **Functional** or **Certifiable** level, S-CORE
must ensure that the accepted guarantees remain valid across all increments.
Loading