basic linux training

gultekin onan (gultekin_onan@hotmail.com)
Tue, 17 Feb 1998 12:49:08 PST


Merhaba,

İnternetten bulduğum bitakım belgeleri yolluyorum.
Bunlara ihtiyacı olan varsa devamını yollayacağım.
Ltfen bildirin.

Gültekin Onan

Basic Linux Training

Lesson 1: An Overview of Linux

--------------------------------------------------------------------------------

Table of Contents
History of Unix
Development of Linux
Software Features
About Linux's Copyright
Differences Between Linux and Other Operating Systems
Hardware Requirements
Getting Help
Assignments

--------------------------------------------------------------------------------

History of Unix
During the late 1960s, long before personal computers, Bell Telephone
Laboratories was working with General Electric and Project MAC of MIT to
write an operating system called Multics for mainframe computers.
After Bell Labs withdrew from the project, in April, 1969, Ken Thompson,
Brian Kernighan and Dennis Ritchie sketched out an operating system that
would meet Bell Labs' needs. When Thompson needed a development
environment (1970) to run on an unused PDP-7 in the lab, he implemented
their ideas in assembler language. Brian Kernighan gave the system the
name Unics (as a pun on Multics) but soon became UNIX.

Later, Dennis Ritchie and Brian Kernighan invented the C programming
language, a major boon to reusable and portable code that can be used on
any platform. In 1973, UNIX, was rewritten in C as Version 4. About that
time, Thompson and Ritchie published an article in one of the technical
journals about the UNIX system. Several universities contacted Bell Labs
about UNIX, signed a non-disclosure agreement, and got the tapes and
manuals "for educational purposes."

Because of that generosity, many universities used it in their
curriculum, and computer science students did much of the experimenting
and development work. Two major hot-beds of Unix development were at the
University of California, Berkeley, which later became BSD (Berkeley
Software Distribution), and M.I.T., which eventually gave us the Free
Software Foundation and the GNU project, and the X Window System.

Because UNIX was written by engineers and programmers for engineers and
programmers, it may not appear particularly intuitive or user friendly
to first time users. It was originally designed and used for processing
documents. connecting several workstations to a mainframe computer, and
connecting several mainframe computers together.

Unix today has two major versions: System V (or SVR4 from Unix System
Laboratories, a Bell Labs spin-off which took over the development of
UNIX when it became a commercial product), and BSD (Berkeley Software
Distribution, which came out of the University of California, Berkeley).
The USL version is now up to its forth release, or SVR4, while BSD's
latest version is 4.4. However, there are many different versions of
Unix besides these two. Most versions of Unix have been developed by
commercial software companies and derive from one of the two major
versions.

UNIX (upper case) is a trademark of The Open Group. Unix refers to Unix
versions in general, regardless of the source; usually it is simply
referred to as SVR4 or BSD 4.4.

--------------------------------------------------------------------------------

Development of Linux
Andrew Tanenbaum, a professor of computer science in the Netherlands and
a specialist in operating systems design, wrote an educational version
Unix work-alike in the '80s called Minix for his students to learn Unix
on their home computers.
Linus Torvalds, then a student at the University of Helsinki, began
searching for ways to get more out of Minix in the spring of 1991.
Initially, this was a program that would switch between printing 'AAAA'
and 'BBBB'. Later, the project mushroomed into exploring the task
switching capabilities of the Intel 80386 chip, and by July interest in
POSIX compliance. (POSIX is an attempt to standardize the operating
system.) In October, 1991 Torvalds posted the source code for the new
kernel (version .02) on Usenet. Three years later, in 1994, version 1.0
was officially released.

One of the early 'wars' between Tannenbaum and Torvalds is preserved.
I'll leave it to you to decide who actually 'won' - or whether ir was a
draw.

Linux supports all of the popular Unix software, including the X Window
System. (X is a rather large program from the Athena Project at MIT
allowing computers to create a GUI (graphical user interface), and is
used on many different platforms.) Linux is mostly System V compatible,
mostly BSD compatible, and mostly POSIX-1 compliant.

Officially, anybody can create a Unix operating system, as long as it
passes tests from X/Open. Lasermoon, Ltd. has a certified POSIX
compliant version of Linux that also has been licensed by Caldera for
its Open/Linux. Other POSIX compliant versions of Linux are likely to
follow in the near future.

Many of the utilities included with Linux distributions are from the
Free Software Foundation and are part of the GNU Project. The GNU
Project is an effort to write a portable, advanced operating system that
will look a lot like Unix. Portable means that it will run on a variety
of platforms, rather than being tied to only one CPU chip and
architecture. Linux, however, is not easily ported because it was
designed and written specifically for the Intel 80386 chip, and exploits
everything this particular CPU has to offer. While it is most popular on
the PC, the Linux kernel has been ported to Power Mac hardware, Sparc
workstations, DEC machines, and other platforms.

At its core, the Linux kernel is a three disk set that offers a command
line and will respond to the core UNIX commands. The real usefulness for
the kernel comes from the additional software in the form of utilities
and programs from the Free Software Foundation and GNU, and from the BSD
developed networking and telecommunications programs.

Linux kernel development has split into two different branches. The
first, signified with version numbers starting with 1.0 and using even
numbers is supposed to be a more stable, dependable version of Linux.
The second, signified with versions numbered 1.1 and using odd numbers
is a more daring, quicker developing and therefore more buggy version of
Linux for the adventuresome (or those with lots of time on their hands
to do the maintenance to the system that will be required).

The Linux kernel is a large system and unfortunately contains bugs.
They're fixed, of course, almost as soon as they're found. Although some
people still experience bugs regularly, bugs that effect everyone are
few and far between. Of course, those are just the kernel bugs. Bugs can
be present in almost every facet of a system, and inexperienced users
often have trouble separating bugs from features ; - )

One area that Linux is notorious for is hardware compatibility. Because
the manufacturers will not write the device drivers for Linux, it is up
to Linux hackers to figure it out mostly by trial and error, and hack
the drivers with little or no help from the manufacturers. As Linux
becomes more popular, the manufacturers are beginning to realize the
potential market, and will be co-operative. Project Beowulf is making
some significant progress in providing device drivers for inexpensive,
off the shelf hardware.

BTW, according to Linus Torvalds, 'Linux' should be pronounced with a
short 'i' sound, like 'prInt', 'mInImal', etc. Linux should rhyme with
Minix, another Unix clone. It should not be pronounced like (American
pronunciation of) the `Peanuts' cartoon character, Linus, but rather
'LIH-nucks'. And the 'u' is sharp as in rule, not soft as in 'ducks'.

--------------------------------------------------------------------------------

System Features
The main features of the Linux operating system:
preemptive multitasking (meaning that more than one task or application
program can be running at the same time, preemptive meaning the
operating system rather than the application has control of tasks and
the allotment of clock cycles to applications);

multiuser (meaning that more than one user can be logged on at the same
time without affecting each other);

has rudimentary security is built-in (login and password, file ownership
and permissions);

was designed for connectivity (that is, to connect many computers and
workstations together);

uses full 32-bit access to data in protected mode;

up to 128 MB RAM, and up to 4 Gig storage;

peacefully coexists-exists with DOS/Windows on separate partitions or
hard disks the same machine;

supports 256-character, case sensitive file names;

unification of file, directory, device, and interprocess input/output
(all treated as files);

an hierarchical file system (like the directory layers in DOS/Windows -
directories inside directories).
Virtually every utility program available on standard mainframe
implementations of Unix has been ported to Linux, with a number of
improvements. Programmers and engineers now have the opportunity to have
a low cost Unix workstation on their home PC.

--------------------------------------------------------------------------------

About Linux's Copyright
Linux is a Unix clone, or work-alike of the Unix operating system,
written entirely from scratch, without a single line of AT&T code.
Neither USL, nor the University of California, Berkeley, was involved in
writing Linux. People from Australia to Finland contributed to Linux,
and hopefully will continue to contribute to its development for years
to come.
Linux has been copyrighted under the terms of the GNU General Public
License (GPL). This is a license written by the Free Software Foundation
(FSF) that is designed to prevent people from restricting the
distribution of software. In brief it says that although you can charge
as much as you'd like for giving a copy away, you can't prevent the
person you sold it to from giving it away for free. It also means that
the source code must also be available. This is useful for programmers.
The license also says that anyone who modifies the program must also
make his version and source code freely redistributable.

While the GNU General Public License covers the Linux kernel, the GNU
Library General Public License covers of the subroutine source code in
the libraries used by many applications.

The BSD Copyright and X Copyright are slightly different.

Please note that those two documents are copyright notices, and not user
licenses. They do not regulate how you may use the software, merely
under what circumstances you can copy it and any derivative works.

--------------------------------------------------------------------------------

Differences Between Linux and Other Operating Systems
Changing, recompiling, and other modifications that can only be done
under Unix systems makes Linux an operating system that can be
configured to do and be just about anything. Most Linux distributions
give you only a minimum basic initial configuration, and it is up to
each user to modify it any way they desire. This can be done through
plain text files without any need for programming skills or tools.
Every Linux distributions comes with all the development software,
Internet software (besides Netscape and the other proprietary software
you may be familiar with in DOS/Windows), and system-related software
you'll need. While Linux does come with games, some office-related
software, they do leave a lot to be desired, as do 3-D graphics. As with
any operating system, you can spend large amounts of money for
commercial office suites. Applixware, StarOffice and other commercial
software with the features of MS Office tend to run cleaner and faster
than their MS Windows counterparts.

Linux, like all Unix, already has hundreds of specific tools that do one
thing exceedingly well, but nothing in the way of a 'killer'
application, although TkDesk comes very close along with several others
still in alpha testing and development.

There is commercial software available for Linux; WordPerfect and Novell
NetWare, are probably the best known examples. In addition, some
commercial applications from the Unix family, such as Motif are also
available. Commercial software for Linux/Unix has basically the same
conditions as commercial software for DOS/Windows or any other operating
system - you get a license to use the binary executable, documentation,
and support, but you do not get the source code.

A lot of the older, text-based Unix software for Linux does have a steep
learning curve. The other more modern Linux software is often for X
Window System and is very easy to use and learn.

Just like any other modern Unix, Linux supports Java applications,
compiles Java applications and applets, and has Java-enabled web
browsers (such as Netscape).

The cross-compilation environment allows binaries to be generated for
many other Unix platforms. GNU C, GNU C++, GNU Fortran 77, ADA, Pascal,
Modula 2 and 3, TCL/Tk, Scheme and SmallTalk/X are available for free,
and with extensive libraries of working code. The popular Motif widgets
are also available from several suppliers at a cost; the GNU counterpart
is called LessTif. Most distributions include a program called Window
Programming Environment (WPE), which provides a programming environment
with custom syntax highlighting, compiling, and everything else an
Integrated Development Environment should have. The operating system
also provides libraries that you must normally program yourself
(including sound and graphics).

With X Window System, most aspects of the interface are so easily
configurable, the user can get his or her desktop to look and feel just
about like anything, simply editing a few lines in an plain text file.

Natively, Linux supports Minix, System V, a.out, and Elf executable
formats. In beta now, Linux supports Java executables (J-code).

Not only is Linux friendly to other operating systems on the same drive
(not messing up their partitions, etc.), it uses their file systems, and
includes utilities to help those who are using more than one operating
system. Linux's LILO will load Linux, DOS/Win95, or OS/2, for example.
Linux file mapping and mounting allows you to use other file systems,
such as DOS's FAT-16 (with Windows 95 long filenames), OS/2's file
system, Minix's and others, even if you don't have other operating
systems. Linux also has emulators to let you run programs that aren't
made for Linux. Most Linux distributions come with dosemu (a DOS
emulator), and a Windows emulator (WINE) is in development.

Linux applications support many file formats. When a programmer is going
to create an application he or she will have to decide what file formats
to support. In the Linux free software community, there is a wealth of
shared and static libraries that the programmer can use to support many
file formats. Since many Linux programs are truly free, and come with
their source code, other users add file formats to existing
applications, so Linux undoubtedly supports more file formats than any
other operating system.

--------------------------------------------------------------------------------

Hardware Requirements
Hardware is often accessed indirectly by other operating systems through
software. On the other hand, Linux deals with of all the hardware it can
directly. Sometimes, if you have defective hardware that other operating
systems can work around it through software, Linux does not have that
extra layer and will crash. On the other hand, a properly set up Linux
system that is running on good hardware is very difficult to crash. This
is because if the operating system doesn't bring itself down, nothing
else will. Programs can never crash the system under Linux, because of
the way it's built - things like memory protection, instruction
monitoring, and other devices built-in to the kernel. The downside of
this is, of course, that the kernel is much larger, and unless your
hardware is supported at the kernel level you will have problems - which
explains the number of root disk images you have to choose from when you
install Linux.
In a preemptive multitasker, such as Linux, a program is given a set
number of clock cycles, then it is preempted, and another program has
the system for a set number of clock cycles. Linux is preemptive through
and through, supporting fully preemptive threads for all programs and
scripts that request it.

While Linux can be a challenge to install and setup, most distributions
take care of the details for you. The installation programs will ask you
for what programs to install, and where, and for lots of details about
your specific hardware, then does all the work for you. After getting a
Linux CD-ROM, and gathering the data you must have about your hardware,
you'll probably be up and running within an hour. But gathering the data
can take some effort; some of it is in your User's Manuals, but you may
have to open your computer case to check the boards and chips, which is
always a potentially dangerous thing to do - for you and your computer.

TCP/IP (Internet Protocol) is native to Unix. It is also native to
Linux. Networking Linux can be done in one weekend (assuming you do have
network cards), with some reading, testing, and setting up. Connecting
it to the Internet takes about 10 minutes. Networking is always a
difficult job, but Linux is certainly no worse than other operating
systems.

Generally, Unix systems have a reputation of being insecure. Linux
compares very well to other Unix's, due to it's open status. When source
code is readily obtainable, more experts with a wider variety of
hardware setups are likely to download it and report all the bugs, fixes
can be coded and distributed around the world instantly over the
internet.

Although Linux is completely free an open, hackers and crackers and
viruses have not been the problem that continues to plague DOS/Windows.
So far, at least. You're actually mileage may vary in the future, of
course; but it isn't likely to be drastically worse.

--------------------------------------------------------------------------------

Getting Help
The primary source of getting information related to Linux is the Linux
Documentation Project at
http://sunsite.unc.edu/LDP/ Here you'll find all the HOWTOs mini-HOWTOs,
and FAQ you'll ever need for Intel based Linux.
The first thing you should do when encountering a problem is consult the
various sources of information listed in Appendix A of the textbook.
These documents were laboriously written for people who need help with
the Linux system.

In most cases, it is preferable to do as much independent research and
investigation into the problem as possible before seeking outside help.
After all, you asked for it, by running Linux in the first place!
Remember that Linux is all about hacking and fixing problems yourself.
It is not a commercial operating system, nor does it try to look like
one. Hacking won't kill you. In fact, it will teach you a great deal
about the system to investigate and solve problems yourself, maybe even
enough to one day call yourself a Linux guru. Learn to appreciate the
value of hacking the system, and how to fix problems yourself.

When encountering a problem, do not rush immediately to the nearest
terminal and post a message to one of the Linux Usenet newsgroups or
mailing lists. First, attempt to resolve the problem yourself and be
absolutely certain what the problem is. Many times, solutions to common
problems are readily found in documentation, or have already been
answered in previous posts. Check the documentation first, then check
the archives at http://www.dejanews.com/ before you post.

When posting, remember that the people reading your post are not there
to help you. The network is not your personal consulting service.
Therefore, it is important to remain as polite, terse, and informative
as possible.

You should include as much relevant information about your system and
your problem as possible: what software you are using, what you have
attempted to do so far and what the results were. When including
technical information, it is usually a good idea to include general
information on the version(s) of your software (Linux kernel version,
for example), as well as a brief summary of your hardware configuration;
just make sure that it is relevant to the problem.

The Internet is an excellent way to get help with your Linux problems,
but it is important to know how to use it effectively.

--------------------------------------------------------------------------------

Assignments
Textbook, Running Linux:

Preface, p.xi-xviii

Chapter 1: Introduction to Linux, p.1-30 (stop at Hardware Requirements)

Appendix E: Licenses, p.584-593

Appendix A: Sources of Linux Information, p.555-558
Online:

(Only those URLs at www.li.org, www.ssc.com, sunsite.unc.edu, and
www.linux.org are required (*); the rest are entirely optional.)

Some history and background:

http://www-wks.acs.ohio-state.edu/unix_course/intro-2.html - UNIX

http://www.ora.com/oracom/unix/history.html - A brief history of UNIX

ftp://ftp.stratus.com/pub/vos/multics/tvv/general.html - Multics

http://cm.bell-labs.com/cm/cs/who/dmr/hist.html - Dennis Ritchie on UNIX

On the Early History and Impact of Unix Tools to Build the Tools for a
New Millenium - http://www.columbia.edu/~rh120/ch106.x09 (draft chapter
from Michael and Ronda Hauben's netbook titled "Netizens: On the History
and Impact of Usenet and the Internet")

http://www.cs.vu.nl/~ast/minix.html - Minix

http://www.unix-wizards.com/linux.html - Linux

http://www.acsu.buffalo.edu/~thies/Linux/Time_Line.html - Linux Time
Line

* http://www.ssc.com/linux-int/Introduction/linux.html - What is Linux?

* http://www.ssc.com/linux-int/Introduction/features.html - Linux
Features

* http://www.ssc.com/linux-int/Introduction/capabilities.html - What can
it do?

* http://www.li.org/Introduction/capabilities.html - What can Linux do?

* http://www.li.org/Introduction/history.html - Linus Torvalds on Linux

http://www.gnu.org/gnu/gnu-history.html - History of the GNU Project

http://www.gnu.org/gnu/manifesto.html - GNU Manifesto

http://www.gnu.org/copyleft/copyleft.html - GNU Copyleft

http://www.freebsd.org/ - FreeBSD

http://www.xfree86.org/FAQ/index.html - XFree86 FAQ

http://cesdis.gsfc.nasa.gov/linux/beowulf/beowulf.html - Project Beowulf
Some Linux Documentation Project documents to begin with:

* http://sunsite.unc.edu/LDP/HOWTO/META-FAQ.html - Linux META-FAQ

* http://sunsite.unc.edu/LDP/HOWTO/INFO-SHEET.html - Linux INFO-SHEET

* http://sunsite.unc.edu/LDP/HOWTO/HOWTO-INDEX.html - Linux HOWTO Index

* http://sunsite.unc.edu/LDP/LDP-Manifesto.html - LDP Manifesto

* http://sunsite.unc.edu/LDP/LDP-COPYRIGHT.html - LDP Copying License
Some additional information:

http://www.cl.cam.ac.uk/users/iwj10/linux-faq/ - Linux FAQ
Finding a Linux Users Group near you:

* http://sunsite.unc.edu/LDP/lugs.html - Linux Users Groups

* http://www.linux.org/users/groups/usa/index.html - United States LUGs

* http://www.nllgg.nl/lugww/ - LUG List Overview
Some Newsgroups to begin monitoring:

comp.os.linux.announce

comp.os.linux.answers

comp.os.linux.hardware

comp.os.linux.setup

Go to Basic Linux Index

--------------------------------------------------------------------------------

http://home1.gte.net/henryw/basic/basic01.html

Date last revised: 18 January 1998

--------------------------------------------------------------------------------

Copyright © 1997, 1998 Henry White. All Rights Reserved.
Reproduction or redistribution without prior written consent is
prohibited.
Address reprint requests and other inquiries to henryw@gte.net.

--------------------------------------------------------------------------------

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com