the exception for userspace obviously makes sense. but why and how are non-free kernel modules allowed at all? i'd think that userspace is a boundary that is easy to define, so it should have been possible to allow non-free userspace without allowing non-free kernel modules.
The non-free kernel modules are never included in the kernel. They are loaded by the end user, so they are not covered by GPL.
Except for the fact that the CPU is in privileged mode, there is no difference between loading a kernel module and launching a dynamically-linked user-mode executable file.
Not all non-GPL modules or executables are non-free. Many have licenses that are more permissive than GPL, e.g. BSD or MIT, but they are still affected by these anti-non-GPL measures.
If non-GPL kernel modules were not permitted, then by the same reasoning no non-GPL executable files should be permitted, so in such Linux computers absolutely all programs, libraries and modules would have to be GPL.
Perhaps there are people who dream to use such a computer. I have been using Linux for decades and I have never seen a single computer that would have remained useful for anything after the instant when all the non-GPL programs would have been deleted from it.
ah yes, of course. kernel developers can not control what modules i load, they can only control if the module violates the GPL which it only does if it is a derivative work which is only the case if linux specific APIs are used.
I have been using Linux for decades and I have never seen a single computer that would have remained useful for anything after the instant when all the non-GPL programs would have been deleted from it.
if that includes any non-GPL FOSS, sure, but most such software would have switched to GPL very quickly if that would have been the case.