Putting drivers in the kernel does *NOT* fix the actual problem. Even with GPL drivers, the interface instability makes some serious pain for users. Currently, if you want to use a new piece of hardware that didn't have a driver in the kernel at the time your OS was put together, you need to upgrade your kernel. That can be a *serious* PITA, especially when you already have a customized kernel. Getting a new kernel built, tested, and installed properly can be a big undertaking, and that's for a very experienced Linux user; Mom 'n' Pop are never going to be able to handle it.
Vendors generally don't release new kernels for older distros solely for the sake of new drivers, either, because of all the time and QA problems listed above.
You also run into the problem where a driver is needed during install. In this case, you not only have to make a custom kernel, but manage to get it usable during install as well, usually by making a customized boot disk. It's a total and complete PITA.
At least having a stable API would make it possible for users to download and compile drivers (hopefully with a nice GUI to automatically do the work; even if you know how, why should you have to waste the time doing it manually when it's avoidable?) and have them Just Work(tm) with no kernel updates or other dangerous/difficult operations. You can't even do this with GPL drivers right now. Having a stable ABI would make it possible for hardware vendors to put Linux drivers on media with the hardware for use during installation. Again, even if the drivers _are_ GPL, they can't do this currently.
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds