Welcome to Linux
- 1 What is Linux?
What is Linux?
If I asked ten random people that question most of them would... well, to be honest, at least seven of them would give me a dull, blank stare and ask me what the heck I was talking about. The other three would probably tell me that it's a free operating system.
And an Operating System Is...?
So what exactly is an operating system? The simplest answer is that it's a software package that provides core functionality to a computer system. Huh?! Think of it this way: if we didn't have operating systems each application we wanted to run would be much, much bigger. Imagine a web browser that had to include code for accepting input from keyboards and mice, sending output to a monitor, connecting to a network, and booting the computer! Those are all examples of core functionality. An operating system takes care of all that stuff, so people who write apps can just focus on the app's functionality. Then they write code that allows the app to talk to the OS; it's called “porting”. This is why you can often run the same app (Firefox, for instance) on Windows, Mac, or Linux.
What are Little Operating Systems Made Of?
There are four elements that make up an OS. They are:
- The Kernel: Everyone knows what this is; it's a field-grade military officer that commands division-sized units... oh wait, it's kernels, not colonels. The kernel is the core of the OS. It's biggest job is allocating computer resources such as memory and CPU time amongst all the various processes that are running at any given moment. Nothing on your computer can do anything without asking the kernel, "Can I have some RAM and CPU, please?"
- Device Drivers: Drivers are software packages that allow the kernel to talk to hardware devices. Device drivers are often built into the kernel.
- Utilities: Utilities are software programs, sort of like applications but with one big difference: utilities exist to help manage the operating system and the computer hardware. A web browser is an application, and a network manager is a utility.
- The Shell: A shell is an interface that allows you to talk to your computer. A shell is specifically a text-based command-line interface, but even if you're using a point-and-click graphical interface you're still interacting with the shell... you just don't know you're doing it.
Oh No, not a History Lesson...!
Back in the 1970s a couple of bright boys at AT&T Bell Labs came up with an operating system that they called Unix. It was designed from the ground up as a multi-tasking, multi-user operating system, the idea being that multiple users could be logged in and working on the same computer at the same time. This conjures an amusing image of a bunch of geeks fighting over a single keyboard, but the reality was a single central computer that everyone would log into remotely. The desktop micro-computer was still almost a decade away.
Unix was a network OS right from the start, and the internet more or less grew up around it. The huge majority of the servers you communicate with when you go online are still either Unix or a derivative of Unix. These days the derivatives are more widely used than Unix itself, and Linux is by far the most popular. BSD and Solaris are also big.
Tightening the Screws...
By the early 1980s software licensing was starting to get pretty restrictive. Commercial software was no longer shipping with source code (the human-readable program code that allows you to modify the software), and restrictions on how you could use the software were starting to pile up. All this seems like business as usual now, but back then it was something new, and something lots of folks in the computing world weren't very happy about.
Enter Richard Stallman
Lots of people in the early '80s had a problem with the way things were going in the software world, but one man in particular decided to get off of his butt and do something about it. In 1983 Richard Stallman from the Massachusetts Institute of Technology founded the Free Software Foundation (FSF for short). For more information check out their website.
"Free software", by the way, doesn't necessarily imply that no money changes hands. It's true that it generally doesn't, but when we talk about free software we usually mean that the user is free to do whatever he or she wants with the software. We call this kind of software "free as in freedom", the most important of the freedoms being the freedom to modify the software to suit our needs. If no money changes hands then we say that the software is "free as in free beer". There's lots of software that is free as in beer, but not as in freedom. Adobe Flashplayer, which you probably use to watch YouTube videos, falls into that category.
Stallman was also responsible for starting the GNU project. GNU is a recursive acronym that stands for GNU is Not Unix. If that doesn't make much sense to you don't worry about it; recursive acronyms are part of hacker humor and those who don't understand why it's funny are the rule, not the exception. More information can be had at their website.
The FSF was conceived an advocacy group, GNU as a community effort to develop and distribute a free replacement for Unix. They started by writing lots of Unix-compatible utilities, and in 1990 they added a project called HURD (Herd of Unix-Replacing Daemons) with the intention of developing a kernel. The HURD project is still active, but it's slow to say the least. Twenty years down the road they still don't have a 1.0 version.
Linus to the Rescue
In 1991 Linus Torvalds, a computer student at the University of Finland, set out to create an operating system that would run Unix applications on an IBM-compatible home PC. He wasn't driven by any ideals; he just couldn't afford to pay for Unix or a computer that would run it. He made it a community project via the internet, and in September of that year the Linux kernel was released. Shortly after that an updated version was made available under the GNU Public License, which it's been licensed under ever since. Torvalds still oversees development of the Linux kernel. It wasn't very long before people started packaging the kernel together with GNU utilities and releasing them as complete operating systems, known as distributions or distros.
So What Was the Question Again?
And that brings us back around to our original question: what exactly is Linux? To say that it's an operating system isn't entirely accurate; it's the kernel for an operating system. You get an operating system when somebody takes the Linux kernel, bundles it together with a bunch of GNU utilities, and releases it as a distribution, more commonly known as a distro. There are hundreds of distros to choose from. The sheer number of distros out there scares a lot of newcomers off before they even try installing anything, but that's really the beauty of Linux: choice! You can choose a flavor of Linux that exactly matches your tastes, your computing habits, and your philosophies (if you have them), and they all allow you to run the same enormous selection of great free software.
Why Switch to Linux?
Right about now you're probably thinking, "gee, that's great... but what exactly can Linux do for me?". I'm not going to exhaustively compare Linux to Windows or Mac, but here are a few very good reasons to think about switching over.
- Security: Using Linux it's unlikely that you'll ever have to worry about viruses, malware, or other such pesky bugs.
- Stability: I've never seen the blue screen of death on a Linux machine! Some Linux distributions are certainly more stable than others, but in general Linux is far less error-prone than it's proprietary brethren. I've had machines run for over a year without needing to be re-started for any reason.
- Cost: Free software projects love donations, but both the operating system and the applications are usually 100% free to install and use.
- Maintenance: Tired of having to defrag your hard drive? Torqued off about having to restart your computer every time you install software or run updates? You don't have to do that if you're running Linux.
- Flexibility: Proprietary operating systems have a nasty habit of dictating your computing behavior. Not so on a Linux system! Want to customize your workspace to match your own unique computing habits? Linux is definitely for you.
- Freedom: I saved the best for last. You're free to do anything you want with Linux and other free software. Copy it! Use it on multiple computers. Modify it to suit your own needs.
That's just the beginning; there are many other reasons that we love Linux! Check out the next chapter to find out why we prefer Chakra Linux in particular.