Home > Articles > Programming

  • Print
  • + Share This
From the author of Google for Linux

Google for Linux

For some time, Google has been the poster child of the Free Software community. The entire Google infrastructure is built around Free Software, and Google gives a lot back to Linux. That must count as a success for the GPL.

The elephant in this particular room is the Google filesystem, a highly scalable distributed filesystem used with Linux. Has Google released it? No. Surely the GPL requires that? After all, wasn't that the entire point—making people who benefit from Free Software and improve it share their improvements with the community?

Actually, no. As I mentioned earlier, the GPL is a distribution license, not a use license. It only comes into effect when you distribute the code. If you just use it internally, you don't need to distribute your changes to anyone.

Google has contributed a fair bit of code to Linux, though. Why? Because it's cheaper for the folks at Google to have that code maintained upstream than to keep an ever-growing local patch set for things that aren't core to their business. Every company that uses Free Software has to make this calculation. Keeping changes secret involves a cost (such as the extra maintenance work when someone makes some changes upstream that break your patches) and a benefit (the commercial advantage you get from being the only one with that feature). If the cost outweighs the benefit, then any well-managed company will release its code, whether or not the license requires it.

This explains why Yahoo! was employing people to work full-time on FreeBSD and contribute most of the those changes upstream. Yahoo! used FreeBSD internally, and needed certain features added and bugs fixed. Like the GPL, the BSD license applies only when distributing, but even if the folks at Yahoo! had distributed the code, they wouldn't have needed to release their changes. They just did it anyway, because it was good business sense.

Let's think about that for a moment. The latest estimates I saw showed that around 10% of developers were employed writing off-the-shelf software, while the remaining 90% were employed writing in-house software. None of these people are required to release changes from GPL'd code that they modify and use in-house. The community doesn't necessarily benefit from any of their work, but does the GPL cause any actual harm?

A few people in different companies have recently told me something that leads me to believe that the GPL actually does cause harm: These people have said that they'll use BSD or similarly licensed projects to base their internal systems, but will avoid the GPL because their legal team has decided that compliance is too difficult. If they use BSD-licensed code, they'll contribute improvements upstream, but keep their internal code private. (In most cases, no one would care if they released it anyway, because it's highly specialized.)

  • + Share This
  • 🔖 Save To Your Account