If you are new to the world of Linux, first of all, welcome. Then I would talk about the fact that some people get confused by the terminology used by the Linux community. For a newcomer, that’s something new and interesting. Most of them get through it quickly with hands-on experiences, but many users have to search for the answer.
So in this article, I have compiled a glossary of terminology that you may not be familiar with as a newbie. I hope it will help you to navigate through the community discussions and instructions.
What is Linux
Linux is the heart of every Linux based operating system, Basically, Linux is a kernel. A kernel is an essential core part of a system that governs the CPU and memory. It contains all the device drivers and it bridges software to the hardware.
This simple diagram shows the duty of a kernel in a visually simple way. An operating system consists of a kernel and several other programs so it can function properly. Most of the time when people say “Linux” they mean “Linux based operating system”. Majority of the Linux distributions are built around the core components provided by GNU. So many people call Linux as GNU/Linux.
Distros or Distributions
Distro which is short for Distributions refers to Linux distributions or operating systems. Linux is completely free to use, modify, remix, and distribute. And there are tons of other free components you can combine and make your own operating system. Many entities or people came up with many ideas and created their own operating systems based on those ideas. This way people created so many distros to accomplish many needs. There is a saying that goes “there is a distro for everything”. You want a good desktop experience, try Ubuntu, Manjaro, KDE Neon or ElementaryOS. You want an OS to run your server perfectly, use Debian or Redhat, you want Linux on your phone, try UBPort or PureOS. There are many wonderful distributions out there to meet your need.
Distributions sometime are made out of existing distributions or part of another distribution. Ubuntu is based on Debian. Ubuntu designed everything but with Debian as a base. So every distribution made with Debian as a base is called Debian based distro or the Debian family. There are distros that are based on another distro which is based on another distro. Like Linux mint. It’s based on Ubuntu, and Ubuntu is based on Debian.
Desktop Environments
Or short for DE, is a set of application that provides you with a usable user interface and experience. So you can navigate, use, and accomplish tasks more easily. A Desktop Environment consists of a graphical user interface with buttons to manage windows, panels to access menus and options, and provides basic tools to navigate and get works done. While some DE is focused on keyboard-based navigation, the majority of the modern desktops come with graphical user interface and mouse focused experience. Some combine both. Some famous Graphical Desktop Environments are:
KDE Plasma which can be easily customized in any way possible. It also comes with many useful tools and applications. KDE focuses on Polishness and ease of use and you can configure every aspect of the desktop using the GUI.
Gnome heavily focuses on providing polished UI, stability, and a simple desktop. It also comes with a set of useful applications. You can install useful extensions called “Applets” for the panel for creating shortcuts or to extend its functionality.
Pantheon is a desktop for those who love mac style. Pantheon borrows the stability and polish of Gnome and provides a mac like style for the users.
XFCE is a highly customizable lightweight desktop environment that famous for its resource-friendly nature. It comes with minimal packages and it runs well on the low-end hardware without sacrificing much.
Mate is a feature-rich desktop environment with no compromise but is very resource-friendly. It provides all the necessary functionality plus more, takes less space, packs all the basic tools, uses fewer resources. It combines the richness of KDE and the lightness of XFCE.
Window manager and Greeters
Window managers work with Desktop Environment and determine how windows should work and behave. It controls the placement, appearance, effects, and behaviors of a single or multiple frames/windows. There are window managers that can not provide floating windows, and then there are window managers that provide it. There are lightweight window managers with less fanciness, and there are window managers that can make windows blurry or create effects and animations.
Greeters are different kinds of log-in screens for your distributions. Different greeters work different ways provides a different kind of UI for users to log in. Some famous Greeters are SDM, XDM, LDM, SDDM, GDM, and KDM. They all provide different kinds of the Login screen and theming capability. Some are built for specific Desktop environments.
Packages
In order to distribute software easily, developer bundles their software in packages. These packages then can be installed on systems they provide support for. When you install a package, your system reads the package and installs all the stuff it packed in order to run it. Putting executables on the paths, adding libraries, linking dependencies, and creating menu entry or shortcuts so you can click and run the program whenever you need it.
Some packages need other packages in order to run properly. They are called dependencies. Some apps may require Python3 to be installed on your system because it depends on Python3 in the background. Dependencies are mostly installed by the package manager if a package requires it.
In Windows, many software packages come as “.exe” file. You double click it and install it. On Linux, you have packages for different types of systems. “.deb” for Debian based distributions like Ubuntu, Linux Mint, Debian, MX Linux, and others. “.rpm” is the package format for the Redhat family of operating systems such as RHEL, Fedora, Open Suse, etc.
Installing packages is different from distribution to distribution. But many modern Desktops oriented Linux distro comes with a graphical installer and software store to install packages. Others need terminal-based approaches.
Package managers
These are the low-level programs that install, remove, and update packages. For different distributions or group of distributions, there are different package manager. They install their respective package formats. DPKG is the backend for almost every package manager available for Debian based distributions. It is used by APT, APT-GET, or Synaptic to install and manage Debian packages (.deb).
Fedora, Oracle, CentOS, and RHEL uses the RPM package manager. It installs, removes, and manages .rpm packages. OpenSUSE uses its own Zypper package manager to manage .rpm packages. There are YUM and DNF too.
There are other kinds of Packages manager for other distributions, like Pacman for Arch, APKM for Alpine, NixPM for NixOS, etc.
Snap and Flatpaks
Because of the free nature of Linux, there are tons of operating systems based on it. While the majority of the mainstream Linux distro either uses Debian or Redhat packages, there are like dozens of other kinds of packages. One family of Linux distro supports a package that another family of distro would not support. Supporting all of these systems and formats is hard work. Few developers want to go through the pain of building, testing, and providing support for each of these package formats. To overcome this, Snap and Flatpak have been developed. To eliminate the need for packaging apps for dozens of formats.
With Snap and Flatpak, developers can bundle their apps as Snap or Flatpak packages. And these can be run on any Linux distributions regardless of package support or architecture. Snap is managed by Canonical and every package are centralized. While Flatpak is a decentralized iteration of the same approach. They both provide the solution to the age-old problem, fragmentation of Linux packages.
Drivers in Linux
If you came from Windows, you may sometime feel confused when you think of how the driver works in Linux. In windows, drivers usually come with the hardware and require you to manually install before you can use the hardware. This is problematic as sometimes when you are offline, lost the Driver ROM and you want to plug LTE modem to your laptop and get online. While MS implemented many ways to easily deal with such issues, Linux overcome this issue with a more easy and direct approach. While Windows installs the drivers for you with WIndows driver updates after you plug in something, Linux already comes with the driver out of the box. You just plug it in and use it. This works most of the time.
Many vendors play douche and provide drivers in confusing ways. Like Nvidia, They don’t provide open source drivers, instead require you manually install their proprietary drivers from themselves. Time has changed and it’s now one-click install for any Nvidia GPU drivers. You can use the Ubuntu Software and Updates app to autodetect and install drivers. Manjaro scans the hardware and prompts users to install drivers from their repo.
Why many still suggest terminal
If you ask for any help or suggestion in any forum or social discussion. The majority of the problems will be suggested to solve via the command line. Some users find this a bit advance and complex and think Linux as heavily terminal focused. But that’s not true. The actual reason why so many people suggest a command-based solution because it’s way easy for them to guide you through.
All the distro and setups are different. You may be using a different distro with a different desktop environment. So telling you to click that, find that enable that or those are hard and time-consuming for the people who are providing the solution. “Oh, there is a problem with this part? Show me what’s the result comes up when you type this command.” You show them the output and they instantly know where the problem is, the provide single or maybe few lines of command that are both easy for them to write and easy for you to copy-paste. It saves you from clicking hundreds of buttons in order to solve one thing.
Open source vs Closed source software
Open-source software or free software or FOSS is applications and components that are freely accessible by anyone. Open-source software lets you audit, check, own, and use the software as your wish. Closed source software, however, does not let you see the source code. So you cant edit or own the full software. The benefit of open-source software is, that it is transparent. And many open source licenses basically makes you the owner of the software. So when you buy an open-source software, you really own it.
The major issue with closed-source software is, you don’t know what they are providing to you. Maybe the app has sneaky data fetcher in it, maybe bundleware, maybe mining software? You don’t know. And they don’t let you check for yourself. While there are bugs and flaws in many FOSS applications, but the majority of it is transparent, honest and gives users full control.
GUI and Terminal programs
GUI means Graphical interfaces. Apps that use Graphical UI with buttons and widgets are GUI apps. Terminal applications are applications that are designed to run on text-based interfaces and terminals. Most of the desktop applications we use come with a Graphical user interface. But there are many terminal apps that we love and use. Htop is an app that runs on terminals but looks so beautiful. I choose Htop over any Graphical resource monitor.
Conclusion
This post is for the new Linux users who want to participate in the social discussion as a proud community member. Some of the users who came from Windows or closed source operating system gets confused when they hear about some terms and words. Also, there is some basic stuff that every Linux newcomer should know. Because it’s fun when get to know things. It encourages people to learn more and explore.