Most kernel developers, if not all, are experienced (or had to become) system programmers. Being highly inquisitive in nature, and appropriately skilled in writing system code, reverse engineering hardware became almost a sport of sorts. Little by little more hardware was added to the supported list, and through a never ending circle of development, whatever started out as a broken and buggy driver ended up as a rock solid piece of code (with very few exceptions). Basic IT shop stuff like SCSI(Small Computer System Interface)/IDE(Integrated Drive Electronics) controllers and NICs(Network Interface Card) came first, and then little by little the list expanded to sound, video, modems, USB devices, etc..
But everything was written by volunteers, people that wanted and could make their own hardware work. People that wanted to make cheap affordable hardware work with Linux as well. They always asked some help from hardware vendors, some specs, some design notes, guidelines, anything that would describe the hardware's operation, so that they could write their own driver. But they seldom got anything.
So, for the vast majority of hardware, for the past 15 years, the Linux community has had little vendor support. Vendors didn't really care whether their hardware ran on Linux. With the exception of some networking vendors and some I/O controllers that were already in the Unix market, (Linux had early on qualified as a successor to Unix machines, making support both easy and a logical step for these vendors), Nvidia and then ATI. (I still don't know what made Nvidia provide drivers - I do know ATI followed suit just because Nvidia did it.) Every other hardware vendor has been oblivious to the fact that there exist Linux users who would buy their product (or bought it and can't use it).