I think (some) people are missing some points about
binary modules, the GPL (and other open source
licenses, I didn't mean to restrict things to GPL),
and how Linux "operates."
1) Binary modules (in fact any modules) are restricted only to use a certain API. Normally
device drivers do not have to monkey with basic
kernel internals -- there is no reason a mouse
driver has to manipulate scheduling or memory
management for instance. You can't do this in
closed source OS's either, such as Microsoft variants. If a device driver requires certain
changes in the core kernel, then the hardware
manufacturers should argue for those changes in
2) A 'tainted' kernel is just as functional as an
'untainted' one. The only thing you don't get is
free tech support from kernel developers. If you
don't want to pay for it (by opening your license)
why should you get help for free?
3) Anybody can patch the kernel to do anything
they want (and even violate the GPL) as long as
they don't distribute it (for money or for free).
If it is for your own use, go ahead and enjoy.
There are no Linux brain police going to stomp
4) The technical problems of exporting system calls are not trivial (race conditions especially)
but they are solvable. However, the will to solve them is not there because of licensing problems.
5) Linux is not run like Sun, Microsoft, or any other big company. And it never will be. People keep expecting "linux" to respond to customer complaints as if it had a responsibility to shareholders. It won't happen.
6) Those big companies often do make arbitrary changes to either content or licensing, ones that cost a lot of money to customers. These customers
have few options often except to pay for costly
'upgrades' and changes. The changes in Linux are not arbitrary and all the arguments are out in the open.