Rust Flashcards

(46 cards)

1
Q

What is a common objection regarding the maturity of Rust for flight software?

A

Fewer flight-heritage case studies than C/C++, concerns about compiler stability, library longevity, and driver availability.

This reflects hesitance to adopt newer technologies in critical systems.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

How can a team counter concerns about Rust’s ecosystem maturity?

A
  • Freeze the toolchain
  • Use stable, minimal dependencies
  • Demonstrate reliability with tests
  • Mission fit with Rust’s guardrails

These strategies help ensure that the development process is controlled and predictable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is a concern regarding certification and assurance with Rust?

A

Auditors are more familiar with C than Rust, and standards often cite C/C++ examples.

This creates a barrier for adopting Rust in regulated environments.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What strategies can be used to address certification concerns when using Rust?

A
  • Mixed-criticality architecture
  • Unsafe code policy
  • Coding standard + traceability
  • Formal/semiformal tools

These practices help bridge the gap between Rust’s features and traditional certification requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

True or False: Developers often find Rust’s borrow checker makes them more productive right away.

A

False

Many developers initially struggle with ownership and lifetimes, which can slow down productivity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are some ways to counter the productivity concerns associated with Rust’s borrow checker?

A
  • Train with the right patterns
  • Provide blueprints
  • Measure net time

These approaches help teams become more comfortable with Rust and mitigate initial learning curve impacts.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is a concern related to real-time determinism in Rust?

A

High-level abstractions may hide latency, and allocators or panics could break deadlines.

This is critical in embedded systems where timing is essential.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How can teams ensure real-time determinism when using Rust?

A
  • Use no_std, no heap on the control path
  • Proven RT scaffolding
  • Explicit timing contracts

These practices help maintain strict timing requirements necessary for real-time applications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is a common fear regarding binary size when using Rust?

A

Fear of pulling in big crates, unwinding, or dynamic features.

Memory constraints are a critical issue in embedded systems.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

How can teams manage binary size when using Rust?

A
  • Lean build options
  • Linker discipline

These strategies help ensure that the final binary fits within the constraints of the target MCU.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is a concern about interfacing with vendor SDKs/drivers in Rust?

A

Interfacing is often seen as messy due to the prevalence of C headers and examples.

This can complicate the integration of existing hardware with new software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What strategies can help address the challenges of interfacing with vendor SDKs in Rust?

A
  • Use FFI where needed
  • Prefer embedded-hal crates

These practices streamline the integration process and reduce complexity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is a concern regarding debugging in Rust compared to C?

A

Debugging is perceived as harder due to unfamiliarity with Rust’s tooling and RTT logging.

Effective debugging is crucial for developing reliable embedded systems.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

How can teams standardize debugging practices when using Rust?

A
  • Standardize the probe/tooling
  • Use deterministic logs

These measures improve the debugging experience and ensure consistency across projects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is a common objection about hiring when considering Rust?

A

There is a smaller talent pool for Rust compared to C.

This can slow down the adoption of Rust in teams that rely heavily on C expertise.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What can teams do to address hiring challenges related to Rust?

A
  • Upskill C engineers
  • Scope the Rust surface area

These strategies help leverage existing talent while gradually introducing Rust into the workflow.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Is it true that Rust can help with radiation or SEUs?

A

False

Rust’s memory safety features do not directly correlate with radiation hardness.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What practices can help mitigate issues related to radiation when using Rust?

A
  • Handle radiation with ECC, scrubbing, redundancy
  • Inject faults during testing

These approaches ensure that systems can safely recover from radiation-induced errors.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What is a concern about schedule risk when adopting Rust?

A

There is a fear of losing schedule to a language experiment.

This is particularly concerning as projects approach critical deadlines.

20
Q

What strategies can teams implement to manage schedule risk when adopting Rust?

A
  • Hybrid adoption
  • Pilot milestone

These approaches allow teams to gradually integrate Rust while minimizing disruption to existing workflows.

21
Q

What are the two main categories of tasks in the proposed architecture for Rust in embedded systems?

A
  • Flight-Critical (FC)
  • Mission/Utility (MU)

This separation ensures that safety-critical functions are handled appropriately.

22
Q

What are some coding rules suggested for Rust in embedded systems?

A
  • panic=abort
  • No heap on FC path
  • All unsafe in /hal/ with invariants
  • No blocking I/O in high-priority tasks

These rules promote safety and reliability in the codebase.

23
Q

What verification practices are recommended for Rust in embedded systems?

A
  • Latency histograms
  • Fault-injection testing
  • Watchdog tests

These practices help ensure system robustness and reliability.

24
Q

What safety benefits does Rust provide without heroics?

A

Rust prevents whole classes of mission-ending bugs (use-after-free, data races) at compile time.

This reduces the need for extensive late rework and enhances reliability.

25
How does Rust contribute to determinism in embedded systems?
With `no_std`, static memory, and strict task design, Rust can be as deterministic as C. ## Footnote This is crucial for real-time applications where timing is essential.
26
How does the learning curve of Rust affect schedule risk?
The learning curve is front-loaded; integration churn and heisenbugs go down, reducing timeline risks. ## Footnote This can lead to smoother development processes as teams become more familiar with the language.
27
What is the high-level architecture of the Rust SDR signal chain?
Antenna→LNA/Filters→Mixer/LO→ADC → [Rust DSP] → Demod/Deinterleave/FEC → CCSDS Deframe → ARQ/ACM → Telemetry/Storage
28
What are the components of Rust DSP in an SDR solution?
* I/Q ingest (zero-copy) from device drivers * DDC/decimation * RRC matched filter * Timing recovery * Carrier recovery * Demod * De-interleaver * FEC * CCSDS TM/TC deframer * ARQ engine * Observability
29
What are the advantages of using Rust for PHY in SDR?
* Zero-cost abstractions * SIMD for heavy DSP * Ownership/borrowing for zero-copy I/Q * Lock-free channels for predictable latency * `no_std` for embedded systems * FFI to C with safe wrappers
30
What is the goal of I/Q capture, DDC, and decimation in Rust?
Preserve occupied bandwidth (B≈(1+α)Rs) and enough samples/symbol for timing loops
31
What is the purpose of matched filtering (RRC) in Rust?
Maximize post-detection SNR and control ISI
32
What does the timing recovery process (TED) involve?
* Loop filter with configurable loop bandwidth * Fractional-delay interpolation * Telemetry for eye metrics and timing error variance
33
What is the function of Automatic Gain Control (AGC) in SDR?
Maintain time constant much greater than symbol time and much less than fade timescale
34
What are the components of the demodulation process in Rust?
* Decision regions for PSK/QAM * Soft-decision LLRs to feed LDPC * Interleaver traits * FEC binding
35
What is the purpose of the CCSDS TM/TC and ARQ engine?
* CCSDS deframe/scramble * ARQ engine with window size and ACK/timeout
36
What telemetry metrics are captured in observability?
* I/Q capture * PSD/waterfalls * Constellation/EVM * PER/BER aggregators
37
What is the significance of the GS profile discipline?
Immutable TOML config for various parameters and hash embedding into telemetry frames
38
What concurrency model is implemented in the SDR pipeline?
* Stage per core * Bounded SPSC channels * Set OS thread priorities
39
What is an example of a Rust sketch of the pipeline?
The pipeline involves I/Q ingest, DDC + decimation, matched filtering, timing & carrier loops, demodulation, and telemetry & ACM
40
What are the key aspects of ground-station operations in Rust?
* Multi-GS diversity * Doppler pre-comp automation * Beacons for calibration * Golden I/Q replay
41
What are the power and PA integrity considerations when Rust drives TX?
* Crest-factor control * Monitoring PA temp and VSWR * EVM as a guardrail
42
What types of testing and validation are used in Rust SDR?
* Unit tests for algorithms * Criterion benches for performance * HIL testing with known E_b/N_0
43
What are the deployment patterns for Rust SDR?
* GS server with HTTP/gRPC * Edge compute on mini-PC * Flight-side optional with `no_std` Rust
44
What are the traceability metrics from physics to Rust knobs?
* Link margin * AFC robustness * Timing stability * ARQ throughput * ACM policy * Observability metrics
45
True or False: Rust provides a deterministic, zero-copy, SIMD-accelerated DSP and link layer.
True
46
Fill in the blank: Rust allows for _______ I/Q capture, PSD/waterfalls, constellation/EVM, and PER as first-class telemetry.
[deterministic]