There's nothing wrong with components implementing a layer taking advantage of system specific features. The API provided by that layer of components should however be designed to be cleanly re-implementable and "cut" where much detail can be hidden. So that applications see reduced complexity and focus on the essential essence rather than implementation details.
Exposing everything to applications, just leads to a morass of complexity and poorly done buggy reimplementations of the same old thing. The whole Linux Audio story with OSS/ALSA and your difficulties with Pulse Audio ought to show why it's VERY BAD to have implementation specifics leak into widely distributed applications.
Design of API's is a KEY selling point and if the BSD's, truly have problems emulating a hot disk layer for the desktop, then it suggests an overly highly coupled badly abstracted implementation that replaced HAL.
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds