Linux 2.2

Go forth, multiply, and fill the earth(*).

Lors de la diffusion de la version 2.1.125 de Linux (version dite de développement), Linus Torvalds termina son message habituel contenant les nouveautés par cette phrase, ce qui en français donnerait *« Allez de l'avant, multipliez et peuplez la Terre ». Au moment où un grand nombre de personnes attendent enfin la livraison de la version 2.2, cette petite phrase méritait d'être notée.

Quand ?

Telle est la question ! À quelques jours de la nouvelle année, il est fort probable que Linux 2.2 soit diffusé peu avant ou peu après : les derniers obstacles à sa diffusion ayant été levés par un important travail des développeurs. Même si leur liste de discussion reste particulièrement animée avec quelques modifications, il ne s'agit plus que des derniers correctifs et dernières mises à jour avant la version finale.

Il est toutefois nécessaire de faire un petit arrêt sur image et voir en quoi cette nouvelle version est importante.

À l'heure où j'écris ces mots, la dernière version de développement est la 2.1.135. Il est probable qu'il y ait encore une ou deux version, avant *la* version 2.2.0. Nombre de personnes toutefois n'on pas attendu ce moment pour « craquer » et essayer ces dernières versions. Pour avoir essayé la version 2.1.135 agrémentée des nombreux correctifs d'Alan Cox (dite ac), la première surprise est que... ça marche. Étonnant non ?

Un peu d'histoire...

La série 2.0, qui est à l'heure actuelle la version dite «stable» a vu le jour le 9 Juin 1996, c'est-à-dire il y a plus de deux ans et demi. Toutefois, plus de 36 version intemédiaires ont été

diffusées depuis cette date. Les dernières en date ont été diffusées par Alan Cox. La 2.0.36, dernière version stable existante a été rendue publique le 16 novembre, assurant ainsi que la version stable ne prenne pas trop de retard sur les évolutions technologiques intégrées dans la version de développement.

La version de développement actuelle a demandé plus de deux ans et demi de travail, à des centaines de développeurs. Le volume du code source a subi une augmentation d'environ 50%. Cette augmentation pourrait faire craindre le pire ! En réalité, comme nous allons le voir, une grosse partie du « nouveau code » provient de nouveaux gestionnaires de périphériques ou bien de l'intégration de nouvelles architectures.

Architectures.

Voici un tableau résumant les architectures gérées par Linux, avec un comparatif entre la version 2.0 et la future version 2.2.

 
ARCHITECTURE LINUX 2.0 LINUX 2.2
Alpha:
Alcor/Alpha-XLT X X
Alpha-XL X X
AlphaBook1 X  
Avanti X X
Cabriolet X X
DP264   X
EB64+ X X
EB66 X X
EB66+ X X
EB164 X X
Jensen X X
LX164   X
Miata   X
Mikasa X X
Noname X X
Noritake   X
PC164 X X
Platform2000 X X
Rawhide   X
Ruffian   X
SX164   X
Sable   X
Takara   X
Arm :
Archimedes   X
A5000   X
RiscPC   X
EBSA-110   X
EBSA-285   X
NexusPCI   X
Corel-VNC   X
Tbox   X
Intel :
[Note: en fait, tous les processeurs étaient gérés sous 2.0, mais certaines configurations de Cyrix, ..., avaient de nombreux problèmes]
386 X X
486 X X
Cx486   X
Pentium X X
K5   X
5x86   X
6x86   X
Ppro X X
K6   X
6x86MX   X
m68k/Type:
Amiga X X
Appollo   X
Atari X X
Macintosh X X
VME (Motorola et BVM)   X
HP9000/300   X
Mips/Types:
Acer PICA 1 X X
DECstation X X
Deskstation RPC44 X X
Deskstation Tyne X X
Mips Magnum 3000 X X
Mips Magnum 4000 X X
Olivetti M700-10   X
Stations SGI Indy   X
SNI RM200 PCI   X
Mips/Processeurs:
R3000 X X
R4300   X
R4x00 X X
R5000   X
R56x0   X
R6000 X X
R8000 X X
R10000 X X
PowerPC:
Béta.   X
PowerMac   X
PreP/M   X
CHRP   X
PowerMac/PReP/CHRP   X
APUS   X
MBX   X
Sparc (32bits):
ap1000 X X
sun4   X
Sun4c X X
Sun4m X X
Sun4c X X
Sun4e X X
Sun4u X X
Sparc (64bits):
sun4   X
Sun4c   X
Sun4m   X
Sun4c   X
Sun4e   X
Sun4u   X
SparcStation5   X
SparcStation20   X

SMP (Symmetric Multi-Processors)

Initialement introduit dans la version 2.0, SMP a toujours plus ou moins posé un certain nombre de problèmes (accès concurents, etc.). La version 2.1 a sérieusement amélioré la gestion multi-processeurs. Une grosse partie du système de verrou a été revu et corrigé. La version 2.2 devrait donc être beaucoup plus stable à ce niveau et pas uniquement sur les plate-formes Intel. Le SMP est particulièrement bien géré sur les architectures Alpha et Sparc. Certains développeurs ont pu faire tourner un server Sun sous Linux avec 16 processeurs.

64 bits.

Si les version Intel ne sont que 32 bits, les versions Alpha et Sparc64 sont 64 bits, permettant ainsi d'avoir d'excellentes performances. Cela résoud également un certain nombre de limitations concernant la taille des fichiers (sur ces architectures uniquement).

Du côté des systèmes de fichiers.

Si de nombreux nouveaux gestionnaires ont été ajoutés (cartes réseau, gestion native des cartes graphiques, cartes son), un certain nombre d'autres ont été supprimés. Citons les systèmes de fichiers xiafs, extfs (la première version).

Un certain nombre de systèmes de fichiers sont désormais particulièrement exploitables et d'autres ont subi un grand nombre d'améliorations. Voici la liste des systèmes de fichiers utilisables avec cette version : voir encadré

Abstraction faite des différents systèmes de fichiers gérés, de nombreux progrès ont été accomplis au niveau du système de fichiers dans son ensemble, tant au niveau des performances que de la fiabilité. De plus, le support RAID a été particulièrement soigné. Les niveaux RAID gérés sont les suivants :

0 : concaténation. Cela permet de grouper plusieurs systèmes de fichiers en un seul, accélérant ainsi les performances si les systèmes de fichiers se trouvent sur des disques différents.

1 : miroir. Toute donnée écrite sur un système de fichiers est automatiquement écrit, de façon identique, sur un autre système de fichiers. Cela permet entre autre d'avoir une réponse très rapide en cas de panne physique d'un disque.

4/5 : il s'agit du même système que RAID 0 et 1, si ce n'est que davantage d'informations sont enregistrées, meilleur entrelacement, parité, etc.

Il n'est plus rare de rencontrer des configurations dont la taille des supports de masse dépasse allégrement les 50 Go.

Et des modules chargeables ?

Le système de chargement des modules chargeables kerneld a été supprimé et remplacé par un système plus simple et beaucoup plus fiable : kmod. Kerneld avait la mauvaise idée de s'exécuter en mode utilisateur et de communiquer avec le noyau en utilisant les services des IPC (SystemV). Cela le rendait particulièrement instable et surtout pouvait être considéré comme une faille de sécurité. Kmod fait partie intégrante du noyau bien qu'il s'exécute sous la forme d'une thread indépendante.

Plus rapide et pas forcément plus gros.

Il peux sembler étonnant (mais peut-être est-ce parce que l'on a été « mal » habitué par d'autres commerçants...) qu'avec autant de changement les performances ne soient pas touchées. En fait, cette nouvelle mouture du noyau devrait s'avérer plus rapide et ne devrait pas consomer beaucoup plus de ressources que les version précédentes à condition de n'utiliser que ce qui s'avère être nécessaire.

En fait, un grand nombre d'optimisations ont été effectuées au coeur du noyau. Entre autre, le système de pagination a été revu, NFS devrait être beaucoup plus rapide (ce qui n'est pas un mal), la structure du VFS a été quelque peu modifiée également.

Pour finir...

Cette version devrait répondre un certain nombre d'exigences, en matière de nouveaux périphériques, fiabilité industrielle, etc. L'une des questions que l'on peut se poser est : «Faut-il mettre à jour tout de suite son noyau ?». Dans la plupart des cas, la réponse est négative.

Basculer d'un noyau à un autre n'est pas vraiment compliqué. Toutefois, cette opération possède certains risques. De plus, il est nécessaire de mettre à jour un certain nombre d'autres

outils (glibc, initscript, etc.) pour fonctionner de façon stable. La meilleure chose à faire est sûrement d'attendre que les distributions soient mises à jour. Ce faisant, l'installation sera plus simple.

Et ensuite ? Cette version n'est pas encore sortie que bon nombre de fonctionnalités sont déjà en attente de la prochaine version de développement, la 2.3. Le programme des réjouissance n'est pas vraiment encore défini, mais les notions de cluster que l'on trouve dans le projet Beowulf semble très prométeuses. L'ajout de nouvelles architecture sera également une part importante des futures évolutions. n

Eric Dumas, dumas@Linux.EU.Org

Palo Alto, 15 Décembre 1998

 

 
Réferences
  • Les Howtos en Français :
    http://www.freenix.org/linux/HOWTO
  • Les différents portages de Linux sur d'autres architectures
    http://www.linux.org/projects/ports.html
  • Pour aller plus loin avec les sources :
    http://www.linuxhq.com/
  • Les noyaux en ligne :
    http://www.kernel.org/pub/
  • Projet Beowulf :
    http://beowulf.gsfc.nasa.gov/

 

Liste des Systèmes de fichiers utilisables avec cette version

ext2fs :

c'est le système de fichiers natif

proc :

interface processus et système. De nombreuses nouvelles entrées sont présentes

adfs :

Acorn Disc Filing System, RiscOS, ARM (lecture seule)

affs :

système de fichiers Amiga ;

autofs :

automonteur de système de fichiers ;

coda :

autre type de système de fichiers réseau ;

hfs :

Macintosh ;

hpfs :

OS2 (en lecture seule) ;

isofs :

CD-ROM. Gère les extensions Rockridge et Joliet ;

minix :

Minix ;

msdos, fat, vfat:

systèmes de fichiers bien connus ;

ncpfs :

implémentation du protocole NCP de Novell pour les systèmes de fichiers Netware ;

nfs :

NFS v2 ;

- ntfs :

NT ;

qnx4 :

QNX4 ;

smbfs :

implémentation du protocole SMB utilisé par Windows ;

sysv :

Xenis, SystemV et Coherent ;

umsdos :

système de fichiers Linux sur des partitions DOS ;

ufs :

BSD et dérivés pour Solaris, SunOS, FreeBSD, NetBSD, OpenBSD et NeXTstep


© Copyright 2000 Diamond Editions/Linux magazine France - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License"