Design decisions

When architecting a system, it is inevitable to make certain high-level design decisions.

Some of these decisions, if they’re wrong, can lead to the re-architecturing and re-writing of the whole system some months later, so there is an incentive to keep things rather generic. On the other hand, trying to make system too generic is just another recipe to disaster (usually expressed in terms of missed deadlines and unmanageable code).

IT Hares try to describe certain not-so-obvious architectural decisions, and some considerations which should be kept in mind while making them.

Bringing Architecture of Operating Systems to XXI Century – Part IV. First Draft

November 8, 2019 by “No Bugs” Bunny

Quote:

While L3 kernel can STILL run on MMU-less RAM-constrained MCUs, it provides responsiveness which is comparable to that of multi-stack kernels.

Another Quote:

multi-coring is essentially a special case of balancing shared-nothing nodes

Filed under: On.System ArchitectureDesign decisions(Re)ActorsOn.ProgrammingEmbedded

Read more

Bringing Architecture of Operating Systems to XXI Century – Part III. Basic Ideas

May 9, 2019 by “No Bugs” Bunny

if all you have is a hammer, everything looks like a nail

Quote:

everything in the system should be a Finite State Machine (FSM)

Another Quote:

‘OS’ is not understood as ‘OS kernel’, but rather is defined by the apps which can run on it

Filed under: On.System ArchitectureDesign decisions(Re)ActorsOn.ProgrammingEmbedded

Read more

Unchecked Exceptions for C++

June 7, 2018 by “No Bugs” Bunny

failquadrant-4.png

Quote:

‘unchecked’ std::errors are treated as ‘something which should never ever happen, but in practice MAY occur as a result of potentially-recoverable bug'

Another Quote:

Failing-Fast does NOT mean we should necessarily Fail-Hard(!). In certain (production!) cases, Failing-Fast-AND-Soft IS a substantially better alternative.

Filed under: On.System ArchitectureDesign decisionsOn.ProgrammingProgramming LanguagesOn.DevelopmentDevelopment Philosophy

Tagged With: C/C++
Read more

The Importance of Back-of-Envelope Estimates

August 8, 2017 by “No Bugs” Bunny

Back of the Envelope Calculations: Fermi Problem

Quote:

trying to optimize out a 3e-7 performance hit is very rarely worth the trouble.

Another Quote:

With 4S/4U boxes having typical MTBFs of 3–5 years, the next question we should ask ourselves, is “Hey, will we really be able to write software which crashes much more rarely than that?”

Filed under: On.System ArchitectureRequirement analysisDesign decisions

Read more