Most of the linux development is driven by commercial enterprises. Linux is a great vehicle to sell the hardware to OEMs, be it in form of an evaluation kit or a reference design. Every hardware designer wants linux to run on their platform; usually up to 10% of the software budget of such lab goes to linux development (both kernel, and dev tools). And yes, the development is done by paid employees. Most of the efforts are to support a particular product, still a lot ends up in a mainline. It is funny to see how linux makes competitors to collaborate.
and, a lot of the contributors, not at all. they're being "paid" (or maybe rewarded is a better term) by having their name as co-author. just doing their bit to make Linux all it can be.
Most of the real contributors to Linux (and other major OSS projects) are being paid a salary to do so by the companies they work for. Companies that use that product a lot and this way can get it improved relatively cheaply as the workload is shared with other users.
The amateurs who also also contribute usually don't get much done at all (at least in comparison). The occasional patch or bug report, not much more.