2.1. Quelques définitions

Avant de rentrer plus en détails dans la présentation, il peut être utile de donner quelques définitions des termes et des logiciels mentionnés dans ce document.

2.1.1. Logiciel libre

Un logiciel libre est un logiciel diffusé avec son code source, ce qui en permet l'étude, la transmission, l'adaptation.

Suivant les licences utilisées pour le développement du logiciel, les contraintes sont diverses pour les utilisateurs. Les licences les plus ouvertes (telles que la licence Berkeley Software Distribution ou BSD) autorisent l'appropriation du code par un tiers, y compris sa vente (après modification ou non) dans des produits commerciaux, sans aucun problème et sans rien devoir d'autre aux auteurs initiaux que la présence de leur copyright. D'autres licences (telles que la GNU Public License ou GPL) obligent toute modification d'un logiciel libre GPL à être lui-même libre ; ceci ne permet pas l'utilisation de tels programmes dans un produit commercial. De nombreuses autres licences de distribution existent, plus ou moins libres: la licence Artistique (perl), la NPL (mozilla), la QPL (Qt) ...

Une grande majorité des programmes libres est aujourd'hui placée sous licence GPL, même si le monde BSD occupe toujours une place importante, quoique moins visible, notamment dans la presse. Linux est placé sous GPL. Pour plus d'informations sur ces définitions et les licences, on se reportera aux sites de référence suivants :

Le site Web du projet GNU

On y trouve toutes les informations relatives au projet GNU, y compris les licences produites (GPL et LGPL) et diverses discussions sur le logiciel libre.

Le site Web du projet Open Source

Ce site propose une nouvelle définition, un peu moins restrictive, des logiciels libres, de la part de diverses personnalités en vue.

Le site Web du projet FreeBSD

Ici, ce sont les avantages de la très ouverte licence BSD qui sont expliqués.

2.1.2. Exemples et contre-exemples

Tout d'abord, il ne faut pas confondre logiciel libre et graticiel (freeware). Un graticiel n'est pas nécessairement un logiciel fourni avec ses sources, à la différence du logiciel libre. De même, à la différence du graticiel, obtenir un logiciel libre peut être un service payant (ce n'est pas contradictoire avec les licences utilisées). L'ambiguïté vient du terme anglais << free >> qui signifie à la fois libre et gratuit. Un graticiel est donc gratuit mais pas obligatoirement libre. (De même, le partagiciel (shareware) n'est en rien un logiciel libre).

Ainsi, des exemples de logiciels libres importants et connus sont les systèmes d'exploitation Linux et FreeBSD, le serveur Web Apache , le serveur SMB SaMBa , les compilateurs GNU C, et GNU C++ ... A contrario, des exemples de graticiels connus sont le navigateur Internet Explorer, l'outil de lecture de courrier électronique Eudora Light, ...

2.1.3. Linux

Linux est un système d'exploitation libre, réalisant un sur-ensemble de la norme POSIX. Initialement, le terme << Linux >> désigne uniquement le noyau. Par extension, on donne également ce nom aux distributions basées sur ce noyau et un ensemble d'outils du projet GNU.

Linux est donc un système Unix, si ce n'est qu'il n'utilise aucun code propriétaire et est fourni sous licence GPL, ce qui implique la disponibilité des sources. Comme tout autre système Unix, il est multi-tâches, multi-utilisateurs. Il est également extrêmement portable, puisqu'il est aujourd'hui disponible officiellement sur des processeurs Intel (i386 à Pentium IV), Alpha, Motorola (680x0 et PowerPC), Sparc, StrongArm, Mips. Sans compter les portages opérationnels ou en cours sur PalmPilot, Itanium (ex-Merced), PA-Risc, Crusoe ...

Le système est aujourd'hui parfaitement stable et mature. Les versions "x.y.z" du noyau Linux, où "y" est un nombre pair, sont stables et seules des corrections d'anomalies y sont en général appliquées lors de l'incrément de "z". Les versions "x.y.z" du noyau Linux, où "y" est un nombre impair, sont des versions de développement qui peuvent être instables et sont réservées aux développeurs ou aux intrépides.

De temps en temps, quand le développement du noyau se stabilise un "gel" intervient pour fournir une nouvelle version "stable" (paire), et le développement continue sur une nouvelle version (impaire).

La version stable actuelle est la version 2.4.16 (ce dernier indice étant susceptible d'évoluer au fur et à mesure des corrections). Le développement a d'autre part déjà repris avec une série 2.5 en cours.

De nombreuses présentations de Linux sont disponibles actuellement. Parmi celles-ci, vous aurez avantage à consulter celle de Nat Makarévitch et de Michael Johnson aux adresses http://www.linux-france.com/article/presentation/presentation.html et ftp://ftp.lip6.fr/pub/linux/french/ldp/info-sheet.fr.html.

2.1.3.1. Caractéristiques techniques de Linux

Le système dispose des caractéristiques techniques suivantes :

  • Multi-tâches : exécute plusieurs programmes en pseudo-parallélisme.

  • Multi-utilisateurs : plusieurs utilisateurs actifs sur la même machine en même temps (sans souci de licence).

  • Portable et interopérable : fonctionne sur de nombreuses architectures matérielles. Tous les sources sont disponibles. Linux prend en charge de nombreux systèmes de fichiers outre le natif ext2fs : System V, BSD, Sun, MS-DOS, VFAT, NTFS, Mac, HPFS, EFS, ISO9660. Côté réseau, il y a prise en charge des protocoles TCP/IP v4 et v6, Appletalk, Netware (client et serveur), Lan Manager SMB (client et serveur), X-Window, NFS, PPP, SLIP, UUCP.

  • Architecture performante : noyau modulaire et recompilable à volonté, exécution en mode protégé sur les processeurs 80x86, chargement de pages à la demande, partage de pages entre exécutables en lecture, mémoire virtuelle avec pagination sur disque, utilisation d'un cache disque en mémoire géré dynamiquement, bibliothèques dynamiques, gestion de processus, pseudo-terminaux, consoles virtuelles.

  • Sécurité : protection de la mémoire entre processus: un programme utilisateur ne peut compromettre le fonctionnement du système dans son ensemble. Le noyau peut assurer, d'autre part, le filtrage de trames réseau.

  • Conforme aux normes et standards : Posix, avec les extensions Système V et BSD. Prise en charge des binaires COFF et ELF. Compatibilité binaire avec SCO, SVR3/4 par le module iBCS2. Prise en charge des spécificités nationales (NLS, clavier, polices, ...).