[SystemSafety] State of the art for "safe Linux"

Paul Sherwood paul.sherwood at codethink.co.uk
Wed Aug 7 16:36:21 CEST 2024


Derek,

Thank you for your email - comments below...

On 2024-08-07 15:02, Derek M Jones wrote:
>> # State-Of-The-Art
> 
> The state of the art of software reliability analysis
> remains little better than opinions all the way down,
> backed up with inappropriate statistical techniques (e.g.,
> inhomogeneous Poisson processes) applied to tiny datasets.

You may be right - certainly so far I haven't found much in the way of 
published research to counter your statement.

> However, pointing out that the King is not wearing any clothes
> is not good for one's career.  So let's pretend.

I'm in approaching the end of mine, so not worrying too much :)

>> Building on prior art,
> 
> You are hoping that nobody reads these references, a reasonable
> assumption.

No, I really wasn't. It's just that this was the best I could find, and 
I was hoping that folks here would be able to point me towards 
additional/better materials - which appears to be happening.

>> including L. Cucu-Grosjean et al (2012)[7],
> 
> The paper ""Measurement-based probabilistic timing analysis for 
> multi-path programs"
> http://people.site.ac.upc.edu/~equinone/docs/2012/ecrts_2012.pdf
> proposes a new method for what its title says.  No mention of Linux.

Agreed, but relevant because I keep coming across folks (including here) 
claiming deterministic behaviour is a) achievable and b) the best basis 
for safety of software.

>> S.Draskovic et al. (2021)[8]
> 
> This paper "Schedulability of probabilistic mixed-criticality systems"
> https://www.research-collection.ethz.ch/handle/20.500.11850/470954
> does not mention Linux.  It contains 30 pages of Definitions, Lemmas,
> Theorems and their proofs, followed by 10 pages of a experiments that
> have a somewhat tenuous connection to the preceding mathematics

I believe you... my own grasp of mathematics has decayed to the extent 
that I no longer attempt anything more complex than excel manipulations.

>> Mc Guire and Allende (2020)[9], and in
>> anticipation of Allende's 2022 PhD thesis [10], the authors applied 
>> statistical
> 
> Allende's thesis "Statistical Path Coverage for Non-Deterministic 
> Complex
> Safety-Related Software Testing" is now available
> https://dspace.ub.uni-siegen.de/handle/ubsi/2239
> This is interesting research on estimating path coverage, that happened 
> to
> use Linux as the vehicle for running the 28 line program (page 159) 
> used
> to gather statement trace data.

And interesting for me in that it clearly supports the argument that 
(the chosen version of) Linux's timing was non-deterministic.

>> techniques, including Maximum Likelihood Estimation and Simple 
>> Good-Turing, on
>> a practical case study involving a Linux-based Autonomous Emergency 
>> Braking
>> system. They calculated a probability of software-related failure for 
>> their
>> example (1.42e−4), but noted that current safety standards "do not 
>> provide any
> 
> Allende's analysis makes various assumption that the available data
> suggests don't apply to software reliability.  I'm happy to talk
> about this in another thread.

Yes please!

>> Some of the cited authors, e.g. Lukas Bulwahn, Nicholas Mc Guire and 
>> Jens
>> Petersohn, are expert practitioners who have dedicated a significant 
>> portion
>> of their careers to the work of deploying Linux in critical production
>> systems.
> 
> This same argument was used by those healing using leaches, blood 
> letting
> and crystals inside pyramids to back up their claims of efficacy.

Ouch. The truth hurts. It appears I've spent pretty most of my career in 
a "profession" that claims to be doing engineering but whose best 
practitioners are often self-trained hobbyists.

> Where is the data?

Fair.

>> Allende et al. [4] drew the following conclusion:
> 
> My PhD thesis work is ground breaking.

Sorry, I'm being dumb here. Do you mean that $PhD student always 
concludes that their work is groundbreaking?

>> Chen et al. (2023)[11]. Chen and colleagues explored the variability 
>> in
>> Linux path execution under various conditions, and they "demonstrated 
>> that
>> both system load and file system influence the path variability of the 
>> Linux
>> kernel."
> 
> My question is how this Linux variability compares with the variability
> that must also occur in other operating systems?

That's a good question for sure... probably at least a couple of PhDs in 
that :)

>> - No amount of test coverage will ever be enough to represent the full 
>> range
>>    of behaviours of modern software running on a multicore 
>> microprocessor.
> 
> For an experimental analysis of the likelihood that the execution
> of code containing a coding mistake will actually trigger faulty
> behavior, see
> "Compiler Fuzzing: How Much Does It Matter?"
> https://2019.splashcon.org/details/splash-2019-Artifacts/3/Compiler-Fuzzing-How-Much-Does-It-Matter-
> some discussion here
> https://shape-of-code.com/2020/01/27/how-useful-are-automatically-generated-compiler-tests/

Super, thank you very much!

>> Mc Guire, Bulwahn et al. have demonstrated in multiple research papers 
>> what is
>> already obvious to the expert software community, i.e. modern 
>> multicore systems
>> running multi-threaded software exhibit stochastic behaviours.
> 
> Not least because apparently identical processors have
> different performance characteristics.
> https://shape-of-code.com/2020/01/05/performance-variation-in-2386-identical-processors/

Again, thank you!

Best wishes
Paul


More information about the systemsafety mailing list