I’ve spent the past couple of days looking at the Linux course on Udemy and one of the issues for me is that it dives right into commands with no background. However I am also working from an exam guide that starts with a basic introduction to Linux, so that is where I am choosing to start; lets understand what it is we are looking at before we start playing with it.
What is Linux?
Simply put, Linux is an operating system. Most of us are familiar with operating systems and if we use computers, or have a smart phone, then whether we know it or not, we are using an operating system. Most folks are going to be familiar with Windows (in its various versions) or perhaps Mac OS if you are an Apple user. Smart phone and tablet folks likely know either Android or iOS, and with the advent of the Chrome Book, some of you may be familiar with Chrome OS.
Linux is just like that, it is an operating system. However to say that Linux is just another operating system would be wrong as there are some major differences between Linux and other OS’s.
Before we dig too deep into that, lets look at what an operating system is. Operating systems provide a number of key functions:
- Application platform – the framework required for our applications to run on.
- Hardware Interface – it acts as a buffer between hardware and applications, because not all computers are the same or have the same components.
- Data Storage – provides reliable and secure places to store user files.
- Security – provides for rules and policies regarding the security of user data..
- Connectivity – allows users to connect with peripherals or the web, and other networks.
So what makes Linux different?
History is what makes Linux different. Until Linux came along, almost all operating systems were controlled by corporations. Each one invested money in research and development and required a fee for the use of its operating system. At the time, the OS’s available were DOS, Mac and Unix, and Windows was just appearing on the horizon.
Linux broke this model by being offered to the world for free. So how did that come about?
It all goes back to Unix. At one time, the source code for Unix was offered free to universities for the purposes of education … and then it wasn’t. So a professor called Andrew Tanenbaum created a Unix kernel clone called Minix. Another chap by the name of Linus Torvalds in Finland liked the idea behind Minix, and created, as a part of his own studies, the first Linux kernel. Linux kernel v0.02 was released in October 1991, along with:
- Bash – A shell program
- Update – utility program
- GCC – C compiler
Not only did Torvalds post the source code on the internet, but he invited others to modify and improve the code, and over time an army of coders has worked on Linux, making it what it is today.
Another person of note in the story is Richard Stallman from MIT. In 1983, Stallman started the GNU project, which was based on the idea that the corporate model of software development was too restrictive as it is did not allow for the copying and free distribution of source code. One of the main applications that is covered by GNU is GCC (the GNU C Compiler). This influenced Torvalds who made extensive use of GCC as a part of Linux.
So the Linux kernel is freely available to anyone who wants it, but the kernel is not the only part of the operating system, which brings us to:
Distributions are essentially flavors of Linux. They all have the same kernel but are packaged with different applications and for different purposes. There are versions of Linux for embedded coding in applications like set top boxes, there are desktop versions and there are server versions and so on. Often these distributions are provided by corporations who sometimes charge for support of their distributions (Red hat for instance) while still offering free versions.
My current distribution of choice for my work laptop is Ubuntu. Currently I am running version 12.10 with XFCE as my desktop, Chrome as my browser and so on. I have a second machine that runs Debian in command line only so there is no desktop software.
Other applications for Linux include:
- file server
- print server
- web and email server
- data base server
As we will see in the course ahead of us, Linux is incredibly versatile, configurable, and reliable which makes it ideal for many of the roles in networking, and other applications.