Nouveautés du noyau 3.1

Magazine
Marque
GNU/Linux Magazine
Numéro
143
Mois de parution
novembre 2011


Résumé
Malgré la détection récente de l'intrusion sur kernel.org, à la suite de laquelle les serveurs ont été arrêtés pour analyse, le développement a tout de même repris, mais à une cadence plus faible. Les mainteneurs des différents sous-systèmes ont dû héberger temporairement leur arborescence git sur des hôtes tels que github.org. Ainsi, la phase de stabilisation du noyau 3.1 a été plus longue que d'ordinaire, mais à l'heure où vous lirez ces lignes, le développement du 3.2 devrait avoir commencé. Nous analysons dans ce Kernel Corner le noyau 3.1. Dans cette première partie, nous abordons différentes optimisations ayant eu lieu dans la gestion mémoire, les nouvelles opérations que supportent à présent lseek(), mais nous proposons aussi une petite analyse de code dans les méandres du VFS ;)

1. API et ABI du noyau

1.1 Nouvelles opérations supportées par lseek()

De nouvelles opérations ont été ajoutées à l'appel système lseek(). Il s'agit de SEEK_HOLE et SEEK_DATA. Brièvement, ces opérations permettent respectivement de se placer dans un fichier au début d'une zone vide ou d'une zone de données. Mais tout d'abord, expliquons ce qu'est une zone vide. Il s'agit d'une zone d'un fichier qui n'est pas physiquement allouée sur le disque, et dont la lecture renvoie uniquement des zéros. Il en résulte que la taille du fichier est supérieure à ce qui est réellement alloué. Une façon de créer de tels fichiers sous des systèmes de type Unix est de positionner la tête de lecture/écriture après la fin du fichier (via l'opération SEEK_SET). Certaines applications prennent en compte ces zones vides dans leurs opérations. Ainsi, des logiciels d'archivage ou de sauvegarde ne conservent pas ces zones vides dans leurs archives, mais prévoient de les restaurer....

Cet article est réservé aux abonnés. Il vous reste 95% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite