There are lots of operating systems.
The problem is, "programmers" (particularly Manglement-types with only superficial knowledge of these things) have largely immutable ideas of what an API should support and end up forcing their designs to adopt legacy architectures.
Does your "product" REALLY need to support a file system? SEVERAL file systems? How did we ever design computerized products BEFORE the advent of file systems? How much application code is responsible for formatting and parsing data going into/out-of those files? And, the associated error handling.
Do you need support for multiple executing threads? Do they need to be in their own process containers? Do they need to be attributable to different entities (users)? Do you then need to be able to layer some form of ACL atop those objects to ensure X can't access Y?
Do you need to support IP? TCP? UDP? Why? Ages ago, devices "communicated" over serial (EIA232) ports without any set of common protocols or interfaces -- and, they worked (without the cost/complexity of network stacks).
How mutable must the system be? Can you kill off (and replace) parts of it (hardware and software) without resorting to a complete reboot?
In industry, the attitude seems to be to just resign yourself to the capabilities of whatever you are "stuck with" -- because deciding what you actually *need* is too much effort (easier to see what you can do with what you've "got"). This is not true in academia. But, how many practitioners are actually aware of current -- and past -- research and trends... they likely consider themselves "practicing experts" (despite the poor empirical quality of their codebases).
One of the first things creators of new "systems" do is to craft "compatibility libraries" to allow for folks with legacy mindsets to use their newer systems -- even if they can't take advantage of the benefits that it offers.
[Witness the microkernel dustup because folks wanted to evaluate the *performance* of the microkernel in the context of the monolithic kernel -- hand-waving aside any advantages that it afforded (despite the poor quality track record of monolithic kernels)]