Vous êtes sur la page 1sur 6

Cours-TP Noyau Linux

I- DEFINITION :

Le noyau Linux est le composant central d'un système d'exploitation basé sur
Linux. Il s'agit d'une partie fondamentale du système qui assure la communication
entre le matériel (hardware) de l'ordinateur et le logiciel (software) que vous
exécutez. Le noyau Linux offre une interface entre les applications utilisateur et le
matériel, facilitant l'accès aux ressources système, la gestion des processus, le
contrôle des périphériques, la gestion de la mémoire, etc.

Voici quelques points clés à connaître sur le noyau Linux :

a. Gestion des Ressources : Le noyau gère les ressources matérielles telles que le
processeur, la mémoire, les périphériques d'entrée/sortie, le stockage, etc. Il alloue et
libère des ressources en fonction des besoins des programmes en cours d'exécution.

b. Communication avec le Matériel : Le noyau permet aux programmes utilisateur


d'interagir avec le matériel en fournissant une interface standardisée. Les pilotes de
périphériques, qui sont des modules du noyau, permettent au noyau de reconnaître et de
gérer différents types de matériel.

c. Gestion des Processus : Le noyau gère l'exécution des processus (programmes en cours
d'exécution) et assure leur isolation les uns des autres. Il attribue des ressources telles que
le temps CPU, la mémoire, etc., à chaque processus.

d. Système de Fichiers : Le noyau gère l'accès aux systèmes de fichiers et assure la


communication entre le système de fichiers et les applications utilisateur.

e. Sécurité : Le noyau assure également la sécurité du système en contrôlant l'accès aux


ressources et en appliquant les politiques de sécurité définies.

f. Monolithique et Modulaire : Le noyau Linux peut être compilé de manière monolithique,


où toutes les fonctionnalités sont incluses dans le noyau, ou de manière modulaire, où
certaines fonctionnalités peuvent être chargées sous forme de modules à la demande.

g. Open Source : Le noyau Linux est distribué sous une licence open source (principalement
la licence GPL) et est développé de manière collaborative par une large communauté de
contributeurs à travers le monde.

Le noyau Linux est utilisé comme base pour de nombreux systèmes d'exploitation,
notamment les distributions Linux telles qu'Ubuntu, Fedora, Debian, et d'autres, ainsi que
dans des systèmes embarqués, des serveurs, des dispositifs IoT, et plus encore.
II- Les fonctionnalités du noyau Linux :

Le noyau Linux est responsable de nombreuses fonctions essentielles dans un


système d'exploitation. Voici quelques-unes des tâches clés que le noyau Linux accomplit :

Gestion des Ressources : Le noyau gère l'allocation et la libération des ressources


matérielles, telles que le processeur (CPU), la mémoire, les périphériques d'entrée/sortie,
les ports USB, etc. Il s'assure que chaque processus obtient le temps CPU nécessaire et
l'accès aux ressources requises.

Gestion des Processus : Le noyau est responsable de la création, de l'exécution, de la


suspension et de la terminaison des processus. Il assure l'ordonnancement des processus
pour garantir une utilisation efficace du processeur.

Communication Interprocessus : Le noyau facilite la communication entre les processus,


que ce soit par le biais de signaux, de mémoires partagées, de tubes (pipes), de files
d'attente de messages, ou d'autres mécanismes de communication interprocessus.

Gestion de la Mémoire : Le noyau gère la mémoire physique et virtuelle. Il alloue de la


mémoire aux processus en cours d'exécution, assure le suivi des zones mémoire libres et
prend en charge la pagination (swap) pour étendre l'espace mémoire si nécessaire.

Gestion des Périphériques : Le noyau reconnaît et gère les périphériques matériels, tels
que les disques, les imprimantes, les cartes réseau, etc. Les pilotes de périphériques sont
des modules du noyau qui facilitent la communication avec ces périphériques.

Système de Fichiers : Le noyau permet l'accès aux systèmes de fichiers et gère


l'organisation et l'accès aux données stockées sur les disques. Il gère également les
opérations de lecture/écriture, la journalisation (journaling), etc.

Sécurité : Le noyau applique des politiques de sécurité, contrôle l'accès aux ressources du
système, gère les droits d'accès des utilisateurs et garantit la sécurité du système
d'exploitation.

Réseau : Le noyau prend en charge les fonctionnalités réseau en gérant les protocoles de
communication, les sockets, la gestion des connexions, etc. Il permet au système
d'exploitation de communiquer sur un réseau.

Gestion de l'Énergie : Le noyau peut gérer la consommation d'énergie en mettant en


veille ou en réveillant des périphériques, en ajustant la fréquence du processeur, etc.,
pour économiser de l'énergie.

Support Multitâche : Le noyau prend en charge l'exécution de plusieurs tâches en même


temps, ce qui permet à un système d'exploitation basé sur Linux d'être multitâche et de
servir plusieurs utilisateurs ou applications simultanément.
En résumé, le noyau Linux est la pièce centrale d'un système d'exploitation basé sur
Linux comme elle montre la figure 1, agissant comme un intermédiaire entre le matériel
et le logiciel, et fournissant un environnement stable et sécurisé pour l'exécution des
applications.

Figure 1

III- Types de Noyau :

Le noyau Linux est principalement de type monolithique. Cela signifie que la


plupart des fonctionnalités du noyau, y compris les pilotes de périphériques et les
systèmes de fichiers, sont intégrées directement dans le noyau et fonctionnent comme
une seule entité. Cela offre généralement des performances élevées, mais peut rendre le
noyau plus volumineux.
Cependant, il existe des systèmes d'exploitation basés sur le noyau Linux qui adoptent
des approches différentes. Voici quelques termes qui peuvent être associés à divers types
de noyaux :

Monolithique : Comme mentionné précédemment, le noyau Linux est principalement


monolithique. Toutes les fonctionnalités essentielles sont incluses dans une seule image
de noyau.

Micro-noyau (Microkernel) : Les micro-noyaux adoptent une approche modulaire, où


seules les fonctionnalités essentielles sont incluses dans le noyau, tandis que d'autres
services (par exemple, les pilotes de périphériques) sont exécutés en tant que processus
en espace utilisateur. Cela offre une plus grande modularité et une maintenance plus
facile, mais peut entraîner une surcharge de performance due à la communication entre
les composants.

Noyau Hybride (Hybrid Kernel) : Un noyau hybride combine des éléments du


monolithique et du micro-noyau. Il peut avoir des caractéristiques monolithiques tout en
offrant également certaines fonctionnalités sous forme de modules ou de processus
utilisateur.

Dans le contexte du noyau Linux, la plupart des distributions Linux classiques, telles
qu'Ubuntu, utilisent un noyau monolithique. Cependant, des projets tels que le noyau
L4Linux ont exploré des approches de noyaux hybrides en intégrant le noyau Linux avec
le micro-noyau L4. Ces projets visent souvent à combiner la stabilité et les performances
d'un noyau monolithique avec la modularité d'un micro-noyau.

IV- La numérotation des versions du noyau Linux

La numérotation des versions du noyau Linux suit généralement le format


"majeur.mineur.release". La signification des chiffres dans les versions mentionnées est
généralement interprétée comme suit :

1.x : Les premières versions majeures du noyau Linux. La série 1.x était caractérisée par
une évolution rapide et l'ajout de fonctionnalités fondamentales au noyau.

2.0.x : La transition vers la série 2.x a introduit des améliorations majeures, y compris le
support de l'architecture x86. La version 2.0.0, sortie en juin 1996, était une étape
importante pour la stabilité et la compatibilité du noyau.

2.2.x : a été publiée en janvier 1999 et a apporté des améliorations de performances et de


nouvelles fonctionnalités. Elle a continué à améliorer la stabilité et la compatibilité.

2.4.x : a été publiée en janvier 2001 et a introduit plusieurs améliorations significatives,


notamment le support USB, IPv6 RAID et LVM. Cette série a été largement utilisée dans
de nombreuses distributions Linux.

2.6.x : a commencé en décembre 2003 et a marqué un changement dans le modèle de


développement, introduisant une approche plus prévisible avec des versions mineures
apportant des améliorations continues en supportant des fichiers système FS jusqu’ a 16
TB et autres FS .

3.x : a débuté en juillet 2011. Le passage de 2.x à 3.x était plus symbolique que technique.
Cela a marqué un jalon important dans le développement du noyau, mais les
changements techniques étaient relativement mineurs.

4.x : La série 4.x a continué le développement avec des améliorations, des corrections de
bugs et de nouvelles fonctionnalités. Elle a maintenu la stabilité tout en introduisant des
évolutions.

5.x : La série 5.x et ultérieure continue d'évoluer avec des améliorations continues, des
ajouts de fonctionnalités et des corrections de bugs. Chaque nouvelle version de la série
représente une itération dans le développement du noyau.

Chaque série de versions apporte des améliorations, des fonctionnalités nouvelles et


des corrections de bugs. La transition entre les séries majeures peut parfois indiquer des
changements significatifs dans l'architecture ou les fonctionnalités du noyau. La
progression du temps entre les versions dépend du modèle de développement spécifique
du noyau Linux et des objectifs du projet.
V- Compilation du Noyau Linux :

1- Télécharger le noyau souhaité installer :


Entrer le site http://www.kernel.org cliquer sur ce lien puis sur le dossier linux/ ensuite sur le
dossier kernel et enfin cliquer sur la version que vous souhaitez télécharger.

2- Une fois vous avez le téléchargement est complété copier le ficher contentant le noyau (ce
fichier est de la forme archivé et compressé donc a une extension .tar.gz ) dans le dossier
/usr/src et le décompresser.

3- Faire entrer dans le dossier décompressé contenant le nouveau noyau

4- Executer la commande make clean

5- Executer l’une des commandes suivantes: make config/menuconfig/xconfig/gconfig/ oldconfig

6- Dans le menu choisir les modules que vous voulez les avoir dans le noyau en mettant le
symbole * ou comme module externe en mettant le symbole M avec la touche espace et
avec les fleches de redirections choisir exite pour sortir enregistrer avec yes.

7- Une fois terminer la configuration vous trouverez un nouveau fichier .config dans le dossier
courant en tapant la commande ls –a ce fichier contient les différentes configurations et
propriétés choisis dans le menu de configuration
8- Ensuite taper la commande de compilation du noyau : make bzImage

9- make modules

10- ls /lib/modules

11- make modules_install

12- On peut voir tous les differents pilotes(drivers) et les modules avec la commande :
ls /lib/modules/version_du_noyau/kernel

Et aussi avec la commande : ls /lib/modules/version_du_noyau/kernel/drivers/

Par exemple pour voir les modules de réseau :


ls /lib/modules/version_du_noyau/kernel/net
13- Jusqu’ a maintenant le nouveau noyau n’est pas encore prise en compte par le système en
vérifiant par la commande suivante : uname –a ou tout simplement uname –r
Pour que le système d’exploitation prendre en compte le nouveau noyau en doit dire ça a
bootloader : grup
14- ls /boot/grup2
15- grup2-mkconfig –o /boot/grup2/grup.cfg
16- redémarrer votre machine
17- vérifier maintenant toujours avec la commande uname –r

Vous aimerez peut-être aussi