Frequently Asked Question
What is the GPL, and how does copyleft differ from permissive licences like MIT or BSD?
The GNU General Public License (GPL), written by Richard Stallman in 1989, is a copyleft licence: anyone may use, modify, and redistribute GPL-licensed code, but any derivative work distributed to others must itself be released under the GPL. The intent is to keep the freedoms attached to the code as it propagates, so that a downstream recipient gets the same rights an upstream one had. The Linux kernel is licensed under GPLv2.
Permissive licences, MIT, BSD, Apache 2.0, take the opposite stance: do almost anything with the code, including incorporating it into proprietary software, as long as you preserve the original copyright notice. (Apache 2.0 adds an explicit patent grant.) Permissive code can flow into closed products, copyleft code generally cannot. Most modern userland infrastructure mixes both: the kernel and GCC are GPL, but LLVM, the BSDs, and most npm and PyPI packages are permissive. Which you pick for a new project is a strategic decision rather than a technical one.