Chapter 01Lesson 04~45 minutes

Open Source, Licensing, and the Linux Ecosystem

Linux infrastructure is assembled from thousands of independently governed components. Understanding how licenses, communities, vendors, and supply chains interact helps DevOps teams distribute software responsibly and preserve upgrade paths.

BeginnerLicensingSupply chain

Learning objectives

By the end of this lesson

  • Distinguish open source from freeware, public source, and source-available software.
  • Compare permissive, weak-copyleft, and strong-copyleft license families.
  • Explain upstream, downstream, community, foundation, and vendor roles.
  • Identify licensing and notice obligations in packages and container images.
  • Connect licensing data with SBOM, provenance, and release-governance workflows.

1. Open source is defined by rights, not price

Open-source licenses grant rights to inspect, use, modify, and redistribute source code under stated conditions. Software can be open source and sold commercially. Conversely, software can be free of charge while remaining proprietary.

Open source

License grants defined freedoms

Source availability is accompanied by rights to modify and redistribute under an approved or recognized license.

Freeware

No purchase price

The user may receive a binary at no cost while source code and modification rights remain unavailable.

Source available

Code can be viewed

Terms may restrict production use, competition, hosting, redistribution, or particular fields of use.

Not legal advice

This lesson provides an engineering overview. Organizations should involve qualified legal counsel when interpreting obligations for a specific product or distribution model.

2. Common license families

FamilyTypical effectExamples
PermissiveAllows broad reuse with attribution, notice, and warranty-disclaimer requirementsMIT, BSD, Apache-2.0
Weak copyleftApplies reciprocal obligations to a library or covered files while permitting defined combinationsLGPL, MPL-2.0
Strong copyleftRequires source and corresponding license terms when distributing covered derivativesGPL family
Network copyleftAdds source-availability obligations for certain network useAGPL

License compatibility depends on the exact license versions, linking or combination model, modifications, and how software is conveyed. Do not infer obligations from the family name alone.

3. Linux systems contain many licenses

The Linux kernel is distributed under GPL-2.0-only, with important project-specific interpretation and exception details documented by the kernel project. User space is a mixture: GNU tools commonly use GPL or LGPL licenses, while OpenSSH, systemd, container runtimes, libraries, language tools, and vendor agents use other terms.

A Linux delivery artifact combines many independent components
flowchart TB
  A["Application or service"] --> D["Direct dependencies"]
  D --> T["Transitive dependencies"]
  A --> B["Base image and operating-system packages"]
  B --> K["Host kernel interfaces"]
  D --> L["Licenses, notices, and source obligations"]
  T --> L
  B --> L
  L --> R["Release review and evidence"]
Key point

A distribution license notice does not replace the licenses of its individual packages. Each component retains its own copyright and licensing terms.

4. Upstream, downstream, communities, and vendors

01Upstream project

Authors and maintainers develop the original component, review patches, publish releases, and define technical direction.

02Distribution downstream

Packagers integrate releases, backport fixes, apply patches, build packages, and maintain update channels.

03Foundations and communities

They may provide neutral governance, infrastructure, funding, events, trademarks, or legal stewardship.

04Commercial vendors

They provide support, certifications, managed services, hardened builds, and enterprise lifecycle commitments.

05Users and contributors

They report defects, contribute code and documentation, test changes, and influence priorities.

Healthy operations depend on this flow in both directions: downstreams consume upstream work, and responsible teams report fixes and evidence back to the projects they rely on.

5. Practical obligations in a DevOps pipeline

  • Preserve required copyright notices and license texts.
  • Track modifications to covered components where required.
  • Provide corresponding source or a valid offer when applicable.
  • Observe attribution, NOTICE-file, patent, and trademark terms.
  • Review redistribution rules for container images, installers, appliances, and downloadable artifacts.
  • Keep third-party component records reproducible for each released version.
Distribution triggers matter

Internal use, SaaS operation, binary distribution, source distribution, and shipping a physical appliance can produce different obligations. The delivery model must be part of the review.

6. SBOM, provenance, and license evidence

A software bill of materials records component identities and versions. License metadata adds declared and detected licenses. Build provenance connects those components to a specific build. Together, they support review, vulnerability response, customer evidence, and repeatable releases.

Inventory

SBOM

Records packages, versions, identifiers, and dependency relationships.

Origin

Provenance

Describes where source and dependencies came from and how an artifact was built.

Terms

License evidence

Preserves license texts, notices, package metadata, and review decisions.

Control

Policy gate

Flags unknown, incompatible, restricted, or unreviewed components before release.

7. Inspect license information on Linux

Package metadata and installed documentation are useful starting points, although they do not replace a complete product-level review.

# Search common installed documentation locations
find /usr/share/doc -maxdepth 2 \
  \( -iname 'copyright' -o -iname 'license*' -o -iname 'copying*' \) \
  2>/dev/null | head -n 20

# Debian-family examples
if command -v dpkg-query >/dev/null 2>&1; then
  dpkg-query -W -f='${Package}\t${Version}\n' bash coreutils
  sed -n '1,80p' /usr/share/doc/bash/copyright 2>/dev/null || true
fi

# RPM-family examples
if command -v rpm >/dev/null 2>&1; then
  rpm -q --qf '%{NAME}\t%{VERSION}-%{RELEASE}\t%{LICENSE}\n' bash coreutils
fi

# Kernel source license identifier when headers/source are available
find /usr/src -maxdepth 3 -name COPYING -print 2>/dev/null | head

8. Hands-on lab: create a small package license inventory

lab="$HOME/devops-academy/linux/chapter01/lesson04"
mkdir -p "$lab"
cd "$lab"

{
  printf 'component\tversion\tdeclared-license-or-evidence\n'

  if command -v dpkg-query >/dev/null 2>&1; then
    for pkg in bash coreutils grep sed; do
      version=$(dpkg-query -W -f='${Version}' "$pkg" 2>/dev/null || printf 'not-installed')
      evidence="/usr/share/doc/$pkg/copyright"
      printf '%s\t%s\t%s\n' "$pkg" "$version" "$evidence"
    done
  elif command -v rpm >/dev/null 2>&1; then
    for pkg in bash coreutils grep sed; do
      rpm -q --qf '%{NAME}\t%{VERSION}-%{RELEASE}\t%{LICENSE}\n' "$pkg" 2>/dev/null || true
    done
  else
    printf 'No dpkg or rpm database detected.\n'
  fi
} > license-inventory.tsv

column -t -s $'\t' license-inventory.tsv 2>/dev/null || cat license-inventory.tsv

Verification checklist

9. Common licensing mistakes

“Open source means no conditions.”

Open-source licenses grant valuable rights while imposing conditions such as attribution, notices, or source availability.

“A package-manager license field is enough.”

Metadata can be incomplete or broad. Review actual license texts, notices, modifications, and distribution context.

“Containers hide third-party obligations.”

A container image redistributes operating-system packages and dependencies; packaging format does not erase license terms.

“Source-available is automatically open source.”

Restrictions on use or redistribution can place a license outside accepted open-source definitions.

10. Knowledge check

Question 1. Is software open source merely because its source code is visible?

Question 2. Why should an SBOM be tied to an exact release artifact?

Question 3. Does one license cover every package in a Linux distribution?

11. Summary

Linux systems are supply chains of independently licensed components. Open source concerns granted rights and conditions, not simply price or visible code. DevOps teams should preserve component identity, license evidence, notices, source obligations, and build provenance as part of governed delivery.

Next lesson

Linux Roles Across Development, CI/CD, Cloud, and Production

The final chapter lesson maps Linux concepts to each stage of a modern software-delivery and production operating system.

12. Further reading

  • Open Source Initiative — Open Source Definition and approved licenses.
  • SPDX specification and license list — standardized component and license identifiers.
  • Linux kernel licensing rules and the kernel COPYING file.
  • GNU license documentation — GPL, LGPL, and related guidance.
  • Apache License 2.0, MIT License, BSD licenses, and Mozilla Public License 2.0 official texts.

Keep the academy open

Support free, practical DevOps education.

Every lesson is designed to remain readable in a browser, downloadable from GitHub, and usable without a paid learning platform. Contributions help expand and maintain the curriculum.

Ethereum / ERC-20
0x716c4Ab160C4B66F31a28AE2448BfF68fc3a2ef0 Send only Ethereum/ERC-20 compatible assets to this address.