Le kernel, sa place et son histoire

Ce qu’il faut d’abord savoir, c’est que Linux est un “descendant” de Unix. Et qu’Unix, c’est un système d’exploitation qui était très apprécié, notamment pour son support de nombreuses architectures, mais aussi sa stabilité.

C’est alors que Linus Torvald, alors étudiant à l’université d’Helsinki (Finlande), dédice de créer une version d’Unix librement diffusable. Depuis beaucoup de programeurs participent à la construction et l’amélioration du noyau, surtout depuis le développement d’Internet. Toutes les personnes compétentes sont d’ailleurs invitées à participer.

Le 5 octobre 1991, Linus délivra la toute première version “officielle” de Linux (0.02), la version 0.01 n’étant pas executable, sauf sur les système Minix dont Linus se sera inspiré. A défaut d’autre chose, le système était à présent capable d’exécuter bash (le Bourne Again Shell de GNU) et gcc. Les premières moutures de Linux, en effet, étaient surtout destinées aux hackers et se focalisaient sur le développement du noyau, ce qui explique l’absence de service d’assistance technique, de documentation, etc. Dans une moindre mesure, la communauté Linux considère encore aujourd’hui ces aspects comme très secondaires en regard de la “vraie programmation” : le développement du noyau.

Voici un appel de Linus Torvald effectué à l’époque de comp.os.minix :

Vous regrettez les beaux jours de Minix-1.1, époque bénie où les hommes étaient dignes de ce nom et écrivaient leurs propres pilotes de périphériques ? Vous cherchez à vous investir dans un projet original et vous vous languissez d’un système modifiable à votre convenance ? Vous êtres frustré que tout fonctionne sous Minix ? Vous regrettez les nuits blanches passées à tenter d’implanter un programme récalcitrant ? Si tel est le cas, lisez ce qui suit : Comme signalé il y a un mois, je travaille actuellement sur une version libre d’un système analogue à Minix pour ordinateur AT-386. Ce système est à présent utilisable (mais peut-être ne vous conviendra-t-il pas, tout dépend de ce que vous recherchez) et je compte en diffuser les sources. Il s’agit pour l’instant de la version 0.02, capable néanmoins d’exécuter bash, gcc, gnu-make, gnu-sed, compress, etc.

Depuis, les noyaux n’ont de cesse de se succéder, s’améliorant à chaque fois et supportant de plus en plus de périphériques, parfois mieux que d’autres OS (Opérateur Système) :-D Aujourd’hui, le noyau Linux est concidéré comme l’un des meilleurs avec BSD et celui de MacOS basé également sur Unix.

Le kernel : son rôle, pourquoi le mettre à jour, etc…

Le rôle du noyau Le kernel joue le rôle d’intermédiaire entre vos programmes et votre matériel. Premièrement, il gère la mémoire pour tous les programmes en cours d’exécution (processus), et s’assure qu’ils occupent tous une part équitable (ou non) du temps processeur. En plus, il fournit une interface (simple à utiliser) aux programmes pour communiquer avec votre matériel (appels système).

Bien sûr c’est un petit peu plus compliqué que ça, mais ces fonctions de bases sont les plus importantes à connaître.

Pourquoi le mettre à jour ? Les nouveaux noyaux offrent plus de facilité pour communiquer avec plus de matériels (c’est-à-dire qu’ils gèrent plus de périphériques…), ils peuvent avoir une meilleure gestion des processus, tourner plus rapidement que les anciennes versions, être plus stables et ils corrigent les erreurs stupides des versions précédentes. Beaucoup de gens mettent à jour leurs noyaux car ils veulent avoir les nouveaux pilotes de périphériques et les corrections d’erreurs.

Les modules chargeables ? Kesako ? Ce sont des parties du noyau (pilotes de périphériques généralement) qui ne sont pas compilées dans celui-ci. On peut les compiler séparément, les insérer et les retirer du noyau à n’importe quel moment. En raison de cette souplesse, c’est devenu la méthode préférée pour coder certaines fonctionnalités du noyau. Bon nombre de pilotes de périphériques tels que PCMCIA et les gestionnaires de cartouches QIC-80/40 sont des modules chargeables.

Voilà, j’espère que ces quelques explications vous auront été utiles. Passons maintenant aux choses sérieuses, la compilation !

La compilation

Tout d’abord, il va vus falloir réccupérer les sources de votre noyau pour pouvoir le compiler. Pour cela, il suffit de vous rendre sur le site officiel et de télécharger la dernière version stable (en haut de la liste) en cliquant sur le “F” qui vous permettra de télécharge toutes les sources du kernel.

Enregistrez le dans votre dossier personnel et décompressez le (clique droit si vous avez KDE avec Ark d’installé, sinon tapez tar xvf linux.*version*.tar.bz2 dans la console.

Maintenant que vous avez les sources, vous allez pouvoir commencer à le configurer et le compiler.

Pour cela : - Ouvrez la console (le shell) - loggez vous en root en tapant : su Il va alors vous demander votre passe root. - allez dans le dossier dans lequel vous avez décompressé vos sources en tapant ‘cd’ suivit du chemin du dossier

Ensuite, vous allez devoir suivre ces instructions à la lettre pour éviter tous les problèmes.

Dans la console faites :

make oldconfig -> Il va alors réccupérer votre ancienne config pour la calquer sur celle du future kernel afin de ne pas perdre votre configuration actuelle. Il se peut qu’il vous demande quelques trucs, si vous n’êtes pas sùr, mettez la réponse par défaut (en majuscule parmi celles entre crochets).

make menuconfig -> Cela vous permettra de revoir votre configuration et de changer ou non quelques trucs. Nous verrons après à quoi correspond les titres du menu principal.

make clean make bzImage -> Notez bien le dossier d’installation du fichier bzImage qu’il va vous indiquer. Cela nous servira pour la suite.

make modules make modules_install make install

Et voilà votre kernel compilé et installé.

Normalement, lilo a déjà été modifié et rechargé, et vous n'avez plus qu'à redémarrer pour tester votre nouveau Kernel...

Posté le 23 Septembre 2005 sur mon Blog d'origine.