Open-source software is software whose source code is freely available to the public. Anyone can download and run an open-source software project, view its source code to see how it works, or make changes to improve it. Many open-source software projects are a community effort maintained by a group of volunteer software developers instead of a single developer or organization.
A project's developers provide a program and its source code to the public using one of several open-source software licenses, which lay out how other people may use that source code. There are two general types of open-source licenses — permissive (or academic) licenses and copyleft (or reciprocal) licenses. Permissive licenses allow you to use, modify, and distribute open-source code in another project as long as you provide a disclaimer that it includes open-source code and give credit to the authors of that code. Examples of this type of license include the BSD, MIT, and Apache licenses. Copyleft licenses allow you to use, modify, and distribute open-source code in a new project as long as you distribute that project using the same license terms. The GNU Public License (GPL) is the most common type of this license.
Unlike commercial software, whose development funding comes from software sales, open-source software projects are typically funded through donations of money (from interested donor organizations and community crowdfunding) and/or labor (by volunteer programmers). Documentation and user support also come from the project's community instead of paid support staff — if you need help with an open-source program, you can often find it on a project's forum, discussion group, or wiki page.