What follows is my lecture notes for Linux 101, an introduction to linux usage for Windows users. This set of notes, basically covers what I explain to students on the first night of the course. I cover some topics not usually covered in other linux/windows classes. Some get you started projects are included as the first homework assignement.
To start this course, we need to make sure some fundamental topics are well understood by everyone. First up is OS, what does it mean and where does the term fit in. "OS" stands for "Operating System" and is the program that allows users to run programs on their computer. It is a program or collection of software packages that is specific to your hardware environement or the phyiscial parts that make up your computer.
Your computer is composed of several components such as the CPU or central processing unit - it is what does all the work. You have as well I/O (input and Output) devices to talk to the outside world, such as the keyboard and monitor. There are several types of storage, RAM (Random Access Memory) which holds your program while powered on, and long term storage, typically a hard drive that stores all of your data as well as the OS itself.
There are several flavors if you will use the term of computer hardware systems. What is called the PC Clone is basically a computer based on the orginal IBM PC design from 1982. It uses an Intel or AMD compatible x86 cpu. By that we mean the cpu's internal design and instruction set is based on a standard where specific programming instructions will perform a given set of operations. That means if my program that is running needs to add two numbers together, all x86 cpus and clones will use the same set of instructions to do that operation. While non x86 machines will use other instructions to do the same process. Generally speaking, programs and operating systems for one type of cpu will not work on another.
Examples of other cpu types, are the orginal Apple II which used an 6502, later Lisa and early Machintosh used 68000 cpus. Up until recently MACs used the Power PC cpu, a more powerful cpu than the x86 cpus that were available at the time Apple switched from 68000s. The current MACs use the latest x86 chips, as they are now very powerful, in fact many times more powerful than the average user needs.
In the server market, are several special cpus used by larger corporations with their Unix or Special OSs. These computer systems are designed to handled large volumes of data, run for years without reboots or problems. These systems can fill rooms or sit under a desk. Typcally these systems are managed remotely, or by that we mean, they do not have an operator sitting at them and telling them what to do. As the abiltiy of commodity cpus like the x86 become more powerful, we now find servers using the cpus you might have on your own computer at home.
The Unix OS has a long history of usage, developed orginally by AT&T back in the begining of computing systems. It was the OS of choice for colleges and universities. It required training and skills to run and use these Unix servers. When the orginal IBM PCs came out and started appearing in student homes, a professor needed some way for his students to get hands on Unix experience. He wrote the "minix" operating system to use on PC clones, using two floppy drives. This operating system used commands and tools identical to those on the big Unix servers. The OS appeared in text books complete with the source code. The whole idea at the time, was to provide a learning tool for understanding Unix.
The problem with minix was the copyright held by McGraw-Hill publishing. Since it was copyrighted, using or passing the code around at the time was considered illegal. A student in 1991 named Linus Torvalds, while at the University of Helsinki in Finland, decided to develop his own Unix like OS without any legal problems. He also felt developing and distributing the source code on the internet would speed devlopment and increase other users understanding of Unix. Since that time it has become something more than just Linus's personal OS project.
Today, Linus still works on the kernel, but thousands of developers world wide support not only the kernel, but the whole package of OS components and programs. Linux is the name given the collection of components and programs into a single operating system you can use today. Since it has always been a free and open project covered by various aggreements, you can download a version that will run on your computer from the internet. Several companies have been formed to provide selected collections of components and programs that they feel meet a specific need or user type. The unique collections are called "distributions".
For beginners to Linux, it is best to select one of the well known and supported distributions. A good internet site to see what is available and for the hotest flavor of the month, go to: Distro Watch. This site reviews and rates current releases of distributions, all with links to where you can download them and try them on your own system. Those sufficently skilled can create their own distribution, build a distribution from raw source code, or use it for embbedded controls.
For new users, their biggest problem will be selecting their first distribution to try. To help in this process, their are bootable CD and DVD ROM versions of several distributions that allow you to boot from the CD or DVD without first loading it on the computers hard drive. They are great ways to see what can be done with Linux, as well they make great emergency resuce disks for windows problems.
I want to pointout however a few reasons to switch, all of these are valid, but you need to make your own mind up about what you hope to get from switching. Not everyone will utilmately be happy switching. Some users will just find the task not worth it, others will wonder why they waited so long to switch. The most common reason to switch is typically money - linux is free, Windows keeps going up in cost all the time. Support costs typically run great for Windows, simply due to the amount of intervention required to keep it up and running. You will find that Linux has greater stability, fewer overall problems, and will not "eat" ones own hard disk like Windows does on a regular basis.
Linux distributions are typically a complete desktop system. By that we mean it comes with word processing packages, presentations tools, data base programs, and all the normal internet tools you could need. To get similar tools on Windows will require large extra payments to MicroSoft. You will find as well, that lots of the Linux programs, are very "top of class" applications. By that I means, they are as good as or better than many commercial versions, and typically better than' what MicroSoft sells. MicroSoft has a practice of getting tools that are clones of other top sellers, but not the actual program, and then they give the third rate clone away for free, complete with all the third rate problems. In the Linux community, internet backed groups develope software they need and want, so there is a personal commitment to make it work well for their own use.
When you try and convert from Windows to Linux, you need to change some of your thinking. This "Mind Set" switch is important if you want to understand Linux and how to be successful swtiching from Windows. There are a few major differences that affect how you need to think. Let us take the first major difference and that is user interface. Both systems have GUI - Graphical User Interfaces. By that we mean, you can move a cursor around with your mouse and point and click to get things done.
This first mind set change however, involves how the entire operating systems works as it relates to the GUI. For Windows, it expects at all times to have a user present or physcially located in front of the computer. To get anything done, you must point and click, and in many cases there is no alternatives to running a Windows program than pointing and clicking. If an error occurs, everything on the Windows system will stop working until the errors popup window has been selected and cleared by clicking on the appropriate item.
Linux roots come from the server world, where users are rarely present. The whole Unix/Linux concept is that nothing should stop or interrupt processing, including errors. The idea that a user is or must be present for things to happen is not something Unix/Linux users would accept. The GUI is but one of many ways to run programs and typically is nothing more than a wrapper around command line based tools. Error handling will never stop processes except the one casuing the error, if then.
Since Linux basically is a collection of small tools that together create the OS called Linux, it requires another mind shift. Windows has become one complete package, so intermixed, that upgrading is practiaclly impossible. You can not buy a little tool, you have to buy the whole package. Linux requires you to consider breaking tasks down into small processes that will be handled by separate tools. With this change in thinking comes powerful processes that are not possible under Windows. Productivity can be greatly enhanced once you overcome the fixed point and click limits and open up to selecting one of thousands of tools for your task.
A major difference that most users do not understand is that Windows is not a true multiuser system. Windows is a multitasking single user system. Linux is truely a multiuser and mutlitasking system. On Windows you can run more than one task at a time, as a single user. You can not have mutlitple users logged in using the same programs at the same time. On Linux, you can have hundreds of user using the same program at the same time without issues. Windows is really a single user system with enhancements to allow more than one program to run. Linux is designed such that each process and user is separated from each other and will not effect others.
As a new user to Linux, expect to use many of the help tools provided. "man" pages provide on-line documents that give a quick review of how to use a given tool. "info" generally provides greater on-line help as well. You will find lots of internet links to how-to and help documents. Try The Linux Document Project where you should find almost every type of help you might need.
To start you out on a positive note, we need show you what it is like to run Linux and what you need to do to load your own system. To do that we will use the "Live CD" for Ubuntu a very popular distribution. This is supported by an organization that ships free CDs all over the world for others to use. The orginal concept was to make computing available to third world cuntries. You will find projects like OLPC - One Laptop Per Child, using Linux due to it's configurablity and low cost per user. There are several vendors selling small or limited computers with Linux pre-installed.
Take your live CD and insert it into the CD drive at boot up. You may need to power down or reset the computer from Winodws first. If while booting up the CD drive does not see the disk, you may need to change boot setup setting to look first at the CD drive before looking at the hard drive for the OS. Each vendor handles their own setup process differently and thus you may have to follow information in your orginal documents to figure out how to do this on your own system. Most systems today will check for CD drive OS in the default setup.
I will come around now and help everyone do this while we take a break...
MORE later