Unit 2
This is Unit 2: Open Source Licensing
Cognisa Introduction to Open Source Software Course
What You'll Learn
- What licensing is and why it matters
- Common open source licenses explained
- Permissive vs copyleft licenses
- How to choose a license for your project
Let's understand the legal foundation of open source.
What is Open Source Licensing?
- An open source license is a legal agreement that grants permissions and outlines restrictions for software use, modification, and distribution.
- Without a license, software is automatically copyrighted, and no one can legally use, modify, or redistribute it.
- A license turns code into a shared resource that follows agreed-upon rules.
Why Licensing Matters
- Licenses protect both creators and users by setting clear expectations.
- They prevent legal disputes and define what others can and cannot do with the code.
- Different licenses have different philosophies about how software should be shared.
- Choosing the right license for your project is crucial.
Two Major License Families
Permissive Licenses allow commercial use with minimal restrictions. Examples: MIT, Apache 2.0, BSD.
Copyleft Licenses require derived works to also be open source. Examples: GPL, AGPL.
Each philosophy serves different goals and communities.
Permissive Licenses
MIT & Apache 2.0
- MIT License is the simplest and most popular permissive license. It requires only attribution and includes no warranties.
- Apache 2.0 License is more detailed, includes explicit patent grants, and protects contributors from patent claims.
- Permissive licenses allow commercial software to use and modify open source code freely.
More Permissive Licenses
BSD & ISC
- BSD License (2-Clause and 3-Clause variants) are similar to MIT but include additional clauses about endorsement.
- ISC License is functionally equivalent to MIT, often used by OpenBSD and OpenSSH.
- All these licenses prioritize user freedom with minimal restrictions on redistribution.
Copyleft Licenses
GPL & LGPL
- GPL (GNU General Public License) is the most prominent copyleft license. It requires derivative works to also be GPL.
- LGPL (Lesser GPL) is less restrictive, allowing proprietary software to link against LGPL libraries.
- Both enforce the principle that code built on open source must remain open source.
Stronger Copyleft
AGPL
- AGPL (Affero GPL) is the strictest copyleft license. It requires even networked/cloud versions to be open sourced.
- AGPL closes the "SaaS loophole" where companies run LGPL software without releasing source.
- Major companies avoid AGPL due to its strict requirements, making it rare in commercial use.
Other Important Licenses
MPL, EUPL & Creative Commons
- MPL (Mozilla Public License) is a middle ground between permissive and copyleft, requiring license disclosure but allowing proprietary extensions.
- EUPL (European Union Public License) is designed for European projects and includes reciprocal copyleft terms.
- Creative Commons licenses (CC0, CC-BY, CC-BY-SA) are used for non-software works like documentation, art, and music.
Mixing Licenses is Tricky
Not all licenses can be combined. Mixing MIT with GPL creates a GPL project. Mixing two GPLs usually works.
Permissive licenses are generally compatible with everything. Copyleft licenses are restrictive about mixing.
Always check license compatibility before combining projects.
How to Choose a License
Decision Framework
- Ask: Do I want commercial use allowed? → Yes = permissive (MIT), No = copyleft (GPL)
- Ask: Do I want to ensure improvements stay open? → Yes = copyleft, No = permissive
- Ask: Is this software or documentation? → Software = standard license, Documentation = Creative Commons
- Ask: What does my community use? → Follow convention for easier adoption
Popular Projects & Their Licenses
- Linux Kernel: GPLv2 (ensure improvements stay open)
- React (Facebook): MIT (allow commercial derivatives)
- WordPress: GPLv2 (ensure derivatives stay open)
- Node.js: MIT (permissive for widespread adoption)
- Redis: Custom (RSALv2 - restricts certain cloud providers)
A license is your project's contract with the world.
End of Unit 2
Open Source Licensing
You should have learned
- What licensing is and why it matters
- Common open source licenses explained
- Permissive vs copyleft licenses
- How to choose a license for your project
Its advised that you continue to the next slides anyway,
because we will be giving you some websites to bookmark and resources
which will help with the next unit.
You will not be tested on content from this slide or further for your Cognisa Introduction to Open Source
Software Certificate.
In the following slides are links to two comprehensive free CS degree programs
designed by the open source community. These cover university-level computer science topics equivalent to an undergraduate degree.
You can skip to the next slide at any time if there is too much,
or if you just want to skip ahead.
A Free Path to Computer Science Knowledge
Two curated curricula brought together. These are the OSSU Computer Science curriculum
(Open Source Society University - 196k GitHub stars) and ForrestKnight's Open Source CS (20k GitHub stars).
Both are completely free, self-paced, and designed to provide equivalent knowledge to an undergraduate Computer Science degree.
The courses are drawn from world-class universities: MIT, Harvard, Stanford, Princeton,
Duke, UC Berkeley, and others that have made portions of their coursework freely available online.
These programs take 2-4 years of self-study at roughly 15-20 hours per week, but all material is free.
No certificates from universities are included (they require payment), but the knowledge is complete and industry-recognized.
Getting Started with a Free CS Degree
Step 1: Visit https://github.com/ossu/computer-science
and https://github.com/ForrestKnight/open-source-cs
Step 2: Start with the Intro/Basics courses (usually MIT's Python course or Harvard's CS50)
Step 3: Progress through Core CS in order - prerequisites are clearly marked
Step 4: After Core, choose Advanced electives matching your interests
Step 5: Build projects to demonstrate skills - open source contribution is industry-valued
Recommended Approaches
These two curricula are complementary, not redundant. OSSU is more comprehensive (196k stars, larger community).
ForrestKnight is more curated (20k stars, streamlined).
Option 1: Follow OSSU completely - Takes 2-4 years at 15-20 hours/week. Most thorough path.
Option 2: Mix both curricula - Use OSSU's structure, substitute ForrestKnight courses you prefer. Example: take ForrestKnight's algorithms courses but OSSU's databases courses.
Option 3: Follow ForrestKnight - Slightly faster track (1.5-3 years at 15-20 hours/week) with excellent course quality.
All courses are free. Universities like MIT and Stanford allow free audit access. No degree certificates included without payment, but knowledge is complete.
Core Computer Science
Intro CS & Core Programming
Mathematics for CS
Calculus, Linear Algebra & Discrete Math
Systems & Developer Tools
Architecture, Operating Systems & Networking
Algorithms & Theory
Sorting, Data Structures, Complexity & NP-Completeness
Applications & Specialization
Databases, Machine Learning, Graphics & Software Engineering
Security & Ethics
Cybersecurity, Privacy, Intellectual Property & Professional Ethics
Programming Track
CS Basics & Java/Python Focus
Mathematics & Algorithms
Calculus, Linear Algebra, Probability & Algorithms
Systems & Specializations
Embedded Chips, Software Engineering, Databases, Cryptography, ML
This is Your Path Forward
These free curricula represent years of work by thousands of educators who believe in open access to knowledge.
The courses come from the world's best universities, peer-reviewed for quality, and organized by experienced educators.
You have zero financial barriers to a world-class CS education. What remains is your own discipline, motivation, and time.
Thousands of people have completed these programs and launched successful careers.
This is the power of open source and open education.
End of Unit 2 + Extracurricular
You dont have to go home, but you can't stay here.