What is Linux?
Like any other OS in the market, the Linux system forms the core of computers, bridging the hardware and user interactions - and it’s free.
What is Linux and why should you care about it?
Linux is an operating system, much like Windows or MacOS, except it is developed by a community of engineers with the goal of making it free and available for everyone to use. Some articles describe Linux by breaking down its components and others tend to focus heavily on its Kernel. None of these articles are wrong yet I believe there is a simpler way to understand Linux.
Linux is really as simple as it sounds. It is an operating system that is capable of doing the same things you perform on a Windows or Mac computer, and even more! Linux has been used in countless ways even if you have never heard of it. It is used to power up huge super computers, servers, smartphones, and even tiny IoT devices. You’re probably already enjoying its benefits as you browse the internet since many online services run on Linux. In fact, you’re currently reading this article from a machine powered by Linux.
A refresher on operating systems
To understand Linux, you first have to get a grasp on operating systems, beyond desktops with floating windows on your screen. An operating system is so much more than what is presented on screen; it provides the essential building blocks that make a computer do what it does.
An operating system is the layer that sits between the computer’s hardware and the user. Electronic hardware in its raw form is hardly useful to the non tech-savvy users, it generally requires an interface or a set of buttons for the user to operate the computer - much like the microwave knobs or the remote control of your television. Without user input, electronic hardware remains in an idle state.
An operating system is a layer of instructions and manuals that can communicate with and control the hardware while being able to receive instructions from the user. The OS acts as a translator, transforming instructions given by the user to a machine language that the electronic hardware can understand.
When moving your mouse for instance, the OS is receiving that data from the hardware (mouse), translating that data into something presentable on screen via the graphic card. This is possible as the OS contains drivers or instructions to understand each of these hardware, along with the instructions and space for users to provide their instructions. When you think about it, a computer is always limited by its operating system.
Some applications like Logic by Apple only run on MacOS, thus making it a limitation of Windows OS. Similarly, there are many more examples of application that run on Windows but not on MacOS. It doesn’t stop there, mobile phones experience the same limitations when comparing between iOS and Android.
With Linux, the limitations lie in its drivers and types of application it can run. Since it is managed by an open source community, there is no single organisation you can reach out to for support, nor can you expect an application to work unquestionably on Linux as how you’d expect it to work on iOS or Android. Instead, Linux relies on the benevolence of software developers to create its drivers and applications.
Having said that, I don’t mean to say that Linux is not capable. The developer community had come too far and developed countless applications for your daily use cases, from managing your calendar and mails to browsing the internet or even more complex tasks like creating spreadsheets and editing word documents, all of which have become matured and reliable tools built-in to certain Linux distributions. Artists on the other hand may find Linux to be limited with not much creativity tools available.
What does an operating system do?
Let’s start from the top. There are 2 distinct groups of things an operating system does all the time. The first group are things the OS does automatically and behind the scenes. The second group consists of instructions given by the user such as all her mouse clicks and keyboard strokes.
Linux, just like any other operating systems, is responsible for certain operations that are essential to run your computer. At the top of the list, an OS is responsible for regulating power to the hardware components of the computer. As we all know, computers are made up of digital electronics. The binary numbers or the zeros and ones represent an electrical pulse and the lack of it respectively. In order for any electronic hardware to be useful, it requires a specific set of electrical pulses in a very specific sequence, and that is primarily the job of any operating system.
When buying a new computer, we often look at the CPU speed which is represented in gigahertz (GHz). Even if you’re not the type, you will come across brazen advertising stickers touting how this machine has a turbo booster that can boost CPU performance by up to 1 GHz or so. Such “boost” feature simply means that this CPU is designed in a way that it can accept electrical pulses in different sequences which in turn allows the computer to perform faster computations - all of which happens behind the scenes almost unapparent to the end user.
An operating system is also responsible for storing data in multiple places, primarily the hard disk drive (HDD) or more popular in recent times, the solid state drive (SSD). To do so, the OS is also equipped with what is known as a file system which is a specific set of instructions that stores data in a very specific way.
Each operating system has its own file system such as NTFS for Windows and APFS for Apple Mac machines. Linux uses a file system known as EXT4. It’s worth noting that any drive formatted using a specific file system may not be readable to other operating systems. While there are tools that provide those instructions to the otherwise incompatible operating systems, it remains highly recommended to format your drives based on the operating system you use.
Regulating power and storing data are just some examples of what an operating system does. In the following sections, we’ll explore more aspects related to the function of an OS while staying focused on its ability to carry out users’ instructions.
The evolution of drivers
Remember the days prior to the invention of plug-and-play USB pen drives? Buying a new printer or even a mouse comes with a small CD that contains what was called a driver, a concept that may sound foreign to Gen Z, but is still used in some non-mainstream devices until today.
A driver is simply a set of instructions that tells the OS how to manage this piece of hardware, mostly in terms of regulating power or electrical pulses from the power source to the hardware. Without such drivers, you’re likely to be prompted by your OS with a message like “unrecognised device”.
Such drivers are almost always written in a programming language called C which is also known as the mother of all programming languages. It is a low-level programming language that can instruct the hardware directly without a need for a middleman. Drivers are also OS-specific, meaning it will not work if you take a driver that is meant for Windows OS and place it on Linux OS instead.
The concept of drivers is not obsolete as they remain an essential part in allowing your computer to make use of external or even internal hardware and devices. Such concept has only achieved a more reliable delivery mechanism known as plug-and-play. Plug-and-play uses modern techniques that allow manufacturers to embed the driver into the device itself, and make it accessible to the OS as soon as the device is powered up or plugged in.
Some devices require internet access when you switch them on for the first time. These devices use a different mechanism to obtain their drivers, most likely by requesting for it from an online source on-demand, whenever required.
First-party applications to make practical sense of an OS
Up until now we still can’t really see the usefulness of an operating system. Regulating power and interacting with other hardware isn’t something that normal consumers would be concerned about, and the same can be said about the early days of computing.
As computers started becoming more mainstream in the 90s, manufacturers needed to find a way to make computers more accessible to non-tech savvy consumers. That led them to start thinking of ways to advertise practical use cases to the masses. One of the ideas was to create productivity applications that can be used by everyone. Essential everyday office items such as calendars and phone books were among the first to be digitised. It wasn’t long before engineers started creating text processors like Microsoft Word and spreadsheets. Soon, consumers were able to check their emails, create a simple painting, and even play solitaire on their computers. Since then, manufacturers race to create their own applications that ship together with their OS as a bundle to be used together.
The word “first-party applications” refers to the fact that such applications or tools are manufactured by the same organisation that develops the OS. Often, first-party applications are the best performing applications as they are created by the same engineers who know the ins and outs of that operating system. It’s true they may not be the best apps out there in terms of features for it is understood that the company is more focused on delivering a reliable operating system above all else. However, this doesn’t change the fact that first-party apps almost always perform the best.
The rise of third-party applications
An application that is created by any company other than the manufacturer of the OS is considered a third-party application. As the name suggests, the app is likely developed by someone who is not with the manufacturer but one who uses the operating system.
Third-party apps can provide virtually unlimited sets of instructions to your machine allowing you to achieve a lot more than just editing text files and spreadsheets. Music studios, artists, product designers and programmers are able to create much more complex work using the same piece of hardware through sets of instructions or code that tell the computer how to regulate electrical pulses.
You must be wondering, why talk about third-party apps if they are not part of the operating system? To answer that question, we’ll have to examine the role an OS in operating applications.
An application is a piece of code, written in a specific programming language out of the hundreds available, and each is designed differently with a specific purpose in mind. It is also likely that your operating system will not be able to understand that language, leading back to the concept of drivers where you’d be required to install another program, known as a compiler, which allows the OS to interpret that language.
Aside from interpreting languages, an OS is also responsible for the application while it is active, much like how you would tend to your guests when they visit your place. An OS would keep an eye on that application, allocating resources such as RAM space, CPU time and disk space to the application as and when needed. The OS even goes beyond that to borrow RAM and CPU time from other applications that are idle in order to provide more resources to active applications you have on screen.
Every computer is made up of a specific set of hardware with predefined limitations and capabilities. An operating system is the layer that sits between the hardware and the user, behaving very much like a waiter who serves his customers at a restaurant.
An operating system performs essential tasks in keeping your work safe such as controlling where and how your data is stored and the duration in which your application is allowed to remain in the CPU. It also manages other hardware such as graphic cards, sound cards, printers and webcams by regulating power through the hardware.
Linux, like all other operating systems, is a set of instructions that allows the computer hardware to be truly useful in helping us accomplish our tasks. Without an OS, a computer is just a piece of silicon much like a broken TV.