Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Glossary

From DistrOSList
(Redirected from FSF)
HomeAboutDonate
Concepts related to OPERATING SYSTEMS (OS)
Unix Research Unix
Version 6 Unix UNIX System V
UNIX System V Release 4 (SVR4)
SunOS - Solaris BSD
Unix-like GNU (GNU/Linux)
Linux kernel Linux-libre
Distribution
Concepts related to LICENSES
GPL - LGPL MIT License
BSD Licenses ISC License
WTFPL CDDL
Other TERMS AND PROJECTS
Operating system Kernel
Free Software Fundation (FSF) Userland
Free software Open source
Display server X Window System
Wayland Mir
Graphical User Interface (GUI) Command Line Interface (CLI)
Window manager Desktop environment
Package manager Symmetric multiprocessing (SMP)
Fork Respin - Spin-off - Remix - Flavor
Spin Upstream (downstream)
Rolling release Long-term support (LTS)
Source-based distribution LiveCD - LiveDVD - Live USB - LiveDistro - Live OS

OPERATING SYSTEMS (OS)

Unix

The name Unix refers both to a multi-user, multi-tasking operating system developed by AT&T's Bell Labs and to the family of operating systems which are derived from that original Unix operating system. Over the years, the original Unix inspired the rise of many operating systems which were either based off the code developed by Bell Labs or inspired by the Unix design.

The BSD family of operating systems can trace their code's lineage back to the original Unix code base, making the BSDs a modern form of Unix.

Other operating systems, such as GNU/Linux distributions, share a common design with Unix, but do not contain any of the original Unix source code. This makes GNU/Linux distributions Unix-like or Unix clones.

Research Unix

The term Research Unix refers to early versions of the Unix operating system developed at Bell Labs Computing Sciences Research Center (CSRC). These versions were used on DEC PDP-7, PDP-11, VAX and Interdata 7/32 and 8/32 computers.

Research Unix originated at Bell Laboratories as an internal research and development environment.

Its versions were:

  • Version 1 Unix (1st Edition)
  • Version 2 Unix (2nd Edition)
  • Version 3 Unix (3rd Edition)
  • Version 4 Unix (4th Edition)
  • Version 5 Unix (5th Edition)
  • Version 6 Unix (6th Edition)
  • Version 7 Unix (7th Edition)
  • Version 8 Unix (8th Edition)
  • Version 9 Unix (9th Edition)
  • Version 10 Unix (10th Edition)
Origin Developed at Bell Labs by Ken Thompson and Dennis Ritchie in the 1960s, primarily for internal use and research purposes.
Focus Experimentation, portability, and a small footprint.
Distribution Not commercially available, but distributed to universities and research institutions, leading to various derivative versions like BSD Unix.

Key Characteristics:

  • Simple and elegant design
  • Focus on text processing and software development tools
  • Portability across different hardware platforms
  • Shell scripting for automation

Open-source availability of some versions

Version 6 Unix
Sixth Edition Unix, also called Version 6 Unix or just V6, was the first version of the Unix operating system (Research Unix to be precise) to see wide release outside Bell Labs.
It was released in May 1975 and, like its direct predecessor, targeted the DEC PDP-11 family of minicomputers.
It was superseded by Version 7 Unix in 1978/1979, although V6 systems remained in regular operation until at least 1985.

AT&T Corporation licensed Version 5 Unix to educational institutions only, but licensed Version 6 also to commercial users for $20,000, and it remained the most widely used version into the 1980s.
An enhanced V6 was the basis of the first ever commercially sold Unix version, INTERACTIVE's IS/1.
Bell's own PWB/UNIX 1.0 was also based on V6, where earlier (unreleased) versions were based on V4 and V5. Whitesmiths produced and marketed a (binary-compatible) V6 clone under the name Idris.
V6 Unix was released as a distribution including the full source code. Since source code was available and the license was not explicit enough to forbid it, V6 was taken up as a teaching tool, notably by the University of California, Berkeley, Johns Hopkins University and the University of New South Wales (UNSW).
University of California,Berkeley distributed a set of add-on programs called the First Berkeley Software Distribution or 1BSD, which later became a complete operating system.

UNIX System V

Unix System V (pronounced: "System Five") is one of the first commercial versions of the Unix operating system. It was originally developed by AT&T and first released in 1983.

Four major versions of System V were released, numbered 1, 2, 3, and 4. System V Release 4 (SVR4) was commercially the most successful version, being the result of an effort, marketed as Unix System Unification, which solicited the collaboration of the major Unix vendors. It was the source of several common commercial Unix features.

System V is sometimes abbreviated to SysV.

As of 2021, the AT&T-derived Unix market is divided between four System V variants:

  1. IBM's AIX
  2. Hewlett Packard Enterprise's HP-UX
  3. Oracle's Solaris
  4. Plus the free-software illumos forked from OpenSolaris.

UNIX System V Release 4 (SVR4)

System V Release 4.0 was announced on 18/10/1988 and was incorporated into a variety of commercial Unix products from early 1989 onwards. A joint project of AT&T Unix System Laboratories and Sun Microsystems, it combined technology from:

New features included:

  • From BSD:
    • TCP/IP support
    • Sockets
    • UFS
    • Support for multiple groups
    • C shell
  • From SunOS:
    • Virtual file system interface (replacing File System Switch in System V Release 3)
    • NFS
    • New virtual memory system including support for memory mapped files
    • Improved shared library system based on the SunOS 4.x model[16]
    • OpenWindows GUI environment
    • External Data Representation (XDR) and ONC RPC
  • From Xenix:
    • x86 device drivers
    • Binary compatibility with Xenix (in the x86 version of System V)
  • KornShell
  • ANSI X3J11 C compatibility
  • Multi-National Language Support (MNLS)
  • Better internationalization support
  • An application binary interface (ABI) based on Executable and Linkable Format (ELF)
  • Support for standards such as POSIX and X/Open

Many companies licensed SVR4 and bundled it with computer systems such as workstations and network servers. SVR4 systems vendors included: Atari (Atari System V), Commodore (Amiga Unix), Data General (DG/UX), Fujitsu (UXP/DS), Hitachi (HI-UX), Hewlett-Packard (HP-UX), NCR (Unix/NS), NEC (EWS-UX, UP-UX, UX/4800, SUPER-UX), OKI (OKI System V), Pyramid Technology (DC/OSx), SGI (IRIX), Siemens (SINIX), Sony (NEWS-OS), Sumitomo Electric Industries (SEIUX), and Sun Microsystems (Solaris) with illumos in the 2010s as the only open source platform.

Software porting houses also sold enhanced and supported Intel x86 versions. SVR4 software vendors included Dell (Dell UNIX), Everex (ESIX), Micro Station Technology (SVR4), Microport (SVR4), and UHC (SVR4).

The primary platforms for SVR4 were Intel x86 and SPARC; the SPARC version, called Solaris 2 (or, internally, SunOS 5.x), was developed by Sun. The relationship between Sun and AT&T was terminated after the release of SVR4, meaning that later versions of Solaris did not inherit features of later SVR4.x releases. Sun would in 2005 release most of the source code for Solaris 10 (SunOS 5.10) as the open source OpenSolaris project, creating, with its forks, the only open source (albeit heavily modified) System V implementation available. After Oracle took over Sun, Solaris was forked into proprietary release, but illumos as the continuation project is being developed in open source.

A consortium of Intel-based resellers including Unisys, ICL, NCR Corporation, and Olivetti developed SVR4.0MP with multiprocessing capability (allowing system calls to be processed from any processor, but interrupt servicing only from a "master" processor).

Release 4.1 ES (Enhanced Security) added security features required for Orange Book B2 compliance and Access Control Lists and support for dynamic loading of kernel modules.

SunOS - Solaris

SunOS is an Unix operating system developed by Sun Microsystems for their workstation and server computer systems.

  • The SunOS name is usually only used to refer to versions 1.0 to 4.1.4, which were based on BSD.
  • The versions 5.0 and later are based on UNIX System V Release 4 and are marketed under the brand name Solaris.

BSD

• See more information here: BSD

BSD ("Berkeley Software Distribution" or "Berkeley Standard Distribution") is a discontinued operating system based on Research Unix (from AT&T), derived from the contributions made to the system by the Computer Systems Research Group (CSRG) at the University of California, Berkeley.

These days the term BSD usually refers to a family of related open source operating systems, specifically FreeBSD, NetBSD, OpenBSD, DragonFly BSD and their derivatives.

Unix-like

A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification.

Some well-known examples of Unix-like operating systems include GNU/Linux.

One of the key features of Unix-like systems is their ability to support multiple users and processes simultaneously. This allows users to run multiple programs at the same time and to share resources such as memory and disk space. This is in contrast to many older operating systems, which were designed to only support a single user or process at a time.

Another important feature of Unix-like systems is their modularity. This means that the operating system is made up of many small, interchangeable components that can be added or removed as needed. This makes it easy to customize the operating system to suit the needs of different users or environments.

GNU (GNU/Linux)

• See more information here: GNU

GNU is a collection of software which makes up an operating system that is licensed as free software.

GNU, which is sometimes called the GNU Operating System, was founded by Richard M Stallman and is sponsored by the Free Software Foundation (FSF).

In the 1980s, GNU formed a mostly complete Unix-like operating system. Most of the pieces of the operating system were in place and functioning, with the notable exception of a kernel.

In the early 1990s, Linus Torvalds created the Linux kernel. Developers from around the world began to use the GNU Operating System with the Linux kernel.

• See more information here: GNU/Linux

The combination of the two (GNU and Linux) is called GNU/Linux.

Linux kernel

• See more information here: Linux kernel

On GNU/Linux distributions and on Android devices, Linux is the name of the kernel. The Linux kernel was originally created by Linus Torvalds and is currently worked on by many developers and companies around the world.

Because of the importance of the role of the Linux kernel in GNU/Linux distributions, such distributions are often referred to under the simplified term "Linux distributions" or "GNU/Linux distributions", here we use "GNU/Linux distributions".

These days the Linux kernel is used not only in GNU/Linux distributions and Android devices, but also in embedded devices and appliances all around the world. GNU/Linux is also run on most of the world's fastest super computers. Linux is a complex and flexible kernel which makes it useful in a wide range of computing environments.


Linux-libre

Linux-libre is a modified version of the Linux kernel that contains no binary blobs, obfuscated code, or code released under proprietary licenses.

In the Linux kernel, they are mostly used for proprietary firmware images. While generally redistributable, binary blobs do not give the user the freedom to audit, modify, or, consequently, redistribute their modified versions. The GNU Project keeps Linux-libre in synchronization with the mainline Linux kernel.


History

The Linux kernel started to include binary blobs in 1996. The work to clear out the binary blobs began in 2006 with gNewSense's find-firmware and gen-kernel. This work was taken further by the BLAG Linux distribution in 2007 when deblob and Linux-libre was born.

Linux-libre was first released by the Free Software Foundation Latin America (FSFLA), then endorsed by the Free Software Foundation (FSF) as a valuable component for the totally free Linux distributions. It became a GNU package in March 2012. Alexandre Oliva is the project maintainer.


Proprietary firmware removal

The removal process is achieved by using a script called deblob-main. This script is inspired by the one used for gNewSense. Jeff Moe made subsequent modifications to meet certain requirements for its use with the BLAG Linux and GNU distribution. There is another script called deblob-check, which is used to check if a kernel source file, a patch or a compressed sources file still contains software which is suspected of being proprietary.


Distribution

Please see GNU/Linux distribution

LICENSES

GPL

The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses or copyleft that guarantee end users the four freedoms to run, study, share, and modify the software, and is one of the more commonly used free software licenses.

The license was the first copyleft for general use and was originally written by Richard Stallman, the founder of the Free Software Foundation (FSF), for the GNU Project.

Most components of GNU/Linux distributions are licensed under the GPL, which means GNU/Linux distributions can usually be modified and shared with others with few restrictions.


  • For more information on this important software license can be found on the GNU website.

LGPL

The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own (even proprietary) software without being required by the terms of a strong copyleft license to release the source code of their own components. However, any developer who modifies an LGPL-covered component is required to make their modified version available under the same LGPL license.

For proprietary software, code under the LGPL is usually used in the form of a shared library, so that there is a clear separation between the proprietary and LGPL components. The LGPL is primarily used for software libraries, although it is also used by some stand-alone applications.

The LGPL was developed as a compromise between the strong copyleft of the GNU General Public License (GPL) and more permissive licenses such as the BSD licenses and the MIT License. The word "Lesser" in the title shows that the LGPL does not guarantee the end user's complete freedom in the use of software; it only guarantees the freedom of modification for components licensed under the LGPL, but not for any proprietary components.


  • For more information on this important software license can be found on the GNU website.

MIT License

The MIT License is a permissive software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts very few restrictions on reuse and therefore has high license compatibility.

Unlike copyleft software licenses, the MIT License also permits reuse within proprietary software, provided that all copies of the software or its substantial portions include a copy of the terms of the MIT License and also a copyright notice.


  • Links:

BSD Licenses

BSD licenses are a low restriction type of license for open source software that does not put requirements on redistribution.

As a low restriction and requirement license type, Berkeley Source Distribution (BSD) licenses are used for the distribution of many freeware, Shareware and open source software. BSD licenses are much like the license that accompanied the original BSD. The original BSD Unix license was first written in 1969. There are 4 main clauses of the classic BSD license:

  • The BSD UNIX license states one may copy, modify and redistribute the code so long as one retains a copy of the original copyright statement.
  • The copyright statements must include a clear statement of two restrictions for use of the distributed software.
  • A disclaimer for limitations of liability that include not claiming authorship of the code where the code was not written by the user and not suing the author of the program for unexpected or undesirable functionality.
  • The stipulation that one doesn’t use the name of the software or its authors to advertise or promote work derived from modification of the distributed code without prior written consent.

Similarly, other BSD licenses can have these clauses but may not include them all. As a base, the first two clauses are a part of any BSD license. There are two, three and four clause BSD licenses.

The BSD license is a type of open source license that permits the free use, modification and distribution of software.

The BSD license is permissive, meaning that it imposes minimal restrictions on the use and distribution of the licensed software. The main requirement of the BSD license is that any redistribution of the software must include a copy of the license and a disclaimer. Many software developers and companies use this license to ensure that their work is accessible to a wide range of users, while maintaining the rights to the software.

It was first used in 1980 for the Berkeley Source Distribution (BSD), also known as BSD UNIX, an enhanced version of the original UNIX operating system that was first written in 1969 by Ken Thompson at Bell Labs.

The only restrictions placed on users of software released under a typical BSD license are that if they redistribute such software in any form, with or without modification, they must include in the redistribution the original copyright notice, a list of two simple restrictions and a disclaimer of liability. These restrictions can be summarized as one should not claim that they wrote the software if they did not write it and one should not sue the developer if the software does not function as expected or as desired. Some BSD licenses additionally include a clause that restricts the use of the name of the project (or the names of its contributors) for endorsing or promoting derivative works.

Due to the extremely minimal restrictions of BSD-style licenses, software released under such licenses can be freely modified and used in proprietary (i.e., commercial) software for which the source code is kept secret.

It is possible for a product to be distributed under a BSD-style license and for some other license to apply as well.


The following BSD licenses are available:


ISC License

The ISC license is a permissive free software license published by the Internet Software Consortium, now called Internet Systems Consortium (ISC). It is functionally equivalent to the simplified BSD and MIT licenses, but without language deemed unnecessary following the Berne Convention.

The ISC license it has become the preferred license for contributions to OpenBSD.

The ISC license is also used for [{GNU/Linux]] wireless drivers contributed by Qualcomm Atheros, as well as by the LV2 plugin system.

CDDL

The Common Development and Distribution License (CDDL) is a free and open source software license, produced by Sun Microsystems, based on the Mozilla Public License (MPL).

Files licensed under the CDDL can be combined with files licensed under other licenses, whether open source or proprietary.

In 2005 the Open Source Initiative (OSI) approved the license.

The Free Software Foundation (FSF) considers it a free software license, but one which is incompatible with the GNU General Public License (GPL).


OpenSolaris community contributions and Sun-written/-owned code is released under the Common Development and Distribution License (CDDL) Version 1.0.

The OpenSolaris project also includes a number of existing open source project components, which are released under their current licenses.

  • OpenSolaris was licensed using the OpenSolaris Binary License.

WTFPL

The WTFPL is a permissive free software license. As a public domain like license, the WTFPL is essentially the same as dedication to the public domain. It allows redistribution and modification of the work under any terms. The name is an abbreviation of Do What The Fuck You Want To Public License.

The first version of the WTFPL, released in March 2000, was written by Banlu Kemiyatorn for his own software project. Sam Hocevar, Debian's former project leader, wrote version 2.


Characteristics

The WTFPL intends to be a permissive, public-domain-like license. The license is not a copyleft license. The license differs from public domain in that an author can use it even if they do not necessarily have the ability to place their work in the public domain according to their local laws.

The WTFPL does not include a no-warranty disclaimer, unlike other permissive licenses, such as the MIT License. Though the WTFPL is untested in court, the official website offers a disclaimer to be used in software source code.


TERMS AND PROJECTS

Operating system

An operating system (OS) is a collection of software which works together to make a computer or mobile device work. The operating system's job is to communicate with the computer's hardware, receive input (in the form of typing, voice commands and mouse movement) from the user and provide a way for applications to display output back to the user.

An operating system typically consists of a kernel, some simple applications such as a text editor, a file manager, a method for installing/removing applications and quite often a desktop environment.

Free software

Free software is a special kind of open source software. Free software refers to software that has been licensed in such a way as to encourage users to be able to view, modify and redistribute the source code of programs they run on their computers.

The Free Software Foundation, the primary advocate of free software, states on their website, "Free software developers guarantee everyone equal rights to their programs; any user can study the source code, modify it, and share the program. By contrast, most software carries fine print that denies users these basic rights, leaving them susceptible to the whims of its owners and vulnerable to surveillance."

There is a common misconception that free software refers to software that is available at no monetary cost. However, this is not the case. While many free software programs are available at no charge, the term "free" in this case refers to the freedom to modify and redistribute software. In other words, "free software" is a similar concept to "freedom of speech".

Free Software Fundation (FSF)

The Free Software Foundation (FSF) is a non-profit organization founded by Richard Stallman on 04/10/1985, to support the free software movement, with the organization's preference for software being distributed under copyleft ("share alike") terms, such as with its own GNU General Public License. The FSF was incorporated in Boston, Massachusetts, United States, where it is also based.

From its founding until the mid-1990s, FSF's funds were mostly used to employ software developers to write free software for the GNU Project and its employees and volunteers have mostly worked on legal and structural issues for the free software movement and the free software community.

Consistent with its goals, the FSF aims to use only free software on its own computers.


Sister Organizations

¨Website: https://www.fsf.org/

Kernel

An operating system is made up of many individual parts. One of the more important elements of an operating system is the kernel.

The kernel's primary task is to communicate with the computer's hardware. The kernel allows applications to talk to or access a computer's hardware, like the mouse and keyboard.

The kernel enables programs to write files to a computer's hard drive and read the files stores there. On modern operating systems the kernel makes it possible to run multiple programs at the same time.

It might help to think of the kernel as the core or lowest level of the operating system. It is the part which holds control over all other aspects of the operating system.

Open source

Open source is a term which is usually used to indicate that people who run a program can see the program's source code, the building blocks which are used to make the program work. Software licensed under an open source license can usually be modified and redistributed by anyone who has acquired a copy of the software.

There are many types of open source licenses, with some being very liberal in what people can do while others may contain several restrictions which put limits on users and developers. As the Open Source Initiative's website states, "Generally, open source software is software that can be freely accessed, used, changed, and shared (in modified or unmodified form) by anyone. Open source software is made by many people, and distributed under licenses that comply with the The Open Source Definition."

Open source software is often regarded as beneficial to users as anyone with the proper skills can fix or improve an open source program. In the open source community, such improvements are usually shared quickly and, as a result, all users of the software benefit. This is in contrast to proprietary software licenses where usually only one person or company is allowed to fix a program's bugs or improve the software.

Since there is a lot of overlap between the concepts of open source software and free software, the two are often combined under the blanket term "free and open source software" or simply "FOSS".

Rolling release

Rolling release, also known as rolling update or continuous delivery, is a concept in software development of frequently delivering updates to applications. This is in contrast to a standard or point release development model which uses software versions which replace the previous version.

In software development a rolling release indicates that the software receives a steady stream of updates. In the case of Linux distributions this means that the operating system can be installed once and then receive a constant stream of software updates that offer users both new features and security updates. This allows users to stay up to date with the latest versions of software.

Source-based distribution

Most GNU/Linux distributions are provided to the public in binary form. That is, the software which is packaged for the distribution has already been built from its source code into programs which can be run natively on the operating system. This is very convenient and is the way most operating systems are put together and distributed to end users.

While binary packages are very convenient to work with, in some scenarios better performance and flexibility can be achieved by the end-user building the software they plan to run on their own, local machines. A source-based distribution packages and provides source archives rather than binary packages. The user, usually with the help of a package manager, downloads these source archives, optionally configures them and builds the source code into a running program.

Quite often building packages from source code can take a long time, a few minutes to several hours, depending on the size of the application being built. Due to the complexity and the time required to build packages, not many users run source-based distributions. Those who do usually do so to enable (or disable) specific features or to strive for optimizations specific to their computer's hardware.

Spin

The term "spin" or "distribution spin" is used to refer to an (often unofficial) distribution edition of a distribution which uses the same core technology and software repositories as the main edition, but includes a different set of software by default.

For example, the Fedora distribution is currently available in three different official editions (Workstation, Server and Atomic). The Workstation edition features the GNOME desktop environment. People who wish to run the Fedora operating system, while using a different desktop, can use an unofficial edition or "spin" that features the KDE Plasma or Xfce desktop. These unofficial editions use the same core technology and can use the same software packages, but offer a different desktop environment and a few different applications.

Spins are often created by community members and are a good way for a distribution's community to provide a wider range of install media that offer different tools or desktop environments. Spins, while convenient, are often not officially supported by the parent project.

Fork

The term "Form" a project fork happens when developers take a copy of source code from one software package and start independent development on it, creating a distinct and separate piece of software.

The term often implies not merely a development branch, but also a split in the developer community; as such, it is a form of schism. Grounds for forking are varying user preferences and stagnated or discontinued development of the original software.

Free and open source software is that which, by definition, may be forked from the original development team without prior permission, and without violating copyright law.


As a result of a bifurcation, several projects may derive from a pre-existing one, which may try to cover different but similar needs or implement different solutions to address the same problems and may even compete with each other.

Forks of free and open source software projects can arise from a schism in goals or a clash of personalities. In a fork, both sides assume identical copyrights but typically only the larger group, or the one containing the original architect, will retain the full original name. Since this is freely licensed software, each member of the associated user community can choose to stay with the original project, or switch to the forked and upgraded version through a different form of management.

Upstream (downstream)

The term upstream, as applied to software, refers to the origin of a program. For example, if a distribution packages Mozilla's Firefox web browser, then Mozilla is the "upstream" source of Firefox. The distribution packaging Firefox for its users is considered the "downstream" location of the Firefox package.

Sometimes the "stream" becomes longer. For instance, The Document Foundation creates the LibreOffice productivity suite. Debian then packages LibreOffice for its users. Then another distribution, for example Ubuntu, takes Debian's package of LibreOffice and copies it. At this point there is a chain from The Document Foundation to Debian to Ubuntu. So Debian, being in the middle, is "upstream" for Ubuntu, but also "downstream" from The Document Foundation.

This chain of ownership can become important when filing bug reports. Often times a distribution will advise bug reporters to file a bug "upstream" with the original authors of a piece of software if they do not have the time or expertise to fix the issue themselves.

Desktop environment

A desktop environment (DE) is an implementation made of a bundle of programs running on top of an operating system that share a common graphical user interface (GUI), sometimes described as a graphical shell.

The desktop environment was seen mostly on personal computers until the rise of mobile computing.

Desktop GUIs help the user to easily access and edit files, while they usually do not provide access to all of the features found in the underlying operating system. Instead, the traditional command-line interface (CLI) is still used when full control over the operating system is required.

A desktop environment typically consists of icons, windows, toolbars, folders, wallpapers and desktop widgets. A GUI might also provide drag and drop functionality and other features that make the desktop metaphor more complete.

A desktop environment aims to be an intuitive way for the user to interact with the computer using concepts which are similar to those used when interacting with the physical world, such as buttons and windows.

Window manager

A window manager is the software which enables the user to interact with multiple applications in a graphical user interface. The window manager handles the placement and general appearance of the application windows.

While some people use window managers on their own, most people run full featured desktop environments, of which a window manager is one key component. A full desktop environment will feature helper applications, possibly resource monitors, panels and other convenient tools as well as the underlying window manager. Running a window manager by itself, without these extra applications, provides a desktop-like interface with less visual clutter and requires fewer resources.

A window manager it can be part of a desktop environment or be used standalone.


Stacking window manager

Is a Window manager that draws and allows windows to overlap, without using a compositing algorithm. All window managers that allow the overlapping of windows but are not compositing window managers are considered stacking window managers, although it is possible that not all use exactly the same methods.

Other window managers that are not considered stacking window managers are those that do not allow the overlapping of windows, which are called tiling window managers.

Stacking window managers allow windows to overlap using clipping to allow applications to write only to the visible parts of the windows they present.


Tiling window manager

A tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more common approach (used by stacking window managers) of coordinate-based stacking of overlapping objects (windows) that tries to fully emulate the desktop metaphor.


Dynamic window manager

A dynamic window manager is a tiling window manager where windows are tiled based on preset layouts between which the user can switch. Layouts typically have a main area and a secondary area. The main area usually shows one window, but one can also change the number of windows in this area. Its purpose is to reserve more space for the more important window(s). The secondary area shows the other windows.

Tiling window managers that don't use layouts are called manual tiling window managers. They let the user decide where windows should be placed.


Compositing window manager

A compositing manager, or compositor, is software that provides applications with an off-screen buffer for each window. The compositing manager composites the window buffers into an image representing the screen and writes the result into the display memory. A compositing window manager is a window manager that is also a compositing manager.

Compositing managers may perform additional processing on buffered windows, applying 2D and 3D animated effects such as blending, fading, scaling, rotation, duplication, bending and contortion, shuffling, blurring, redirecting applications, and translating windows into one of a number of displays and virtual desktops. Computer graphics technology allows for visual effects to be rendered in real time such as drop shadows, live previews, and complex animation. Since the screen is double buffered, it does not flicker during updates.

Display server

A display server or window server is a program whose primary task is to coordinate the input and output of its clients to and from the rest of the operating system, the hardware, and each other.

The display server communicates with its clients over the display server protocol, a communications protocol, which can be network-transparent or simply network-capable.

The display server is a key component in any graphical user interface, specifically the windowing system.

The server/client relationship of a standalone display server is somewhat counterintuitive in that a "server" is usually thought of as a large, remote machine, whereas a standalone "display server" is a small local system, with most clients being executed on a larger central machine. The explanation is that a display server provides the services of a display and input devices.


X Window System

X (or X11, X Window System) is low level software (display server) for handling the display of graphical data on a computer screen and for receiving input from devices such as a mouse or keyboard. On GNU/Linux and BSD the X software is a core component of the graphical user interface and acts as a foundation for window managers and desktop environments.

In recent years, some people have noted the X software and its legacy code have become difficult to maintain.

This has given rise to alternative low-level graphical implementations such as Mir and Wayland.

XFree86

XFree86 it was an implementation of the X Window System. It was originally written for Unix-like operating systems on IBM PC compatibles and was available for many other operating systems and platforms. It is free and open source software under the XFree86 License version 1.1. It was developed by the XFree86 Project, Inc. The lead developer was David Dawes.

The last released version was 4.8.0, released December 2008. The last XFree86 CVS commit was made on May 18, 2009; the project was confirmed dormant in December 2011.

For most of the 1990s and early 2000s, the project was the source of most innovation in X and was the de facto steward of X development. Until early 2004, it was almost universal on Linux and the BSDs.

In February 2004, with version 4.4.0, The XFree86 Project began distributing new code with a copyright license that the Free Software Foundation considered GPL incompatible. Most open source operating systems using XFree86 found this unacceptable and moved to a fork from before the license change.

The first fork was the abortive Xouvert, but X.Org Server soon became dominant.

Most XFree86 developers also moved to X.Org.


X.Org Server

X.Org Server is the free and open source implementation of the X Window System (X11) display server stewarded by the X.Org Foundation, which emerged as a fork of the XFree86 project.

Implementations of the client-side X Window System protocol exist in the form of X11 libraries, which serve as helpful APIs for communicating with the X server. Two such major X libraries exist for X11. The first of these libraries was Xlib, the original C language X11 API, but another C language X library, XCB, was created later in 2001. Other smaller X libraries exist, both as interfaces for Xlib and XCB in other languages, and as smaller standalone X libraries.

The services with which the X.Org Foundation supports X Server include the packaging of the releases; certification (for a fee); evaluation of improvements to the code; developing the web site, and handling the distribution of monetary donations. The releases are coded, documented, and packaged by global developers.

The X.Org Server implements the server side of the X Window System core protocol version 11 (X11) and extensions to it.


The first version of the X.Org server (included in X11R6.7.0), was based on the XFree86 4.4 RC2 code, due to a license change in February 2004 (it was previously distributed under the MIT license, and the new license has incompatibilities with the GNU General Public License). Several of the previous developers of XFree86, such as Keith Packard, joined the project, since it is managed in a more open way than XFree86.

The project runs under the auspices of the X.Org Foundation and is hosted at freedesktop.org.

The latest version of the X Window System is X11R7.7.


Wayland

The term Wayland is usually used to refer both to the protocol being used in the background and the software used to implement the protocol. Many graphics libraries along with KDE's Plasma desktop and the GNOME Shell desktop have been ported to Wayland. At the time of writing, Wayland running the GNOME desktop is the default display server for the Fedora Workstation distribution.

Wayland is a communication protocol that specifies the communication between a display server and its clients, as well as a C library implementation of that protocol.

Wayland is developed by a group of volunteers initially led by Kristian Høgsberg as a free and open-source community-driven project with the aim of replacing the X Window System with a secure and simpler windowing system for Linux and other Unix-like operating systems. The project's source code is published under the terms of the MIT License, a permissive free software licence.

As part of its efforts, the Wayland project also develops a reference implementation of a Wayland compositor called Weston.


Compositor

A display server using the Wayland protocol is called a Wayland compositor, because it additionally performs the task of a compositing window manager.

Mir

Mir is a open source computer display server designed for Internet of Things (IoT) devices, and recently a Wayland compositor for the GNU/Linux operating system that is under development by Canonical Ltd.

Originally built to power a whole range of devices, from desktops to mobile phones, it is also being used to power a new wave of graphical experiences in the IoT.

It was planned to replace the currently used X Window System for Ubuntu; however, the plan changed and Mutter was adopted as part of GNOME Shell.

Mir was announced by Canonical on 04/03/2013 as part of the development of Unity 8, intended as the next generation for the Unity user interface. Four years later Unity 8 was dropped although Mir's development continued for Internet of Things (IoT) applications.

Mir was designed from the ground-up with security in mind. To meet the needs of today's users Mir avoids the X11 protocol and uses Wayland for a more modern and secure approach to graphics. Each application talks exclusively to the Mir server through its own socket that is both secure and robust against attack.


Package manager

A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner.

  • A package manager deals with packages, distributions of software and data in archive files.

Packages contain metadata, such as the software's name, description of its purpose, version number, vendor, checksum (preferably a cryptographic hash function), and a list of dependencies necessary for the software to run properly. Upon installation, metadata is stored in a local package database.

Package managers typically maintain a database of software dependencies and version information to prevent software mismatches and missing prerequisites. They work closely with software repositories, binary repository managers, and app stores.

Package managers are designed to eliminate the need for manual installs and updates.

  • This can be particularly useful for large enterprises whose operating systems typically consist of hundreds or even tens of thousands of distinct software packages.

Comparison of commands

Although the commands are specific for every particular package manager, they are to a large extent translatable, as most package managers offer similar functions.

${PKG} is the package name.
Action Homebrew APT (Debian) pacman (Arch Linux) DNF (YUM) portage zypper Nix package manager XBPS swupd
Install package brew install ${PKG} apt install ${PKG} pacman -S ${PKG} dnf install ${PKG} emerge ${PKG} zypper in ${PKG} nix-env -i ${PKG} xbps-install ${PKG} swupd bundle-add ${PKG}
Remove package brew uninstall ${PKG} apt remove ${PKG} pacman -R ${PKG} dnf remove --nodeps ${PKG} emerge -C ${PKG} or
emerge --unmerge ${PKG}
zypper rm -RU ${PKG} nix-env -e ${PKG} xbps-remove ${PKG} swupd bundle-remove ${PKG}
Update all brew upgrade apt upgrade pacman -Syu dnf update emerge -u -D --with-bdeps=y @world zypper up nix-env -u && nix-collect-garbage xbps-install -Su swupd update
Update software database brew update apt update pacman -Sy dnf check-update emerge --sync zypper ref nix-channel --upgrade xbps-install -S swupd update --download or
swupd update --update-search-file-index
Show updatable packages brew outdated apt list --upgradable pacman -Qu dnf check-update emerge -avtuDN --with-bdeps=y @world or
emerge -u --pretend @world
(-D is shorthand for --deep and
-u is shorthand for --update.)
zypper lu nix-channel --upgrade && \

nix-env -u && \ nix-collect-garbage

./xbps-src update-check ${PKG}(requires void-packages repository) swupd update -sor
swupd check-update
Delete orphans and config brew autoremove && brew cleanup apt autoremove pacman -Rsn $(pacman -Qdtq) dnf erase ${PKG} emerge --depclean zypper rm -u nix-collect-garbage -d xbps-remove -of swupd bundle-remove --orphans && \

swupd clean --all

Show orphans brew autoremove --dry-run pacman -Qdt package-cleanup -q --leaves --exclude-bin
(-q is shorthand for --quiet.)
emerge -caD or
emerge --depclean --pretend
zypper pa --orphaned --unneeded xbps-remove -o swupd bundle-list --orphans
Remove package (and orphans) brew uninstall ${PKG} && brew autoremove apt autoremove ${PKG} pacman -Rs ${PKG} dnf remove ${PKG} emerge -c ${PKG} or
emerge --depclean ${PKG}
zypper rm -u --force-resolution ${PKG} nix-env -e ${PKG} && nix-env -u xbps-remove -R ${PKG} swupd bundle-remove ${PKG} && \

swupd bundle-remove --orphans

Command Line Interface (CLI)

A Command Line Interface (CLI) is a type of computer user interface that allows users to give instructions to some computer program or to the operating system by means of a simple line of text. It should be noted that the concepts of CLI, shell and terminal emulator are not the same since CLI refers to the paradigm, while a shell or terminal emulator are specific computer programs, which usually together implement the CLI. However, the three are often used synonymously.

CLIs can be used interactively, by typing instructions into some sort of text input, or they can be used in a much more automated way (batch file), by reading commands from a script file.

Graphical User Interface (GUI)

A Graphical User Interface (GUI) is a form of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation. In many applications, GUIs are used instead of text-based UIs, which are based on typed command labels or text navigation. GUIs were introduced in reaction to the perceived steep learning curve of command-line interfaces (CLIs), which require commands to be typed on a computer keyboard.

Symmetric multiprocessing (SMP)

The SMP (symmetric multiprocessing) is computer processing done by multiple processors that share a common operating system and memory. In symmetric multiprocessing, the processors share the same input/output (I/O) bus or data path. A single copy of the OS is in charge of all the processors.

SMP systems are better suited for online transaction processing than massively parallel processing (MPP) systems in which many users access the same database in a relatively simple set of transactions. Unlike MPP systems, SMP systems can dynamically balance the workload among computers to serve more users faster.

The SMP computer architecture is a multiprocessor hardware and software architecture that has multiple identical processors. The processors equally share main memory and have access to all I/O devices. Today, most modern OSes support SMP machines. In the past, users had to learn special programming skills to use SMP.


How is SMP used?

Symmetric multiprocessing systems are used primarily in resource-intensive computing environments. These are environments that need a large amount of computing power to execute application tasks and processes. Most multiprocessor systems use SMP architectures.

SMP is most useful for time-sharing systems and multithreading time-sharing systems.

Userland

The term user space (or userland) refers to all code that runs outside the operating system's kernel.

User space (userland) usually refers to the various programs and libraries that the operating system uses to interact with the kernel: software that performs input/output, manipulates file system objects, application software, etc.

Each user space (userland) process normally runs in its own virtual memory space, and, unless explicitly allowed, cannot access the memory of other processes.

This is the basis for memory protection in today's mainstream operating systems, and a building block for privilege separation.

A separate user mode can also be used to build efficient virtual machines. With enough privileges, processes can request the kernel to map part of another process's memory space to its own, as is the case for debuggers.

Programs can also request shared memory regions with other processes, although other techniques are also available to allow inter-process communication.

Various layers within GNU/Linux, also showing separation between the User space (userland) and kernel space.
Userland

(user
space)

User applications bash, LibreOffice, GIMP, Blender, Mozilla Firefox, ...
System components init daemons:
OpenRC, runit, systemd...
System daemons:
polkitd, Samba (smbd), sshd, udevd...
Display server (Window system):
X11, Wayland, Mir...
Graphics:
Mesa, AMD Catalyst, ...
Other libraries:
GTK, Qt, Enlightenment Foundation Libraries (EFL), Simple DirectMedia Layer (SDL), Simple and Fast Multimedia Library (SFML), Fast Light Toolkit (FLTK), GNUstep, ...
C standard
library (libc)
fopen, execv, malloc, memcpy, localtime, pthread_create... (up to 2000 subroutines)
glibc aims to be fast, musl aims to be lightweight, uClibc targets embedded systems, bionic was written for Android, etc. All aim to be POSIX/Single UNIX Specification (SUS)-compatible.
Kernel
space
Linux
kernel
stat, splice, dup, read, open, ioctl, write, mmap, close, exit, etc. (about 380 system calls)
The Linux kernel System Call Interface (SCI), aims to be POSIX/Single UNIX Specification (SUS)-compatible
Process scheduling subsystem Inter-process communication (IPC) subsystem Memory management subsystem Virtual files subsystem Networking subsystem
Other components: Advanced Linux Sound Architecture (ALSA), (Direct Rendering Infrastructure (DRI), evdev, klibc, Logical Volume Manager (Linux) (LVM), device mapper, Linux Network Scheduler, Netfilter
Linux Security Modules: Security-Enhanced Linux (SELinux), TOMOYO Linux, AppArmor, Smack (Linux security module)
Hardware (Central Processing Unit, (CPU);
Random-Access Memory (main memory), data storage devices, etc.)

Long-term support (LTS)

Long-term support (LTS) is a product lifecycle management policy in which a stable release of computer software is maintained for a longer period of time than the standard edition. The term is typically reserved for open-source software, where it describes a software edition that is supported for months or years longer than the software's standard edition.

Short-term support (STS) is a term that distinguishes the support policy for the software's standard edition. STS software has a comparatively short life cycle, and may be afforded new features that are omitted from the LTS edition to avoid potentially compromising the stability or compatibility of the LTS release.


Software with separate LTS versions

This table only lists software that have a specific LTS version in addition to a normal release cycle. Many projects, such as CentOS, provide a long period of support for every release.

Software First LTS release date LTS period STS period Notes
Linux kernel 11/10/2008
(v2.6.27)
Varies: 6, 10+ years Varies Linux kernel v2.6.16 and v2.6.27, were unofficially supported in LTS fashion before a 2011 working group in the Linux Foundation started a formal Long Term Support Initiative. The LTS support period was increased to 6 years; Linux kernel 4.4 will have 6 years of support before being taken over by the "Civil Infrastructure Platform" (CIP) project that plans to maintain it for a minimum of 10 years under "SLTS (Super Long Term Support)" (the CIP has only, for now, decided to maintain for 64-bit x86-64 and 32-bit ARM; while 64-bit ARM hardware support is also planned). "The use cases CIP project is targeting have a life cycle of between 25 and 50 years." and the CIP envisions 15+ years of support.
Debian GNU/Linux 01/06/2014 5 years 3 years LTS (no cost) is provided by "a separate group of volunteers and companies interested in making it a success." Partial paid (for some versions) Extended long-term support (ELTS), for 2 extra years over the 5 of LTS, provided by Freexian.
Linux Mint 08/06/2008 5 years 6 months As of version 13 the LTS period increased from three years to five, since Linux Mint derives from Ubuntu. Version 16 was the last non-LTS version.
Trisquel 7.0 04/11/2014 5 years 1 year Linux-libre (kernel) 3.13, GNOME fallback 3.12 and Abrowser or GNU IceCat
Ubuntu 01/06/2006
Ubuntu 6.06 LTS
5 years, 10 years with ESM 9 months A new LTS version is released every two years. From 2006 through 2011, LTS support for the desktop was for approximately two years, and for servers five, but LTS versions are now supported for five years for both. Extended Security Maintenance (ESM) is available for an additional 5 years on Ubuntu 14.04 and subsequent LTS releases.

LiveCD - LiveDVD - Live USB - LiveDistro - Live OS

A Live CD, Live DVD, Live USB, LiveDistro, or Live OS) is a complete bootable computer installation including operating system which runs directly from a storage device, into a computer's memory, rather than loading from a hard disk drive.

It allows users to run an operating system for any purpose without installing it or making any changes to the computer's configuration.

It can run on a computer without secondary storage, such as a hard disk drive, or with a corrupted hard disk drive or file system, allowing data recovery.

As CD and DVD drives have been steadily phased-out, live CDs have become less popular, being replaced by live USBs, which are equivalent systems written onto USB flash drives, which have the added benefit of having writeable storage.

The functionality of a Live CD is also available with an external hard disk drive connected by USB.

Many Live CDs offer the option of persistence by writing files to a hard drive or USB flash drive.

Many Live CDs are used for data recovery, computer forensics, disk imaging, system recovery and malware removal.

Respin - Spin-off - Remix - Flavor

Topic Characteristics
Respin
  • Based on an existing distribution: Respins start with the core components and packages of an existing GNU/Linux distribution.
  • Focused modifications: They typically focus on specific changes or additions, such as pre-installed software, desktop environments, or kernel configurations.
  • Community-driven: Respins are often created and maintained by passionate individuals or groups within the Linux community.
Spin-off
  • New identity: Spin-offs establish their own branding, naming convention, and community.
  • Divergent development: They may deviate from the original distribution's roadmap or introduce unique features and functionalities.
  • Community-driven or project-oriented: Spin-offs are often driven by specific projects or communities with a shared vision.
Remix
  • Focus on customization: Remixes focus on tailoring the base distribution to the needs and preferences of a specific audience.
  • Substantial changes: These may include significant modifications to the user interface, default application selection or system configuration.
  • Niche targeting: Often target specific user groups, such as designers, musicians or users looking for a minimalist experience.
Flavor
  • Official variants: flavors are created and supported by the core project of the base distribution.
  • Desktop environment focus: The main differentiation is usually in the pre-installed desktop environment and the included applications.
  • User options: They extend the options available to users within the base distribution ecosystem.

Respin

A respin in GNU/Linux is a modified version of an existing Linux distribution, typically with additional software packages, bug fixes, or customization. Respins are often created by enthusiasts or communities to address specific needs or preferences. They are usually based on a stable release of a popular distribution and aim to provide a more tailored or enhanced experience.

Examples of respins:

  • Ubuntu MATE: A respin of Ubuntu focused on the MATE desktop environment.
  • Linux Mint: A popular respin based on Ubuntu, known for its user-friendliness and stability.
  • Cub Linux: A lightweight respin designed for older computers or low-resource environments.

Spin-off

A spin-off in GNU/Linux refers to a distribution that is derived or built from another existing or major distribution. For example, Ubuntu is considered a spin-off of Debian. These variants may have interface changes, pre-installed software packages, specific configurations, among other aspects, that distinguish them from the original distribution. Essentially, a GNU/Linux spin-off is a derivative version that is based on a main distribution but with specific modifications or customizations. It may share some common components or codebase but has a distinct identity, focus, and development process. Spin-offs often emerge from specific projects or communities within the larger GNU/Linux ecosystem.

Examples of spin-offs:

  • Fedora: A spin-off of Red Hat Enterprise Linux (RHEL), known for its focus on innovation and bleeding-edge technology. Although later RHEL was based, and so far on Fedora.
  • Debian Edu: A spin-off of Debian tailored for educational environments.
  • Kali Linux: A security-focused spin-off based on Debian, widely used for penetration testing and ethical hacking.

Remix

A GNU/Linux remix is a modified version of an existing distribution, usually with significant customizations to the desktop environment, pre-installed applications and software selection. Remixes are usually targeted at specific user niches or use cases, offering a customized and optimized experience.

Examples of remixes:

In short, a Remix in Linux is a distribution derived from a main one, with specific modifications and customizations, either in software packages, configurations, user interface, or other aspects, that differentiate it from the original distribution. These Remixes seek to meet particular needs or preferences of users.

Flavor

A GNU/Linux flavor is an official variant of an existing distribution, offering different desktop environments or pre-installed software selections. Flavors are usually maintained by the core development team of the base distribution and provide alternative options for users who prefer a specific environment.

Examples of flavors:

  • Ubuntu Flavors: Ubuntu offers several official flavors, including Kubuntu (KDE), Lubuntu (LXDE), Xubuntu (Xfce) and Ubuntu Budgie (Budgie).
  • Fedora Spins: Fedora provides official spins with different desktop environments, such as KDE, Xfce, MATE and LXQt.
  • OpenSUSE Editions: OpenSUSE offers several editions, including Tumbleweed (rolling releases) and Leap (stable releases), each with different sets of pre-installed software.