Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

Linux : L'architecture système

Découvrir le noyau

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Voyez ce que signifie le mot « noyau » dans un système d'exploitation comme Linux. Passez également en revue les responsabilités de ce noyau.
07:19

Transcription

Quelques mots d'abord sur le noyau, le kernel. Donc, c'est l'essentiel de Linux. C'est ce que Linus Torvalds a commencé à développer, il y a de cela pas mal de temps, et qui, maintenant, est à une version 4 quelque chose. On va le voir, d'ailleurs. Le kernel, donc ça veut dire noyau en anglais, c'est le centre de Linux parce que c'est ce code qui va démarrer Linux, qui va permettre à Linux d'adresser les périphériques, de gérer les process, de gérer la mémoire, de gérer donc l'exécution de ce qui se passe sur la machine Linux. Qu'est-ce que c'est que les périphériques ? C'est votre clavier, l'écran, etc. Il faut bien entendu qu'une partie du code de Linux s'occupe de faire ça, d'afficher des choses. C'est le noyau qui fait ça. On voit ici une représentation que j'ai prise sur Wikipédia, et qui est une représentation des différentes parties du noyau avec des relations. L'idée, c'est pas de tout détailler, bien entendu, mais de voir globalement, que le noyau va s'occuper des choses essentielles dans l'exécution de la machine, c'est-à-dire des entrées sorties. Ici, on a du CPU. Donc, les processeurs avec... ce qu'on appelle le processing. On gère la mémoire ici. Donc, on a la partie physique qui est en bas. On gère les disques, on gère le réseau et on gère les périphériques. On a ici des niveaux fonctionnels : le système, les processus, la mémoire, le stockage, le réseau et les interfaces. Un des gros travaux du noyau, c'est de gérer les processus. On voit ici que ces processus sont gérés alors, sous deux formes. Des process, et on voit ici des threads. Les process, ce sont les programmes qui s'exécutent. Et parfois, ces programmes gèrent plusieurs threads. Si vous lancez un programme sur votre machine, et bien, c'est un processus, et il a un numéro. Si ce programme gère plusieurs threads, et bien, à l'intérieur du même programme, dans la même zone de mémoire, d'ailleurs... Ce qu'on appelle la mémoire virtuelle ici, qui est attribuée à un des process. Lorsque ce process démarre, il aura de la mémoire et on appelle ça de la mémoire virtuelle parce que ce n'est pas forcément de la mémoire qui est physique. Ça peut être de la mémoire qui est swappée. Donc, c'est ce que le noyau va donner au processus. Et bien, un process aura de la mémoire virtuelle. C'est son espace d'adressage, et il n'en aura pas plus. Le kernel va lui donner de la mémoire sous forme de virtual memory. Il aura son espace d'adressage dans lequel il pourra travailler. Mais s'il veut gérer plusieurs threads, et bien, il mettra en place plusieurs sous-process qui seront dans cet espace et qui pourront exécuter des choses en parallèle s'il y a plusieurs processeurs sur la machine. Bien entendu, il faut faire une synchronisation de ces threads à un moment donné. Et finalement, au niveau plus bas, et bien, on a le kernel qui a ce qu'on appelle des schedulers ou des ordonnanceurs. Si vous avez une machine avec douze processeurs, et bien, on aura des schedulers, douze schedulers, qui vont prendre des process ou des threads, et les placer sur différents processeurs pour les exécuter. Un système d'exploitation peut être préemptif ou non préemptif. Linux est un système d'exploitation préemptif. C'est-à-dire qu'il va prendre un process, le poser sur un processeur, et gérer lui-même l'exécution. sans que ce soit très collaboratif avec le processus lui-même. Au niveau de la mémoire... Et bien, il faut accéder à la mémoire pour les process. Cette mémoire s'appelle, comme je vous le disais, la mémoire virtuelle. On a ici un mappage en mémoire. C'est-à-dire que si j'utilise de la mémoire sur une machine, cette mémoire peut-être sera physique, mais elle sera peut-être également swappée sur le disque dans un espace de swap s'il n'y a pas assez de mémoire pour tous les processus. Donc, on a de la mémoire logique, ici, gérée par le kernel. Et un allocateur de pages. La mémoire est gérée dans des pages en mémoire. Et puis, évidemment, on a des opérations d'allocation physique qui sont gérées par le noyau. Pour comprendre ce principe, il faut comprendre que lorsqu'un process, comme ici, démarre, et bien, il va avoir, donc, de la mémoire virtuelle à disposition. Il va avoir son espace d'adressage, mais qui est plus grand que la totalité des espaces d'adressage que peuvent avoir tous les processus. Ce que je veux dire : si un processus démarre et que vous avez 4 gigas de RAM, et bien, peut-être que le noyau va donner 1 giga à disposition du premier processus. Et puis, ensuite, un autre processus démarre, et il aura aussi 1 giga. Ainsi de suite. Et on va dépasser en totalité la capacité physique de la machine parce que, probablement, les processus ne vont pas tous utiliser la mémoire qui leur est attribuée. À ce moment-là, on peut avoir du cache, et surtout du swap si des processus ont besoin de plus de mémoire qu'il n'y en a réellement, physiquement. Le noyau va prendre un peu de mémoire d'un processus qui n'est pas forcément au travail et le placer sur le disque. Donc, géré ici par rapport au stockage physique, sur le disque. C'est pour ça qu'on voit qu'on a ici une zone qui est intermédiaire. Le disque lui-même va être géré également par le kernel avec, ici, des blocs pour des disques physiques, et puis, un système de fichiers logique par-dessus. On va avoir également un système de fichiers virtuels parce qu'en Linux, tous les fichiers ne sont pas des fichiers physiques. On jettera un coup d'oeil là-dessus. Encore une notion importante : c'est l'idée que le kernel a sa zone de mémoire. C'est ce qu'on appelle le kernel space. Et les processus, donc, ce qu'on a vu ici, ont leur zone de mémoire à eux. Et c'est deux zones différentes. C'est ce qu'on appelle les anneaux. Les processeurs modernes ont plusieurs anneaux. C'est des anneaux de protection. L'anneau le plus profond est très, très protégé. Et ensuite, on a des couches... extérieures, un peu comme un oignon, qui sont moins protégées. Et bien, Linux se colle sur ce concept des processeurs, mais propose seulement deux niveaux. C'est ce qu'on appelle le kernel space ou le kernel mode, et le user mode. Tous les processus qui s'exécutent en kernel mode ont plus de pouvoir sur la machine. Et pour les processus traditionnels qui sont les applications qui vont tourner qui n'ont pas besoin d'accéder directement aux périphériques ou ce genre de choses, par exemple, et bien, vont tourner en user mode. Et s'ils crashent, et bien, ils ne vont pas faire crasher le noyau. Et la machine ne tombera pas. Par exemple, un process, comme ici, qui tourne en user mode, n'aura pas le droit d'écrire dans la mémoire du kernel, évidemment. C'est-à-dire, la RAM du kernel mode. Donc, on a un noyau qui s'exécute en kernel mode. qui, comme vous le voyez, a un certain nombre de responsabilités sur la gestion des processus, sur la gestion de la mémoire, le stockage, les périphériques, bien entendu.

Linux : L'architecture système

Prenez en main les principes généraux de l’architecture système de Linux. Comprenez le fonctionnement du noyau (kernel), de la gestion de la mémoire, des processus, etc.

2h01 (20 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Thématiques :
IT
Systèmes d'exploitation
Spécial abonnés
Date de parution :15 sept. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !