Linux Kernel: Introduction

Linux Kernel: Introduction

13/07/13

Salut tout l’monde!

Aujourd’hui on va parler du noyau linux (au cas où vous n’auriez pas lu le titre… :p), et cet article est le premier d’une suite sur le sujet, qui proviennent du site linux.org que je me permet de vous retranscrire en français ici. En 1991, un étudiant Finlandais du nom de Linus Benedict Torvalds crée le noyau du système d’exploitation tel qu’on le connaît aujourd’hui. En septembre 1991 sort la version 0.01 de Linux, et en Février 1992, il passe sous licence GPL. La licence GNU General Public License (GPL) autorise les utilisateurs à utiliser, récupérer, modifier et distribuer le code source légalement. Ceci a permit au noyau de devenir très populaire car tout le monde pouvait le télécharger gratuitement. Maintenant que tout le monde peut construire son propre noyau, il peut être utile de savoir comment obtenir, éditer, configurer, compiler et installer un noyau Linux.

Le noyau est le cœur du système d’exploitation. Le système d’exploitation regroupe tous les programmes qui s’occupent du matériel et autorise l’utilisateur à lancer des applications sur un ordinateur. Le noyau contrôle le matériel et les applications. Les applications ne communiquent pas directement avec le matériel, au lieu de cela ils vont demander au noyau. Pour faire simple, le logiciel s’exécute à partir du noyau et celui-ci agit sur le matériel. Sans noyau, un ordinateur n’est qu’un objet sans utilité.

Il y a de nombreuses raisons pour qu’un utilisateur veuille faire son propre noyau. De nombreux utilisateurs veulent faire un noyau qui ne contient que le code nécessaire pour faire tourner leur système. Par exemple, un noyau contient des drivers pour des outils FireWire, mais mon ordinateur n’a pas ces ports. Quand le système se “boot”, du temps et de la RAM sont gaspillés sur des drivers pour les outils que mon système n’a pas d’installé. Si je voulais modifier mon noyau, je pourrais faire mon propre noyau qui n’aurai pas les drivers FireWire. Il y a une autre raison : un outil pourrait appartenir à un utilisateur avec un hardware particulier, mais le noyau qui vint avec la dernière version d’Ubuntu ne contient pas le driver nécessaire. Cet utilisateur pourrait donc télécharger le dernier noyau (qui a quelques versions d’avance sur les noyaux Linux Ubuntu) et faire leur propre noyau qui a le driver nécessaire. Cependant, ces deux raisons sont les plus communes pour les utilisateurs qui veulent faire leur propre noyau.

Avant de télécharger un noyau, nous devrions discuter de quelques faits et définitions importantes. Le noyau Linux est un noyau monolithique. Cela veut dire que le système d’opérant entier est sur la RAM réservée comme espace pour le noyau. Pour être plus clair, le noyau est mis sur la RAM. L’espace utilisé par le noyau est révervé pour le noyau. Le noyau seul peut utiliser cet espace réservé. Le noyau s’approprie cet espace sur la RAM jusqu’à ce que le système soit éteint. En contraste avec l’espace du noyau, il y a l’espace de l’utilisateur. L’espace d’utilisateur est l’espace sur la RAM auquel appartient l’utilisateur des programmes. Des applications comme les navigateurs web, les jeux vidéos, les processeurs word, media players, fond d’écran, thèmes, etc, sont tous sur l’espace d’utilisateur sur la RAM. Quand une application est fermée, n’importe quel programme peut utiliser l’espace nouvellement disponible. Avec l’espace du noyau, une fois que l’espace sur la RAM est prise, rien d’autre ne peut avoir cet espace.

Le noyau Linux est aussi un noyau multi-tâches. Cela signifie que le noyau met en pause certaines taches afin de s’assurer que chaque application puisse utiliser un peu de charge CPU pour sa propre utilisation. Par exemple, si une application est exécutée mais attend de recevoir des données, le noyau mettra cette application en attente et autorisera un autre programme à utiliser les nouvelles ressources CPU disponible jusqu’à ce que les données arrivent. Sinon, le système gaspillerait des ressources pour les tâches qui attendent des données ou qu’un autre programme s’exécute. Le noyau va forcer le programme à attendre pour utiliser du CPU ou arrêtera d’utiliser de la charge CPU. Les applications de peuvent pas sortir de leur pauses ou utiliser des ressources CPU sans l’accord du noyau.

Le noyau Linux fait apparaître les périphériques comme des fichiers dans le dossier /dev . Les ports USB, par exemple, sont situés dans /dev/bus/usb. Les partitions du disque-dur peuvent être trouvées dans /dev/disk/by-label. C’est parce que Linux agit ainsi que beaucoup de gens disent que “Sous Linux, tout est fichier”. Si un utilisateur voulait accéder aux données de sa carte mémoire par exemple, il ne pourraient pas y avoir accès directement par le biais de ces fichiers.

Le noyau Linux est portable. La portablité est une des principales caractéristique qui rends Linux si populaire. La portabilité est la capacité du noyau à fonctionner sur une grande variété de processeurs et de systèmes. Cela inclut donc de nombre supports de processeurs tels que Alpha, AMD, ARM, C6X, Intel, x86, Microblaze, MIPS, PowerPC, SPARC, UltraSPARC, etc… Ceci n’est pas une liste exhaustive.

Dans le dossier de démarrage (/boot), les utilisateurs peuvent voir un fichier “vmlinux” ou “vmlinuz”. Ces deux fichier sont des noyaux Linux compilés. Celui que finit par “z” est compressé. Le “vm” signifie mémoire virtuelle. Sur les systèmes avec un/des processeurs SPARC, les utilisateurs peuvent voir un fichier zImage à la place. Un petit nombre peuvent trouver aussi un fichier bzImage; c’est aussi un noyau Linux compressé. Cela ne change rien de savoir de quel type est celui de l’utilisateur, ce sont tous des fichiers exécutables qui ne devraient pas être modifiés tant que l’utilisateur ne sait pas ce qu’il fait. Sinon leur système pourraient ne pour être démarré, et le système de fonctionnerai plus.

Le code source est le codage du programme. Avec le code source, les programmeurs peuvent faire des changements au noyau et voir comment il fonctionne.

Maintenant que nous comprenons un peu plus le fonctionnement du noyau, il est temps de télécharger le code source. Allez sur kernel.org et cliquez sur le gros bouton “download”. Une fois que le téléchargement est fini, décompressez le fichier téléchargé.

Voilà, à une prochaine fois pour de nouvelle infos! ;) Vous pouvez trouver l’article original ICI

Un grand merci à Octopussy qui a fait la moitié du boulot pour cette traduction! (en plus de m’avoir encore corrigée un article ;) )