logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:systeme:gnu-linux [03/05/2013 09:26]
smolski [GNU/Linux]
doc:systeme:gnu-linux [05/05/2013 18:51]
smolski [Le pilote de périphérique]
Ligne 10: Ligne 10:
  
  
-===== Généralités ​=====+===== Le PC =====
  
-Un ordinateur seul ne peut effectuer rien de très utile. \\ +Un est une machine qui écrit ​des 0 et des 1 dans un disque ​et une carte graphique ​pour nous permettre de les lire\\
-Pour lui un disque dur n'est qu'un endroit pour stocker ​des 0 et des 1 et une carte graphique ​n'est qu'un module mis dans un emplacement.+
  
-Pour lui dire que faire de tout cela, il y a //une première couche logicielle//​ qui est le système ​d'​exploitation ​(sur un PC il y a [[manuel:​bios | le BIOS]] avant tout). \\ +===== Système ​d'​exploitation ​=====
-On y trouve dedans tout ce qui est nécessaire pour gérer le matériel et fournir à l'​utilisateur les fonctions de base.+
  
-Certains systèmes ​d'​exploitation ​relativement récents rendent tout cela un peu confus ​en mélangeant toutes ​les couches. \\ +Un système ​d'​exploitation ​(ou **OS**) est un logiciel qui, en première couche possède ​les bases de fonctionnement pour gérer le matériel installé(([[manuel:​bios | le BIOS]])). \\ 
-//L'​interface graphique// ​est fournie //avec le système d'exploitation/​comme c'est le cas par exemple avec Windows depuis la version 95.+l'OS fournis aussi //l'​interface graphique// ​qui se trouvera à être plus ou moins séparée de cette première couche. \\ 
 +Par exemple windows mélange les couches alors que, dans un but de clarté pour l'utilisateur,​ GNU/Linux les sépare davantage.
  
-Pour qui souhaite un peu mieux comprendre l'​architecture interne, il vaut mieux s'​intéresser à un système comme **GNU/​Linux** qui met plus en évidence ce découpage.+===== Interface graphique =====
  
-===== Gestion ​de la mémoire =====+Bien que fournis avec, l'​interface graphique ne fait pas réellement partie ​de l'OS lui-même. \\ 
 +L'​interface graphique vient se placer au-dessus de ce dernier et, de plus se divise en plusieurs parties encore.
  
-Un des premiers rôles ​du système d'exploitation((OS)) est de gérer ​la mémoire disponible sur la machine\\ +  - Tout ce qui est proche ​du matériel comme les pilotes de la carte graphique et les fonctions essentielles : affichage, manipulation de ce qui apparaît à l'écran, gestion ​de la 3D... Sous GNU/Linux c'est //X.Org// qui s'en charge. 
-Par cela, il s'agit de la **RAM** présente sur la machine, mais pas seulement, comme cela sera expliqué ci-après.+  - [[manuel:​gestionnaires | Les gestionnaire ​de fenêtres]]. 
 +  ​[[manuel:​gui | Les gestionnaire de bureau]].
  
-Sur une machine plusieurs programmes peuvent s'​exécuter simultanément comme expliqué dans la section suivante. +===== La mémoire ​=====
-<note tip>Il ne faut pas que ceux-ci puissent interférer les uns avec les autres.</​note>​ +
-Durant son déroulement,​ une application a besoin de sauvegarder des données temporairement. \\ +
-Quand vous utilisez un traitement de texte par exemple, il conserve la police actuellement utilisée. \\ +
-Cela se fait dans la //mémoire//. \\ +
-Et il ne faut pas que le jeu qui est en train d'​être utilisé en même temps (par exemple) puisse altérer cette valeur lorsqu'​il enregistre l'​emplacement actuel du joueur.+
  
-Pour réaliser cela, les programmes ne peuvent pas écrire directement dans la RAM de la machine. ​\\ +La mémorisation permet de conserver et de distinguer la donnée individuelle propre à chacune des applications actives sur la machine. 
-Pour eux tout se passe comme si c'était le cas, mais le système d'exploitation se charge d'​écrire dans certaines zones indépendantes les unes des autres. \\ +<note tip>C'est l'OS qui gère la mémoire ​!</​note>​
-Le programme voit un espace de mémoire ​virtuelle dans lequel il peut faire ce qu'il veut sans risquer de déranger les autres. \\+
  
-Pour résoudre ce problème, il y a la notion de fichier ​d'échange ​(ou **swap**). \\ +La mémoire c'​est ​d'abord la RAM installée((la mémoire vive)mais pas seulement. \\ 
-La place supplémentaire nécessaire est prise sur le disque dur. \\ +[[manuel:​partition?&#​la_swap | La partition ​ swap]] créée ​sur le disque dur est aussi utilisée par l'OS en cas de besoin.
-Si la mémoire ​est pleine et qu'il faut y écrire ​de nouvelles données, les plus anciennes (ou les moins fréquemment utilisées) seront sauvegardées sur le disque pour libérer de l'​espace.+
  
-Un programme ne peut travailler directement qu'​avec les données en mémoire vive. \\ +==== Détail ====
-Donc si celles qui avaient été sauvegardées sont requises, elles suivront le chemin inverse pour revenir en mémoire depuis le disque.+
  
-Tout ce mécanisme est invisible pour l'application. C'​est ​le système d'​exploitation qui se charge ​de ces opérations selon les besoins+En effet, une application ​en cours a besoin de conserver en mémoire des données à sauvegarder ​le temps de son exécution\\ 
-<note tip>Les temps d'​accès au disque dur sont coûteux. Donc si la mémoire est insuffisante par rapport aux applications ​utilisées, l'​utilisation du **swap** sera intensive ​et ralentira la machine.</note>+Plusieurs ​applications((ou **programmes**)) peuvent même s'​exécuter en même temps et doivent //chacune// conserver en //​mémoire//​ __des données temporaires__ différentes accessibles\\ 
 +Par exemple l'​application [[logiciel:​gimp]] conservera une couleur particulière à reproduire et en même temps qu'une application de traitement de texte active conservera une police de texte en cours et qu'un navigateur visitera une page sur la //Toile//.
  
-===== Multitâche =====+==== Conclusion ​====
  
-Sur un PC standard, on a un seul processeurCelui-ci ne peut globalement exécuter ​qu'une opération à la fois. Or lorsqu'​on l'​utilise,​ on peut en même temps regarder une vidéo, relever ses mails et graver ​un CD-ROM ​par exemple. \\ +  - L'OS se charge d'​écrire ces mémorisation //​directement//​ dans des zones séparées de la mémoire. 
-Vu de l'utilisateur,​ c'est comme si tous ces programmes s'​exécutaient simultanément.+  ​Les programmes ​ne voient ​qu'​un ​espace de mémoire //​virtuelle//​ dédié ​par l'OS où ils stockent les données qu'ils ont besoin de conserver pour fonctionner.
  
-<note tip>En fait il n'en est rien du fait des limitations matérielles.</​note>​+==== Multitâche ====
  
-Le rôle du système ​d'exploitation est de faire exécuter ​tour à tour ces applications. \\ +Schématiquement,​ un PC standard ​d'un seul processeur ne peut exécuter qu'une opération à la fois. \\ 
-Chacune va à son tour disposer de l'​unité de calcul (le processeur) pour réaliser ce qu'il désire. \\ +Pourtant, nous pouvons 
-Cet intervalle de temps (//time-slice// en anglais) peut varier selon les systèmes de quelques millisecondes à plusieurs dizaines de millisecondes. \\ +  ​utiliser une application,​ 
-Plus la valeur est faibleplus l'​impression de multitâche sera grande\\ +  - naviguer sur internet, 
-Mais le passage d'une application à une autre a un coût en termes de temps. ​\\ +  - copier des fichiers, 
-Il faut restaurer ​le contexte dans lequel se trouvait l'​application avant que l'​accès au processeur lui ait été retiré.+  - etc..
 +Et nous le faisons comme si tous ces programmes s'exécutaient ensembles ! \\ 
 +C'​est ​le principe du multitâche dit //​préemptif//​.
  
-Il faut donc trouver le bon compromis pour que tout le temps ne soit pas passé à basculer.+En fait, l'OS répartis ces actions en les exécutant non chacune dans son ensemble mais chacune en pointillées avec les autres si rapidement qu'il donne ainsi l'​illusion qu'​elles s'​exécutent toutes en même temps 
 +<​note>​En fait, entre ces pointillés il se crée un temps de quelques millisecondes (un //​time-slice//​) variable selon le système installé.</​note>​
  
-Cette restauration de contexte comprend notamment ​le rétablissement de l'espace ​de mémoire virtuelle évoqué ci-dessus. \\ +En fait, le passage d'une application à l'autre à un coût de temps qui est d'​autant plus long qu'il s'y ajoute la restauration de l'​ensemble des paramètres de chaque ​application ​en exécution simultanée,​ notamment ​la reconnaissance ​de la mémoire virtuelle attribuée et l'instant de calcul du processeur avant l'interruption.
-Il y a aussi le processeur ​qui doit être remis comme il était lorsque le programme a été interrompu. +
- +
-Il faut noter qu'une application ​ne sait pas quand elle ne sera plus exécutée pour laisser ​la place à une autre. \\ +
-On parle de //​multitâche préemptif//​. \\ +
-C'est le système d'exploitation qui prend la décision.+
  
 == Nota == == Nota ==
  
-Sur d'​anciens systèmes on avait un //​multitâche ​coopératif//, appelé parfois aussi //pseudo-multitâche//.+  - Plus le **time-slice** est faible, ​//plus l'​exécution du multitâche// ​ne sera pas apparente pour l'​utilisateur. 
 +  ​C'est l'​OS((le système d'​exploitation)) qui dirige le multitâche ​et non l'​application. 
 +  - L'​application n'​utilise directement que la RAM.
  
-Dans ce cas-là, c'​étaient les applications qui décidaient qu'​elles n'​avaient pendant un certains temps plus besoin du processeur (par exemple si elles attendent des données provenant du disque dur ou du réseau) et peuvent donc être mise en sommeil. \\ 
-Windows 3.1 rajoutait cette couche de multitâche coopératif sur //MS DOS// qui était **monotâche**. 
  
-===== Interface graphique ===== 
  
-Comme dit précédemment,​ l'​interface graphique ne fait pas réellement partie du système d'​exploitation lui-même. \\ +===== Le pilote ​de périphérique =====
-L'​interface graphique vient se placer au-dessus ​de ce dernier et se divise encore en plusieurs parties.+
  
-Tout d'​abord la partie la plus proche du matériel qui comprend les pilotes des cartes graphiques (voir section suivante). \\ +Le pilote ​de périphérique((le **driver**)) permet à l'OS de faire fonctionner ​le matériel installé via une interface toujours identique (//Hardware Abstraction Layer//) malgré leurs composants électroniques différents.
-Cette partie utilise les spécificités du matériel pour fournir des fonctions ​de base (afficher ou déplacer un rectangle par exemple) ou plus avancées ​(gestion de la 3D notamment). \\ +
-Sous GNU/Linux c'est le plus souvent géré par XFree86.+
  
-Ensuite vient [[manuel:​gestionnaires | le gestionnaire de fenêtres]]\\ +Par exemple, les cartes graphiques diffèrent les unes des autresLe driver en établis les spécification techniques et permet ​à l'OS de demander ​d'afficher les données sur l'écran toujours selon la même méthode. \\ 
-Il permet d'avoir comme son nom l'indique des fenêtres pour les applications. \\ +Ainsiquelque soit les composants des cartes graphiquespour l'OS un point reste un point un rectangle un rectangle, etc...
-Celles-ci peuvent être agrandiesréduites,... Et le passage d'une application à une autre est facilité.+
  
-Et enfin on trouve la partie la plus optionnelle,​ [[manuel:​gui | le gestionnaire ​de bureau]]. \\ +<note tip>Des normes permettent ​de standartiser ​un peu tout çaPar exemple, la norme **VGA** pour les cartes graphiques. Cependant, pour la HD ou la 3D chaque fabricant crée ses propres spécifités.</​note>​
-Il permet d'​avoir ​un environnement de travail avec un ou plusieurs bureaux virtuels sur lesquels peuvent être placés des liens vers des programmes\\ +
-Il y a aussi généralement d'​autres outils comme une barre des tâches ou des menus configurables. +
-<​note>​Les deux représentants les plus connus sous GNU/Linux sont **KDE** et **GNOME**.</​note>​+
  
-===== Rôle d'​un ​pilote ​de périphérique =====+Les drivers font partie du système ​d'exploitation bien qu'ils puissent être fournis séparément par le constructeur. Mais ils s'​exécutent dans un mode spécial, appelé **mode réel**. Celui-ci leur permet de //​contourner//​ le **mode protégé** de l'OS, notamment pour l'​utilisation ​de la mémoire.
  
-Appelé driver en anglais, le pilote de périphérique est l'​interface entre le matériel et le système d'​exploitation. \\ +== Nota ==
-Il permet de faire l'​abstraction de celui-ci (on parle de //Hardware Abstraction Layer//) en fournissant une interface toujours identique. \\ +
-Les différents matériels ne sont pas constitués des mêmes composants électroniques. Mais les fonctionnalités qu'ils présentent sont les mêmes. +
- +
-Comme exemple simple, on peut considérer les cartes graphiques. \\ +
-Pour faire afficher un point à l'​écran,​ différentes cartes ne procéderont pas de la même manière. \\ +
-Mais le pilote de périphérique va se charger de dialoguer avec la carte selon ses spécifications techniques. \\ +
-Le système d'​exploitation appelera une méthode toujours identique pour demander à voir apparaître ce point. +
- +
-Ces différences matérielles peuvent être atténuées avec l'​apparition de normes. \\ +
-Pour en revenir aux cartes graphiques, la norme VGA permet de standardiser l'​initialisation et l'​utilisation de la carte. \\ +
-Cette norme ne prévoit pas les hautes résolutions,​ ni les fonctions 3D. \\ +
-Pour ces dernières, on en revient à des spécificités pour chaque fabricant/​modèle. +
- +
-Les drivers sont considérés comme faisant partie du système d'​exploitation. \\ +
-Ils ne le sont pas forcément au sens logiciel, car ils peuvent être fournis séparément par le constructeur. Mais ils s'​exécutent dans un mode spécial, appelé mode réel. +
-<note tip>Ce mode leur permet de contourner les protections du système d'​exploitation du mode protégé (dont notamment le contrôle de la mémoire).</​note>​+
  
 +Un **firmware** est un code à écrire dans le périphérique.
 ===== Démarrage ===== ===== Démarrage =====
  
Ligne 124: Ligne 93:
  
   * [[manuel:​gnu_linux:​processus | Les processus dans le détail.]]   * [[manuel:​gnu_linux:​processus | Les processus dans le détail.]]
 +
doc/systeme/gnu-linux.txt · Dernière modification: 19/04/2023 18:58 par bendia

Pied de page des forums

Propulsé par FluxBB