Commercial and Proprietary software often include open source components in their system. It can be confusing to understand the legal implications of incorporating them without deeply understanding the license itself. Open source projects generally fall under the two broad categories, namely permissive and copyleft.
Disclaimer: The contents of this article should not be used as legal advice, consult an attorney when appropriate.
Currently at version 3, the GNU General Public License was proposed to be the antithesis of copyright while ironically still asserting it. To summarize, it allows the author to give any individual permission to reproduce, adapt or distribute it, with the accompanying requirement that any resulting copies or adaptations are also bound by the same licensing agreement. This implies that any derivative work of the original source code should have their modifications made accessible to everyone.
The Linux Kernel and GCC are two sources of work that incorporate GPL and are likely to be integrated into proprietary work. The Linux Kernel in particular is covered its own instance of GPL 2. The preamble of the text indicates that user applications are not under GPL and therefore not subject to GPL's restrictions. There is some complication with Loadable Kernel Modules that are distributed in binary form alone. This largely comes down to the argument if Kernel Modules can be defined as derivative work. While legally it seems to be murky territory, there is some precedent more recently from the authors to make voiding GPL seemingly a more deliberate (and legally accountable) action.
The GNU Compiler Collection (GCC) is clear on having compiled applications not having the need to comply with the GPL license.
GPL v3 and Tivoisation
GPL Version 3 has an added clause that prevents hardware manufactures from placing restrictions on running modified versions of GPL released software that has not originated from the manufacturer. TiVo was accused of circumventing the goal of GPL because although it released source code to comply with GPL (Version 2), it prevented users from running user-modified versions of the software on their hardware. Linux in particular avoided adopting GPL version 3 for this clause amongst others.
BSD, MIT and Apache 2.0
Permissive licensing allows for users to make modifications to code but does not make it a mandatory requirement to release the modified code publicly which makes it much friendlier from a commercial standpoint. The MIT and BSD license are essentially equivalent in their terms, sharing common views on retaining the license text and copyright on derivative and copies of the work. A commonly used project that serves as a good example for permissive license usage is the FatFS library which only includes 1 clause from the BSD-license.
Has a few additional clauses that makes it *less-permissive*. It requires you to list all the modifications you've made to the original code. It also specifically clears Apache of any endorsements.