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 →
Ci-dessous, les différences entre deux révisions de la page.
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:39] smolski [Interface graphique] |
doc:systeme:gnu-linux [04/05/2013 21:31] smolski [Rôle d'un 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 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. | + | Plus ou moins séparé de cette première couche((windows par exemple mélange les couches alors que, dans un but de clarté pour l'utilisateur, GNU/Linux les sépare davantage.)), l'OS fournis aussi //l'interface graphique//. |
- | 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. | + | ===== La mémoire ===== |
- | ===== Gestion de la mémoire ===== | + | La mémorisation permet de conserver et de distinguer la donnée individuelle propre à chacune des applications actives sur la machine. |
- | Un des premiers rôles du système d'exploitation((OS)) est de gérer la mémoire disponible sur la machine. \\ | + | La mémoire c'est d'abord la RAM installée qui est gérée par l'OS, mais pas seulement, la swap(([[manuel:partition?&#la_swap]])) est aussi utilisée en cas de besoin. |
- | Par cela, il s'agit de la **RAM** présente sur la machine, mais pas seulement, comme cela sera expliqué ci-après. | + | <note tip>L'OS gère la mémoire.</note> |
+ | En effet, une application en cours à besoin de conserver en mémoire des données à sauvegarder le temps de son exécution. \\ | ||
+ | Plusieurs applications((programmes)) peuvent même s'éxécuter en même temps et doivent conserver **chacune** en //mémoire// des données temporaires différentes. \\ | ||
+ | Par exemple [[logiciel:gimp]] conservera une couleur particulière à reproduire et en même temps une application de traitement de texte active conservera une police de texte en cours d'utilisation. | ||
- | Sur une machine plusieurs programmes peuvent s'exécuter simultanément comme expliqué dans la section suivante. | + | L'OS se charge d'écrire ces mémorisation directement dans des zones séparées de la mémoire. \\ |
- | <note tip>Il ne faut pas que ceux-ci puissent interférer les uns avec les autres.</note> | + | Les programmes eux voient un espace de mémoire //virtuelle// où ils stockent les données qu'ils ont besoin de conserver. \\ |
- | 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. \\ | + | |
- | 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. \\ | + | |
- | 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 place supplémentaire nécessaire est prise sur le disque dur. \\ | + | |
- | 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. \\ | + | |
- | 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. | + | |
- | <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> | + | |
===== Multitâche ===== | ===== Multitâche ===== | ||
- | Sur un PC standard, on a un seul processeur. Celui-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. \\ | + | Un PC standard d'un seul processeur ne peut exécuter qu'une opération à la fois (schématiquement...). \\ |
- | Vu de l'utilisateur, c'est comme si tous ces programmes s'exécutaient simultanément. | + | Pourtant, nous pouvons |
- | + | - utiliser une application, | |
- | <note tip>En fait il n'en est rien du fait des limitations matérielles.</note> | + | - naviguer sur internet, |
- | + | - copier des fichiers, | |
- | Le rôle du système d'exploitation est de faire exécuter tour à tour ces applications. \\ | + | - ... |
- | Chacune va à son tour disposer de l'unité de calcul (le processeur) pour réaliser ce qu'il désire. \\ | + | comme si tous ces programmes s'exécutaient ensembles ! |
- | Cet intervalle de temps (//time-slice// en anglais) peut varier selon les systèmes de quelques millisecondes à plusieurs dizaines de millisecondes. \\ | + | C'est le principe du multitâche dit //préemptif//. |
- | Plus la valeur est faible, plus l'impression de multitâche sera grande. \\ | + | 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 et et donne ainsi l'illusion qu'elles s'exécutent toutes en même temps ! |
- | Mais le passage d'une application à une autre a un coût en termes de 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> |
- | Il faut restaurer le contexte dans lequel se trouvait l'application avant que l'accès au processeur lui ait été retiré. | + | Le passage d'une application à l'autre à un coût de temps 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 faut donc trouver le bon compromis pour que tout le temps ne soit pas passé à basculer. | + | |
- | + | ||
- | Cette restauration de contexte comprend notamment le rétablissement de l'espace de mémoire virtuelle évoqué ci-dessus. \\ | + | |
- | 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((la mémoire vive)). | ||
- | 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 ===== | ===== Interface graphique ===== | ||
- | Comme dit précédemment, l'interface graphique ne fait pas réellement partie du système d'exploitation lui-même. \\ | + | 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 se divise encore en plusieurs parties. | + | L'interface graphique vient se placer au-dessus de ce dernier et, de plus se divise en plusieurs parties encore. |
- | Tout d'abord la partie la plus proche du matériel qui comprend les pilotes des cartes graphiques (voir section suivante). \\ | + | - 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. |
- | 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). \\ | + | - [[manuel:gestionnaires | Les gestionnaire de fenêtres]]. |
- | Sous GNU/Linux c'est le plus souvent géré par **X.Org**((un fork de XFree86, réalisé juste avant le changement de licence)). | + | - [[manuel:gui | Les gestionnaire de bureau]]. |
- | Ensuite vient [[manuel:gestionnaires | le gestionnaire de fenêtres]]. \\ | ||
- | Il permet d'avoir comme son nom l'indique des fenêtres pour les applications. \\ | ||
- | Celles-ci peuvent être agrandies, ré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]]. \\ | + | ===== Le pilote de périphérique ===== |
- | 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 ===== | + | |
Appelé driver en anglais, le pilote de périphérique est l'interface entre le matériel et le système d'exploitation. \\ | Appelé driver en anglais, le pilote de périphérique est l'interface entre le matériel et le système d'exploitation. \\ | ||
Ligne 125: | Ligne 91: | ||
* [[manuel:gnu_linux:processus | Les processus dans le détail.]] | * [[manuel:gnu_linux:processus | Les processus dans le détail.]] | ||
- | ===== Source ===== | ||
- | |||
- | * [[http://www.c-sait.net/cours/systemes_exploitation.php | SAIT NET - Les systèmes d'exploitation]] |