A savoir sur les Systèmes d'exploitation
-
A.
Le noyau : une histoire liée à celle de MINIX
L’histoire de Linux est liée à celle de MINIX. MINIX est un système d’exploitation à but éducatif créé par Andrew S. Tanenbaum en 1987. Le code source de ce système était disponible mais on n’avait pas le droit de le modifier et de le redistribuer. Par ailleurs, son architecture 16 bits n’était pas bien adaptée aux nouvelles machines 32 bits qui devenaient de plus en plus courantes.
En 1991, un étudiant nommé Linus Torvalds entreprend l’écriture du code d’une solution libre destinée à remplacer MINIX et le 25 août de cette même année, la toute première version de ce noyau sans prétention est mise à disposition des utilisateurs du « newsgroup » « comp.os.minix ». Torvalds voulait lui donner le nom de « Freax » (une allusion à « freak », « free » et au « x » d’UNIX) mais le responsable des serveurs préférait Linux et c’est sous ce nom qu’il plaça les fichiers, sans demander son avis au principal intéressé. C’est après l’ajout de diverses fonctionnalités au noyau que Torvalds a entrepris de créer un système d’exploitation respectant les standards POSIX.
Haut de page -
B.
Noyau monolithique et développement
Un noyau monolithique
Linux est un noyau dit « monolithique ». Ainsi, sauf exception, les pilotes et autres extensions du noyau s’exécutent en espace noyau (ring 0) et ont un accès direct au matériel. La nature du noyau de Linux a longtemps été (et reste encore) un sujet de discussion houleux entre Tanenbaum et Linus Torvalds. En 1992, après la sortie de Linux, Tanenbaum avait affirmé que les micro-noyaux étaient supérieurs aux noyaux monolithiques et que Linux était par conséquent dépassé. S’ensuivit alors un long débat entre les deux informaticiens. Mais le noyau Linux a ceci de particulier que les pilotes peuvent être disponibles sous forme de modules additionnels au lieu d’être intégrés au noyau. Ils peuvent être chargés ou déchargés lorsque le système est en fonctionnement.
Le développement du noyau
Linus Torvalds n’est plus le seul à développer le noyau de Linux et ce, depuis bien longtemps,. Toute une équipe de développeurs volontaires (toutefois rémunérés par des entreprises) est en charge, sous sa coordination, de son évolution. Les versions du noyau publiées par cette équipe sont surnommées « vanilla ». La plupart des distributions utilisent le plus souvent une version modifiée du noyau vanilla.
Haut de page -
C.
Numérotation des versions et patches
Numérotation des versions
La numérotation du noyau est composée de quatre groupes de chiffres. Le premier groupe correspond au numéro majeur et le deuxième au numéro mineur. Avant la sortie de la version 2.6, un numéro mineur impair indiquait une version de développement, alors qu’un nombre pair indiquait une version stable. Le troisième groupe correspond à la révision du noyau qui inclut des corrections de bogues, des améliorations ou l’ajout de nouvelles fonctionnalités. Enfin, le dernier groupe désigne une légère révision (comme des corrections de bogues) mais sans ajout de fonctionnalités. La version actuelle du noyau est la version 2.6 et la révision actuelle est à ce jour supérieure à la version 2.6.20.
Les patches
Il est possible d’ajouter des fonctionnalités supplémentaires au noyau grâce à la multitude de patches existant. Certains de ces patches, une fois finalisés et stabilisés, peuvent rejoindre la version vanilla. Quelques utilisateurs ont eu l’idée de regrouper plusieurs patches afin de créer ce que l’on appelle un « patchset ». Les patches s’appliquent sur les sources du noyau avant de lancer sa compilation. Parmi les patchsets connus, citons le patchset ck orienté performances et le patchset mm toujours à la pointe du développement. Beaucoup de distributions proposent d’ailleurs un noyau personnalisé pour supporter le démarrage graphique (« bootsplash », « gensplash », « splashy »), le système de fichier Reiser4, la fonctionnalité d’hibernation améliorée, etc.
Haut de page -
D.
Démarrage du système : chargement du noyau
Le démarrage d’un système basé sur Linux peut être décomposé en deux parties : le chargement du noyau puis le chargement du reste du système.
Chargement du noyau : « Uncompressing Linux... Ok, booting the kernel. »
Le noyau est stocké sous la forme d’une image compressée. Au début de l’image se trouve une routine qui est chargée d’effectuer une initialisation du matériel et d’extraire le noyau pour le placer en mémoire. Une fois le noyau chargé en mémoire, il est tout d’abord décompressé puis il configure le matériel et active la pagination. A ce stade, dans la plupart des cas, le noyau va décompresser une image disque, auparavant chargée en mémoire par le gestionnaire d’amorçage, puis la monter. Cette image disque, d’abord « initrd » et maintenant « initramfs », contient tous les pilotes nécessaires au démarrage de la machine et qui ne sont pas intégrés au noyau. Le noyau charge donc les pilotes dont il a besoin puis initialise certains périphériques virtuels comme les périphériques RAID logiciels ou LVM. Enfin, l’image disque est démontée, la partition système montée en lecture seule et la mémoire nettoyée. Le noyau est chargé et opérationnel.
Haut de page -
E.
Démarrage du système : les niveaux d’exécution
Certains systèmes d’exploitation, dont Linux (pour la majorité des distributions), utilisent plusieurs niveaux d’exécution. Par convention, on compte 7 niveaux, numérotés de 0 à 6. Le niveau 0 correspond à l’arrêt de la machine, tandis que le niveau 6 correspond à un redémarrage. On peut comparer cette organisation à un escalier : lors de son démarrage ou de son arrêt, le système passe d’un niveau d’exécution à un autre. Voici à quoi correspondent les autres niveaux :
- niveau 1 : mode mono-utilisateur
- niveau 2 : mode multi-utilisateur sans réseau ni démarrage des services
- niveau 3 : mode multi-utilisateur avec gestion du réseau et démarrage des services - interface en ligne de commandes
- niveau 4 : non utilisé
- niveau 5 : mode multi-utilisateur avec interface graphique
Les distributions ne font pas toutes la distinction entre les niveaux 2 à 5. Pour passer d’un niveau à un autre, il suffit d’appeler « init » et de lui passer le numéro du niveau en paramètre.
Haut de page -
F.
Démarrage du système : le processus « init », le père de tous
Une fois que le noyau est chargé, il passe la main au processus « init ». Ce dernier est en fait lancé comme un service identifié sous le PID (« Process Identifier », l’identifiant unique d’un processus) 1 et il a pour rôle de lancer les autres services listés. Pour ce faire, le processus « init » se base sur un ensemble de fichiers de démarrage dont l’organisation diffère suivant la distribution.
- D’un côté, on retrouve les distributions qui fonctionnent sur le même principe que BSD, comme Arch Linux, et qui utilisent un fichier nommé « rc.conf » situé dans « /etc » ainsi que des scripts complémentaires situés dans « /etc/rc.d ». Tous les services inscrits dans le fichier sont lancés sans distinction et font appel aux scripts complémentaires. L’installation d’un nouveau service ajoute un script à la collection existante et il suffit de le mentionner dans le fichier principal pour qu’il soit démarré. Ce modèle est particulièrement simple à comprendre et le fichier est facilement modifiable. En revanche, une erreur peut empêcher le système de démarrer correctement.
- D’un autre côté, on trouve les distributions qui utilisent le même système que celui de System V. Au démarrage, « init » recherche dans le fichier « /etc/inittab » le niveau d’exécution par défaut puis lance les services concernés. Ce système a pour inconvénient sa complexité.
-
G.
La ligne de commandes
Linux est accompagné d’une interface en ligne de commandes (ou CLI pour « Command Line Interface ») ou « shell » qui permet, en plus de lancer des programmes, d’effectuer des opérations complexes comme l’administration du système. Il existe quatre catégories de « shell » utilisables sous Linux :
- Ceux compatibles avec le « Bourne shell » (sh), comme ash (« Almquist shell »), bash (« Bourne-Again shell », le plus répandu), ksh (« Korn shell ») et zsh (« Z shell », le plus complet) ;
- Ceux compatibles avec shell C (csh) comme tcsh (« TENEX C shell ») ;
- Les « shell » exotiques ;
- Les « shell » historiques.
-
H.
Les interfaces graphiques
Windows et Mac OS disposent chacun d’une interface graphique qui les identifie aisément. En revanche, Linux n’est associé à aucun environnement graphique particulier : plusieurs peuvent cohabiter sur une même installation. Tous utilisent néanmoins un serveur graphique, un gestionnaire de fenêtres et une bibliothèque de composants (« widgets » en anglais).
Les environnements de bureau
X Window System
X Window System (ou X Window, ou X11 ou encore X) est un protocole réseau et d’affichage. Son architecture est basée sur le modèle client-serveur, ce qui permet de déporter l’affichage sur une autre machine.
- Le serveur fonctionne sur une machine qui dispose du matériel adéquat (écran, souris, clavier), reçoit et traite les requêtes d’affichage ;
- Le client se connecte au serveur et lui envoie des requêtes d’affichage en suivant un protocole défini.
Au début des années 1990 est apparue une implantation libre de X Window pour les systèmes Linux et UNIX : XFree86. XFree86 a été la solution la plus utilisée par les distributions Linux jusqu’à son changement de licence. Par la suite, c’est le serveur libre X.Org, dérivé de XFree86 et initié en janvier 2004, qui a pris le relais. X.Org est maintenant bien plus populaire que XFree86 et la majorité des distributions Linux l’incluent désormais à la place de son prédécesseur. Le serveur X ne gère pas les fenêtres et leur placement. Cette tâche revient aux gestionnaires de fenêtres.
Haut de page -
I.
Les interfaces graphiques : gestionnaire de fenêtres et composants
Les gestionnaires de fenêtres
Le gestionnaire de fenêtres est le logiciel chargé de l’affichage et de la gestion des fenêtres des applications. Il s’intercale entre le serveur X et le client X. Le gestionnaire de fenêtres supporte :
- la personnalisation de l’affichage avec l’ajout d’un cadre et d’une barre de titre aux fenêtres ;
- la gestion des bureaux virtuels ;
- la gestion des raccourcis clavier.
Voici quelques gestionnaires de fenêtres connus :
- Metacity, le gestionnaire de fenêtres de GNOME ;
- KWin (anciennement KWM), le gestionnaire de fenêtres de KDE ;
- Compiz-fusion, la fusion des projets Compiz et Beryl ;
- Enlightenment ;
- WindowsMaker ;
- Twm ;
- BlackBox, FluxBox...
- ... et plein d’autres.
Les composants d’interface graphique
Ces composants sont les éléments de base de l’interface graphique. On retrouve les icônes, les menus, les conteneurs, les boutons, les champs, les décorateurs de fenêtres... Ils sont regroupés dans plusieurs bibliothèques dont les plus courantes sont QT et GKT.
Haut de page -
J.
GNOME : l'interface graphique
GNOME est l’acronyme de « GNU Network Object Model Environment ». Il utilise par défaut Metacity comme gestionnaire de fenêtres. L’architecture de GNOME est composée de plusieurs blocs : une interface graphique, un système de fichiers virtuels, la gestion de la configuration, le multimédia, les paramètres locaux... Dans cette section, nous allons aborder rapidement quelques-uns de ces blocs. Si, après la lecture de ce guide, vous souhaitez obtenir plus d’informations, nous vous invitons à consulter la documentation en ligne de GNOME.
L’interface graphique
GNOME utilise plusieurs briques pour construire son interface graphique :
- GTK+ est un ensemble d’API de haut niveau utilisé pour construire des interfaces graphiques sans avoir à se soucier de certains détails techniques ;
- La bibliothèque Glade permet de construire des interfaces utilisateur à partir d’une description en XML ;
- Pango est le composant chargé de la gestion et du rendu du texte sous GNOME. Il est utilisé par GTK+ ;
- GDK est un composant de bas niveau utilisé principalement par GTK+ pour accéder aux périphériques d’entrée et pour dessiner sur l’écran. Bien que cela ne soit pas forcément recommandé, il est possible de faire appel directement à GDK pour gérer le presse-papiers ou encore les événements en rapport avec le clavier et la souris ;
- Cairo est une API graphique vectorielle qui peut, lorsque c’est possible, tirer parti de l’accélération matérielle. Elle est similaire à Quartz2D pour Mac OS X.
-
K.
GNOME : Accès aux fichiers, gestion de la configuration et multimédia
L’accès aux fichiers avec GnomeVFS
Toutes les applications de GNOME (comme le gestionnaire de fichiers Nautilus par exemple) utilisent GnomeVFS (« GNOME Virtual File System ») pour effectuer des opérations sur les fichiers et les répertoires. GnomeVFS permet aussi d’accéder à des ressources FTP, WebDAV ou encore NFS de la même manière qu’il permet l’accès aux ressources locales.
La gestion de la configuration avec GConf
GConf est le système qui permet de charger et de stocker la configuration de GNOME. Il se décompose en deux parties : un client qui accède à la configuration et un service chargé de stocker et d’aller chercher les informations.
Le multimédia avec GStreamer
GStreamer est un framework multimédia utilisé principalement par GNOME. Il permet de lire un grand nombre de formats audio et vidéo, d’enregistrer à partir de sources multiples, voire d’éditer du contenu multimédia (source : Documentation de GNOME). GStreamer est analogue à DirectShow pour Windows ; il est utilisé par des logiciels pour décoder des flux multimédias. C’est par exemple le cas de Totem, le lecteur multimédia par défaut de GNOME. Précisons que GNOME utilise ESD (« Enlightened Sound Daemon » ou ESound) comme service de son. Il combine plusieurs flux audio en un seul pour la sortie, ce qui représente un avantage lorsque c’est un pilote OSS qui est utilisé.
Haut de page -
L.
GNOME : le réseau et la communication entre les applications
L’échange des données entre les applications est courant et transparent pour l’utilisateur. Lorsque l’utilisateur copie des données à partir d’une application, celle-ci s’approprie le presse-papiers ; lorsque l’utilisateur colle les données dans une autre application, la nouvelle application va chercher les données appartenant à la première application. C’est aussi ce qui se passe lors d’un glisser-déplacer (« drag & drop »), excepté le fait que le curseur entre en jeu.
Pour assurer la communication entre les applications, GNOME utilise D-Bus, un projet de logiciel libre. D-Bus propose une API simple qui permet aux applications et aux services de s’envoyer n’importe quel type de message. Mais D-Bus peut être aussi utilisé pour contrôler à distance les applications.
Lorsque vous insérez un composant réutilisable dans une autre application, comme une vidéo dans un logiciel de traitement de texte, GNOME utilise Bonobo, une bibliothèque inspirée de la technologie OLE (« Object Linking and Embedding ») de Windows. Bonobo est construit avec CORBA, une architecture logicielle pour le développement de composants.
Plusieurs applications de GNOME utilisent une technologie appelée « Zeroconf » ou « DNS Service Discovery » pour accéder aux ressources des réseaux qui n’ont pas besoin d’être configurés au préalable. C’est par exemple le cas de Nautilus, le gestionnaire de fichiers, qui utilise cette technologie pour détecter les serveurs de fichiers d’un réseau local.
Haut de page -
M.
KDE : l'interface graphique
KDE est l’abréviation de « K Desktop Environment » (le K n’ayant pas de signification particulière). Cet environnement de bureau utilise KWin comme gestionnaire de fenêtres. Comme GNOME, il peut se décomposer en plusieurs briques.
aRts, le serveur de son
Jouant le même rôle que ESD sous GNOME, aRts (« analog Real time synthesizer ») n’est pas pour autant son concurrent et n’est pas réservé qu’à KDE. Sachez tout de même qu’aRts et ESD sont actuellement peu à peu délaissés au profit de ALSA.
La communication interprocessus avec DCOP
DCOP (« Desktop COmmunication Protocol ») est un système de communication interprocessus léger. Assez semblable à D-Bus qu’il a d’ailleurs fortement influencé, il vit ses dernières heures avec KDE 3 et sera remplacé par D-Bus dans la version 4. DCOP est fortement intégré à KDE, et toutes les applications et bibliothèques de l’environnement en font largement usage. Ce composant permet aussi de contrôler des applications à distance, notamment à l’aide de scripts.
KDELibs, une brique essentielle
KDELibs est le composant principal de KDE. Il contient la plupart des éléments fondamentaux du gestionnaire :
- libkdecore : la base et la gestion du réseau
- libkdeui : une bibliothèque qui gère l’interface utilisateur
- libkabc : une bibliothèque utilisée par le carnet d’adresses
- libkspell2 : le correcteur orthographique
- libkutils : un ensemble de classes utiles
- libknewstuff : les dernières nouveautés
Mais KDELibs contient aussi plusieurs frameworks que nous abordons séparément : DCOP, KHTML...
Haut de page -
N.
KDE : KHTML, KIO, Kisok, KParts et XMLGUI
KHTML
KHTML est un moteur de rendu HTML qui fait partie intégrante du projet KDE. Il a été introduit dans KDE2 en 2000. Ce moteur est utilisé par Konqueror, une application qui fait office de gestionnaire de fichiers et de navigateur internet. Mais KHTML se retrouve aussi depuis 2002 dans le moteur de rendu de Safari, le navigateur internet d’Apple.
KIO
KIO (« K Input Output ») est un ensemble d’API destiné à faciliter l’accès aux ressources locales et distantes. Comme pour son équivalent sous GNOME, les ressources distantes et les ressources locales sont accessibles de la même façon. Konqueror est l’une des applications qui tire parti de ce framework.
Kiosk
Le nom de ce framework est lié à son rôle : il a été créé pour restreindre facilement les fonctionnalités de KDE sur les machines en libre service.
KParts
Alors que GNOME utilise Bonobo pour les composants réutilisables, KDE utilise KParts. Un composant est appelé un « KPart ». Konqueror est un gros consommateur de KParts qu’il utilise pour afficher les documents (documents Word ou Excel par exemple).
XMLGUI
XMLGUI est le framework de KDE qui permet de construire des interfaces graphiques en utilisant du XML.
Haut de page - O. Xfce Xfce est un environnement de bureau dont la philosophie est bien différente de celle de GNOME ou KDE. Proposant une interface simple que certains trouverons dépouillée, il est plus léger et plus rapide que les deux autres tout en requérant moins de dépendances et d’espace disque. Il utilise son propre gestionnaire de fenêtres (Xfwm4) qui prend partiellement en charge la composition et GTK+ pour les widgets. Son gestionnaire de fichiers, Thunar, a été conçu pour être plus rapide et réactif que Nautilus ou Konqueror. Xfce est disponible avec la majorité des distributions Linux et constitue même l’environnement par défaut de certaines telle Xubuntu. Haut de page
-
P.
Des gestionnaires de bureau particuliers : Compiz, Beryl, Compiz Fusion
es gestionnaires de bureau classiques (Metacity, KWin, Xfwm4, etc.) ne proposent que des environnements en 2D sans aucune animation ou transition spectaculaire. Mais aujourd’hui, la puissance des processeurs et des cartes graphiques est aussi utilisée pour rendre les interfaces graphiques plus vivantes : Mac OS X avec Aqua et Windows Vista avec Aero en sont la preuve.
Cela dit, Linux n’est pas en reste et vous pouvez, si votre matériel le permet, profiter d’un ensemble d’effets bien plus impressionnant que ceux des deux autres systèmes. Pour ce faire, il faut remplacer le gestionnaire de bureau par défaut par un gestionnaire de bureau prenant en charge ces effets.
Compiz a été le premier gestionnaire à tirer parti de l’accélération matérielle pour proposer une vaste palette d’effets : le placement des bureaux virtuels sur un cube, des effets de transition, la fonction Exposé (de Mac OS X), la fonction Flip3D (de Windows Vista)... En 2006, Beryl, un projet dérivé de Compiz a vu le jour. Contrairement à Compiz, il a privilégié les nouveautés en plaçant les problèmes des utilisateurs en second plan. Les deux projets ont alors évolué chacun de leur côté, jusqu’à ce qu’ils soient réunifiés en un projet commun qui porte le nom de Compiz Fusion.
En plus de prendre la place du gestionnaire de fenêtres par défaut, Compiz utilise son propre décorateur de fenêtres. Celui de Beryl et Compiz Fusion, Emerald, propose plusieurs thèmes et un grand nombre de réglages.
Toujours en développement, ces composants peuvent être difficiles à installer et leur fonctionnement ainsi que leur stabilité peuvent se révéler hasardeux. Néanmoins, lorsque tout fonctionne, le résultat est impressionnant.
Haut de page -
Q.
Le son avec ALSA
ALSA, acronyme de « Advanced Linux Sound Architecture », est un composant du noyau qui assure le support des cartes son et qui uniformise l’interface son au niveau des couches supérieures. Son développement a commencé en 1999, mais il n’a été intégré au noyau qu’à partir de 2002 dans la version 2.5 dans le but de remplacer OSS (« Open Sound System ») dont la licence avait changé. Pour assurer la compatibilité avec les anciens programmes, ALSA est capable d’émuler OSS.
ALSA a été conçu de façon à a ce que les développeurs ne se soucient pas des différentes marques et des différents modèles de cartes son. Ce composant supporte aussi bien les cartes son grand public que les modèles professionnels. Mais ALSA a aussi été conçu pour apporter quelques fonctionnalités qui n’étaient pas supportées à l’époque par OSS :
- Le full duplex ;
- La gestion des systèmes multiprocesseurs ;
- Le mixage matériel de plusieurs canaux ;
- Un synthétiseur MIDI matériel.
Bien que l’API d’ALSA soit plus difficile à appréhender que celle d’OSS, les développeurs peuvent utiliser une bibliothèque de plus haut niveau pour se simplifier la tâche.
Haut de page -
R.
Linux et la sécurité : gestion des utilisateurs
Sur Linux, il existe un compte utilisateur qui possède tous les droits : c’est le compte super-utilisateur ou « root ». Pour des raisons de sécurité, ce compte n’est pas accessible directement sur certaines distributions (comme Ubuntu), mais il est possible de le réactiver manuellement.
Lors de la création d’un compte utilisateur, le système assigne automatiquement ses groupes au nouvel utilisateur ou demande les groupes auxquels le nouvel utilisateur appartient. L’appartenance à un groupe donne à l’utilisateur l’accès à certaines fonctionnalités.
Il arrive dans certains cas que l’utilisateur ait besoin d’avoir les droits administrateur. Dans ce cas, il peut, à partir de la console, se connecter sous l’identité du super-utilisateur (avec la commande « su ») pour lancer les commandes qu’il désire, puis se déconnecter. Mais il peut aussi lancer chaque commande sous l’identité du super-utilisateur sans se connecter sur son compte grâce à la commande « sudo ». Pour ce faire, il doit appartenir à un groupe particulier. KDE et GNOME utilisent par défaut la seconde méthode et affichent une boîte de dialogue pour interagir avec l’utilisateur.
Haut de page -
S.
Linux et la sécurité : un contrôle plus fin avec SELinux
« Security-Enhanced Linux », ou SELinux, est un module de sécurité qui permet d’affiner la gestion de la sécurité sous Linux en fournissant un système de contrôle d’accès obligatoire (ou MAC, de « Mandatory Access Control »). Le projet a été initié par la NSA et intégré par Red Hat dans sa distribution. Sous un système standard de contrôle d’accès, un processus exécuté en tant qu’utilisateur reçoit une permission sur toutes les ressources de l’utilisateur. En ajoutant un nouvel identificateur (le sid, « Security ID ») à l’uid (« User ID ») et au gid (« Group ID ») existants, SELinux contrôle de manière plus rigoureuse les droits des processus. SELinux définit en fait les droits d’accès et de transition de chaque utilisateur, application ou processus du système.
Le fonctionnement de SELinux est totalement transparent pour un utilisateur, mais sa configuration peut vite devenir fastidieuse, notamment sur les systèmes contenant un grand nombre d’utilisateurs et d’applications. A ce jour, quelques distributions orientées « Desktop » utilisent SELinux ; c’est par exemple le cas de Fedora.
Haut de page -
T.
Linux et la sécurité : réseau
Linux n’étant pas la cible privilégiée des auteurs de virus, il reste à protéger le système des attaques par le réseau.
Netfilter
Le noyau Linux intègre une fonction de filtrage des paquets : Netfilter. Réécrit à partir d’ipchains (intégré dans la version 2.2), Netfilter est intégré au noyau Linux depuis sa version 2.4. Il s’agit d’un module en mode noyau qui assure les fonctions de pare-feu, de NAT (« Network Address Translation » ou traduction d’adresses) et d’enregistrement du trafic réseau. Il utilise des tables qui contiennent chacune des chaînes à travers lesquelles les paquets passent. Trois tables sont proposées par défaut :
- filter qui se charge d’accepter ou de rejeter les paquets ;
- nat qui se charge du routage des paquets ;
- mangle qui transforme ou marque les paquets pour d’autres couches.
La configuration de Netfilter s’effectue à l’aide de la commande iptables ou via l’une des nombreuses interfaces graphiques. Si Netfilter est largement répandu et bien documenté, sa configuration peut constituer un obstacle pour les utilisateurs novices.
IPFilter
IPFilter est un pare-feu intégré à FreeBSD, NetBSD et Solaris 10. Il peut être intégré au noyau (Unix) ou se présenter sous la forme d’un module noyau. Assez semblable à Netfilter, il a néanmoins l’avantage d’être disponible sur un grand nombre de systèmes. Il est par ailleurs possible de charger deux configurations en mémoire et de passer de l’une à l’autre facilement. C’est utile pour tester une nouvelle configuration.
Haut de page -
U.
Quelques distributions GNU/Linux
Il existe un nombre considérable de distributions GNU/Linux, chacune répondant à un ou plusieurs besoins précis. Nous vous proposons une liste de quelques distributions connues et utilisées en France, groupées par difficulté de prise en main. Sachez toutefois qu’une distribution destinée aux utilisateurs avancés n’est pas obligatoirement à déconseiller aux novices, l’utilisation pouvant être très simple une fois l’installation terminée.
Distributions GNU/Linux
Utilisables par les utilisateurs novices, ces distributions ne sont pas pour autant dépourvues d’intérêt pour les utilisateurs avancés. Leur installation est graphique, et elles regorgent d’outils de configuration graphique.
-* Commençons par Ubuntu, sans doute l’une des distributions les plus connues. Basée sur la distribution Debian, elle reprend son système de gestion des paquets et plusieurs de ses outils. Elle propose l’environnement GNOME par défaut, mais certaines de ses variantes sont adaptées à une autre interface graphique : Kubuntu est basée sur KDE et Xubuntu sur Xfce. Il est prévu qu’une nouvelle version sorte tous les six mois, ce qui correspond à un rythme bien plus soutenu que pour Debian. Sachez par ailleurs que de nombreuses distributions dérivées à leur tour d’Ubuntu ont vu le jour. Haut de page -
V.
Quelques distributions GNU/Linux (suite)
- Mandriva Linux (anciennement Mandrake Linux) est une distribution de Mandriva (anciennement Mandrakesoft). Originellement basée sur la distribution Red Hat Linux (version 5.1), elle s’est peu à peu différenciée, notamment avec les outils de configuration qu’elle inclut. Elle utilise le format de paquets RPM, initié par Red Hat Linux et SUSE Linux.
- SUSE Linux, acquise par Novell en 2004, est une distribution très populaire et assez simple à prendre en main. Elle utilise aussi des paquets au format RPM et sa configuration est assurée par un outil très complet appelé YaST.
- Red Hat Entreprise Linux est la distribution de Red Hat destinée au monde professionnel. Payante, elle a été supportée par Red Hat pendant sept ans après sa sortie. Le cycle de mise à jour varie entre dix-huit et vingt-quatre mois. A l’origine, la distribution Red Hat Linux était gratuite mais, en 2003, Red Hat a changé de stratégie et a créé la communauté Fedora dans le but de parrainer une distribution Linux gratuite. Sachez enfin que Red Hat utilise certaines avancées de Fedora pour Red Hat Entreprise.
- Fedora, anciennement Fedora Core, est une distribution basée sur les paquets au format RPM. Elle est développée par la communauté Fedora Project et sponsorisée par Red Hat. Cette communauté a été créée en 2003 lorsque Red Hat a annoncé son intention d’arrêter le développement de sa distribution Red Hat Linux.
-
W.
Quelques distributions GNU/Linux (suite)
Les distributions que nous allons présenter ne sont pas forcément plus compliquées à utiliser, mais elles nécessitent des connaissances plus approfondies sur le fonctionnement de Linux pour pouvoir les installer et les configurer correctement.
- Debian, distribution à l’orgine d’Ubuntu, a pour but de proposer un système stable reposant sur un maximum de logiciels libres. Son système de gestion des paquets et sa stabilité sont reconnus et elle est disponible pour un nombre important d’architectures matérielles : x86, PowerPC, DEC Alpha, AMD64, IA-64, ARM, etc.
- Slackware est l’une des premières distributions Linux à être encore maintenue. Elle se veut légère et rapide et on la qualifie souvent de distribution « UNIX-like ». Oubliez donc les outils de configuration graphique et autres configurations automatiques. En contrepartie, vous profiterez d’un système stable et vous pourrez configurer finement les applications en utilisant le plus souvent les instructions de leur auteur. Les paquets, au format binaire, sont gérés par un gestionnaire qui ne tient pas compte des dépendances. C’est à vous de vous assurer que vous avez bien tout installé, sans quoi certaines applications ne fonctionneront pas.
-
X.
Quelques distributions GNU/Linux (fin)
- Gentoo est une distribution destinée à ceux qui souhaitent avoir un système optimisé pour leur machine. Effectivement, toutes les applications sont compilées sur la machine de l’utilisateur en tenant compte de ses réglages et des caractéristiques du processeur. Le système est alors optimisé pour le matériel, et donc plus rapide qu’un système installé par une distribution qui supporte plusieurs profils matériels. Son système de gestion des paquets, Portage, gère les dépendances entre les paquets et s’occupe de construire et d’installer les paquets. Gentoo est disponible pour plusieurs architectures, dont l’architecture x86, AMD64, PowerPC, MIPS...
- Arch Linux est une distribution qui, comme Slackware et Gentoo, se veut simple et légère et qui embarque donc très peu d’outils de configuration. Elle est basée sur des paquets précompilés et optimisés pour l’architecture du processeur ciblé (i686 ou x86-64). Ces paquets sont gérés par Pacman (rien à voir avec le mangeur de fantômes), gestionnaire qui prend en compte les dépendances. Mais Arch Linux propose aussi un système de création de paquets, « Arch Build System », à la manière de Gentoo. Le système peut ainsi être entièrement reconstruit et personnalisé.
- Linux From Scratch, ou LFS, n’est pas à proprement parler une distribution. C’est avant tout le titre d’un livre qui explique comment installer un système GNU/Linux à partir des sources uniquement. C’est la « distribution » à essayer pour comprendre les rouages de Linux et avoir un système entièrement personnalisé.
- D’importantes communautés existent autour de ces distributions et elles proposent des guides et des forums qui vous permettront de trouver, dans la plupart des cas, une solution à vos problèmes.
-
Y.
Distributions BSD
Les systèmes BSD sont traditionnellement considérés comme des systèmes UNIX, mais leur compatibilité avec les applications Linux nous incite à en présenter rapidement quelques-uns. Ces systèmes sont réputés pour leur stabilité et leur robustesse et sont principalement utilisés pour les serveurs et stations de travail. Trois systèmes BSD sont les plus connus : FreeBSD, NetBSD et OpenBSD. Chacun d’eux est optimisé pour un usage particulier. Les applications supplémentaires (notamment les applications Linux) sont regroupées au sein d’un système de portage. Chaque port contient des informations sur l’application, ses dépendances, et si ce sont des sources, sur la manière de les compiler. Ce système diffère suivant le BSD, mais le principe reste toutefois le même.
- FreeBSD est le BSD qui se focalise sur les performances. C’est un système d’exploitation qui comprend un noyau, des sources et des applications pour l’utilisateur. Ces éléments sont maintenus au sein d’un même ensemble, ce qui contraste avec Linux. Les autres applications sont intégrées sous forme de paquets précompilés ou de sources, les ports. Il existe deux distributions dérivées de FreeBSD qui facilitent l’installation du système : PC-BSD et DesktopBSD. La seconde met l’accent sur les fonctionnalités d’une station de travail plutôt que sur celles d’un serveur.
-
9.
Distributions BSD (suite)
- NetBSD est l’un des systèmes d’exploitation les plus portés puisqu’il peut être installé sur une cinquantaine d’architectures différentes. Comme FreeBSD, il consiste en un noyau et des outils pour l’utilisateur et dérive de 4.3BSD et de 386BSD. Il dispose par ailleurs d’un système de port.
- OpenBSD est le BSD qui met l’accent sur la sécurité et la cryptographie. Il est dérivé de 4.4BSD et a été initié par le créateur de NetBSD après son départ du projet. Comme pour FreeBSD et NetBSD, son noyau, le shell et les principaux outils sont regroupés au sein d’un même dépôt CVS. L’équipe de développeurs d’OpenBSD travaille aussi sur d’autres projets dont OpenSSH, une implantation du protocole de communication SSH.
- DragonFly BSD dérive de FreeBSD 4.8 et a été initié par une personne contribuant au projet FreeBSD qui ne se satisfaisait pas de l’orientation prise par FreeBSD dans la gestion des processus et des systèmes multiprocesseurs. DragonFly BSD est donc censé être plus performant que son aîné dans la gestion des tâches du processeur.
- Darwin est un cas un peu à part puisqu’il s’agit d’un système d’exploitation distribué par Apple. Il est principalement composé du code de FreeBSD, mélangé à du code d’Apple et du code dérivé de NEXTSTEP. Comme Mac OS X, il repose sur le noyau XNU que nous avons introduit dans la partie sur Mac OS. La dernière version en date est liée à la sortie de Leopard. Plusieurs projets destinés à améliorer ce système sont nés dont le plus connu à ce jour est OpenDarwin, aujourd’hui arrêté.
-
A.
Quelques Live CD/Live DVD
Un Live CD est un CD qui contient un système d’exploitation qu’il n’est pas nécessaire d’installer pour l’exécuter. Les Live CD embarquant Linux sont dévolus à plusieurs tâches : présenter les fonctionnalisés d’une distribution, disposer d’un environnement transportable ou encore servir de trousse à outils. Depuis la première distribution de ce type, DemoLinux, un certain nombre de Live CD ont vu le jour. Voici une sélection de quelques Live CD/Live DVD Linux.
- Knoppix est l’une des premières distributions GNU/Linux Live CD. Elle utilise le système de paquets de Debian GNU/Linux et embarque l’environnement KDE. Deux versions sont proposées : l’une tenant sur un CD, l’autre sur un DVD. Notez qu’il existe une distribution qui s’inspire de Knoppix et qui embarque GNOME : Gnoppix.
- SLAX est une distribution basée sur Slackware qui contient KDE. L’un de ses avantages est qu’elle est facilement personnalisable grâce à un outil dédié.
- Damn Small Linux est une distribution qui ne fait que 50 Mo et qui est basée sur Knoppix. GNOME et KDE laissent place à JWM ou à Fluxbox, deux environnements bien plus légers. Elle peut se graver sur un CD ou se loger sur une clé USB.
- Une partie des distributions GNU/Linux présentée plus haut est disponibles sous la forme de Live CD. C’est le cas d’Ubuntu/Kubuntu/Xubuntu, de Fedora, de Mandriva, de Desktop BSD ou de DragonFly BSD.
- Quelques distributions sont spécialisées dans la récupération des données et la réparation des systèmes d’exploitation. Citons par exemple SystemRescueCD.
Sachez enfin qu’un autre type de diffusion des distributions GNU/Linux est de plus en plus utilisé. Il s’agit des supports de stockage externes, comme les clés USB.
Haut de page
-
Page précédente
3. Mac OS X











