Zum Inhalt springen

Plattform-Port / Privates Repository / Evidenzgetrieben

OpenBSW Rust PortVollständig nativ in Rust. Parität Zeile für Zeile.

Die Eclipse-OpenBSW-Basissoftware – von Lifecycle bis DoIP – von C++ nach nativem Rust portiert und Zeile für Zeile gegen eine fixierte Upstream-Baseline geführt. Eine Zeile schließt nur als done oder als dokumentierter nativer Ersatz – nie als partial.

DoIP-Testerethernet · doipZone FLcan · docan · ioZone FRcan · docan · ioZone RLcan · docan · ioZone RRcan · docan · ioZentralrechnerlifecycle · uds · runtime
Zonen-Links — bsw-can · bsw-docan · bsw-ioBackbone — bsw-ethernet · bsw-doipZentralrechner — bsw-lifecycle · bsw-uds · bsw-runtime · bsw-storage · bsw-console

Die verifizierten Zahlen

Aus den generierten Nachweisdateien des Repositories, Stand Juli 2026.

37/37
Pflicht-Paritätszeilen gegen den fixierten Upstream geschlossen
26
Rust-Crates im Workspace
≈65.000
Zeilen produktiver Rust-Code
≈10.400
Zeilen Integrationstests
1.653
Testfunktionen – 1.263 Unit, 390 Integration
395/395
Unsafe-Stellen inventarisiert und im Review freigegeben

Nachweisdisziplin

Paritätsmanifest
Maschinenlesbar; das Status-Ledger wird generiert, nie von Hand editiert.
Unsafe-Inventar
395/395 Stellen mit Invariante und protokollierter Review-Freigabe.
SBOM
CycloneDX über den vollständigen Abhängigkeitsbaum.
Reproduzierbare Builds
Fixierte Toolchain, dokumentierte Release-Prozedur.
Differenzielles Orakel
Stabile Ausgabeform, verglichen gegen den fixierten C++-Build.

Evidenzgetriebene, sicherheitsorientierte Portfolioarbeit: Diese Artefakte dokumentieren Mechanismen und Prüfungen. Dies ist keine Zertifizierungsaussage.

Der Port im Betrieb

Workflow-Suite – Boot bis Run-Level 9, UDS über DoCAN und DoIP, sauberer Shutdown:

$ cargo run -p openbsw-reference-app -- --workflows
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.06s
     Running `target\debug\openbsw-reference-app.exe --workflows`
startup: PASS
console-help: PASS
lifecycle-level: PASS
logging-level: PASS
simulated-io: PASS
udp-echo: PASS
tcp-echo: PASS
uds-docan-multiframe: PASS
uds-doip-shared-state: PASS
shutdown: PASS
Interaktive Konsolensitzung – Lifecycle, I/O, UDS TesterPresent (3E 00 → 7E 00)
$ printf 'help\ncan info\nlc level 5\nio adc 2048\ndiag 3e00\nstats all\nquit\n' | cargo run -p openbsw-reference-app
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running `target\debug\openbsw-reference-app.exe`
0: RefApp: RUNTIME: INFO: hello
0: RefApp: RUNTIME: INFO: run level 9 reached
can info|send <id> <hex>; lc level <0-9>|reboot|poweroff; stats all; logger level <debug|info|warn|error>; diag <hex>; io adc <0-4095>|gpio <0|1>; storage get|set <u32>; trace status
request=02a response=0f0
level 5
adc=2048 speed=2048 pwm=500
7e00
commands=6 diagnostics=1
Deterministisches Paritätsorakel – verglichen gegen den fixierten C++-Upstream-Build
$ cargo run -p openbsw-reference-app -- --oracle
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.05s
     Running `target\debug\openbsw-reference-app.exe --oracle`
{
  "protocol_version": 1,
  "scenario": "reference-app-host",
  "upstream_commit": "ddbcf88a62dfcddb1eb07f868ba6412bec1ebf77",
  "records": [
    {"sequence":0,"kind":"lifecycle","source":"rust","input":"startup","output":"level-9","state":"running"},
    {"sequence":1,"kind":"console","source":"rust","input":"help","output":"command-tree","state":"running"},
    {"sequence":2,"kind":"can","source":"rust","input":"124:0102","output":"125:0102","state":"running"},
    {"sequence":3,"kind":"diagnostic","source":"rust","input":"docan:22cf01","output":"62cf01:24-bytes","state":"default"},
    {"sequence":4,"kind":"diagnostic","source":"rust","input":"doip:3e00","output":"7e00","state":"default"},
    {"sequence":5,"kind":"storage","source":"rust","input":"restart","output":"value-restored","state":"running"},
    {"sequence":6,"kind":"lifecycle","source":"rust","input":"shutdown","output":"level-0","state":"stopped"}
  ]
}

In Arbeit: TMS570LC4357 Lockstep Cortex-R5F

Dieselben Crates werden auf einem TMS570LC4357-LaunchPad in Betrieb genommen: Startup, SRAM-/ECC-Initialisierung und Vektortabellen sind als geprüfte Build-Artefakte abgeschlossen; PLL/Clock und RTI-Timer haben begrenzte RAM-only-Läufe auf dem physischen Board bestanden. Der vollständige On-Target-Nachweis – Interrupts bis CAN, Ethernet und DoIP – ist offen und wird als ausdrücklich partial geführte Zeile außerhalb der 37 Pflichtzeilen verfolgt.

Das Port-Repository ist privat; diese Seite enthält daher keine Quelltext-Links. Alle Zahlen stammen aus den generierten Nachweisdateien, Stand Juli 2026; die Upstream-Beiträge oben sind öffentlich. Ein begleiteter Walkthrough ist auf Anfrage möglich.

Walkthrough anfragen
← Zurück zu allen Projekten