Chapter 2. Presentation of Linux and Free Software

Table of Contents
2.1. Some definitions
2.2. Free software concepts
2.3. Linux and other operating systems

2.1. Some definitions

Before going into more details in the presentation, it could be useful to give some definitions of terms and software mentionned in that HOWTO.

2.1.1. Free Software or Open Source software

A free software (or Open Source software) is a software distributed with its source code, allowing its study, its transmission, its adaptation. The problem, in english, is the use of free, which has both meanings of "at no cost" and "without constraint". Here, it's the second use which has to be considered, hence the use of Open Source. To remember, think of free as speech, not beer.

Depending on the licenses used for its development, the constraints for users of such a software are various. The most open licenses (like the BSD one) allow code appropriation by third parties, including the resell of the resulting software (with or without modification) in commercial products, without any problem, and without owing something else to the originators than the mention of their copyright. Other licenses (like the GNU Public License or GPL) force every modified GPL software to be free GPL software itself ; this doesn't allow the use of such programs in a commercial one. Many other licenses exist, more or less open: the Artistic License (perl), the NPL one (mozilla), the QPL one (Qt) ...

A vast majority of free software is today under the GPL license, even if the BSD world takes always a great place, however less visible, mainly in the press. Linux is placed under the GPL. To have more information on these definitions and the licenses, please refer to the following reference sites :

GNU project Web site

You find there all information on the GNU project, including the licenses produced (GPL and LGPL) and various discussions on free software.

Open Source project Web site

This site proposes a new definition, a bit less restrictive, of free software - called here OpenSource Software - by well-known people.

FreeBSD project Web site

Here are explained the advantages of the very open BSD license.

2.1.2. Examples and counter-examples

First of all, free software and freeware shouldn't be mixed up. A freeware is not necessarily a software provided with its sources, on the contrary of a free software. On the other side, on the contrary of a freeware, you may be charged to obtain a free software (it's not in contradiction with the license used). The ambiguity, as stated before, comes from the word "free" . A freeware is then free of charge, but not necessarily "free of sources". (As well, the shareware has nothing to do with free software).

So examples of important and well-known free software are the Linux and FreeBSD operating systems, the Apache Web server, the SaMBa SMB server, GNU C and C++ compilers ... A contrario, examples of well-known freeware are the Internet Explorer browser, the Eudora Light mail reader, ...

2.1.3. Linux

Linux is a free operating system, superset of the POSIX norm. "Linux" points out the kernel alone. By extension, the name is also given to distributions based on that kernel plus a set of tools from the GNU project.

Linux is by consequence a Unix system, except that it doesn't use any proprietary code and is furnished under the GPL license, implying the availability of the sources. As every Unix system, Linux is multi-tasking and multi-user. It's also extremely portable, and it is available officialy today on processors such as Intel (i386 to Pentium IV), Alpha, Motorola (680x0 and PowerPC), Sparc, StrongArm, Mips. Without mention of the ports, operational or in process on PalmPilot, Itanium (ex-Merced), PA-Risc, Crusoe ...

The system is today perfectly stable and mature. Versions "x.y.z" of the Linux kernel, where "y" is an even number, are stable and only bug corrections are generaly applied when "z" increases. Versions "x.y.z" of the Linux kernel, where "y" is an odd number, are development versions which may be instable and are reserved to developers or intrepids.

From time to time, when the kernel development stabilizes a "freeze" is announced to furnish a new "stable" version (even), and the development goes on on a new version (odd).

The current stable version is the version 2.4.16 (this last number may evolve following the rythm of corrections). Development has on the other side begun again with a 2.5 version.

Numerous presentations of Linux are currently available. Among them, you should consult the one made by Michael Johnson at Linux technical characteristics

The system offers the following technical characteristics :

  • Multi-tasking : executes several programs in pseudo-parallel.

  • Multi-users : many users acting on the same machine at the same time (without worrying on licenses).

  • Portable and interoperable : works on several hardware architectures. All the sources are available. Linux supports a lot of file systems, outside the native ext2 : System V, BSD, Sun, MS-DOS, VFAT, NTFS, Mac, HPFS, EFS, ISO9660. On the network side, it supports the following protocols TCP/IP v4 and v6, Appletalk, Netware (client and server), Lan Manager SMB (client and server), X-Window, NFS, PPP, SLIP, UUCP.

  • Performant architecture : modular kernel, built at will, execution in protect mode on 80x86 processors, page load on demand, page share between executables when reading, virtual memory with swap on disk, use of a dynamical disk cache in memory, dynamic libraries, process management, pseudo terminals, virtual consoles.

  • Security : protection of memory between processes: one user program can't compromise the whole system operation. The kernel may also, on the other hand, filter network packets.

  • Respect of norms and standards : Posix, with System V and BSD extensions. Support of COFF and ELF binaries. Binary compatibility with SCO, SVR3/4 through the iBCS2 module. Native Language Support as well as national keyboards, fonts...