The Linux Foundation annually publishes a report on Linux Kernel Development called Who Writes Linux, the 2013 edition is summarized in this infographic.

The report contains a section on companies/organizations that contribute code to the Linux kernel based on email addresses of code committers, sponsorship information included in the code and asking the developers directly about their affiliations.

Since the kernel is open source estimating organizations contributions based solely on author email addresses can be done without too much hassle by extracting domain names from the commit log and aggregating the commit counts. That's what I did to create the chart below.

Figure: Top 30 Domains by Commits to the Linux Kernel

Summarizing the results

Obviously many developers use a gmail address and so cannot be assigned to a company/organization without further information. Next come Intel, Red Hat, the Linux Foundation, IBM, and SUSE.

Looking at the major distributions Red Hat and SUSE are far ahead of the others. Canonical.com ranks #60 currently with "only" 1297 commits, but they don't have the reputation of contributing back to the kernel anyway.

For the curious, microsoft.com comes in at #88 with a commit count of 942.

Many of the domains in this ranking indicate that employees of hardware manufacturers play a major role in kernel development, which makes sense.

Caveats

Apart from email domains that don't reveal where the author works, there are some organizations, that use different domains, e. g. linuxfoundation.org and linux-foundation.org. I deliberately did not try to combine them, since I certainly would have missed non-obvious cases and honestly didn't want to go through more than 4,000 domain names.

Conclusion

There are a few organizations that are major influencers regarding code contributions, but there are also many people from small organizations or independent developers that are contributing to the Linux kernel.

Looking at what comes out of that, this seems to be a good mix, what do you think?