IMO a lot of the complexity of what an OS comes from:
* the illusion of multi-tasking! (context switching) (when you have one CPU-core)
* the bridge to your hardware! (e.g. ignoring the basics like your CPU/RAM/motherboard/IO devices,
network interfaces themselves are an endless, unreliable torrent of data!)
* security! (unless you are literally God and make everything yourself, you have to trust ~something~ external)
* and more....
and complexity for CPUs (even ignoring legacy cruft) comes from :
* Branch prediction
* Register renaming
* Optimizing dat IPC
* More hacks for performance!
* Performance!!!
* and more....
Because at the end of the day, no matter how "simple" things are, creating the universe from scratch is never simple
* the illusion of multi-tasking! (context switching) (when you have one CPU-core)
* the bridge to your hardware! (e.g. ignoring the basics like your CPU/RAM/motherboard/IO devices, network interfaces themselves are an endless, unreliable torrent of data!)
* security! (unless you are literally God and make everything yourself, you have to trust ~something~ external)
* and more....
and complexity for CPUs (even ignoring legacy cruft) comes from :
* Branch prediction
* Register renaming
* Optimizing dat IPC
* More hacks for performance!
* Performance!!!
* and more....
Because at the end of the day, no matter how "simple" things are, creating the universe from scratch is never simple