Ahem. I just had to write that all-caps headline. Broadcom's wireless chips - used by just about everybody in this industry - have been a major pain in the bum for Linux users, because the company did not release open source drivers. Workarounds had to be created, lots of pain was had in the process, but now, Broadcom has finally seen the light: they have open sourced their wireless Linux drivers.

I think the nvidia driver largely has the opposite problem to a lot of the existing open-source drivers - it tries to do far TOO much in the kernel. Look at the size of the nvidia kernel module, it's as big or larger than the rest of the kernel combined! Maybe in Windows' graphics architecture all that junk needs to be in kernel space, but on Linux surely a lot of stuff could be moved into userspace. The KMS drivers seem to be doing it right - have what needs to be in the kernel in the kernel, and nothing more. If NVidia went down this approach of moving code out of the kernel part, maybe they could even get all the closed-source part out of the kernel, which is the biggest pain in the butt.

The monolithic huge blob nature of the Nvidia driver, derived as it is from Windows, in conjunction with the closed-source licensing, means that it must be run as one chunk as a loadable kernel module via an open source wrapper layer.

This means that although in theory the Nvidia driver could be run without root privileges, in practice on Linux it cannot be, primarily due to the licensing issues.

Ergo, no "rootless X" on Linux for users of the proprietary Nvidia driver. Its KMS, using an open source driver, or nothing, if you want "rootless X" on Linux.

At the very least, the KMS parts (which go in the kernel) have to be open source, but perhaps Nvidia might get away with providing the rest of the driver as a binary blob. That wouldn't be ideal, and it might be a lot of work for Nvidia to split their driver, but it is the only way for Nvidia's driver to remain mostly closed and still compatible with the future directions of X on Linux.