The 30 million line problem
Principles
- Simplification makes our systems more reliable
Takeaways
- Simplification of the interface to hardware can increase our reliability writing software
Related (random) thoughts
Is there a way the market can incentivize this? Perhaps a particularly good (even extraordinary) device that forces everyone else to move in this direction, like the iPhone did when it was first release.
Notes
- Hardware quality is at is historical best.
- My question here is if this is just a function of size and speed compared to the past. Are there other metrics by which we are at the historical best?
- Software quality is at is historical worst
- Is software worst by a function of itself? Or by compounding complexities in the hardware?
- OS design is not getting simpler, but more and more complex.
- Linux code base has grown exponentially.
- Isn't that due to it handling hardward complexity? Yes. `Here I wrote the answer since I was writing as I typed, and himself said so.`
- Using an application becomes a function of all the underlying layers.
- He points out that getting a response from a web server, might take 55M LoC. Albeit, not all code paths light up, but you need to understand all of that to know which paths are at play.
- He refers to simplifying as a wild fire.
- I'll read this later The ecological benefits of fire
- Hardware has gotten really complicated due to the enablement of using generic interfaces (He mentions usb)
- He proposes we need to simplify hardware first.
- System on a Chip (SoC) are a step in the right direction.
- Are there OS designed solely for SoCs? Is android that?
- Modelling an x64_84 ISA (Instruction Set Architecture) as an SoC could
simplify the entire ecosystem.
- ISA is the definition of how the memory layout is interpreted by the hardware.
- Having a defined ISA can remove the need for driver layers.
- Consistent ISA would mean an ecosystem of software that can reliably be executed in different consumer devices.
- Simplify NIC (Network Interface Card), SATA (Serial Advanced Technology Attachment), USB and Video interface
- After getting to the simpler defined ISA, we need a simpler OS for that ISA.
- Everything boils down to moving memory around.
- Hardware this days is not more complicated necessarily, but communicating with it and using it has too many layers.