Linux_Demo

blueberrystoreΑσφάλεια

9 Δεκ 2013 (πριν από 3 χρόνια και 11 μήνες)

126 εμφανίσεις

Linux

By

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)


Free


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?

g
-
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
programmer


In September 1983, he launched the
GNU Project

to
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
movement


In October 1985 he founded the
Free Software
Foundation
.


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
copyleft


Linux has always been licensed under the GNU GPL

Reference:
http://en.wikipedia.org/wiki/Richard_Stallman

Is there a GNU Operating System?


Yes there is!


It is called the GNU Operating system and you can
read more about it here:
http://en.wikipedia.org/wiki/GNU


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
space


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

Reference:
http://en.wikipedia.org/wiki/Minix

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:

http://video.google.ca/videoplay?docid=77075
85592627775409


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


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

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
each:


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.


Redhat
/
CentOS



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.


Ubuntu



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.


OpenSUSE

-

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


Gentoo

-

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
Linux


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
-
to
-
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
-
to
-
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


MySQL


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
domain


Printer Server


CUPS with samba integration, supports Linux and Windows clients


OpenVPN


Server and client both running linux, works flawlessly


Virtualization


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
up
-
to
-
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

Homepage:
www.pardus.org.tr

I have also created an unofficial wiki located here:

Wiki:
parduswiki.pcdomain.com

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
Syntax:

Command:

Example:

Explanation:

sudo

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
priviliges.

man

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
command!

find

find ./
-
name “filename
-
or
-
directory”

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!

updatedb

sudo updatedb

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

locate

sudo locate filename
-
or
-
directory

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
sudo!

which

which gedit

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

ps

ps
-
A

'ps' simply lists processes

grep

ps
-
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
them.

chown

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

chmod 644 filename
-
or
-
directory

'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
yourself.