This article doesn't define what an OS is, so it suffers.
The layers that sit directly above the hardware need to be simple and efficient (think like OSI layer 1 and 2). Actual hardware beneath this needs to be even simpler so it can focus on what good hardware should be: high performance. For example, having hard drives implement database-like concepts in hardware is bad. Because then you have to change hardware if your concepts evovle, which is expensive. So let the hard drive do what it does best, which is get data off of a platter or NAND, and let a layer on the OS abstract that for higher-level layers.
The UNIX API is the best we got so far I think, for OSes that are actually useable on a wide variety of hardware platforms. There's a reason why files are byte streams and "type" information is not part of a file - it's not a storage device's job to do anything but store and retrieve data fast and reliably. And it's not the job of the immediate lower layers of an OS to do anything but facilitate that and interface with a higher layer, like an SQL daemon.
The user facing layers high up, like the shell, are technically not OS facilities, they are "default applications" that, in a perfect world, would work under any OS.
The layers that sit directly above the hardware need to be simple and efficient (think like OSI layer 1 and 2). Actual hardware beneath this needs to be even simpler so it can focus on what good hardware should be: high performance. For example, having hard drives implement database-like concepts in hardware is bad. Because then you have to change hardware if your concepts evovle, which is expensive. So let the hard drive do what it does best, which is get data off of a platter or NAND, and let a layer on the OS abstract that for higher-level layers.
The UNIX API is the best we got so far I think, for OSes that are actually useable on a wide variety of hardware platforms. There's a reason why files are byte streams and "type" information is not part of a file - it's not a storage device's job to do anything but store and retrieve data fast and reliably. And it's not the job of the immediate lower layers of an OS to do anything but facilitate that and interface with a higher layer, like an SQL daemon.
The user facing layers high up, like the shell, are technically not OS facilities, they are "default applications" that, in a perfect world, would work under any OS.