Free and open source licenses are a source of widespread confusion. Many people think they’re all alike. They think a license lets them use software with no conditions attached. Both of these notions are seriously mistaken, and some businesses have found themselves on the losing end of lawsuits as a result.

Even the term “open source” isn’t universal. A lot of software is released as “free software,” whose proponents vehemently insist isn’t the same as open source. Understanding the differences lets you understand what you can do with the software. If you plan to release your own software for others to use without payment, it lets you decide which license is most appropriate.

The term FOSS (free and open source software) is often used to cover both. The “and” means it includes both kinds of software, not that all FOSS is both free and open source.

Common features

Certain features are common to all free and open source licenses.

Free software vs. open source

The difference between open source and free software comes into play when you distribute software based on FOSS code. The biggest proponent of free software is the Free Software Foundation, which has published several widely used licenses. They’re called GNU licenses, after the GNU family of software products. The GNU General Public License (GPL) is the archetype for free software licenses.

The key point of the GPL is that it’s “sticky.” If you use GPL-licensed software in a modified form or incorporate it into your product, you have to make it available under the same terms. You can sell the software, but you also have to make its source code freely available. Free software advocates call granting rights this way “copyleft.”

Open source licenses generally don’t impose this restriction. They may place other requirements on the code, such as clearly identifying modified versions.

Patent and trademark issues

Any kind of software can encounter difficulty with patent and trademark claims, and FOSS isn’t exempt. Patent holders may demand license fees, making it effectively impossible to distribute software free of charge. Figuring out what patents might apply to a piece of software would require an exhaustive search of patent databases. Even then, it may take a court decision to determine whether a patent is valid and applicable.

For this reason, creators of FOSS can’t guarantee that their code is free of patent encumbrances. If a patent holder makes a claim, they may not be in a position to fight it in court. They may have written the code in their spare time and have no financial resources for defending it. If a court rules in favor of the claim, everyone using the software commercially may have to pay a big license fee or stop using it.

People who distribute software need to be concerned about trademarks, especially if their product works with a commercial product. An example of this would be a plugin for WordPress. It’s necessary to explain that the product works with WordPress, but expressing it in the wrong way can result in a cease and desist order. The product’s name, for example, can’t include “WordPress.” This normally doesn’t cause problems for users of the software, but a violation could lead to withdrawing the code or abruptly changing its name.


Being free or open source doesn’t mean that software is unsupported. Many businesses make their money by giving away the software and charging for support. This lets users try out the software and then decide if paying for help is worth it to them.

Well-known licenses

Many licenses are available, and each one has different benefits and drawbacks, depending on the developer’s purpose. These are some of the best known.

Open source licenses

Free software licenses

Whether you’re licensing your own software or using FOSS from other sources, being aware of the nuances is important. Free software licenses can be especially tricky. However, this model is tremendously useful to software creators as well as users. Software creators can distribute their products widely and then leverage them for revenue. Other developers can use existing software to avoid re-inventing known solutions. End users can save money compared with commercial software.