Linux Lesson 01 - Introduction to Linux
In this lesson we're going to look at the history of Linux. We will be learning some new terms as we do. Then we will look at the pros and cons of Linux. Finally we will discuss some of the common uses for linux.
A Brief History of Linux
Before Linux was created we had Unix. Unix is an operating system developed in 1969 at AT&T Bell Labs. Unix was owned by AT&T and as such had to be purchased before you could use it. An operating system is the program that runs all other applications and controls how those applications interact with the hardware.
Programmers would write applications for Unix and share them with other programmers. They would share the source code, source code is a text file that contains all the instructions to be executed by the computer. It was a very exciting time, programmers were learning the capabilities of the hardware and programing languages. When they would do something impressive they would share the source code with others. There was a sense of pride in the process of sharing your work with others. Then others would build on your source code and add improvements and share the results. This sharing helped the computer industry grow.
As time went on companies starting to release compiled versions of applications without the source code. Compiled versions were the result of running the source code through a compiler and producing an executable file in machine code. With an executable you could run the software, but not see how it was written.
There was a split in the computer industry about what method was right. One side wanted to share all source code so everyone could benefit from seeing how things work. Open Source is the process of releasing your source code with your program so others can see and edit it. The other side wanted to protect their source code to prevent others from taking their product. Companies like Microsoft and IBM did not release their source code, this is known as Closed Source and is common today.
Richard Stallman preferred programmers to share all their code so he created GNU (GNU Not Unix). GNU was an initiative to create an operating system that is free and applications that are open source. Stallman knew that if the programs were released into the public domain, others could take the code, change a few things and redistribute it as closed source. As a way of preventing this from happening he created a licensing program called GNU GPL (General Public License). The GPL states that a programmer holds the copyright to a specific piece of software. This prevents it from being in the public domain. It also specifies that the software can be freely used, modified, and copied by others. Anyone who modifies the code and distributes it to others must provide open source code. This includes their modifications, making it freely available under the terms of the GPL. Many software programs were released using the GPL including many written by Richard Stallman himself, including emacs and the GCC (GNU C Compiler)
By 1991 there were a lot of applications released under the GPL, but you still had to pay for an operating system to run the applications. In 1991, 21 year old Linus Torvalds posted a message in the minix newsgroups announcing he was working on a free operating system. Below is his original post.
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki
Hello everybody out there using minix –
I’m doing a (free) operating system (just a hobby, won’t be big and
professional like gnu) for 386(486) AT clones. This has been brewing
since april, and is starting to get ready. I’d like any feedback on
things people like/dislike in minix, as my OS resembles it somewhat
(same physical layout of the file-system (due to practical reasons)
among other things).
I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work.
This implies that I’ll get something practical within a few months, and
I’d like to know what features most people would want. Any suggestions
are welcome, but I won’t promise I’ll implement them :)
PS. Yes – it’s free of any minix code, and it has a multi-threaded fs.
It is NOT protable (uses 386 task switching etc), and it probably never
will support anything other than AT-harddisks, as that’s all I have :-(.
Torvalds was creating what would become the Linux Kernel. A kernel is the center of the operating system and controls how applications gain access to the hardware. Later Torvalds would release the Linux Kernel under the GPL completing the vision of a free and open source operating system with applications. The Linux Kernel wasn't complete without all the application under the GPL, and the GPL applications weren't complete without a kernel to run them.
Pros and Cons of Linux
There are many benefits to using Linux, they include:
Low cost: Linux is free, but there are other costs that go with it for example cost of maintenance and support. Although many people say the actual cost of Linux over time is comparable to, or less than, other operating systems.
Easy licensing: Since the licensing is open, administrators don't need to worry about monitoring the number of installations, tracking licenses, and performing other activities related to licensing.
Performance and stability: One of the bragging points with a Linux server is its uptime. It is a very stable OS whose structure was modeled after Unix. Since the source code is open many people see it, and can identify errors or security risks. Very few bugs go unnoticed. Performance depends on the application. Some studies show other server's OSs are faster, while some show Linux is faster.
Interconnectivity and interoperability: In the early days of Linux, Internet protocols were built right in. Overtime more networking protocols have been added that allow it to talk to a multiple number of OSs. I.e AppleTalk, SNA, IPX/SPX, CIFS etc. It also supports multiple files system formats. FAT, HPFS, NTFS.
There are drawbacks to Linux as well.
Learning curve: Many people already know how to use Windows, switching to Linux can be frustrating for untrained users.
Quantity of software: There is more software available for other software platforms like Windows or Macintosh. The number of applications on Linux is growing.
Uses for Linux
In the early years of Linux it was difficult to install on a computer. A normal user would struggle with the install. This lead to several companies putting together the kernel with applications and utilities in an easy to install package. These collections of applications combined with the kernel are called distributions. There are many distributions available today specializing in many different areas.
You used to be able to walk into a store and purchase a boxed copy of a Linux distribution. Today the most common method for acquiring a Linux distribution is by downloading it from the Internet. You download an ISO, or disk image, and either burn it to a DVD/CD, or build a USB bootable disk.
Once installed you can use Linux for many things. You can use it as a desktop client like you would a computer running Windows client. You can also use it as a server. Linux can provide many services including:
Web server - Apache
Domain Name Server (DNS) - BIND
Database server - MySQL
Software development - vim, gcc
Parallel processing - GNU Parallel
Disk array - Open SAN
If you're new to Linux you can easily try it out without disrupting your current computing environment. Many distributions of Linux come in a live CD version. With a live CD you can start your system from the CD and run Linux without touching the contents of your hard drive. This gives you the ability to try it out without destroying your current system. Once you are done in Linux shut down the computer, take the CD out and turn the computer back on, you'll return to your normal operating system.
If you decide you want a more permanent installation of Linux you can install it to your hard drive. One method for doing this is to set your computer up in dual boot mode. In Dual Boot mode you have two operating system installed on your computer and you pick one when you turn on your computer.
If you are setting up a computer as a server then dual boot isn't a good option. You can also set up Linux to be the only operating system on the computer.
Each distribution of Linux can vary in how the installation is performed. We will be installing Linux from a live CD. When we start up from the live CD we'll see an icon on the desktop to install Linux to the hard drive.