Skip to content

Commit 0df2941

Browse files
refactored the gap analysis for clarity and completeness
1 parent 438064a commit 0df2941

2 files changed

Lines changed: 189 additions & 131 deletions

File tree

arewesafetycriticalyet.org/docs/main/intro.md

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,42 @@ sidebar_position: 1
44

55
# Are We Safety Critical Yet?
66

7-
## What is safety-critical?
7+
## What is Safety-Critical?
88

9-
A piece of software or a standalone ECU cannot be 'safe' in isolation because they cannot inherently cause physical harm. Hazards arise only when these elements control or take action in the environment (real world) and are e.g. capable of injuring people or environmental/financial damage. Therefore, if something is safety-critical is defined by it’s context.
9+
Software and electronic control units (ECUs) cannot be inherently "safe" in isolationthey pose risks only when they control actions in the physical world and could potentially cause harm to people, the environment, or financial assets. Whether software is safety-critical is therefore determined by its operational context and potential consequences.
1010

11-
If the software does contribute to a hazard, it is deemed safety-critical. The contribution of the software to these hazards is determined/designed through the overall product life cycle.
12-
Note to delimit from Cybersecurity: Functional Safety generally stems from malfunctions, while Cybersecurity stems from malicious outside actors.
11+
Software is classified as safety-critical if it contributes to identifiable system hazards. The extent of this contribution is established through product lifecycle risk analysis and system design.
1312

14-
## How to judge safety-critical readiness of “Rust”?
13+
**Note as distinction to Cybersecurity:** Functional safety generally addresses risks from unintended malfunctions, whereas cybersecurity addresses intentional malicious attacks from outside.
1514

16-
In general the software is presumed to be safe by conforming to the relevant safety-standard in your industry (context!).
17-
It should be mentioned, that conformity to a standard (like ISO 26262) is a proxy for safety, but they are not identical, as conform systems can be unsafe, as well as non-conforming systems can be safe.
15+
## Evaluating safety-critical readiness of “Rust”?
1816

19-
For this context safety-critical readiness is judged by how well the requirements of the specific standards can be achieved when using Rust as programming language to implement safety-critical software. This includes the language itself, the toolchain as well as overall ecosystem.
17+
In general the software is presumed to be safe by complying to the relevant safety-standard in your industry (context!).
18+
It should be mentioned, that compliance to a standard (like ISO 26262) is a proxy for safety, but they are not identical, as compliant systems can be unsafe, as well as non-compliant systems can be safe.
2019

21-
## Readiness in terms of standards
20+
For this analysis, safety-critical readiness is measured by how efficiently Rust and its language design, toolchain, and ecosystem enables developments to meet the requirements of the relevant safety standards, when developing safety-critical applications.
2221

23-
In the following the safety-critical readiness is judged by looking at the specific requirements of relevant industry standards and how well an organization can conform to them when using Rust. For example there might some direct requirement that a programming language has to conform to e.g. a strong typing system. This directly is required by Rust. There might are also indirect requirements, e.g. that certain test coverage metrics need to be achieved - here we would judge how well the existing toolchain, ecosystem etc. can be used to satisfy these requirements.
22+
## Standards-Based Evaluations
2423

25-
We will be using the following scale:
26-
🟢 Well supported with no extra effort
27-
🟡 Possible with some manual extra effort
28-
🔴 Possible with high manual extra effort
24+
The following evaluation examines how well specific safety-standard requirements can be satisfied when using Rust as the programming language:
2925

30-
Note: Additionally it has to be stated, that there is always room for interpretation in those standards. In some standards an assessor will have to judge at the end of the development lifecycle, if conformity to the standard can be claimed.
26+
**Evaluation Scale:**
27+
28+
🟢 Well supported with no additional effort
29+
30+
🟡 Achievable with moderate additional effort
31+
32+
🔴 Achievable with substantial additional effort or qualification activity
33+
34+
**Note:** Safety standards generally leave room for interpretation. In some standards (as ISO 26262) the final compliance claims are subject to the assessor.
3135

3236
### ISO 26262
3337

34-
🟡 Possible with some manual effort
35-
TODO: add executive summary
38+
🟡 Achievable with moderate additional effort
39+
40+
Rust's core language features-memory safety, strong typing, and data race prevention provide excellent basis for ISO 26262 compliance. However, critical gaps exist in qualified tools, control/data flow analysis, and qualified RTOS/HAL/PAC support. These require individual qualification efforts and are barriers for production use.
3641

37-
See detailed explanation:
38-
[ISO 26262 vs. Rust detailed gap analysis](iso26262.md)
42+
[Detailed Rust vs. ISO 26262 gap analysis analysis](iso26262.md)
3943

4044
### IEC 61508
4145

0 commit comments

Comments
 (0)