You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: arewesafetycriticalyet.org/docs/main/intro.md
+23-19Lines changed: 23 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,38 +4,42 @@ sidebar_position: 1
4
4
5
5
# Are We Safety Critical Yet?
6
6
7
-
## What is safety-critical?
7
+
## What is Safety-Critical?
8
8
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 peopleor 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 isolation—they 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.
10
10
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.
13
12
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.
15
14
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”?
18
16
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.
20
19
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.
22
21
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
24
23
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:
29
25
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.
31
35
32
36
### ISO 26262
33
37
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.
36
41
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)
0 commit comments