What is the difference between Linux and GNU/Linux?

Westend61/Getty Images

What Is Linux?

Linux is an operating system used to power pretty much any device you can think of.

When most people think of Linux they think of a desktop operating system used by geeks and techies or a server based operating system used to power web sites.

Linux is everywhere. It is the engine behind most smart devices. The Android phone that you are using runs a Linux kernel, that smart fridge that can restock itself runs Linux.

There are smart lightbulbs that can talk to each other all with the help of Linux. Even rifles used by the army run Linux.

A modern buzz term is "the internet of things". The truth is that there really is only one operating system that powers the internet of things and that is Linux.

From a business point of view Linux is also used on large supercomputers and it is used to run the New York Stock Exchange.

Check out this list of Linux adopters

Linux can also of course be used as the desktop operating system on your netbook, laptop or desktop computer.

What Is An Operating System?

The operating system is special software used to interact with the hardware within a computer.

If you consider a standard laptop the hardware devices that the operating system has to manage includes the CPU, the memory, the graphics processing unit, a hard drive, a keyboard, mouse, screen, USB ports, wireless network card, ethernet card, battery, backlight for a screen and USB ports.

In addition to the internal hardware the operating system also needs to be able to interact with external devices such as printers, scanners, joypads and a wide array of USB powered devices.

The operating system has to manage all the software on the computer, making sure each application has enough memory to perform, switching processes between being active and inactive.

The operating system has to accept input from the keyboard and act upon the input to perform the wishes of the user.

Examples of operating systems include Microsoft Windows, Unix, Linux, BSD and OSX.

What Is GNU/Linux?

A term you might hear every now and then is GNU/Linux. What is GNU/Linux and how does it differ from normal Linux?

From a desktop Linux user point of view there is no difference.

Linux is the main engine that interacts with your computer's hardware. It is commonly known as the Linux kernel.

The GNU tools provide a method of interacting with the Linux kernel.

What Are the GNU Tools?

Before providing a list of tools lets look at the sort of tools you will need to be able to interact with the Linux kernel.

First of all at the very basic level before even considering the concept of a desktop environment you will need a terminal and the terminal must accept commands which the Linux operating system will use to perform tasks.

The common shell used to interact with Linux in a terminal is a GNU tool called BASH. To get BASH onto the computer in the first place it needs to be compiled so you also need a compiler and an assembler which are also GNU tools.

In fact GNU is responsible for a whole chain of tools which make it possible to develop programs and applications for Linux.

One of the most popular desktop environments is called GNOME which stands for GNU Network Object Model Environment. Snappy isn't it.

The most popular graphics editor is called GIMP which stands for GNU Image Manipulation Program.

The people behind the GNU project sometimes get annoyed that Linux gets all the credit when it is their tools that power it.

My view is that everyone knows who makes the engine in a Ferrari, nobody really knows who makes the leather seats, the audio player, the pedals, the door trims and every other part of the car but they are all as equally important.

What Are The Layers That Make Up A Standard Linux Desktop?

The lowest component within a computer is the hardware.

On top of the hardware sits the Linux kernel.

The Linux kernel itself has multiple levels.

At the bottom sit the device drivers and security modules used to interact with the hardware.

On the next level you have process schedulers and memory management used for managing the programs that run on the system.

Finally at the top there are a series of system calls which provide methods for interacting with the Linux kernel.

Above the Linux kernel are a series of libraries which programs can use to interact with the Linux system calls.

Just below the surface are the various low level components such as the windowing system, logging systems and networking.

Finally you get to the top and that is where the desktop environment and desktop applications sit.

What Is A Desktop Environment?

A desktop environment are a series of graphical tools and applications which make it easier for you to interact with your computer and basically get stuff done.

A desktop environment in its simplest form can just include a window manager and a panel. There are many levels of sophistication between the simplest and fully featured desktop environments.

For instance the lightweight LXDE desktop environment includes a file manager, session editor, panels, launchers, a window manager, image viewer, text editor, terminal, archiving tool, network manager and music player.

The GNOME desktop environment includes all of that plus an office suite, web browser, GNOME boxes, email client and many more applications.