The purpose of a HAL is, as you say, "to abstract away the differences
between Linux, Windows, Solaris, et al." (Add VxWorks, and other RTOS's
to that list.)
The interesting thing here is that "just one, single, good HAL" means writing an API for drivers to code against, and writing an implementation of that API for every supported OS; one for Windows XP, one for Windows 2003, ..., one for Linux 2.6, one for Linux 2.6.10+, one for Linux 2.4.n+, one for Solaris x.y, one for VxWorks a.b+, etc.
But once you do that, you've started a separate project. You might be able to get your HAL.Linux.2.6.current driver accepted into the mainline kernel (maybe), but that's only one part; you need to get the hardware vendors on board too. That might be feasible... write their driver to your HAL API once, and they can run on 17 different OS flavors. The license would be an interesting bit of legal work... GPL compatible for the Linux layers, (BSD if you could argue it wasn't a derived work), probably BSD or the like for the rest.
It'd be an interesting possibility--but it would be its own project separate from the Linux kernel development.
Copyright © 2018, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds