An operating system is an arbitrary black box of overhead that enables well-behaving application programs to perform tasks that users are interested in.
… To address the feedback problem, time-sharing was invented. … The time-sharing operating system joggled between users and programs. thereby, poetic justice was administered: the computer was now the one context-switching, not the human. Going from running one program at a time to running multiple at the “same” time required
… 50 years ago … had the key concepts of current operating systems figured out.
the early time-sharing systems isolated users from other users…
… since the operating system deos not protect the user from evil or provide powerful abstractions, it fails its mission in the modern world. … imagine the world of computing as a shape sorter. In the beginning, all holes were square: …
… Yet, we are stilll fascinated by square-shaped pegs, and desperately try to cram them into every hole, regardless of whether they fit.
… even on the desktop, the square peg is not the correct shape. we know that the system will be used by a single person and that the system does not need to protect the user from non-existent other users. instead, the system should protect the user from malware, spyware, trojans, and anything else that can crawl up the network pipe.
time-sharing systems were born over 50 years ago, a period from which we draw our concept of the operating system. Back then, hardware was simple, scarce, and sacred, and those attributes drove the development of the concepts of the system and the users…
the most revered feature of the modern operating system is support for existing applications. Minimally implemented application support is a few thousand lines of code plus the drivers … no reason to port and cram an operating system into every problem space. Instead, we can split the operating system into the “orchestrating system” (which also has the catchy OS acronym going for it) and the drivers. Both have separate roles. The drivers define what is possible. The orchestrating system defines how the drivers should work and, especially, how they are not allowed to work.