Understanding the Basics of the OS

Linux Operating Systems (OS), contains many “flavors” or variations of the OS. These different flavors contain some minor and some major differences but the root of the system and how it functions at its core, remains the same.

Some of the popular variations of Linux are: CentOS, Ubuntu, Debian, Kali, Mint, Fedora, Amazon, Alpine, Suse, Android and Red Hat. There are quite literally hundreds of systems and there is even a graph of them online, List of Linux OS.

 

Some of these Linux Operating Systems are Free and Open Source, meaning, you are free to use them, modify them and even create your own flavor off of them. There are a few that are not free and not open source but still contribute to the open source community.

For Example, Red Hat, is a licensed flavor of Linux but the nice people there, greatly contribute to the world of Linux. The free and open source versions of Red Hat are CentOS and Fedora. Amazon offers their own Amazon Linux, which is based loosely off of Red Hat.

Regardless of your Linux Flavor, all of the Operating Systems will contain a few core elements. Linux Distributions (Distro’s) typically contain a version of the Linux Core or Kernel, a Shell, a Terminal Emulator and often a Package Manager. The Linux Kernel, which was created by and still greatly maintained by Linus Torvalds.

You can even check out his Github page to view any of the future changes being made to the Kernel and can even help in building and maintaining it. You can even view or donate to his Foundation website, The Linux Foundation.

What is the Linux Shell?

As we have discussed, all Linux OS have a Shell. So what is a Shell? Simply put, the shell is a program that takes commands from the keyboard and gives them to the operating system to perform. Most Linux OS will contain a Graphical User Interface (GUI) alongside a Terminal Emulator.

However, most servers that have Linux installed will not have a GUI. So it is critical that we not only learn what the terminal is but how to use it, as it is the backbone of harnessing the power of Linux. By default, the server version of a Linux OS will install the terminal by default, unless specifically configured to also install the GUI. This shell is also know as the Command Line Interface (CLI).

Example of some Shells in Linux

For most systems you will work with or come across, they will include the shell, BASH, which stands for Bourne Again SHell. This Shell is a replacement for the antiquated and legacy Unix Bourne Shell.

For MacOS, Windows 10 with Linux Support, Solaris and also other Unix-like Operating Systems that contain BASH as the default Shell. To understand more about BASH and the history of its development, check out the Wiki page on BASH. Bash Shell takes commands from the CLI of a Terminal and can even execute scripts, called Shell Scripts.

Another shell which is quite common among Embedded systems, such as Alpine Linux, is the ASH Shell. The ASH Shell (Also known as A Shell or sh) stands for Almquist Shell. Ash shell is a lightweight Unix-based shell. Ash shell is the default for code projects such as Busybox and its catch-all executable software.

There are many Shells that all have an advantage but majority of tutorials, examples and free shell scripts will directly support BASH. Shell scripts are a powerful feature of Linux and each shell contains its own Command Language with its own syntax.

For example, BASH scripts will use the file extension, .sh,  and will start with a She-Bang of #/bin/bash or something similar depending on the binary location of the Shell. This is an easy identifier not only for the system but for the user to see what shell is in place. Some of the other more common Shells are: C Shell (csh), TCSH Shell, Korn Shell (ksh), and Z Shell (zsh).

What is Up Next?

Next we are going to talk more about what Linux is by way of the Terminal, SSH Keys and other Linux topics. Please visit back to continue on our road to learning the basics of Linux.