This repository has been archived by the owner on Aug 27, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from ferrous-systems/add-slides
Add slides
- Loading branch information
Showing
23 changed files
with
587 additions
and
75 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,36 @@ | ||
# The downstream model | ||
|
||
## Some examples | ||
|
||
* Enterprise Linux Distributions are a downstream of The Linux Kernel | ||
* The Linux Kernel makes kernel releases | ||
* The Enterprise Linux Vendor then: | ||
* takes the source code, | ||
* runs their test suite, | ||
* adds any required fixes or backports, | ||
* publishes it as open source, and | ||
* sells their customers binaries with a long-term support package | ||
|
||
Note: | ||
|
||
They are a downstream of a whole bunch of open source packages - GCC, glibc, LibreOffice, bash, etc. | ||
|
||
## It's the same model | ||
|
||
* Ferrocene is a downstream of The Rust Project | ||
* The Rust Project makes toolchain releases | ||
* Ferrous Systems then: | ||
* takes the source code, | ||
* runs their test suite, | ||
* adds any required fixes or backports, | ||
* publishes it as open source, and | ||
* sells their customers binaries with a long-term support package | ||
|
||
## Yes, Ferrocene is Open Source | ||
|
||
We think it's the world's first open-source qualified toolchain | ||
|
||
## Yes, there's Long Term Support | ||
|
||
* You can buy support on a commercial basis | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Exploring the installation | ||
|
||
## What do you get? | ||
|
||
```console | ||
$ ls -F /opt/ferrocene-23.06 | ||
bin/ etc/ lib/ libexec/ share/ | ||
$ ls -F /opt/ferrocene-23.06/bin | ||
cargo* ferrocene-self-test* rust-gdb* rust-gdbgui* rust-lldb* rustc* rustdoc* | ||
$ ls -F /opt/ferrocene-23.06/etc | ||
bash_completion.d/ | ||
$ ls -F /opt/ferrocene-23.06/lib | ||
librustc_driver-c3ee1e25139c0393.so libstd-8aa647671c2dc036.so | ||
libtest-eab3dde10cbeff80.so rustlib/ | ||
$ ls -F /opt/ferrocene-23.06/libexec | ||
cargo-credential-1password* rust-analyzer-proc-macro-srv* | ||
$ ls -F /opt/ferrocene-23.06/share | ||
doc/ man/ zsh/ | ||
``` | ||
|
||
## Is that docs? | ||
|
||
```console | ||
$ ls -F /opt/ferrocene-23.06/share/doc/ | ||
cargo/ ferrocene/ rust/ | ||
$ ls -F /opt/ferrocene-23.06/share/doc/cargo/ | ||
LICENSE-APACHE LICENSE-MIT LICENSE-THIRD-PARTY README.md | ||
$ ls -F /opt/ferrocene-23.06/share/doc/rust/ | ||
COPYRIGHT LICENSE-APACHE LICENSE-MIT README.md | ||
$ ls -F /opt/ferrocene-23.06/share/doc/ferrocene/ | ||
html/ | ||
$ open /opt/ferrocene-23.06/share/doc/ferrocene/html/index.html | ||
``` | ||
|
||
--- | ||
|
||
![The docs page](./images/docs1.png) | ||
|
||
--- | ||
|
||
![The docs page](./images/docs2.png) | ||
|
||
--- | ||
|
||
![The docs page](./images/docs3.png) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,34 @@ | ||
# Front Matter | ||
|
||
## Introduction | ||
|
||
In our one hour session on _Why Ferrocene?_ you will learn what Ferrocene is | ||
about, where it is from and where it is going, and whether it is right for you | ||
to look at Ferrocene for your next security-related or safety-critical project. | ||
The agenda includes a short lecture, a live programming demonstration, and a | ||
Q&A session. | ||
|
||
We conduct all training sessions remotely using modern video-conferencing tools | ||
to ensure the best learning experience. | ||
|
||
This repository contains the teaching material for this course. | ||
|
||
## Learning Goals | ||
|
||
These are the questions you will be able to answer after attending this course: | ||
|
||
- What is Ferrocene? | ||
- Is Ferrocene a fork of Rust? | ||
- What support is available for Ferrocene? | ||
- What is it like using Ferrocene? | ||
|
||
## Timetable | ||
|
||
Our standard timetable for this course is as follows: | ||
|
||
| Duration | Contents | | ||
| :------: | :--------------------------------------------------- | | ||
| 0:05 | Room open, meet and greet | | ||
| 0:20 | Session 1 - What is Ferrocene? | | ||
| 0:20 | Session 2 - A Live Demo | | ||
| 0:15 | Q&A | |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# Installing Ferrocene today | ||
|
||
## Ferrocene 23.06 | ||
|
||
* Ships as tarballs | ||
* Unpack tarballs into, e.g. `/opt/ferrocene-23.06` | ||
|
||
## Step-by-step | ||
|
||
1. Set up Ubuntu 18.04 for AMD64 | ||
2. Install: | ||
* `gcc-aarch64-linux-gnu` | ||
* `gcc` and `build-essential` | ||
* `xz-utils` | ||
3. `mkdir /opt/ferrocene-23.06` | ||
4. `tar xvf <tarball> -C /opt/ferrocene-23.06` | ||
5. Modify `~/.bashrc` to put `/opt/ferrocene-23.06/bin` in your `$PATH` | ||
|
||
I use Docker for this. YMMV. | ||
|
||
## Installing in the future | ||
|
||
We have `criticalup` - like `rustup` but for fetching, verifying and installing | ||
digitally signed Ferrocene tarballs using your subscriber credentials. | ||
|
||
You can also use `criticalup` to fetch and verify the install tarballs, ready | ||
for transfer to a non-Internet-connected computer for installation there. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,72 @@ | ||
# ISO 26262 Qualification | ||
|
||
## Quality is a process | ||
|
||
* You can't pour a bucket of quality into a finished product | ||
* It's a process you follow throughout the product life-cycle | ||
* You might follow a process that is in accordance with a published ISO standard | ||
|
||
## Certification and Qualification | ||
|
||
* You are responsible for __certifying__ that the development of *your* product | ||
was in accordance with such a standard. | ||
* You might choose tools that are __qualified__ as being suitable for use with | ||
such a standards compliant process. | ||
|
||
## What is ISO 26262? | ||
|
||
> (ISO 26262-1:2018) is intended to be applied to safety-related systems that | ||
> include one or more electrical and/or electronic (E/E) systems and that are | ||
> installed in series production road vehicles, excluding mopeds. | ||
> | ||
> The document addresses possible hazards caused by malfunctioning behaviour of | ||
> safety-related E/E systems, including interaction of these systems. | ||
From [iso.org](https://www.iso.org/standard/68383.html) | ||
|
||
## And that has qualified tools? | ||
|
||
ISO 26262-8:2018(E), Section 11.1.b says: | ||
|
||
> to provide means for the qualification of the software tool when applicable, | ||
> in order to create evidence that the software tool is suitable to be used to | ||
> support the activities or tasks required by the ISO 26262 series of standards | ||
> (i.e. the user can rely on the correct functioning of a software tool for | ||
> those activities or tasks required by the ISO 26262 series of standards). | ||
## Confidence in your Tools | ||
|
||
* What is the tool supposed to do? | ||
* Does it do what it is supposed to do? | ||
* Does someone I trust believe it does what it is supposed to do? | ||
|
||
## What is the tool supposed to do? | ||
|
||
* Rust doesn't have a written specification ... yet. | ||
* So we wrote the Ferrocene Language Specification | ||
* <https://spec.ferrocene.dev> | ||
|
||
## Does it do what it is supposed to do? | ||
|
||
* Rust already had an __excellent__ test suite | ||
* Our work was mainly __joining the dots__ between the tests and the | ||
specification, and __automating everything__ | ||
* Nothing hits our main branch unless the tests pass | ||
* We then documented everything in a Safety Manual | ||
|
||
## Does someone I trust believe it does what it is supposed to do? | ||
|
||
We sent all our evidence to TÜV SÜD for ISO 26262 and IEC 61508 qualification. | ||
|
||
So, far they say: | ||
|
||
> ...from the general approach, structure, format and contents of the | ||
> provided artifacts there no major questions or anything missing. | ||
The final qualification results will be announced in due course. | ||
|
||
## And I get? | ||
|
||
You can purchase from us the digitally-signed Qualification Documents. You can | ||
then provide these to *your* assessor when certifying *your* development | ||
process. |
Oops, something went wrong.