Homepage (in German) last page: eMail (in German) next page: yapm email

The GNU Project

a report by Tobias Rapp

 

 

Who doesn`t know this: you have bought a computer, paid about 500DM for good software and then you get errors over errors. Your MS-Word crashes if you load a document with more than 50 pages, Windows hangs if you put out the floppydisk too early, and Photoshop demands a new driver for your scanner but CorelDraw won`t even start with it. How about improving Windows or applications and fixing these bugs ? But that`s impossible - you haven`t got the rights nor the source code. There should be a software license which allows users to modify it if they like. Until you invent the wheel once more I'll tell you about the GNU project.

What does GNU mean ?

The letters G-N-U stand for the words GNU`s Not Unix. This means that the people who invented GNU wanted to have a Unix-like Operating System (OS). Unix is the famous OS that is used mainly by servers in a computer network. So a community of programmers, connected by the Internet [www.gnu.org], started to develop a completely free software system that is 100% compatible with Unix. The word 'free' refers to freedom, not price. You may or may not pay a price to get GNU software. Once you have the software you have many freedoms in using it :

Today the expression 'Open Source Software' is often used instead of 'free software'. Many programs claim to be free - and often they mean only that it costs nothing. 'Open Source' is more as you can see above. The GNU people wrote a software license so that it`s guaranteed that all users of a program can get it freely. It is called the `GNU General Public License` or simply `GPL`.


Figure 1: the programming process

The history of GNU

In the 1970s many computer companies distributed free software. So the programmers often cooperated - a community grew. But by the 1980s almost all software was proprietary, which means that it had owners who forbid and prevent cooperation by users. Richard Stallman realized that. He wanted to improove a printer driver, but the man who owned the source code forbid it. Thinking about this he started the GNU project to create an free operating system.

Every computer user needs an operating system - if there is no free operating system then you can't even get started using a computer without paying much money for software.


Figure 2: the layers of most Unix operating systems

An operating system is not just a kernel (see picture above) - it also includes compilers, editors, mail software and many other things. As writing a whole Operating System is a very large job it took many years.

By the 1990s all major components had been found or written except one - the kernel. Because the GNU people cannot find a free Unix-like kernel and knew of no plan to write one they started one theirselfes - called Hurd. After one or two years they heard about Linux, a free kernel, developed by Linus Torvalds. So they asked themselves: ``Should we cancel our kernel project and use Linux instead?''. Because they have heard that (at this time) Linux only supports the x86 platform, is not 100% Unix compatible and they already had put many work into the Hurd kernel they decided to finish it.

But until the Hurd kernel would be stable enough they combined Linux and the almost-complete GNU system to the 'Linux based GNU system', often only called Linux. Today thousands of people all over the world are using this system.

And what is Linux ?

Linux is a kernel that was initially created as a hobby by a young student, Linus Torvalds, at the University of Helsinki in Finland. He began his work in 1991 when he released version 0.02. Since then more and more people joined the Linux community and helped each other in improving the GNU/Linux system. They worked steadily until 1994 when version 1.0 of the Linux kernel was released. The current full-featured version is 2.0, and development continues with several updates that are available for public use.


Figure 3: a typical GNU/Linux X11 desktop

Famous examples of GNU/Linux usage

Many popular firms and corporations are using Linux:

Advantages of a GNU/Linux system

Although I've listed many reasons above these are not the things why I prefer it. The best thing about GNU software is that it is freely developed by a group of users, not a firm. So there is no marketing-boss who says "we include this function because we can make money with it - we don't include this because we cannot". If you think you need a driver for your new radiocard and there is no one yet you can write it or ask someone to do so. This is the original spirit of free software. You are free !


Figure: a small network

Who should not use GNU/Linux ?

If you think a computer is a miraculous thing and you spend one hour per week in front of it to print some texts you need not change.

Also if you need a special MS-Win program you should first look if a Linux-version or a similar program exists. Perhaps it runs under one of the Windows emulators - perhaps not because they are still in process.

A GNU/Linux System is administrated different as the popular OSs. If you are not willing to learn things new you should not install GNU/Linux. On the other hand a GNU/Linux system is an cheap chance to learn how to administrate Unix machines.

Who should use GNU/Linux ?

Nearly everybody can use Linux. As a complete GNU/Linux system needs 100-600MB it would be good if you have this space on your harddisk. It is no problem to work with another OS and Linux on the same computer as Linux uses an bootmanager to select the OS every time you start. Also you should not be afraid of reading English documentation. If you cannot find a solution for your problem in the documentation you can ask people in the Linux newsgroups [(de.)comp.os.linux.*], so an internet connection is recommendable. Every Linux-packet (called 'distribution') which includes the kernel, games, grafic-, programming-, internet-software and much more is available for x86-based computers. There also exist versions for Alpha, 680x0 (Amiga), SPARC, PowerPC (Mac) and others. Many good distributions are on the market. I think RedHat [www.redhat.com] is good for beginners. German users should have a look at the DLD [www.delix.de]. If you have experiences Debian [www.debian.org] is a good choice. I'm using a Debian 2.0 system.





in English explanation in German (if exists)
bug an error in a software product Fehler
application software that interacts with the user Anwendung
source code programmers write software in it and a program (compiler) translates it into an executeable form Quelltext
software license a document that tells you the rights you have or donīt have on the software product Software Lizenz
Operating System (OS) this sofware provides an surrounding for the applications Betriebssystem
computer network many computers connected by a cable Computernetzwerk
to distribute sth. to give away sth. etw. verteilen
proprietary you keep the source and specifications as a secret poprietär
compiler the program that translates source code into binary code wörtl. "Zusammensteller"
x86 platform term for the different x86 prozessors like 386, 486, Pentium (II) x86 Prozessor-Plattform
render to calculate an 3D image digitally rendern, berechnen
cluster almost the same as a computer network (the aim is to distribute system load)  
multitasking the ability of the OS to deal with many programms at the same time  
filesystem the format in which the OS saves the data Dateisystem
Windowmanager under Unix you can choose the program that manages the border around the windows and the screen  
driver a little program that provides an interface between hard- and software Treiber
emulator an emulator tries to run programs written for another OS  
distribution as it is very uncomfortable for the user to download and install all software separately there are firms and groups which collect good software, write an install-routine and sell these `distribution' Distribution, Packet
Internet the term `Internet' stands for much more than simply the masses of WWW-Homepages. The Internet also includes news, ftp, irc and many other worldwide communication services.  
hacker a hacker is NOT a person who does illegal things, e.g. breaking into governmental computers. This is called a cracker ! Many computer amateurs mix up these two words and use `hacker' instead of `cracker'. A hacker is a computer freak who's writing software all the day and drinking much coffee :-]  



by Tobias Rapp in 1998/99

This document was written using LyX (a frontend to LaTeX) and latex2html. It is based on information I could get on the net and different magazines. You are free to repulish it.
In this document the term `Unix' is used for the various Unix-like Operating Systems, not for the Trademark of X/Open. All other Trademarks belong to their respective holders.