Intro to Linux

By Steven Goodstein, DevOps Engineer

Today I’m going to review some of the basics of Linux starting from it’s history to reviewing different Linux distributions, and providing the basics to get started. By the end of this post you should understand what Linux is, how it’s different than some other operating systems and a have a general idea on the necessary steps to use Linux.

The first thing to discuss is what is Linux? Linux itself is just the Kernel. The Kernel handles all basic management of the machine from starting and stopping processes to handling requests and managing the disks and memory. Linux itself does not include the GUI or suite of management tools although many of these are included with Linux distributions to make our lives easier. Distributions can be classified as either commercial or non-commercial distributions. The difference between these two are that the commercial distributions are backed by a company and usually offer support and an associated cost. While non-commercial distributions are generally managed by the community and are free. It’s interesting to note that the commercial companies often are large supporters of the free non-commercial distributions as well. Commercial distributions include Red Hat Enterprise Linux and SUSE Linux Enterprise. Some community based distributions include Fedora, OpenSUSE, and Ubuntu.

Although Linux includes commercial distributions many people associate Linux and the community with the open source movement and for good reason. Linux was originally born with the idea to create an operating system like UNIX and release it to the public for free. During this process the GNU Public License (GPL) was born. Under the GPL software is free and the source code is available to all users. Software under the GPL can be modified and resold for profit however source code must also be made available to the consumers. Since the code is available to everyone we all benefit from the many eyes on the code which results in quick identification of bugs. The community can also release changes to fix issues without the fear of being sued.

To understand Linux I think it’s important to briefly review some of the differences in design that Linux employs in comparison to that of other operating systems. One main key to note is that Linux (which was built on top of UNIX) features multiple user support. Several users can be logged in and working on a system at once. Windows on the other hand was built for one user at a time. Although Windows may offer solutions to multiple users at a time they are not true sharing (like Linux) and are more resource intensive. As well the separation of users leads to security benefits for the Linux operating system. Another important difference is that Linux separates the GUI and the Kernel which is in opposition to both Windows and Mac OS. Those are a few of the most important differences however there are tons of differences between operating systems with pros and cons on both sides.

To get started with Linux many distributions can be downloaded for free and installed via anything from a CD-Rom, to USB-drive, to FTP or HTTP from a web server. You will then have to configure your machine to boot from one of these mediums. Going forward the installation will be different based on the distribution you’re trying to install. I would recommend following a guide for you specific distribution. However, distributions have become increasingly easy to set up over the years especially among some of the most popular distributions. The most difficult task may just be partitioning your disk space per your requirements although even this usually has an automatic setting available.

Once your system is set-up it’s definitely important to understand how to control your machine via the command line. The command line will allow you to control things your GUI may not and can certainly increase your productivity on basic tasks. Aside from learning the basic commands I would recommend looking up the follow topics if you’re doing administrative type tasks. Some topics to review are file compression and decompression, piping, redirection, managing processes, managing permissions and changing ownership and groups.

The next thing I want to address is how to install new software onto your machine. To do so most distributions fall under the umbrella of the Red Hat Package Manager (RPM) or the Debian Package Management System (DPMS). RPM offers several commands to search for packages, get details about the packages, and commands to install the software. The tricky part is you may have to manually install some of the packages dependencies. Tools such as Yum do a good job of taking care of everything for you including the dependencies. Another manager DNF also provides the benefits of Yum and is aimed at even better performance. For Debian based distributions DPMS has a popular tool APT which can easily install most packages for you with just a couple of commands.

For installing open source code without a package the process usually has the following steps. First you have to unzip your code. Next you should read the installation instructions or the readme for how to install. Typically the steps are as follows: execute a ./configure command from within the directory that contains a configure file. This will create a makefile for you. After that the command make will compile the code and then the command make install will then install the package for you.

With all of that you should now have a basic understanding of what Linux is and a general direction for getting started with Linux yourself. All distributions are different but have many similarities as well. Certainly research your specific distribution in depth.