> However, I’m curious about how the complexity of big systems can be tamed. A system that is hard to reason about even with the source code being accessible is more expensive to maintain and to modify.
By removing the misfeatures that make layers of abstraction seem necessary. Linux has already gone thru this several times with things like the transition from HAL to udev, or the potential simplifications falling out of well written copy on write file systems (gefs is one I particularly have my eye on here). The main things which dishearten me in this regard are, respectively, the complexity of GPUs (and thus their supporting infrastructure in software), and what is needed to support the OS-within-an-OS that is the modern web browser.
By removing the misfeatures that make layers of abstraction seem necessary. Linux has already gone thru this several times with things like the transition from HAL to udev, or the potential simplifications falling out of well written copy on write file systems (gefs is one I particularly have my eye on here). The main things which dishearten me in this regard are, respectively, the complexity of GPUs (and thus their supporting infrastructure in software), and what is needed to support the OS-within-an-OS that is the modern web browser.