Dec 9, 2013 (4 years and 6 months ago)




Aaron Johnson

Jordan Catholic School

What is Linux?

Linux is many things...

… But first, you must know that it was created,
and given away for free, by Linus Torvalds

Linux is a Unix
like operating system

Or more correctly...

A monolithic operating system kernel

Open Source (GPL)


Easy to use (contrary to popular belief...)

Please watch the following video that
commemorates 20 years of the Linux
Operating System

What is the GNU Project?

The GNU Project was created by Richard
Stallman in order to create all of the software
nessessary to use a computer without the
limitations of proprietary software which included
the creation of a free operating system

What does GNU stand for?

GNU is a “recursive acronym” that stands for:

GNU's not Unix!

Why is Linux sometimes called GNU/Linux?

GNU/Linux is a term that Richard Stallman has
pushed since the beginning because he
believes that there is just as much (if not more)
GNU software in a Linux distribution as there is
Linux software

How do you pronounce GNU?

noo (like canoe)

Who is Richard Stallman and what
does he have to do with Linux?

Richard Matthew Stallman, often shortened to rms, is
an American software freedom activist and computer

In September 1983, he launched the
GNU Project

create a free Unix
like operating system, and he has
been the project's lead architect and organizer. With the
launch of the GNU Project, he initiated the
free software

In October 1985 he founded the
Free Software

He is seen by many as the visionary who helped make
Linux possible.

He also wrote the original
GNU General Public License

and helped pioneer wide usage of the term

Linux has always been licensed under the GNU GPL


Is there a GNU Operating System?

Yes there is!

It is called the GNU Operating system and you can
read more about it here:

Instead of using a monolithic kernel like Linux, GNU
uses a microkernel called GNU Hurd

GNU Hurd is basically a bunch of service processes
that run on top of the GNU Mach Microkernel

What's the difference between a monolithic kernel
and a microkernel?

Microkernels are seen by some as, the operating system kernel “of the
future” (MINIX and GNU use microkernels)

Typically less than 20,000 lines of code

Bare minium to provide the machanisms to implement an OS

Device drivers, protocol stacks, and file systems are removed and run in user

Monolithic kernels are more traditional and can be seen in modern day
Unix OS's (including Linux, FreeBSD, and Solaris)

Much larger code base

Contains almost the entire operating system which runs in kernel mode

Hybrid kernels also exist which can be seen in Operating Systems such
as Mac OS X and Microsoft Windows XP (and newer)

What is MINIX?

MINIX is an Open Source Unix
like Operating System that is
currently licensed under the BSD License

MINIX was the main piece of source code that Linus Torvalds
referenced while creating the Linux Kernel

It was created by Andrew S. Tanenbaum who is a professor of
computer science at the Vrije Universiteit in the Netherlands

MINIX's original purpose was for education, not a production
operating system, but it has now evolved into a producation grade
operating system

It was orginally sold for $69 under a proprietary license which
would get you a printed book with 12,000 lines of C source code
and you would also get the binaries in a box of floppies

In May 2004, Kenneth Brown of the Alexis de Tocqueville
Institution (presumably hired by Microsoft) made accusations that
major parts of the Linux kernel had been copied from the MINIX
codebase, in a book called Samizdat

These accusations were rebutted universally

most prominently
by Andrew Tanenbaum himself, who strongly criticised Kenneth
Brown and published a long rebuttal on his own personal website


Just a bit more of Linux history:

A documentary film about Linux called
Revolution OS was released in 2001

This film covers the history of Linux quite
well and is freely available at Google Video:

It can also be purchased on DVD which
mostly includes bonus interviews of Linus

I have included some clips from Revolution
OS on the next couple of slides during this

Here are a couple clips from the documentary

Revolution OS

Here are a couple clips from the documentary

Revolution OS

Popular Linux Distributions

Here is a list of popular Linux distributions and a brief description for

Debian GNU/Linux

Enterprise class operating system without
commercial backing. This distribution holds true to the meaning of open
source in every way. There is no such thing as a 'paid version' of Debian,
it is entirely free as in freedom. Uses the APT package manager.


Another Enterprise class OS. Redhat is the
commercial backed product whereas CentOS is the community built
version. CentOS aims to be 100% binary compatible with Redhat Linux.
Uses the RPM package manager and the yum frontend.


Based off of Debian, Ubuntu is geared towards desktop
functionality but there is a server version. Use Ubuntu if you are okay with
sacrificing stability for the lastest cutting edge open source packages.
Uses APT for package management just like Debian.



Novell's Linux distribution that was once based on
Slackware is an original distribution with it's own package manager called



Gentoo Linux is another Enterprise class operating system that
is not based on another Linux distribution. It is a source based distribution
which means all software installed through its package manager must be
compiled before using it. Gentoo uses portage as its package manager.

What is a Package Manager?

Probably the biggest difference between Linux and popular commercial
operating systems such as Mac OS X and Microsoft Windows, are
programs called package managers.

Package managers are programs that help automate the installation of
software on the computer for the end
user. Package managers are
designed to take away the technical difficulty of installing software on

One of the most unique ideas behind package managers is that the Linux
distribution itself is actually incharge of maintaining third
party packages.
This means that the developers of the Linux distribution are required to
keep updating those packages with every new third
party release as long
as that piece of software remains up
date and popular (or at least that's
the idea).

As you can imagine this creates a massive amount of work load on top of
already maintaining the code base for the distribution itself!

Fortunatly, because of the openness of the Linux operating system in
general, community members can help out quite a bit when it comes to
maintaining up
date third party packages.

This can be done in a number of ways including bug reports,
documentation, and even allowing community members to build and
submit the packages themselves.

Enough already, I already run Linux!

I understand that there are many people out there who already use Linux for a variety of purposes.
Unfortunatly this means just that. Most people do not see Linux as being a complete replacement for their
existing operating systems. Most people see Linux as having a specific task to be done and that's about it.

But in
fact large scale implementation can be done!

Here are some examples of what can be done realibly with Linux (These are examples that I have working in
production currently):

Email Server

Postfix (SMTP), Dovecot (POP3/IMAP), spamassassin spam filtering, Roundcube webmail

Database Server


Don't even try running that MSSQL server ever again!

Web Server

nginx, apache, PHP, Ruby on Rails, static content

Directory Server

OpenLDAP with samba integration, supports Linux and Windows clients

File Server

Samba with Active Directory/OpenLDAP authentication as if it were a Windows file server on a

Printer Server

CUPS with samba integration, supports Linux and Windows clients


Server and client both running linux, works flawlessly


OpenVZ, KVM (using a program called Proxmox VE), provides excellent performance and
realible server grade virtualization

Desktop/Laptop computer

Pardus Linux is my desktop distro of choice, Very user friendly, complete, and
date Linux Distribtution

At Jordan we have over 50 laptops and 25 lab computers that run
Linux/OpenOffice and students use them every day

Check out Pardus Linux


I have also created an unofficial wiki located here:


Pardus is an original modern KDE 4 distro that is not based on another distro. It
is however heavily influenced by Gentoo Linux as Pardus v1.0 was actually
based on Gentoo Linux. Now Pardus has developed their own package
managed called PISI which is coded using the popular Python scripting language

Useful Linux Commands and





sudo command

'sudo' is used when you want to run a
program as root without having to login as
root. Simply type sudo and then the command
that you would like to run with elevated


man find

The 'man' command is short for “manual”.
Just type in man + the name of another
command in order to learn how to use that


find ./
name “filename

Use the 'find' command to search for a file or
directory matching a string of characters. Be
sure to use quotes as shown in the example!


sudo updatedb

Must be ran before running the 'locate'
command (see below)! Must be ran as root or
with sudo!


sudo locate filename

The 'locate' command to me is one of the
most usefull commands in Linux.
You must
first run the updatedb command
, but after that
you can find any file on your computer within
a split second. Must be ran as root or with


which gedit

Can be used to locate an executable so in this
example it would most likely show that gedit is



'ps' simply lists processes


A | grep bash

A simple feature of 'grep' is that it can be used
to filter the output of another command via a |
(pipe). This example will list all processes and
then grep will filter the output and will only
display processes that have the word bash in


chown username:group

'chown' is an essential command when it
comes to setting security permissions in linux.
Use it to set username and group permissions
to a file or directory.


chmod 644 filename

'chmod' is used to set user/group access
rights to a file or directory. You can use a
chmod calculator

in order to determine your
permissions until you learn how to do it