In the previous guide we talked about the two ways Linux defines the word free. In this guide we’re going to dive into the licensing details. I know that sounds super boring but I promise you it’s not as bad as it sounds. I just want you to be a well rounded user. I don’t want to throw linux at you without giving you the background behind your rights.
There are two groups in charge of the open source world:
The FSF takes free to another level
The Free Software Foundation is all about no proprietary anything.
No drivers are proprietary. No software is proprietary. These guys are dogmatic about the open source movement and are champions of free software. There are two main licenses:
- GPL: General Public License
- LGPL: Lesser General Public License
Her’s how it works: if you start a project that is licensed under the GPL and someone wants to build a program based on that project, it must inherit that GPL license.
For example, if you invented a program that lets you decrypt any password (regardless of the keyspace length) but you needed to use a bit of code in the GPL, you would have to release the entire project under the GPL license. (including the top secret password decryptor you created) If any part of your project used GPL then the entire project must be released as GPL.
Can someone say annoying?
Yes, and this was why the OSI was created.
Under the GPL you have four primary rights. You can:
- Run the program for any purpose
- Study how the program works and change it to work exactly as you want
- Redistribute copies so you can help other people
- Distribute copies of your modified versions
It’s all about sharing information so everyone can benefit. Incidentally, you can sell a GPL licensed program but anyone can download the source code and compile it for free. You can download the binaries for free. Interesting right?
The Open Source Initiative is more balanced
The OSI is a little different.
It includes the GPL and LPGL licenses but also expands the definition to include the MIT license, BSD, and NASA. So it’s less restrictive the the GPL under the FSF. For example, if you use GPL for one part of your project, you don’t need to release the entire project under the GPL terms.
A quick note about the LGPL
The LGPL is for library files. A library is just a bit of code that’s shared between programs. The problem with the GPL, is if someone linked to your GPL libraries and created a bunch of code based off that, they would have to release the entire project under the GPL license. No one wanted to do that so the FSF created the LGPL. The benefit here is that you can link to LGPL libraries even if you’re not using GPL coded software.
Thinking about the FSF and the OSI
Let’s go back to the example of your password decrypting program.
Let’s say you borrowed a software library released under the GPL that turns asterisks into happy faces. So it’s a trivial addition to your complicated password decrypting program. But since the code that transforms stars into smiley faces is under the GPL license and you used it in your project, you’ll have to release all your source code under the GPL project (including your top secret formula for breaking any 1024bit AES encryption in less than 10 seconds).
So under the OSI, you could release it under a different license such as the MIT license. Now you can release your project without releasing the source code to your password cracking algorithm. As long as you include a document that has the source code for that asterisks-to-smily text converter, you wouldn’t need to release the source code to your cracking code.
That’s why the OSI is less restrictive. (even though it has more criteria for acceptance)
I want to finish up with a brief discussion on how these open source companies generate revenue. How can companies make money from free software? Or even better, how can you charge for free software like Red Hat?
How open source companies make money
The first time I started learning about this open source concept I always wondered how open source companies make money.
There are four primary methods to make money off free software. Here’s how it’s usually done:
1. Software is free but support is paid.
This is model Red Hat uses. Anyone can download CentOS and get all the features of Red Hat for free. But the drawback is that there’s no support team you can call when you run into problems. You’re on your own. With Red Hat, you have a dedicated customer service team that can help you roll out projects and troubleshoot issues when they surface. This kind of support is essential for enterprise businesses. I know it seems odd, but people using Red Hat aren’t paying for the software; they’re paying for the service.
2. Software is free but addons are paid.
ClearOS is a full featured server os and network gateway. It’s a firewall and has solid VPN capabilities. But it includes non-open source add-ons. So users can keep using the free operating system without any issues but the vendor includes paid add-ons such as Active Directory connectors or additional VPN licenses. Since most people are going to want to use these, ClearOS can charge for these add-ons and generate revenue.
3. One open source product in a sea of paid products
A company might release a stellar open source product and gain a loyal following with the purpose of converting a percentage of those customers to buying a closed source paid product. This is a smart move because you can build trust with the open source product. People generally have their guards down when they think of open source because it shows you have nothing to hide. So if you make a really good open source product, it’s easier to convince a percentage of your customers to buy a related premium product.
4. Drivers are open source but hardware is paid
You can build and sell hardware such as a wireless router but then release the source code under an open source license. The software is free but the physical hardware is paid. Customers pay for the wireless router and then have the freedom to tweak how it works under the various open source licenses I mentioned above.
The Bottom Line
In the next guide we’re going to talk about how you can use Linux to get stuff done. We’ll talk about where you can find it and how to practically use it as your daily desktop computer. This will really help Windows users transition into the scary world of customizing the desktop and using the terminal. You don’t want to miss it! We’re finally about to play with Linux: hands on.