Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Licensing

Licensing models in the software domain, particularly in the context of UNIX and Linux, have distinct philosophies and implications for use, modification, and distribution. These licences largely define the "open source" or "free software" nature of a system, contrasting with proprietary models.

Here's an overview of key licensing types:

  • Free Software and Open Source Software At its core, the concept of "free software" (often used interchangeably with "open source software") means that the source code is freely available for use, viewing, modification, and redistribution. Richard Stallman, founder of the Free Software Foundation (FSF), began the GNU project in 1984 with the goal of creating a free version of the Unix operating system. For Stallman, "free" refers to freedom, similar to "free speech, not free beer," meaning users have the liberty to run, copy, distribute, study, change, and improve the software as needed. The FSF actively promotes and defends this user freedom.

  • GNU General Public License (GPL)

    • The GPL is a "copyleft" license. This means that any software derived from GPL-licensed code must also be released under the same or a compatible GPL license. This ensures that the software, and its future modifications, remains free and open for others to use and modify.
    • The Linux kernel itself, developed by Linus Torvalds, is licensed under the GPL version 2 (GPLv2). This licence was chosen to make the fledgling operating system freely available.
    • Many of the key components of a typical Linux distribution, particularly those from the GNU Project (like the GNU C Library, GNU Core Utilities, and GNU Compiler Collection), are also primarily licensed under the GPL.
    • The GPL has played a significant role in Linux's success by promoting openness and distributed, community-driven development, leading to frequent updates, quick bug fixes, and rapid evolution of features.
  • GNU General Public License, Version 3 (GPLv3)

    • While many components of the GNU system use GPL, Linus Torvalds has explicitly stated that the Linux kernel will not move from GPLv2 to GPLv3.
    • His primary reason for this stance is a dislike of certain provisions in GPLv3 that prohibit the use of the software in digital rights management (DRM).
    • Additionally, moving to GPLv3 would be impractical due to the immense effort required to obtain permission from the thousands of copyright holders who have contributed to the Linux kernel.
  • BSD License

    • The BSD license is a permissive free software license, contrasting with the "copyleft" nature of the GPL.
    • It allows users to freely use, modify, and redistribute the source code, including in proprietary software, without requiring that derived works also be open-source or under the same license. This means you can take BSD-licensed code, make changes, and distribute it privately or commercially without revealing your modifications.
    • Berkeley Software Distribution (BSD) systems (such as FreeBSD, NetBSD, OpenBSD, and DragonFly BSD) trace their source code lineage directly back to the original AT&T Unix code that was licensed to the University of California at Berkeley. They are often considered more directly "Unix" than Linux due to this inheritance.
    • While BSD systems themselves are open source, their permissive license means their code can be incorporated into proprietary systems; for example, macOS is based on BSD and the Mach kernel. Google's Android operating system also uses some BSD-derived userland tools.
  • MIT License

    • The MIT License is another permissive free software license, similar in philosophy to the BSD license.
    • It is known for its brevity and simplicity, imposing very few restrictions on reuse.
    • An example of its use cited in the sources is the X.Org implementation of the X Window System, which is licensed under the MIT License.

Key Differences and Impact:

The fundamental distinction lies in their impact on derivative works:

  • GPL (Copyleft): Ensures that software remains free by requiring modifications and derived works to also be open-source under the GPL. This fosters a continuously growing pool of open-source software that cannot be "closed off" by commercial entities.
  • BSD/MIT (Permissive): Offers maximum flexibility for developers and businesses, allowing the integration of open-source code into proprietary systems without imposing reciprocal sharing requirements. This has enabled wider commercial adoption of some Unix-like technologies, as seen with macOS.

Historically, AT&T's initial proprietary licensing of Unix, which restricted users' rights to modify it, led to fragmentation and incompatibility among different Unix versions. The emergence of licenses like GPL and BSD, in contrast, facilitated the growth of the free and open-source software movement, providing alternatives that encouraged sharing and collaboration.