mirror of https://github.com/tLDP/LDP
729 lines
40 KiB
XML
729 lines
40 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<chapter id="chap_01"><title>What is Linux?</title>
|
|
|
|
<abstract>
|
|
<para>We will start with an overview of how Linux became the operating system
|
|
it is today. We will discuss past and future development and take a closer look
|
|
at the advantages and disadvantages of this system. We will talk about
|
|
distributions, about Open Source in general and try to explain a little
|
|
something about GNU.</para>
|
|
<para>This chapter answers questions like:</para>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem><para>What is Linux?
|
|
</para></listitem>
|
|
<listitem><para>Where and how did Linux start?
|
|
</para></listitem>
|
|
<listitem><para>Isn't Linux that system where everything is done in text mode?
|
|
</para></listitem>
|
|
<listitem><para>Does Linux have a future or is it just hype?
|
|
</para></listitem>
|
|
<listitem><para>What are the advantages of using Linux?
|
|
</para></listitem>
|
|
<listitem><para>What are the disadvantages?
|
|
</para></listitem>
|
|
<listitem><para>What kinds of Linux are there and how do I choose the one that
|
|
fits me?
|
|
</para></listitem>
|
|
<listitem><para>What are the Open Source and GNU movements?
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</abstract>
|
|
|
|
<sect1 id="sect_01_01">
|
|
<title>History</title>
|
|
|
|
<sect2 id="sect_01_01_01"><title>UNIX</title>
|
|
<para>
|
|
In order to understand the popularity of Linux, we need to travel back in time,
|
|
about 30 years ago...
|
|
</para>
|
|
<para>Imagine computers<indexterm><primary>Linux</primary><secondary>origin</secondary></indexterm> as big as houses, even stadiums. While the sizes of
|
|
those computers posed substantial problems, there was one thing that made this
|
|
even worse: every computer had a different operating system. Software was
|
|
always customized to serve a specific purpose, and software for one given system
|
|
didn't run on another system. Being able to work with one system didn't
|
|
automatically mean that you could work with another. It was difficult, both
|
|
for the users and the system administrators.
|
|
</para>
|
|
<para>Computers were extremely expensive then, and sacrifices had to be made
|
|
even after the original purchase just to get the users to understand how they
|
|
worked. The total cost per unit of computing power was enormous.
|
|
</para>
|
|
<para>Technologically the world was not quite that advanced, so they had to live
|
|
with the size for another decade. In 1969, a team of developers in the Bell
|
|
Labs laboratories started working on a solution for the software problem, to
|
|
address these compatibility issues. They developed a new operating<indexterm><primary>UNIX</primary><secondary>origin</secondary></indexterm> system,
|
|
which was
|
|
</para>
|
|
<orderedlist>
|
|
<listitem><para>Simple and elegant.
|
|
</para></listitem>
|
|
<listitem><para>Written in the C programming language instead of in assembly
|
|
code.
|
|
</para></listitem>
|
|
<listitem><para>Able to recycle code.
|
|
</para></listitem>
|
|
</orderedlist>
|
|
|
|
<para>The Bell Labs developers named their project <quote>UNIX.</quote></para>
|
|
<para>
|
|
The code recycling features were very important. Until then, all commercially
|
|
available computer systems were written in a code specifically developed for one
|
|
system. UNIX on the other hand needed only a small piece of that special code,
|
|
which is now commonly named the kernel. This kernel is the only piece of code
|
|
that needs to be adapted for every specific system and forms the base of the
|
|
UNIX system. The operating system and all other functions were built around
|
|
this kernel and written in a higher programming language, C. This language was
|
|
especially developed for creating the UNIX system. Using this new technique, it
|
|
was much easier to develop an operating system that could run on many different
|
|
types of hardware.
|
|
</para>
|
|
<para>The software vendors were quick to adapt, since they could sell ten times
|
|
more software almost effortlessly. Weird new situations came in existence:
|
|
imagine for instance computers from different vendors communicating in the same
|
|
network, or users working on different systems without the need for extra
|
|
education to use another computer. UNIX did a great deal to help users become
|
|
compatible with different systems.
|
|
</para>
|
|
<para>Throughout the next couple of decades the development of UNIX continued.
|
|
More things became possible to do and more hardware and software vendors added
|
|
support for UNIX to their products.
|
|
</para>
|
|
<para>UNIX was initially found only in very large environments with mainframes
|
|
and minicomputers (note that a PC is a <quote>micro</quote> computer). You had
|
|
to work at a university, for the government or for large financial corporations
|
|
in order to get your hands on a UNIX system.
|
|
</para>
|
|
<para>But smaller computers were being developed, and by the end of the 80's,
|
|
many people had home computers. By that time, there were several versions of
|
|
UNIX available for the PC architecture, but none of them were truly free and more important: they were all terribly slow, so most people ran MS DOS or Windows 3.1 on their home PCs.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="sect_01_01_02"><title>Linus and Linux</title>
|
|
<para>By the beginning of the 90s home PCs were finally powerful enough to run a full blown UNIX. Linus<indexterm><primary>Linus</primary><secondary>creator</secondary></indexterm> Torvalds, a young man studying computer science at the university of
|
|
Helsinki, thought it would be a good idea to have some sort of freely available
|
|
academic version of UNIX, and promptly started to code.
|
|
</para>
|
|
<para>He started to ask questions, looking for answers and solutions that would
|
|
help him get UNIX on his PC. Below is one of his first posts in comp.os.minix,
|
|
dating from 1991:
|
|
</para>
|
|
<screen>
|
|
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
|
|
Newsgroups: comp.os.minix
|
|
Subject: Gcc-1.40 and a posix-question
|
|
Message-ID: <1991Jul3.100050.9886@klaava.Helsinki.FI>
|
|
Date: 3 Jul 91 10:00:50 GMT
|
|
Hello netlanders,
|
|
Due to a project I'm working on (in minix), I'm interested in the posix
|
|
standard definition. Could somebody please point me to a (preferably)
|
|
machine-readable format of the latest posix rules? Ftp-sites would be
|
|
nice.
|
|
</screen>
|
|
<para>From the start, it was Linus' goal to have a free system<indexterm><primary>Linux</primary><secondary>goals</secondary></indexterm> that was
|
|
completely compliant with the original UNIX. That is why he asked for POSIX
|
|
standards, POSIX still being the standard for UNIX.
|
|
</para>
|
|
<para>In those days plug-and-play wasn't invented yet, but so many people were
|
|
interested in having a UNIX system of their own, that this was only a small
|
|
obstacle. New drivers became available for all kinds of new hardware, at a
|
|
continuously rising speed. Almost as soon as a new piece of hardware became
|
|
available, someone bought it and submitted it to the Linux test, as the system
|
|
was gradually being called, releasing more free code for an ever wider range of
|
|
hardware. These coders didn't stop at their PC's; every piece of hardware they
|
|
could find was useful for Linux.</para>
|
|
<para>Back then, those people were called <quote>nerds</quote> or
|
|
<quote>freaks</quote>, but it didn't matter to them, as long as the supported
|
|
hardware list grew longer and longer. Thanks to these people, Linux is now not
|
|
only ideal to run on new PC's, but is also the system of choice for old and
|
|
exotic hardware that would be useless if Linux didn't exist.
|
|
</para>
|
|
<para>Two years after Linus' post, there were 12000 Linux users. The project,
|
|
popular with hobbyists, grew steadily, all the while staying within the bounds
|
|
of the POSIX standard. All the features of UNIX were added over the next couple
|
|
of years, resulting in the mature operating system Linux has become today.
|
|
Linux is a full UNIX clone, fit for use on workstations as well as on
|
|
middle-range and high-end servers. Today, a lot of the important players on the
|
|
hard- and software market each have their team of Linux developers; at your
|
|
local dealer's you can even buy pre-installed Linux systems with official
|
|
support - eventhough there is still a lot of hard- and software that is not supported, too.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="sect_01_01_03">
|
|
<title>Current application of Linux systems</title>
|
|
<para>Today Linux<indexterm><primary>Linux</primary><secondary>applications</secondary></indexterm> has joined the desktop market. Linux developers concentrated
|
|
on networking and services in the beginning, and office applications have been
|
|
the last barrier to be taken down. We don't like to admit that Microsoft is
|
|
ruling this market, so plenty of alternatives have been started over the last
|
|
couple of years to make Linux an acceptable choice as a workstation, providing
|
|
an easy user interface and MS compatible office applications like word
|
|
processors, spreadsheets, presentations and the like.
|
|
</para>
|
|
<para>On the server side, Linux is well-known as a stable and reliable platform,
|
|
providing database and trading services for companies like Amazon, the
|
|
well-known online bookshop, US Post Office, the German army and many others.
|
|
Especially Internet providers and Internet service providers have grown fond of
|
|
Linux as firewall, proxy- and web server, and you will find a Linux box within
|
|
reach of every UNIX system administrator who appreciates a comfortable
|
|
management station. Clusters of Linux machines are used in the creation of
|
|
movies such as <quote>Titanic</quote>, <quote>Shrek</quote> and others. In
|
|
post offices, they are the nerve centers that route mail and in large search
|
|
engine, clusters are used to perform internet searches.These are only a few of
|
|
the thousands of heavy-duty jobs that Linux is performing day-to-day across the
|
|
world.
|
|
</para>
|
|
<para>It is also worth to note that modern Linux not only runs on workstations,
|
|
mid- and high-end servers, but also on <quote>gadgets</quote> like PDA's,
|
|
mobiles, a shipload of embedded applications and even on experimental
|
|
wristwatches. This makes Linux the only operating system in the world covering
|
|
such a wide range of hardware.</para>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="sect_01_02">
|
|
<title>The user interface</title>
|
|
|
|
<sect2 id="sect_01_02_01">
|
|
<title>Is Linux difficult?</title>
|
|
<para>Whether Linux is difficult<indexterm><primary>Linux</primary><secondary>user interface</secondary></indexterm> to learn depends on the person you're asking.
|
|
Experienced UNIX users will say no, because Linux is an ideal operating system
|
|
for power-users and programmers, because it has been and is being developed by
|
|
such people.
|
|
</para>
|
|
<para>Everything a good programmer can wish for is available: compilers,
|
|
libraries, development and debugging tools. These packages come with every
|
|
standard Linux distribution. The C-compiler is included for free - as opposed to many UNIX distributions demanding licensing fees for this tool. All the
|
|
documentation and manuals are there, and examples are often included to help you
|
|
get started in no time. It feels like UNIX and switching between UNIX and
|
|
Linux is a natural thing.
|
|
</para>
|
|
<para>In the early days of Linux, being an expert was kind of required to start
|
|
using the system. Those who mastered Linux felt better than the rest of the
|
|
<quote>lusers</quote> who hadn't seen the light yet. It was common practice to
|
|
tell a beginning user to <quote>RTFM</quote> (read the manuals). While the
|
|
manuals were on every system, it was difficult to find the documentation, and
|
|
even if someone did, explanations were in such technical terms that the new user
|
|
became easily discouraged from learning the system.
|
|
</para>
|
|
<para>The Linux-using community started to realize that if Linux was ever to be
|
|
an important player on the operating system market, there had to be some serious
|
|
changes in the accessibility of the system.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="sect_01_02_02">
|
|
<title>Linux for non-experienced users</title>
|
|
<para>Companies such as RedHat, SuSE and Mandriva have sprung up, providing
|
|
packaged Linux distributions suitable for mass consumption. They integrated a
|
|
great deal of graphical user interfaces<indexterm><primary>Linux</primary><secondary>ease of use</secondary></indexterm> (GUIs<indexterm><primary>GUI</primary></indexterm>), developed by the community, in
|
|
order to ease management of programs and services. As a Linux user today you
|
|
have all the means of getting to know your system inside out, but it is no
|
|
longer necessary to have that knowledge in order to make the system comply to
|
|
your requests.
|
|
</para>
|
|
<para>Nowadays you can log in graphically and start all required applications
|
|
without even having to type a single character, while you still have the ability
|
|
to access the core of the system if needed. Because of its structure, Linux
|
|
allows a user to grow into the system: it equally fits new and experienced
|
|
users. New users are not forced to do difficult things, while experienced users
|
|
are not forced to work in the same way they did when they first started learning
|
|
Linux.
|
|
</para>
|
|
<para>While development in the service area continues, great things are being
|
|
done for desktop<indexterm><primary>desktop</primary><secondary>development</secondary></indexterm> users, generally considered as the group least likely to know
|
|
how a system works. Developers of desktop applications are making incredible
|
|
efforts to make the most beautiful desktops you've ever seen, or to make your
|
|
Linux machine look just like your former MS Windows or an Apple workstation.
|
|
The latest developments also include 3D acceleration support and support for USB
|
|
devices, single-click updates of system and packages, and so on. Linux has
|
|
these, and tries to present all available services in a logical form that
|
|
ordinary people can understand. Below is a short list containing some great
|
|
examples; these sites have a lot of screenshots that will give you a glimpse of
|
|
what Linux on the desktop<indexterm><primary>desktop</primary><secondary>look and feel</secondary></indexterm> can be like:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem><para><ulink url="http://www.gnome.org" />
|
|
</para></listitem>
|
|
<listitem><para><ulink url="http://kde.org/screenshots/" />
|
|
</para></listitem>
|
|
<listitem><para><ulink url="http://www.openoffice.org" />
|
|
</para></listitem>
|
|
<listitem><para><ulink url="http://www.mozilla.org" /></para></listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="sect_01_03"><title>Does Linux have a future?</title>
|
|
<sect2 id="sect_01_03_01"><title>Open Source</title>
|
|
<para>The idea behind Open Source<indexterm><primary>Open Source</primary><secondary>what is it?</secondary></indexterm> software is rather simple: when programmers
|
|
can read, distribute and change code, the code will mature. People can adapt
|
|
it, fix it, debug it, and they can do it at a speed that dwarfs the performance
|
|
of software developers at conventional companies. This software will be more
|
|
flexible and of a better quality than software that has been developed using
|
|
the conventional channels, because more people have tested it in more different
|
|
conditions than the closed software developer ever can.
|
|
</para>
|
|
<para>The Open Source<indexterm><primary>Open Source</primary><secondary>achievements</secondary></indexterm> initiative started to make this clear to the commercial
|
|
world, and very slowly, commercial vendors are starting to see the point. While
|
|
lots of academics and technical people have already been convinced for 20 years
|
|
now that this is the way to go, commercial vendors needed applications like the
|
|
Internet to make them realize they can profit from Open Source. Now Linux has
|
|
grown past the stage where it was almost exclusively an academic system, useful
|
|
only to a handful of people with a technical background. Now Linux provides
|
|
more than the operating system: there is an entire infrastructure supporting the
|
|
chain of effort of creating an operating system, of making and testing programs
|
|
for it, of bringing everything to the users, of supplying maintenance, updates
|
|
and support and customizations, etcetera. Today, Linux is ready to accept the
|
|
challenge of a fast-changing world.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 id="sect_01_03_02"><title>Ten years of experience at your service</title>
|
|
<para>While Linux is probably the most well-known Open Source initiative, there
|
|
is another project that contributed enormously to the popularity of the Linux
|
|
operating system. This project is called SAMBA<indexterm><primary>Open Source</primary><secondary>other projects</secondary></indexterm>, and its achievement is the
|
|
reverse engineering of the Server Message Block (SMB)/Common Internet File
|
|
System (CIFS) protocol used for file- and print-serving on PC-related machines,
|
|
natively supported by MS Windows NT and OS/2, and Linux. Packages are now
|
|
available for almost every system and provide interconnection solutions in mixed
|
|
environments using MS Windows protocols: Windows-compatible (up to and includingWinXP) file- and print-servers.
|
|
</para>
|
|
<para>Maybe even more successful than the SAMBA project is the Apache HTTP
|
|
server project. The server runs on UNIX, Windows NT and many other operating
|
|
systems. Originally known as <quote>A PAtCHy server</quote>, based on existing
|
|
code and a series of <quote>patch files</quote>, the name for the matured code
|
|
deserves to be connoted with the native American tribe of the Apache, well-known
|
|
for their superior skills in warfare strategy and inexhaustible endurance.
|
|
Apache has been shown to be substantially faster, more stable and more
|
|
feature-full than many other web servers. Apache is run on sites that get
|
|
millions of visitors per day, and while no official support is provided by the
|
|
developers, the Apache user community provides answers to all your questions.
|
|
Commercial support is now being provided by a number of third parties.
|
|
</para>
|
|
<para>In the category of office applications, a choice of <application>MS Office<indexterm><primary>desktop</primary><secondary>office</secondary></indexterm></application> suite clones
|
|
is available, ranging from partial to full implementations of the applications
|
|
available on MS Windows workstations. These initiatives helped a great deal to
|
|
make Linux acceptable for the desktop market, because the users don't need extra
|
|
training to learn how to work with new systems. With the desktop comes the
|
|
praise of the common users, and not only their praise, but also their specific
|
|
requirements, which are growing more intricate and demanding by the day.
|
|
</para>
|
|
<para>The Open Source<indexterm><primary>Open Source</primary><secondary>community</secondary></indexterm> community, consisting largely of people who have been
|
|
contributing for over half a decade, assures Linux' position as an important
|
|
player on the desktop market as well as in general IT application. Paid
|
|
employees and volunteers alike are working diligently so that Linux can maintain
|
|
a position in the market. The more users, the more questions. The Open Source
|
|
community makes sure answers keep coming, and watches the quality of the answers
|
|
with a suspicious eye, resulting in ever more stability and accessibility.
|
|
</para>
|
|
<para>Listing all the available Linux software is beyond the scope of this
|
|
guide, as there are tens of thousands of packages. Throughout this course we
|
|
will present you with the most common packages, which are almost all freely
|
|
available. In order to take away some of the fear of the beginning user, here's
|
|
a screenshot of one of your most-wanted programs. You can see for yourself that
|
|
no effort has been spared to make users who are switching from Windows feel at
|
|
home:
|
|
</para>
|
|
|
|
<figure><title>OpenOffice MS-compatible Spreadsheet</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata fileref="images/openoffice.png" format="PNG"></imagedata>
|
|
</imageobject>
|
|
<imageobject>
|
|
<imagedata fileref="images/openoffice.eps" format="EPS"></imagedata>
|
|
</imageobject>
|
|
<textobject>
|
|
<phrase>OpenOffice spreadsheet looks just like MS Office .xls file.</phrase>
|
|
</textobject>
|
|
</mediaobject>
|
|
</figure>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="sect_01_04"><title>Properties of Linux</title>
|
|
|
|
<sect2 id="sect_01_04_01"><title>Linux Pros</title>
|
|
|
|
<para>A lot of the advantages<indexterm><primary>Linux</primary><secondary>advantages</secondary></indexterm> of Linux are a consequence of Linux' origins,
|
|
deeply rooted in UNIX, except for the first advantage<indexterm><primary>Linux</primary><secondary>properties</secondary></indexterm>, of course:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Linux is free:</para>
|
|
<para>As in free beer<indexterm><primary>Linux</primary><secondary>free</secondary></indexterm>, they say. If you want to spend absolutely nothing, you
|
|
don't even have to pay the price of a CD. Linux can be downloaded in its
|
|
entirety from the Internet completely for free. No registration fees, no costs
|
|
per user, free updates, and freely available source code in case you want to
|
|
change the behavior of your system.
|
|
</para>
|
|
<para>Most of all, Linux is free as in free speech:</para>
|
|
<para>The license commonly used is the GNU Public License<indexterm><primary>GNU</primary><secondary>public license</secondary></indexterm> (GPL<indexterm><primary>GPL</primary></indexterm>). The license
|
|
says that anybody who may want to do so, has the right to change Linux and
|
|
eventually to redistribute a changed version, on the one condition that the code
|
|
is still available after redistribution. In practice, you are free to grab a
|
|
kernel image, for instance to add support for teletransportation machines or
|
|
time travel and sell your new code, as long as your customers can still have a
|
|
copy of that code.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Linux is portable to any hardware platform:</para>
|
|
<para>A vendor who wants to sell a new type of computer and who doesn't know
|
|
what kind of OS his new machine will run (say the CPU in your car or washing
|
|
machine), can take a Linux kernel and make it work<indexterm><primary>Linux</primary><secondary>portability</secondary></indexterm> on his hardware, because
|
|
documentation related to this activity is freely available.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Linux was made to keep on running:</para>
|
|
<para>As with UNIX<indexterm><primary>Linux</primary><secondary>robustness</secondary></indexterm>, a Linux system expects to run without rebooting all the
|
|
time. That is why a lot of tasks are being executed at night or scheduled
|
|
automatically for other calm moments, resulting in higher availability during
|
|
busier periods and a more balanced use of the hardware. This property allows
|
|
for Linux to be applicable also in environments where people don't have the time
|
|
or the possibility to control their systems night and day.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Linux is secure and versatile:</para>
|
|
<para>The security model used in Linux<indexterm><primary>Linux</primary><secondary>security</secondary></indexterm> is based on the UNIX idea of security,
|
|
which is known to be robust and of proven quality. But Linux is not only fit
|
|
for use as a fort against enemy attacks from the Internet: it will adapt
|
|
equally to other situations, utilizing the same high standards for security.
|
|
Your development machine or control station will be as secure as your firewall.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Linux is scalable:</para>
|
|
<para>From a Palmtop with 2 MB of memory to a petabyte storage cluster with
|
|
hundreds of nodes<indexterm><primary>Linux</primary><secondary>scalability</secondary></indexterm>: add or remove the appropriate packages and Linux fits all.
|
|
You don't need a supercomputer anymore, because you can use Linux to do big
|
|
things using the building blocks provided with the system. If you want to do
|
|
little things, such as making an operating system for an embedded processor or
|
|
just recycling your old 486, Linux will do that as well.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The Linux OS and most Linux applications have very short debug-times:
|
|
</para>
|
|
<para>Because Linux<indexterm><primary>Linux</primary><secondary>bugs</secondary></indexterm> has been developed and tested by thousands of people, both
|
|
errors and people to fix them are usually found rather quickly. It sometimes happens that
|
|
there are only a couple of hours between discovery and fixing of a bug.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
|
|
<sect2 id="sect_01_04_02"><title>Linux Cons</title>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>There are far too many different<indexterm><primary>Linux</primary><secondary>disadvantages</secondary></indexterm> distributions:</para>
|
|
<para><quote>Quot capites, tot rationes</quote>, as the Romans already said: the more
|
|
people, the more opinions. At first glance, the amount of Linux distributions
|
|
can be frightening, or ridiculous, depending on your point of view. But it also
|
|
means that everyone will find what he or she needs. You don't need to be an
|
|
expert to find a suitable release.
|
|
</para>
|
|
<para>When asked, generally every Linux user will say that the best distribution
|
|
is the specific version he is using. So which one should you choose? Don't
|
|
worry too much about that: all releases contain more or less the same set of
|
|
basic packages. On top of the basics, special third party software is added
|
|
making, for example, TurboLinux more suitable for the small and medium
|
|
enterprise, RedHat for servers and SuSE for workstations. However, the
|
|
differences are likely to be very superficial. The best strategy is to test a
|
|
couple of distributions; unfortunately not everybody has the time for this.
|
|
Luckily, there is plenty of advice on the subject of choosing your Linux.
|
|
A quick search on <ulink url="http://www.google.com/linux">Google</ulink>, using the keywords <quote>choosing your distribution</quote> brings up tens of
|
|
links to good advise.
|
|
The <ulink url="http://www.tldp.org/HOWTO/Installation-HOWTO/">
|
|
Installation HOWTO</ulink> also discusses choosing your distribution.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Linux is not very user friendly and confusing for beginners:
|
|
</para>
|
|
<para>
|
|
It must be said that Linux, at least the core system, is less userfriendly to use than MS Windows and certainly more difficult than MacOS, but...
|
|
In light of its popularity, considerable effort has been made to make Linux
|
|
even easier to use, especially for new users. More information is being released
|
|
daily, such as this guide, to help fill the gap for documentation available to
|
|
users at all levels.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Is an Open Source product trustworthy?</para>
|
|
<para>How can something that is free also be reliable<indexterm><primary>Open Source</primary><secondary>reliability</secondary></indexterm>? Linux users have the
|
|
choice whether to use Linux or not, which gives them an enormous advantage
|
|
compared to users of proprietary software, who don't have that kind of freedom.
|
|
After long periods of testing, most Linux users come to the conclusion that
|
|
Linux is not only as good, but in many cases better and faster that the
|
|
traditional solutions. If Linux were not trustworthy, it would have been long
|
|
gone, never knowing the popularity it has now, with millions of users. Now
|
|
users can influence their systems and share their remarks with the community,
|
|
so the system gets better and better every day. It is a project that is never
|
|
finished, that is true, but in an ever changing environment, Linux is also a
|
|
project that continues to strive for perfection.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="sect_01_05"><title>Linux Flavors</title>
|
|
<sect2 id="sect_01_05_01"><title>Linux and GNU</title>
|
|
|
|
<para>
|
|
Although there are a large number of Linux implementations, you will find a lot
|
|
of similarities in the different distributions, if only because every Linux
|
|
machine is a box with building blocks that you may put together following your
|
|
own needs and views. Installing the system is only the beginning of a longterm
|
|
relationship. Just when you think you have a nice running system, Linux will
|
|
stimulate your imagination and creativeness, and the more you realize what
|
|
power the system can give you, the more you will try to redefine its limits.
|
|
</para>
|
|
<para>Linux may appear different depending on the distribution<indexterm><primary>Linux</primary><secondary>distributions</secondary></indexterm>, your hardware
|
|
and personal taste, but the fundamentals on which all graphical and other
|
|
interfaces are built, remain the same. The Linux system is based on GNU<indexterm><primary>GNU</primary><secondary>tools</secondary></indexterm> tools
|
|
(Gnu's Not UNIX<indexterm><primary>GNU</primary></indexterm>), which provide a set of standard ways to handle and use the
|
|
system. All GNU tools are open source, so they can be installed on any system.
|
|
Most distributions offer pre-compiled packages of most common tools, such as RPM
|
|
packages on RedHat and Debian packages (also called deb or dpkg) on Debian, so you needn't be a programmer
|
|
to install a package on your system. However, if you are and like doing things
|
|
yourself, you will enjoy Linux all the better, since most distributions come
|
|
with a complete set of development tools, allowing installation of new software
|
|
purely from source code. This setup also allows you to install software even if
|
|
it does not exist in a pre-packaged form suitable for your system.
|
|
</para>
|
|
<para>A list of common GNU<indexterm><primary>GNU</primary><secondary>examples</secondary></indexterm> software:</para>
|
|
<itemizedlist>
|
|
<listitem><para><application>Bash</application>: The GNU shell
|
|
</para></listitem>
|
|
<listitem><para><application>GCC</application>: The GNU C Compiler
|
|
</para></listitem>
|
|
<listitem><para><application>GDB</application>: The GNU Debugger
|
|
</para></listitem>
|
|
<listitem><para><application>Coreutils</application>: a set of basic UNIX-style utilities, such as <command>ls</command>, <command>cat</command> and <command>chmod</command></para></listitem>
|
|
<listitem><para><application>Findutils</application>: to search and find files
|
|
</para></listitem>
|
|
<listitem><para><application>Fontutils</application>: to convert fonts from one format to another or make
|
|
new fonts
|
|
</para></listitem>
|
|
<listitem><para><application>The Gimp</application>: GNU Image Manipulation Program
|
|
</para></listitem>
|
|
<listitem><para><application>Gnome</application>: the GNU desktop environment
|
|
</para></listitem>
|
|
<listitem><para><application>Emacs</application>: a very powerful editor
|
|
</para></listitem>
|
|
<listitem><para><application>Ghostscript</application> and <application>Ghostview</application>: interpreter and graphical frontend
|
|
for PostScript files.
|
|
</para></listitem>
|
|
<listitem><para><application>GNU Photo</application>: software for interaction with digital cameras
|
|
</para></listitem>
|
|
<listitem><para><application>Octave</application>: a programming language, primarily intended to perform numerical computations and image processing.
|
|
</para></listitem>
|
|
<listitem><para><application>GNU SQL</application>: relational database system
|
|
</para></listitem>
|
|
<listitem><para><application>Radius</application>: a remote authentication and accounting server
|
|
</para></listitem>
|
|
<listitem><para>...
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
<para>Many commercial applications are available for Linux, and for more
|
|
information about these packages we refer to their specific documentation.
|
|
Throughout this guide we will only discuss freely available software, which
|
|
comes (in most cases) with a GNU license.
|
|
</para>
|
|
<para>To install missing<indexterm><primary>installing software</primary><secondary>package managers</secondary></indexterm> or new packages, you will need some form of software
|
|
management. The most common implementations include RPM and dpkg. RPM is the RedHat Package Manager, which is used on a variety of Linux
|
|
systems, eventhough the name does not suggest this. Dpkg is the Debian package
|
|
management system, which uses an interface called <command>apt-get</command>,
|
|
that can manage RPM packages as well. <application>Novell Ximian Red Carpet</application> is a third party
|
|
implementation of RPM with a graphical front-end. Other third party software
|
|
vendors may have their own installation procedures, sometimes resembling the
|
|
InstallShield and such, as known on MS Windows and other platforms. As you
|
|
advance into Linux, you will likely get in touch with one or more of these
|
|
programs.
|
|
</para>
|
|
</sect2>
|
|
<sect2 id="sect_01_05_02"><title>GNU/Linux</title>
|
|
<para>The Linux kernel (the <emphasis>bones</emphasis> of your system, see
|
|
<xref linkend="sect_03_02_03_01" />) is not part of the GNU<indexterm><primary>GNU</primary><secondary>GNU/Linux</secondary></indexterm> project but uses the
|
|
same license as GNU software. A great majority of utilities and development
|
|
tools (the <emphasis>meat</emphasis> of your system), which are not
|
|
Linux-specific, are taken from the GNU project. Because any usable system must
|
|
contain both the kernel and at least a minimal set of utilities, some people
|
|
argue that such a system should be called a <emphasis>GNU/Linux</emphasis>
|
|
system.
|
|
</para>
|
|
<para>In order to obtain the highest possible degree of independence between
|
|
distributions, this is the sort of Linux that we will discuss throughout this
|
|
course. If we are not talking about a GNU/Linux system, the specific
|
|
distribution, version or program name will be mentioned.
|
|
</para>
|
|
</sect2>
|
|
<sect2 id="sect_01_05_03"><title>Which distribution should I install?</title>
|
|
<para>Prior to installation<indexterm><primary>distributions</primary><secondary>how to chose?</secondary></indexterm>, the most important factor is your hardware. Since
|
|
every Linux distribution contains the basic packages and can be built to meet
|
|
almost any requirement (because they all use the Linux kernel), you only need to
|
|
consider if the distribution will run on your hardware. LinuxPPC for example
|
|
has been made to run on Apple and other PowerPCs and does not run on an
|
|
ordinary x86 based PC. LinuxPPC does run on the new Macs, but you can't use it
|
|
for some of the older ones with ancient bus technology. Another tricky case is
|
|
Sun hardware, which could be an old SPARC CPU or a newer UltraSparc, both
|
|
requiring different versions of Linux.</para>
|
|
<para>Some Linux distributions are optimized for certain processors, such as
|
|
Athlon CPUs, while they will at the same time run decent enough on the standard
|
|
486, 586 and 686 Intel processors. Sometimes distributions for special CPUs
|
|
are not as reliable, since they are tested by fewer people.
|
|
</para>
|
|
<para>Most Linux distributions offer a set of programs for generic PCs with
|
|
special packages containing optimized kernels for the x86 Intel based CPUs.
|
|
These distributions are well-tested and maintained on a regular basis, focusing
|
|
on reliant server implementation and easy installation and update procedures.
|
|
Examples are Debian, Ubuntu, Fedora, SuSE and Mandriva, which are by far the most popular Linux
|
|
systems and generally considered easy to handle for the beginning user, while
|
|
not blocking professionals from getting the most out of their Linux machines.
|
|
Linux also runs decently on laptops and middle-range servers. Drivers for new
|
|
hardware are included only after extensive testing, which adds to the stability
|
|
of a system.</para>
|
|
<para>While the standard desktop might be <application>Gnome</application><indexterm><primary>desktop</primary><secondary>types</secondary></indexterm> on one system, another might
|
|
offer <application>KDE</application> by default. Generally, both <application>Gnome</application> and <application>KDE</application> are available for all major Linux distributions. Other window and desktop managers are available for more advanced users.</para>
|
|
<para>The standard installation process allows users to choose between different basic
|
|
setups, such as a workstation, where all packages needed for everyday use and
|
|
development are installed, or a server installation, where different network
|
|
services can be selected. Expert users can install every combination of
|
|
packages they want during the initial installation process.
|
|
</para>
|
|
<para>The goal of this guide is to apply to all Linux distributions. For your
|
|
own convenience, however, it is strongly advised that beginners stick to a
|
|
mainstream distribution<indexterm><primary>distributions</primary><secondary>mainstream</secondary></indexterm>, supporting all common hardware and applications by
|
|
default. The following are very good choices for novices:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem><para><ulink url="http://fedora.redhat.com">Fedora Core</ulink>
|
|
</para></listitem>
|
|
<listitem><para><ulink url="http://www.debian.org">Debian</ulink>
|
|
</para></listitem>
|
|
<listitem><para><ulink url="http://www.suse.de">SuSE Linux</ulink>
|
|
</para></listitem>
|
|
<listitem><para><ulink url="http://www.mandrake.com">Mandriva (former MandrakeSoft)</ulink>
|
|
</para></listitem>
|
|
<listitem><para><ulink url="http://www.knoppix.com">Knoppix</ulink>: an
|
|
operating system that runs from your CD-ROM, you don't need to install anything.
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
<para>Downloadable ISO-images<indexterm><primary>distributions</primary><secondary>ISO images</secondary></indexterm> can be obtained from <ulink url="http://www.linuxiso.org">LinuxISO.org</ulink>. The main distributions can be purchased in any decent computer shop.
|
|
</para>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="sect_01_06"><title>Summary</title>
|
|
<para>In this chapter, we learned that:</para>
|
|
<itemizedlist>
|
|
<listitem><para>Linux is an implementation of UNIX.
|
|
</para></listitem>
|
|
<listitem><para>The Linux operating system is written in the C programming
|
|
language.
|
|
</para></listitem>
|
|
<listitem><para><quote>De gustibus et coloribus non disputandum est</quote>: there's a Linux
|
|
for everyone.
|
|
</para></listitem>
|
|
<listitem><para>Linux uses GNU tools, a set of freely available standard tools
|
|
for handling the operating system.
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="sect_01_07"><title>Exercises</title>
|
|
<para>
|
|
A practical exercise for starters: install Linux on your PC. Read the
|
|
installation manual for your distribution and/or the Installation HOWTO and do
|
|
it.</para>
|
|
|
|
<note>
|
|
<title>Read the docs!</title>
|
|
<para>
|
|
Most errors stem from not reading the information provided during the install.
|
|
Reading the installation messages carefully is the first step on the road to
|
|
success.
|
|
</para>
|
|
</note>
|
|
|
|
<para>Things you must know BEFORE starting a Linux installation:
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem><para>Will this distribution run on my hardware?</para>
|
|
<para>Check with
|
|
<ulink url="http://www.tldp.org/HOWTO/Hardware-HOWTO/index.html">
|
|
http://www.tldp.org/HOWTO/Hardware-HOWTO/index.html</ulink> when in doubt
|
|
about compatibility of your hardware.
|
|
</para>
|
|
</listitem>
|
|
<listitem><para>What kind of keyboard do I have (number of keys, layout)? What
|
|
kind of mouse (serial/parallel, number of buttons)? How many MB of RAM?
|
|
</para></listitem>
|
|
<listitem><para>Will I install a basic workstation or a server, or will I need
|
|
to select specific packages myself?
|
|
</para></listitem>
|
|
<listitem><para>Will I install from my hard disk, from a CD-ROM, or using the
|
|
network? Should I adapt the BIOS for any of this? Does the installation method
|
|
require a boot disk?
|
|
</para></listitem>
|
|
<listitem><para>Will Linux be the only system on this computer, or will it be a
|
|
dual boot installation? Should I make a large partition in order to install
|
|
virtual systems later on, or is this a virtual installation itself?
|
|
</para></listitem>
|
|
<listitem><para>Is this computer in a network? What is its hostname, IP
|
|
address? Are there any gateway servers or other important networked machines
|
|
my box should communicate with?
|
|
</para>
|
|
|
|
<caution><title>Linux expects to be networked</title>
|
|
<para>Not using the network or configuring it incorrectly may result in slow
|
|
startup.
|
|
</para>
|
|
</caution>
|
|
|
|
</listitem>
|
|
<listitem><para>Is this computer a gateway/router/firewall? (If you have to
|
|
think about this question, it probably isn't.)
|
|
</para></listitem>
|
|
<listitem><para>Partitioning: let the installation program do it for you this
|
|
time, we will discuss partitions in detail in <xref linkend="chap_03" />. There
|
|
is system-specific documentation available if you want to know everything about
|
|
it. If your Linux distribution does not offer default partitioning, that probably means it is not suited for beginners.
|
|
</para></listitem>
|
|
<listitem><para>Will this machine start up in text mode or in graphical mode?
|
|
</para></listitem>
|
|
<listitem><para>Think of a good password for the administrator of this machine
|
|
(root). Create a non-root user account (non-privileged access to the system).
|
|
</para></listitem>
|
|
<listitem><para>Do I need a rescue disk? (recommended)
|
|
</para></listitem>
|
|
<listitem><para>Which languages do I want?
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
<para>The full checklist can be found at
|
|
<ulink url="http://www.tldp.org/HOWTO/Installation-HOWTO/index.html">
|
|
http://www.tldp.org/HOWTO/Installation-HOWTO/index.html</ulink>.
|
|
</para>
|
|
<para>In the following chapters we will find out if the installation has been
|
|
successful.
|
|
</para>
|
|
|
|
</sect1>
|
|
</chapter>
|