-
Notifications
You must be signed in to change notification settings - Fork 76
OS tier levels + AutoSD as a community OS #2266
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
eb1535e
2e60e99
f978949
b126d3f
74b829b
1f80559
0a57a2c
92fddfd
b859503
76f5b6f
34a6713
989fb30
e3ae59f
2706da3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| 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). | ||
|
|
||
|
|
||
|
|
| 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) | | ||
| +------------------------------------+---------------------------------------------------------------------------+ |
| 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). |
| 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). |
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should describes the onboarding, maybe something like this (in separate file):
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @odra this is still open
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. added as onboarding.rst
qor-lb marked this conversation as resolved.
Show resolved
Hide resolved
|
| 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. |
There was a problem hiding this comment.
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:
There was a problem hiding this comment.
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.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
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"