Linux Dictionary
This is a wiki page for the Linux Documentation Project. I intend to complement the project and update it by adding new words and editing the established words.
I DON'T HOLD ANY COPYRIGHT OR CLAIM ANY. MY WRITINGS AND IDEAS ARE PURELY OPEN SOURCE AND WILL BE AVAILABLE TO OTHERS FOREVER.
The beginning of the idea was this thread [1]
You may also want to see this page [2]or download the Linux Dictionary [3] which was last updated in the year 2005.
But from 2005 to 2018 ..there are many words which are not included such as "Unity", "Mate", "Desktop", "Window Manager", "Keyring", "Cinnamon".
Window Manager formal definition from the Linux Dictionary Project:
A program that controls the display and positioning of graphical windows on a screen; accounts for such variables as screen resolution and user manipulation (for example, a user repositioning or resizing a window).
Desktop formal definition from the Linux Dictionary Project:
"Visual component of a graphical user interface upon which icons, programs, and other visual components appear."
As you see, these definitions are not easy enough for a beginner and are neither comprehensive nor up-to-date.
To be written
Mainstream
Upstream
Downstream
Backend
Frugal Install
GPG
GnuPG keys
Server
Kernel
Shell
Open source
Closed Source
Driver
My own definitions compiled from the Internet:
Source code
The human readable instructions that programmers and developers write and use to make the software. Some developers don't publish the source code which make other developers unable to read, modify or audit the application in use. Users of Linux or Unix-based operating system may need to compile some applications from source code to be able to use these applications. source code form is opposed to binary form which the ready-to-run form of the application but users cannot inspect the software or modify its structure.
Open source
Closed source
Proprietary Software
Closed source software that doesn't have source code available. It is not free (as in freedom). Users of this type of software cannot view the source code or edit it. They also may not be able to distribute it freely due to copyrights of the source code.
Dependency/Package dependency
Package
A collection of files that are bundled together and can be installed or removed as group. Often, a package is just a particular program. For instance, the instant messaging client gaim is contained in adebian package of the same name. Often, a package is just a particular program. For instance, the instant messaging client gaim is contained in the Debian package of the same name. On the other hand, it is common for programs to consist of several interrelated packages. For instance, the gimp image editor consists not only of the gimp package, but also of the gimp-data package; in addition, several optional add-on packages (containing esoteric data, documentation, and so on) are also available. It is also possible for several small, related programs to be contained in a single package: for instance, the fileutils package contains several common Unix commands, such as ls, cp, etc. Some packages require other packages in order to function. In Debian, packages can depend upon, recommend, suggest, break, or conflict with other packages.
A single package is not necessarily the same as an application. Some applications can be shipped as several packages. Moreover, shared code (libraries) in Linux is normally shipped as separate packages, while in other systems applications often ship their own versions of required libraries and install them if necessary.
If a package A depends upon another package B, then B is required for A to operate properly. For instance, the gimp package depends upon the gimp-data package in order to ensure that the GIMP graphics editor can access its critical data files.
If a package A recommends another package B, then B provides important additional functionality to A that will be desired in most circumstances. For instance, the mozilla-browser package recommends the mozilla-psm package, which adds support for secure data transfers to the Mozilla Web browser. While mozilla-psm is not strictly required for Mozilla to function, most users will want Mozilla to support the secure transmission of confidential data (such as credit card numbers).
If a package A suggests another package B, then package B provides functionality that may enhance A, but is not needed in most cases. For instance, the kmail package suggests the gnupg package, which contains encryption software that can be used by KMail.
If a package A conflicts with another package B, then the two packages cannot be installed at the same time. For instance, fb-music-hi conflicts with fb-music-low because they provide alternate sets of music for the game Frozen Bubble.
The job of a package manager is to present an interface which assists the user in managing the collection of packages installed on his or her system. Examples for package managers: Aptitude, Yum, Yast, Apt, apt-get. For more information see package management systems
References: 1
Fork
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, a form of schism.
Examples of forks:
- Mate desktop is a fork of Gnome 2 desktop.
- LibreOffice is a fork of OpenOffice.
- Mageia linux distribution is a fork of the discontinued Mandriva Linux.
Useful resources: 1
Journaling filesystem
A journaling filesystem is a filesystem that maintains a special file called a journal that is used to repair any inconsistencies that occur as the result of an improper shutdown of a computer. Such shutdowns are usually due to an interruption of the power supply or to a software problem that cannot be resolved without a rebooting. Examples of Linux journaling filesystems are ext3, ext4 and other filesystems.
Mainstream Distributions
1- Debain
2- Ubuntu (based on Debian)
3- Red Hat (RHEL) family: Fedora and CentOS
4- OpenSUSE (the open source derivative of SUSE Linux Enterprise Server)
5- Arch Linux and Manjaro
6- Gentoo (for advanced users)
7- Slackware (for advanced users)
Distribution/Distro
Components of a Linux system/distribution also
A Linux distro will usually include:
- The Linux kernel
- GNU tools and libraries such as the shell (The default command−line interface on UNIX systems. This is similar to the "Command Prompt" on Windows systems)
- A window system such as the popular X Window System or the newcomer: Wayland
- A login manager (to receive username and password and choose a desktop environment)
- Package management system (to install software)
- Documentation
The specific tools and libraries that are included in the top Linux distros are what differentiates the large number of distributions from which a user can choose. Depending on how you plan to use the distribution, you can obtain one designed for your needs.
Many distributions are ready to use immediately after downloading them, though some of them do require the user to compile the source before the distribution is usable (like Gentoo). The included package management systems are used to install and uninstall software packages. They are also used to perform package searches, automatic software upgrades, and package dependency verification.
The diversity of Linux distros has made it possible for you to use one of them in almost any type of computing scenario. Some distros are targeted at specific user groups by including software packages that pertain to their areas of expertise. Others might be designed to run on a specific hardware platform while others can be used on a variety of different machines. Niche distributions are available for scientists, musicians, and computer security professionals and many other specific applications. Lightweight Linux distros can be obtained that are stripped down to the essentials and intended for use in situations where storage space is at a premium or when hardware resources are limited.
Front end
Using the command-line interface (CLI) requires the acquisition of special terminology and memorisation of commands, so a graphical user interface (GUI) acts as a front end on the desktop environment instead. For example, the dd command (disk dump) has many arguments and options that have to be memorized. Any mistake or wrong use of arguments will result in data loss which may be catastrophic. So, a graphical front-end was made to simplify the process of using the command and decrease errors during its use. It is called gdiskdump : "g" stands for graphical or GUI. Example
Another example is Xarchiver which saves users the hassle of learning how to use command line compression/decompression tools.
Grsync is a frontend to rsync which is a backup tool for the command line.
SMplayer is a graphical front end to the command-line application Mplayer.
Synaptic is graphical front-end to apt package management system. It enables the user to install packages easily without the need to type or memorise commands.
A simple dialog box that asks the user to input an IP address, port number, and a "submit" button is nothing more than a pretty interface to the exact command-line calls to submit the same information to the operating system. If the developer doesn't know how the OS accepts input, processes the data, and returns values (using the backend), the GUI (front end) is worthless. Source
Repository
A repository is a collection of software for a Linux distribution on a server. You grab information on the software that is available on the server using the packaging tools (in Ubuntu it is apt-get) and download the software directly from those servers. One can often install or update local software using a given package manager installed on the local machine by accessing the packages stored on the repository through it. As there are many folders in the web, they need to be kept separate. Ubuntu 18.10 will have different repositories than Ubuntu 18.04 or Mageia or Redhat or Debian distros. Keeping the repositories split from each other ensures that your system will stay safe and not break due to incompatible software. Source 2.
Window Manager
The window manager controls the way your desktop works: how the windows look and act. The window manager decides what kind of decorations to put around the windows. It's the window manager's job to provide ways of controlling the windows, like moving, hiding, resizing, iconifying, or closing them. It decides what window at the moment accepts input from you and what window is on the top. It also controls the ways you do these tasks: what mouse buttons you click or what keys you press in order to accomplish these window management tasks.
The window manager gives windows a border and allows you to move them around and maximize/minimize them. Often, the window manager is just one component of Desktop Environments suite.
Prior to installing a window manager, a functional X server installation is required.
In the X Window System, the X Server itself does not give the user the capability of managing windows that have been opened. Instead, this job is delegated to a program called a window manager.This proves to be quite confusing for the new user of a X windowing environment because most other environments simply use one window manager and give the user no choice. In this sense, X is much more versatile and allows more tailoring of the environment to whatever the user wants.
If you are using one of the mainstream distributions it will come with a window manager installed by default. Of course you can change it later if you want.
Types of window managers:
Stacking (aka floating) window managers:
- Windows act like pieces of paper on a desk,and can be stacked on top of each other. This type is commonly used in Mainstream distributions and is acceptable to both beginners and professional users.
Tiling window managers:
- "tile" the windows so that none are overlapping. They usually make very extensive use of key-bindings and have less (or no) reliance on the mouse. They are used mainly by programmers and professional users. A good demonstration
Dynamic window managers:
- Can dynamically switch between tiling or floating window layout.
A list of mainstream distributions with their default window managers:
Ubuntu 18.04 and Fedora: Mutter window manager (the default window manager in GNOME 3)
Linux Mint-MATE Edition: it comes with two window managers installed and configured by default:
- - Marco (MATE's very own window manager, simple, fast and very stable).
- - Compiz (an advanced compositing window manager which can do wonders if your hardware supports it).
Linux Mint-Cinnamon edition: Muffin window manager
Window Manager | Desktop |
---|---|
Kwin | KDE |
Metacity | Gnome |
Xfwm | XFCE |
Macro | Mate Desktop |
IceWM | Stanalone |
JWM | Stanalone |
Fluxbox | Stanalone |
Openbox | Stanalone |
Desktop Environment (DE)
Ever since the inception of GNOME and KDE there has been confusion among new Linux users which is which and which is best to use. The former question is fairly simple to answer. The latter question, however, is a bit more complex due to user-specific needs/wants.
Some common Linux DE (Desktop Environments) need to be mentioned:
- KDE: K Desktop Environment. Very similar to Windows interface; Very suitable for new comers.
- Gnome: free, usable, accessible, international, developer-friendly, organized, supported, and a community.
- XFCE: aims to be fast and lightweight, while still being visually appealing and easy to use. Suitable for old computers and devices with limited resources.
- Mate: a fork of Gnome 2. Mate provides an intuitive and attractive desktop to Linux users.
- Cinnamon: a fork of Gnome 3. Cinnamon strives to provide a traditional user experience similar to the one offered by Windows.
- LXDE: Lightweight X11 Desktop Environment, is a desktop environment which is lightweight and fast. It is designed to be user friendly and slim, while keeping the resource usage low.
- Budgie: its design emphasizes simplicity and elegance.
- Pantheon: available in Elementary OS. Can be installed manually in Debian, Ubuntu and Arch based distributions. Gives an experience similar to MacOSX.
What is the difference between Window Managers and Desktop Managers ?
With that in mind let us begin by illustrating the differences between a desktop environment and a window manager. We’ll begin by showing how the Linux graphical desktop is layered.
As seen in this image [4], there are basically three layers that can be included in the Linux desktop:
X Windows : This is the foundation that allows for graphic elements to be drawn on the display. X Windows builds the primitive framework that allows moving of windows, interactions with keyboard and mouse, and draws windows. This is required for any graphical desktop.
Window Manager: The Window Manager is the piece of the puzzle that controls the placement and appearance of windows. Window Managers include: Enlightenment, Afterstep, FVWM, Fluxbox, IceWM, etc. Requires X Windows but not a desktop environment.
Desktop Environment: This is where it begins to get a little fuzzy for some. The Desktop Environment typically is a far more fully integrated system than a Window Manager. Requires both X Windows and a Window Manager.
Note that a Desktop Environment requires a window manager while "some" window managers doesn't require a Desktop Environment.
A Desktop Environment generally includes a suite of applications that are tightly integrated so that all applications are aware of one another. A Desktop Manager will also include some form of panel that includes a system tray where small widgets can be placed for quick action or information.
Components of a DE: Desktop Environment
Why use a desktop environment over a window manager?
This is a fundamental question. Certainly it depends on the user's preference, but there are some specific questions you can ask yourself to help you decide:
1) Are you new to Linux and open source operating systems in general?
2) Do you prefer a menu-driven style of GUI?
3) Do you like desktop icons?
4) Do you prefer using the mouse to navigate your computer no matter what?
If you answered "yes" to three or more of the questions above, you'll more than likely prefer a Desktop Environment over a standalone Window Manager.
There are two main Desktop Environments: GNOME and KDE. If you are curious as to which is right for you, here is some advice. The latest default GNOME will make users of OS X feel right at home and KDE 5.x will make Windows 7/10 users feel at home.
Keyring
Keyring is a collection of components in Gnome that store secrets, passwords, keys such as GnuPG keys and certificates and make them available to applications. It is integrated with the user's login, so that their secret storage can be unlocked when the user logins into their session. Gnome keyring has a password store which GNOME applications can access to store and find passwords and other sensitive data. You can manage your keyring passwords graphically by installing the program Seahorse. It is available in Debian and Debian-based distributions such as Ubuntu, Linux Mint, PopOS!, Elementary OS and Zorin OS. The big idea here is that if someone else were to access your PC and did not know the master password to your keyring, they could not access your stored login information.
KDE provides its own keyring: KWallet (KDE Wallet Manager), Gnome has another implementation of it: Gnome Keyring. Gnome Keyring is part of the Gnome desktop.
Kwallet provides a centralized way for users to store sensitive passwords in encrypted files, called "wallets". For added security, each wallet can be used to store a different kind of credentials, each with their own password.
Gnome Keyring
It is a daemon application designed to take care of the user's security credentials, such as user names and passwords. The sensitive data is encrypted and stored in a keyring file in the user's home directory. The default keyring uses the login password for encryption, so users don't need to remember yet another password. GNOME Keyring is part of the GNOME desktop. The GNOME Keyring Manager (gnome-keyring-manager) was a user interface for the GNOME Keyring. As of GNOME 2.22, it is deprecated and replaced entirely with Seahorse.
References:
1- [5]
2- [6]
3- [7]
4- [8]
5- [9]