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
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Memory Shared Component Architecture
:safety: ASIL_B
:status: valid
:implements: logic_arc_int__baselibs__memory_shared
:uses: logic_arc_int__os__fcntl, logic_arc_int__os__stat, logic_arc_int__os__mmap
:uses: logic_arc_int__os__fcntl, logic_arc_int__os__stat, logic_arc_int__os__mman

.. needarch::
:scale: 50
Expand Down
14 changes: 14 additions & 0 deletions docs/modules/communication/docs/requirements/aou_req.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
..
# *******************************************************************************
# 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
# *******************************************************************************

Assumptions of Use
##################

Expand Down
2 changes: 1 addition & 1 deletion docs/modules/lifecycle/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Lifecycle
:status: valid
:safety: ASIL_B
:implements: logic_arc_int__lifecycle__controlif, logic_arc_int__lifecycle__alive_if
:uses: logic_arc_int__logging__logging, logic_arc_int__baselibs__json, logic_arc_int__os__fork, logic_arc_int__lifecycle__lifecycle_if
:uses: logic_arc_int__logging__logging, logic_arc_int__baselibs__json, logic_arc_int__os__unistd, logic_arc_int__lifecycle__lifecycle_if
:security: NO


Expand Down
15 changes: 14 additions & 1 deletion docs/modules/os/docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,17 @@

.. mod_view_sta:: OS
:id: mod_view_sta__os__os
:includes: comp_arc_sta__os__libc, comp_arc_sta__os__message_passing
:includes: comp__os_libc, comp__os_message_passing, comp__os_libcpp

The module "OS" is not a part of the S-CORE SW-Platform, but it is a crucial external SW element.
Its components are modelled in S-CORE to be able to describe dependencies of S-CORE features to
this external component.
As it is external to S-CORE, the (folder/file) structure of the documentation may be different from the other modules.
Its main content is the POSIX operating system environment (sometimes also already called a "SW platform").
But also other SW components are modelled as a part of it as these are often provided by the "OS" supplier.
One example of these "other" SW components are the C/C++ libs which may come from a processor manufacturer instead.
S-CORE expects to support integration of more than one operating system, so these may be seen already in this module view,
as different components. Requirements on this OS integration are documented in :need:`doc__os_requirements`.

.. needarch::
:scale: 50
Expand All @@ -30,3 +40,6 @@ Module Documents
.. toctree::
:maxdepth: 2
:titlesonly:

requirements/index.rst
requirements/aou_req.rst
83 changes: 83 additions & 0 deletions docs/modules/os/docs/requirements/aou_req.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
..
# *******************************************************************************
# Copyright (c) 2026 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
# *******************************************************************************

Assumptions of Use
##################

.. document:: Operating System Assumptions of Use
:id: doc__os_aou
:status: draft
:safety: ASIL_B
:security: YES
:realizes: wp__requirements_comp

.. aou_req:: No Root Privileges
:id: aou_req__os__nonroot
:reqtype: Functional
:security: YES
:safety: ASIL_B
:status: valid

No process running on the SW-platform shall request root privileges.

Note: The root privilege is dangerous for security and safety as it destroys process isolation.

.. aou_req:: Safe OS Function Use
:id: aou_req__os__safe_fctn_use
:reqtype: Functional
:security: YES
:safety: ASIL_B
:status: valid

If an application or SW-platform component is safety relevant and uses OS functions, it shall only use the safe functions.

Note: For checking the "to be expected" safe functions the developer can consider the safe function list
published by the OS supplier. For QNX this can be found for example in `appendices here <https://fs-products.tuvasi.com/certificates?keywords=Blackberry&productcategory_id=1#prodid_9842>`_ (for one version).

.. aou_req:: OS Public API Use
:id: aou_req__os__public_api
:reqtype: Functional
:security: YES
:safety: ASIL_B
:status: valid

All components shall only use the public API of the OS components.

.. aou_req:: C++ Library Preference
:id: aou_req__os__cxx_preference
:reqtype: Functional
:security: YES
:safety: ASIL_B
:status: valid

All components should prefer the use of C++ standard lib over the C lib to call a functionality.
If C lib must be used, it shall not be mixed with C++ lib for the same functionality.

.. aou_req:: Minimal Process Privileges
:id: aou_req__os__minimal_privileges
:reqtype: Functional
:security: YES
:safety: ASIL_B
:status: valid

All components shall only use the privileges that are indispensable for their function.

Note1: OS safety manuals provide lists of allowed and not allowed privileges.

Note2: One example is the "channel connect" - only IPC connections are allowed which are specified in the architecture.

Note3: Another example is mmap_peer which would allow accessing other processes memory if wrongly used.

.. needextend:: "__os_" in id
:+tags: operating_system
64 changes: 64 additions & 0 deletions docs/modules/os/docs/requirements/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
..
# *******************************************************************************
# Copyright (c) 2026 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
# *******************************************************************************



Requirements
############

.. document:: Operating System Requirements
:id: doc__os_requirements
:status: draft
:safety: ASIL_B
:security: YES
:realizes: wp__requirements_comp

Generally the OS (as an external SW element) is expected by the S-CORE project to fulfill the following requirements,
defined in the SW-platform assumptions (and partly even in the Stakeholder requirements).

The system integrator integrating S-CORE with the OS to provide a safe product has to make sure

- the functional requirements below are matching the OS used - see also :need:`aou_req__platform__safety_matching`
- the non-functional (integration) requirements below are fulfilled by the OS supplier - see also :ref:`integration_assumptions`

Integration Requirements
========================

Community Level
---------------

- :need:`aou_req__platform__integration_assistance`
- :need:`aou_req__platform__os_integration_manual`
- :need:`aou_req__platform__bug_interface`

Functional Level
----------------

- :need:`aou_req__platform__bazel_tooling`
- :need:`aou_req__platform__bug_fixing`

Certifiable Level
-----------------

- :need:`aou_req__platform__levels`
- :need:`aou_req__platform__safety_aou`
- :need:`aou_req__platform__safety_functions`
- :need:`aou_req__platform__safety_anomaly`


OS Specific Functional Requirements
===================================

- :need:`aou_req__platform__process_isolation`
- :need:`aou_req__platform__os_safety_functions`
37 changes: 31 additions & 6 deletions docs/modules/os/libc/docs/architecture/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,19 @@
libc Component Architecture
***************************

.. comp_arc_sta:: libc
.. comp:: libc
:id: comp__os_libc
:status: valid
:safety: ASIL_B
:implements: logic_arc_int__os__fcntl, logic_arc_int__os__stat, logic_arc_int__os__mman, logic_arc_int__os__unistd
:security: NO

.. comp_arc_sta:: libc Static View
:id: comp_arc_sta__os__libc
:security: YES
:safety: ASIL_B
:status: valid
:satisfies:
:implements: logic_arc_int__os__fcntl, logic_arc_int__os__stat, logic_arc_int__os__mmap, logic_arc_int__os__fork

.. needarch::
:scale: 50
Expand Down Expand Up @@ -64,8 +70,8 @@ libc Component Architecture
:status: valid
:included_by: logic_arc_int__os__fcntl

.. logic_arc_int:: mmap
:id: logic_arc_int__os__mmap
.. logic_arc_int:: mman
:id: logic_arc_int__os__mman
:security: YES
:safety: ASIL_B
:status: valid
Expand All @@ -83,14 +89,14 @@ libc Component Architecture
:security: YES
:safety: ASIL_B
:status: valid
:included_by: logic_arc_int__os__mmap
:included_by: logic_arc_int__os__mman

.. logic_arc_int_op:: SHM Unlink
:id: logic_arc_int_op__os__shm_unlink
:security: YES
:safety: ASIL_B
:status: valid
:included_by: logic_arc_int__os__mmap
:included_by: logic_arc_int__os__mman

.. logic_arc_int:: stat
:id: logic_arc_int__os__stat
Expand Down Expand Up @@ -145,3 +151,22 @@ libc Component Architecture
:safety: ASIL_B
:status: valid
:included_by: logic_arc_int__os__stat

.. logic_arc_int:: unistd
:id: logic_arc_int__os__unistd
:security: YES
:safety: ASIL_B
:status: valid

.. needarch::
:scale: 50
:align: center

{{ draw_interface(need(), needs) }}

.. logic_arc_int_op:: fork
:id: logic_arc_int_op__os__fork
:security: YES
:safety: ASIL_B
:status: valid
:included_by: logic_arc_int__os__unistd
48 changes: 48 additions & 0 deletions docs/modules/os/libcpp/docs/architecture/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
..
# *******************************************************************************
# Copyright (c) 2026 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
# *******************************************************************************

libcpp Component Architecture
*****************************

.. comp:: libcpp
:id: comp__os_libcpp
:status: valid
:safety: ASIL_B
:implements: logic_arc_int__os__libcpp
:security: NO
Copy link
Contributor

Choose a reason for hiding this comment

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

here security no


.. comp_arc_sta:: C++ Std Library
:id: comp_arc_sta__os__libcpp
:security: YES
Copy link
Contributor

Choose a reason for hiding this comment

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

but interface is security relevant?

:safety: ASIL_B
:status: valid
:satisfies:

.. needarch::
:scale: 50
:align: center

{{ draw_component(need(), needs) }}

.. logic_arc_int:: Library headers (C++17)
:id: logic_arc_int__os__libcpp
:security: YES
:safety: ASIL_B
:status: valid

.. needarch::
:scale: 50
:align: center

{{ draw_interface(need(), needs) }}
27 changes: 27 additions & 0 deletions docs/modules/os/libcpp/docs/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
..
# *******************************************************************************
# Copyright (c) 2026 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_libcpp:

libcpp
######

Component Documents
===================

.. toctree::
:maxdepth: 2
:titlesonly:

architecture/index
Loading