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 [06/05/2013 10:40]
smolski [Le processus init]
doc:systeme:gnu-linux [03/08/2016 16:06]
louarn [La mémoire]
Ligne 1: Ligne 1:
 ====== GNU/Linux ====== ====== GNU/Linux ======
- 
-**TUTO EN COURS DE MODIFICATION** smolski - //​05-05-2013//​ 
- 
-(**smolski** 02-05-2013 //fait ce qu'il te plaît !//) Le retour sur le forum est ici : [[http://​debian-facile.org/​viewtopic.php?​id=6780 | Lien vers le forum concernant ce tuto]] 
-   ​N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs ! 
  
   * Objet : Système GNU/Linux   * Objet : Système GNU/Linux
-  * Niveau requis : DÉBUTANT+  * Niveau requis :{{tag>​débutant avisé}}
   * Commentaires : // Informations concernant le système GNU/Linux. //   * Commentaires : // Informations concernant le système GNU/Linux. //
-  * Débutant, à savoir : [[manuel:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)+  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-
 +  * Suivi :  
 +    * Création par [[user>​smolski]] le 02/​05/​2013 
 +    * Testé par .... le .... 
 +  * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=6780 |C'est ici]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)
  
  
 +
 +===== Introduction =====
 +
 +Voir la présentation de [[atelier:​chantier:​gnu-linux| GNU/​Linux]].
 ===== Le PC ===== ===== Le PC =====
  
-Un est une machine qui écrit des 0 et des 1 dans un disque et une carte graphique pour nous permettre de les lire. \\+Un PC est une machine qui écrit des 0 et des 1 sur les secteurs d'un disque et qui utilise ​une carte graphique pour nous permettre de les lire sur un écran. \\
  
 ===== Système d'​exploitation ===== ===== Système d'​exploitation =====
  
-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]])). ​\\ +Un système d'​exploitation (ou **OS**) est un logiciel qui, en première couchepossède les bases de fonctionnement pour gérer le matériel installé((En premier lieu : [[:​doc:​materiel:bios | le BIOS]])). 
-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.+L'​OS ​fournit ​aussi //​l'​interface graphique// qui se trouvera être plus ou moins séparée de cette première couche. 
 + 
 +Par exemple. Windows ​mélange ​ces deux couches alors que, dans le but d'un fonctionnement et d'​une ​clarté ​meilleurs ​pour l'​utilisateur,​ GNU/Linux les sépare davantage.
  
 ===== Interface graphique ===== ===== Interface graphique =====
  
-Bien que fournis ​avec, l'​interface graphique ​ne fait pas réellement partie ​de l'OS lui-même. \\ +Bien que fournie ​avec l'OS, l'​interface graphique ​n'​en ​fait pas réellement partie.
-L'​interface graphique vient se placer au-dessus de ce dernier et, de plus se divise en plusieurs parties encore.+
  
-  ​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+L'​interface graphique vient se placer __au-dessus__ de ce dernier et se divise en plusieurs parties : 
-  - [[manuel:gestionnaires ​Les gestionnaire ​de fenêtres]]. + 
-  - [[manuel:​gui | Les gestionnaire ​de bureau]].+  -  Le //​X.Org// ​qui se charge ​de tout qui concerne le matériel (par exemple ​la carte graphique : //affichage////manipulation// de ce qui apparaît à l'​écran,​ gestion de la //HD// et de la //3D//...)
 +  - [[:doc:​environnements:​environnements ​Gestionnaires ​de fenêtres ​et environnement ​de bureau]].
  
 ===== La mémoire ===== ===== La mémoire =====
  
-La mémorisation permet de conserver et de distinguer ​la donnée individuelle propre ​à chacune des applications actives ​sur la machine. +C'est l'OS qui gère la mémoire. 
-<note tip>​C'​est l'OS qui gère la mémoire !</​note>​+ 
 +La mémorisation permet de conserver et de distinguer ​les données propres ​à chacune des applications actives ​dans la machine.
  
-La mémoire c'est d'​abord la RAM installée((la mémoire vive)) mais pas seulement. \\ +La mémoirec'est d'​abord la **RAM** installée((la mémoire vive))mais c'est aussi [[:​doc:​systeme:​partition?&#​la_swap | la partition ​ swap]] créée sur le disque dur, lors de l'​installation,​ et qui est utilisée par l'OS en cas de besoin.
-[[manuel:​partition?&#​la_swap | La partition ​ swap]] créée sur le disque dur est aussi utilisée par l'OS en cas de besoin.+
  
 ==== Détail ==== ==== Détail ====
  
-En effet, une application en cours a besoin de conserver en mémoire des données à sauvegarder le temps de son exécution. \\ +En effet, une application en cours a besoin de conserver en mémoire des données à sauvegarder le temps de son exécution.
-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//.+
  
-==== Conclusion ====+Plusieurs applications((ou **programmes**)) peuvent demander à s'​exécuter en même temps et doivent donc //chacune// conserver en //​mémoire//​ __des données temporaires__ différentes. 
 +  
 +Par exemple l'​application [[:​doc:​media:​gimp]] conservera une couleur particulière à reproduire pendant qu'une application de traitement de texte conservera une police de texte en cours et qu'un navigateur visitera une page sur la //​Toile//​...
  
-  ​- L'OS se charge d'​écrire ces mémorisation ​//​directement//​ dans des zones séparées de la mémoire.+ 
 +  ​- L'OS se charge d'​écrire ces mémorisations ​//​directement//​ dans des zones séparées de la mémoire.
   - 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.   - 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.
 +
 +==== Quantification de la mémoire ====
 +
 +Il n'y a pas plus de //norme standard// que de //norme Microsoft// pour la quantification de l'​espace mémoire. \\
 +Par contre il y a beaucoup de confusion dans ce domaine.
 +
 +Pour rappel, il y a deux familles de préfixes multiplicateurs normalisés :
 +  - les préfixe ''​SI''​ (ou décimaux) qui représentent des //​puissances de 10// : k=1000, M=1000^2, G=1000^3, T=1000^4, etc.
 +  - les préfixes binaires qui représentent des puissances de 2 (1024=2^10) : Ki=1024, Mi=1024^2, Gi=1024^3, Ti=1024^4, etc.
 +
 +Comme on peut le voir, les noms, symboles et valeurs des préfixes binaires et décimaux sont proches, mais leurs valeurs s'​écartent en augmentant : 
 +  * 2 % entre k et Ki, 
 +  * 5 % entre M et Mi, 
 +  * 7 % entre G et Gi, 
 +  * 10 % entre T et Ti.
 +
 +Les préfixes multiplicateurs binaires sont plus pratiques pour noter des valeurs qui sont des puissances entières de 2, comme la capacité des composants de mémoire (RAM ou flash) ou la taille d'un espace d'​adressage,​ c'est pourquoi ils sont largement utilisés en électronique et informatique (mais pas en réseau et télécom où on utilise les préfixes décimaux).
 +
 +Malheureusement la normalisation des préfixes binaires ci-dessus a été tardive, et entre-temps un usage //sauvage// des symboles des préfixes ''​SI'',​ mais en leur attribuant des valeurs binaires, s'est développé dans ces domaines, et les mauvaises habitudes ont la vie dure.
 +
 +Windows est dans ce cas : il utilise de façon constante la notation des symboles préfixes ''​SI''​ mais en leur donnant des valeurs binaires. \\
 +Même chose pour le JEDEC, l'​organisme de normalisation qui regroupe notamment les fabricants de composants électroniques de mémoire.
 +
 +En ce qui concerne GNU/Linux, le noyau, qui gère la mémoire, fait plutôt la même chose. En revanche dans les programmes utilisateur,​ certains continuent à faire pareil, tandis que d'​autres utilisent désormais les notations normalisées de façon correcte ([[doc:​reseau:​ifconfig|ifconfig]],​ [[doc:​environnements:​gnome:​gparted|parted]]). \\
 +**free** n'​affiche pas de préfixe explicitement,​ mais affiche les valeurs en kibi, mébi ou gibi-octets,​ alors que sa page de manuel et son aide en ligne parlent de kilo, méga ou giga-octets.
 +
 +Dans tous les cas, si vous avez un doute sur la signification d'un préfixe multiplicateur,​ c'est simple : affichez la valeur exacte sans préfixe, en bits ou octets et vous verrez bien.
 +
 +Pour en revenir au sujet, la taille d'une barrette de RAM est une puissance entière de 2 dont la valeur est légèrement supérieure à la puissance entière de 10 correspondante.
 +
 +<note tip>
 +Une barrette marquée **4 GB** par le fabricant fait en réalité 4 Gio, soit 4,3 Go. Pas 3,8 Gio ni 3,8 Go.
 +</​note>​
 +
 +Ne pas oublier qu'une partie de la mémoire est réservée par la carte mère (pour le GPU intégré notamment), et une autre est réservée par le noyau lui-même. Le //total// affiché par **free** ne compte pas la mémoire réservée par le noyau. Pour avoir une idée de ces quantités, on peut rechercher dans les logs du noyau une ligne qui commence par //Memory// :
 +<code user>​dmesg |grep Memory</​code>​
 +
 +<file bash>
 +Memory: 126248k/​131008k available (1762k kernel code, 4244k reserved, 853k data, 252k init, 0k highmem)
 +</​file>​
 +
 +
 +Il s'agit d'une machine qui a 128 Mio de RAM, soit 128*1024=131072 Kio, valeur très proche de 131008 k. 126248 k est plus proche de la valeur qui est affichée par free dans la colonne //total// (126564).
 +
 +Je n'ai jamais vu de chipset qui limite la RAM à 3 Gio (ou 3 Go, ce qui a encore moins de sens). 2 Gio, 4 Gio, la limite est toujours une puissance entière de 2, ce qui est logique.
 +
 +//Merci// **raleur**. 8-)
 +
 +Lien des sources sur le forum df :
 +[[https://​debian-facile.org/​viewtopic.php?​pid=157275#​p157275]]
 +
 +== Nota ==
 +
 +Pour apporter des commentaires,​ utilisez comme pour tous les tutos le lien de l'​en-tête et non pas ce dernier lien qui est une résolution particulière et sert à remettre le contexte ainsi qu'aux remerciements mérités à qui de droit.
  
 ==== Multitâche ==== ==== Multitâche ====
  
-Schématiquement,​ un PC standard d'un seul processeur ne peut exécuter qu'une opération à la fois. \\ +Schématiquement,​ un PC standard d'un seul processeur ne peut exécuter qu'une opération à la fois. 
-Pourtant, nous pouvons+ 
 +Pourtant, nous pouvons ​:
   - utiliser une application,​   - utiliser une application,​
   - naviguer sur internet,   - naviguer sur internet,
   - copier des fichiers,   - copier des fichiers,
   - etc...   - etc...
-Et nous le faisons comme si tous ces programmes s'​exécutaient ensembles ! \\ 
-C'est le principe du multitâche dit //​préemptif//​. 
  
-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 !+Et nous le faisons comme si tous ces programmes s'​exécutaient ensemble ! \\ 
 +C'est le principe du multitâche dit //​préemptif//​ ((Voir sur Wikipédia : [[https://​fr.wikipedia.org/​wiki/​Multit%C3%A2che_pr%C3%A9emptif|Multitâche préemptif]])). 
 + 
 +En fait, l'​OS ​répartit ​ces actions en les exécutant non chacune dans son ensemblemais chacune en pointillé ​avec les autres. Et il le fait si rapidement qu'il donne 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>​ <​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>​
  
-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.+Toutefois, 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.
  
 == Nota == == Nota ==
Ligne 78: Ligne 140:
 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. 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.
  
-Par exemple, les cartes graphiques diffèrent les unes des autres. Le 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. \\+Par exemple, les cartes graphiques diffèrent les unes des autres. Le driver en établit ​les spécifications ​techniques et permet à l'OS de demander d'​afficher les données sur l'​écran toujours selon la même méthode. \\
 Ainsi, quelque soit les composants des cartes graphiques, pour l'OS un point reste un point, un rectangle un rectangle, etc... Ainsi, quelque soit les composants des cartes graphiques, pour l'OS un point reste un point, un rectangle un rectangle, etc...
  
-<note tip>Des normes permettent de standartiser ​un peu tout ça. Par 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>​+<note tip>Des normes permettent de standardiser ​un peu tout ça. Par 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>​
  
 Les drivers font partie de l'OS bien qu'ils puissent être fournis séparément par le constructeur. Les drivers font partie de l'OS bien qu'ils puissent être fournis séparément par le constructeur.
Ligne 88: Ligne 150:
  
 Aujourd'​hui,​ il existe un mode dit //​protégé//​ qui permet d'​avoir entre autres un meilleur modèle d'​accès à la mémoire. \\ Aujourd'​hui,​ il existe un mode dit //​protégé//​ qui permet d'​avoir entre autres un meilleur modèle d'​accès à la mémoire. \\
-Dans ce dernier, il y a plusieurs ​niveau ​d'​exécution qui permettent d'​avoir des privilèges différents :+Dans ce dernier, il y a plusieurs ​niveaux ​d'​exécution qui permettent d'​avoir des privilèges différents :
   - le mode noyau, (appelé ring 0),   - le mode noyau, (appelé ring 0),
   - un mode intermédiaire (ring 1), et   - un mode intermédiaire (ring 1), et
Ligne 97: Ligne 159:
 ==== firmware ==== ==== firmware ====
  
-[[manuel:​wifi:​detecter-le-materiel ​| Les Firmware]] sont des //​micro-programmes//​ souvent fournis par le constructeur ​et que le pilote noyau doit charger dans la RAM incluse ​dans le matériel ​devant ​celle du PC gérée par l'OS. \\ +[[:​doc:​materiel:​wifi:​detecter | Les Firmware]] sont des //​micro-programmes//​ souvent fournis par le constructeur que le pilote noyau doit charger dans une RAM __incluse ​dans le matériel__ ​devant ​la RAM du PC gérée ​elle par l'OS. \\ 
-Ce matériel peut posséder ​aussi son propre ​processeur, également devant ​celui qui est géré par l'​OS ​installée.+Ce matériel peut aussi posséder un processeur ​agissant préalablement à celui du PC géré par l'OS.
  
 <note important>​De nombreux périphériques nécessitent aujourd'​hui que soient chargés des //​firmware//,​ et comme ceux-ci sont rarement libres, __ils ne sont pas installés par défaut sous Debian__.</​note>​ <note important>​De nombreux périphériques nécessitent aujourd'​hui que soient chargés des //​firmware//,​ et comme ceux-ci sont rarement libres, __ils ne sont pas installés par défaut sous Debian__.</​note>​
Ligne 106: Ligne 168:
 Chacune de ces étapes peut être configurée afin d'​obtenir par exemple des fonctions supplémentaires,​ gagner du temps au démarrage, etc... Chacune de ces étapes peut être configurée afin d'​obtenir par exemple des fonctions supplémentaires,​ gagner du temps au démarrage, etc...
  
-===== Le chargeur de noyau =====+==== Le chargeur de noyau ====
  
-Le tout premier programme à être lancé est [[manuel:bios | le BIOS]].+Le tout premier programme à être lancé est [[:​doc:​materiel:bios | le BIOS]].
 Celui-ci va chercher dans les paramètres du BIOS un chargeur, c'est à dire un petit programme destiné à lancer l'OS. Celui-ci va chercher dans les paramètres du BIOS un chargeur, c'est à dire un petit programme destiné à lancer l'OS.
  
Ligne 117: Ligne 179:
  
 La configuration pour GRUB : La configuration pour GRUB :
-  * [[manuel:grub2 | Voir le tuto grub2 ici]]+  * [[:​doc:​systeme:grub2 | Voir le tuto grub2 ici]]
  
-===== Le noyau =====+==== Le noyau ====
  
 Au démarrage, le noyau va initialiser le matériel présent à l'aide des drivers des périphériques qu'il contient. Au démarrage, le noyau va initialiser le matériel présent à l'aide des drivers des périphériques qu'il contient.
Ligne 125: Ligne 187:
  
 Sont d'​abord initialisés les éléments principaux du PC, comme le processeur, les contrôleurs de périphérique... Les périphériques externes viennent ensuite. \\ Sont d'​abord initialisés les éléments principaux du PC, comme le processeur, les contrôleurs de périphérique... Les périphériques externes viennent ensuite. \\
-À ce stade, le noyau configure rapidement la carte graphique dans un mode standart ​pour permettre la lisibilité des opérations par l'​utilisateur. \\+À ce stade, le noyau configure rapidement la carte graphique dans un mode standard ​pour permettre la lisibilité des opérations par l'​utilisateur. \\
 <note tip>On peut même configurer cela par une option du noyau.</​note>​ <note tip>On peut même configurer cela par une option du noyau.</​note>​
  
Ligne 136: Ligne 198:
  
  
-==== Tableau des options ​====+=== Tableau des options ===
  
 ^Option ^Description ^ ^Option ^Description ^
Ligne 146: Ligne 208:
  
 //Et d'​autres encore...// //Et d'​autres encore...//
-===== Le processus init =====+==== Le processus init ====
  
 Une fois que le noyau a fini l'​initialisation,​ il lance le programme ''​init''​ qui va devenir le père de tous les autres processus et portera l'​identifiant((le PID)) 1. \\ Une fois que le noyau a fini l'​initialisation,​ il lance le programme ''​init''​ qui va devenir le père de tous les autres processus et portera l'​identifiant((le PID)) 1. \\
Ligne 155: Ligne 217:
   * /bin/sh   * /bin/sh
  
-Dès qu'il trouve //init//, le //noyau// lui passe immédiatement le contrôle de la suite des évènements. \\ +Dès qu'il trouve //init//, le //noyau// lui passe immédiatement le contrôle de la suite des événements. \\ 
-  - S'il ne le trouve pas, le noyau tentera de lancer [[manuel:shell | un shell]] pour permettre un accès au système.+  - S'il ne le trouve pas, le noyau tentera de lancer [[:​doc:​programmation:​shell:shell | un shell]] pour permettre un accès au système.
   - Si le shell ne fonctionne pas, le noyau indique l'​erreur et s'​arrête.   - Si le shell ne fonctionne pas, le noyau indique l'​erreur et s'​arrête.
  
-Pour modifier la recherche on utilise l'​option du noyau **init=** en lui indiquant le chemin complet((Voir : [[manuel:repertoire ​| Les chemins absolus et relatifs en détail.]])) de l'​exécutable à lancer.+Pour modifier la recherche on utilise l'​option du noyau **init=** en lui indiquant le chemin complet((Voir : [[:doc:​programmation:​shell:​repertoires ​| Les chemins absolus et relatifs en détail.]])) de l'​exécutable à lancer.
  
-==== Configuration d'​init ​====+=== Configuration d'init ===
  
 Le fichier //init// se configure dans le répertoire : ''/​etc/​inittab''​. \\ Le fichier //init// se configure dans le répertoire : ''/​etc/​inittab''​. \\
Ligne 188: Ligne 250:
 Certains champs peuvent être ignorés selon ce qui est choisi. Certains champs peuvent être ignorés selon ce qui est choisi.
  
-==== Configuration d'​inittab ​====+=== Configuration d'​inittab ===
  
 Tableau de configuration pour ''/​etc/​inittab''​ (//les configurations principales...//​) Tableau de configuration pour ''/​etc/​inittab''​ (//les configurations principales...//​)
Ligne 196: Ligne 258:
 |wait |Aucun |Lorsque le système passera dans la niveau d'​exécution spécifié, init exécutera la commande indiquée puis attendra qu'​elle se termine.| |wait |Aucun |Lorsque le système passera dans la niveau d'​exécution spécifié, init exécutera la commande indiquée puis attendra qu'​elle se termine.|
 |respawn |Aucun |Semblable à wait si ce n'est qu'à chaque fois que le programme se termine, init le relancera.| |respawn |Aucun |Semblable à wait si ce n'est qu'à chaque fois que le programme se termine, init le relancera.|
-|ctrlaltdel |Niveaux d'​exécution |Permet d'​indiquer une commande devant être exécutée lorsque l'​utilisateur presse la combinaison de touches ​Ctrl-Alt-Suppr.|+|ctrlaltdel |Niveaux d'​exécution |Permet d'​indiquer une commande devant être exécutée lorsque l'​utilisateur presse la combinaison de touches ​<​key>​C-A-Suppr</​key>​|
  
-===== Les niveaux ​d'​exécution ​=====+==== Les modes d'​exécution ====
  
-Sur les systèmes GNU/Linuxon a plusieurs ​niveaux ​d'​exécution possibles ​(appelés aussi modes d'exécution)Il s'agit en fait de mode de démarrage qui diffèrent les uns des autres par les services qui y sont lancés.+Selon les services qui sont lancés, plusieurs ​modes d'​exécution ​sont possibles. \\ 
 +La convention appliquée est appelée ''​System V init''​. ​Elle définit la gestion ​des différents niveaux.
  
-La convention choisie est celle appelée ''​System V init''​ qui définit la manière dont doivent être gérés les différents niveaux. \\ +Dans le fichier **inittab** c'est le programme ''/​etc/​rc.d/​rc''​ qui gère cela. Il est lancé avec un numéro ​en paramètre ​qui défini ​le niveau d'​exécution ​attribué.
-Dans le fichier **inittab** ​donné en exemple dans le chapitre précédent,​ on peut voir que c'est le programme ''/​etc/​rc.d/​rc''​ qui gère cela. Il est lancé avec en paramètre le numéro de niveau lorsque l'on a besoin de basculer dans un certain ​niveau d'​exécution.+
  
-On trouve en général ​7 niveaux d'​exécution numérotés de 0 à 6. \\ +Il y a habituellement ​7 niveaux d'​exécution numérotés de 0 à 6. \\
-Leur utilisation est libre, mais traditionnellement on a l'​utilisation suivante :  \\ +
-Niveaux d'​exécution +
-^Numéro ^Désignation ^Description ^ +
-|0 |Arrêt |Passer dans ce niveau provoque un arrêt de la machine.| +
-|1 |Maintenance |On a directement accès à un shell, mais quasiment aucun service n'est lancé. Utile pour le dépannage en cas de problème important.| +
-|2 |Multi-utilisateurs simple |Plusieurs utilisateurs peuvent se connecter en mode texte. Mais les services sont limités (souvent pas de réseau par exemple).| +
-|3 |Multi-utilisateurs complet |Tous les services nécessaires sont démarrés et plusieurs utilisateurs peuvent se connecter en mode texte.| +
-|4 |Mode utilisateur |Généralement non utilisé, il peut être librement utilisé.| +
-|5 |Graphique |Identique au mode 3, mais les utilisateurs peuvent se connecter en mode graphique et disposer d'un gestionnaire de fenêtre.| +
-|6 |Redémarrage |Passer dans ce niveau redémarre la machine.|+
  
-Après le démarrage, le système se trouve dans le mode indiqué par **initdefault** dans ''/​etc/​inittab''​. \\ +=== Tableau des niveaux d'exécution ===
-Pour pouvoir changer, il existe un outil appellé //​telinit//​. Il suffit de le lancer en lui passant en paramètre le numéro du niveau souhait. Par exemple : +
-<code bash> +
-telinit 6</​code>​+
  
-Permet ​de redémarrer ​la machine.+^Numéro ^Désignation ^Description ^ 
 +|0 |Arrêt |Ce niveau provoque un arrêt ​de la machine.
 +|1 |Maintenance |Accès à un shell sans aucun service de lancé. Utilisé pour le dépannage.| 
 +|2 |Multi-utilisateurs simple |Ouverture à plusieurs utilisateurs en mode texte. Mais les services sont limités (pas de réseau par exemple).| 
 +|3 |Multi-utilisateurs complet |Ajoute le démarrage de tous les services nécessaires pour plusieurs utilisateurs connectés en mode texte.| 
 +|4 |Mode utilisateur |Librement utilisé.| 
 +|5 |Graphique |Identique au mode 3. Lles utilisateurs peuvent se connecter en mode graphique et disposer d'un gestionnaire de fenêtre.| 
 +|6 |Redémarrage |Redémarre la bécane.|
  
-Bien qu'il y ait des conventions pour ce qui doit être fait dans chaque ​mode, cela peut être entièrement changé. Mais pour comprendre comment influer sur ce comportement,​ il faut d'​abord savoir ce que fait le programme ''/​etc/​rc.d/​rc''​ (ou un autre selon les systèmes et le contenu du fichier inittab).+=== mode initdefault ===
  
-Le programme gérant les niveaux d'​exécution va consulter ​le contenu du répertoire ​''/​etc/​rc.d/rcX.d'' ​(où X correspond au numéro du niveau devant être changé). \\ +Après ​le démarrage, le système se trouve dans le mode indiqué par **initdefault** dans ''/​etc/​inittab''​.
-Il y recherche d'​abord tous les exécutables s'y trouvant et dont le nom commence par la lettre K (pour Kill) suivie par deux chiffres. \\ +
-Il lance ces programmes en leur passant en paramètre stop. Cela correspond aux services qui doivent être arrêté dans ce mode là. Ils sont lancés dans l'​ordre croissant du nombre indiqué après le K, ce qui permet de les ordonner.+
  
-C'est ensuite au tour des programmes dont le nom commence par la lettre S (pour Start) puis également ​un nombre sur deux chiffresIls sont lancés ​de la même manière que les précédents si ce n'est que c'​est ​le paramètre ​start qui est passé.+Pour le changer, il existe ​un outil appellé //telinit//Il suffit ​de le lancer en lui passant en paramètre ​un numéro du niveau\\ 
 +Par exemple : 
 +<code root> 
 +telinit 6</​code>​
  
-Pour illustrer ceci, voici un contenu possible d'un de ces répertoires : +Cette commande redémarre la machine.
-<code bash> +
-ls /etc/rc.d/​rc3.d</​code>​ +
-<​code>​ +
-K15httpd +
-K20nfs +
-K45named +
-S10network +
-S55sshd +
-S99local</​code>​+
  
-Dans ce cas-là, lorsque l'on passe dans le niveau 3 (soit au démarrage si c'est celui par défaut, soit ensuite si c'est l'​utilisateur qui le demande), on arrêtera les services httpd (serveur web), nfs (serveur de fichiers) et named (serveur de noms)Et ensuite seront démarrés les services network (pour la prise en charge du réseau), sshd (serveur de connexion distante sécurisée) et local (qui va lancer des programmes devant être exécuté en fin de démarrage).+=== Le programme /etc/... ===
  
-Comme des programmes peuvent exister dans plusieurs niveaux différents,​ dans les répertoires ''/​etc/​rc.d/rcX.d''​ on trouvera en réalité des liens symboliques(([[commande:​ln | la commande ln]])) pointant vers des fichiers dans le répertoire ''​/etc/rc.d/init.d''​. \\ +**En cours de création...** smolski ​//06-05-2013//
-Ces fichiers sont en réalité des scripts shell et le même sera lancé pour le démarrage ou l'​arrêt. \\ +
-C'est donc de la responsabilité du script de voir s'il a été appelé avec le paramètre start ou stop pour savoir quelle action entreprendre.+
  
-En sachant tout cela, ajouter ou supprimer des services dans un niveau donné revient uniquement à créer ou supprimer des liens symboliques.+Le programme gérant les niveaux d'​exécution va consulter le contenu du répertoire ''/​etc/??/??​X.?''​ (où X correspond au numéro du niveau devant être changé). 
 +  - Il y recherche d'​abord les exécutables commençant par la lettre K (pour Kill) suivie de deux chiffres. \\ 
 +  - Il lance ces programmes en leur passant en paramètre //stop//. Cela correspond aux services ​qui doivent être arrêté ​dans ce mode là. \\ 
 +  - Ils sont lancés dans l'​ordre croissant du nombre indiqué après le K.
  
-En reprenant l'​exemple précédent,​ voici ce qui pourrait être fait : +Ensuite au tour des programmes dont le nom commence par la lettre S (pour Start) avec pareillement le nombre sur deux chiffres. \\ 
-<code bash> cd /etc/rc.d/rc3.d</​code>​ +Ils sont lancés de la même manière que les précédents mais avec le paramètre ​//start//. 
-<code bash> rm S55sshd</​code>​ + 
-<code bash> ln -/etc/rc.d/​init.d/​ftpd S40ftpd</​code>​+Ces fichiers sont des scripts shell et le même sera lancé pour le démarrage ou l'​arrêt. \\ 
 +C'est donc de la responsabilité du script de voir s'il a été appelé avec le paramètre start ou stop pour savoir quelle action entreprendre.
  
-Cela va faire en sorte que dans le niveau 3, le serveur SSH ne soit plus exécuté. \\ 
-En revanche un serveur FTP sera mis en place. \\ 
-Tout cela suppose qu'un script ftpd soit présent dans le répertoire ''/​etc/​rc.d/​init.d/''​ et qu'il fournisse le service attendu. 
 <​note>​Les distributions GNU/Linux incluent ce genre de script lorsqu'​un service est installé. L'​utilisateur n'a donc ensuite qu'à modifier les liens symboliques.</​note>​ <​note>​Les distributions GNU/Linux incluent ce genre de script lorsqu'​un service est installé. L'​utilisateur n'a donc ensuite qu'à modifier les liens symboliques.</​note>​
 +
 +Voici un exemple ... (//à suivre...//​)
  
 ==== La connexion en mode texte ==== ==== La connexion en mode texte ====
Ligne 266: Ligne 315:
 Lorsque cela se fait en mode texte, un message invite la personne à entrer son nom d'​utilisateur puis son mot de passe. Lorsque cela se fait en mode texte, un message invite la personne à entrer son nom d'​utilisateur puis son mot de passe.
  
-C'est généralement le programme **login** qui se charge de ça. Une fois le nom et le mot de passe saisis, ce programme va lire le fichier ''/​etc/​passwd''​(([[commande:passwd]])) pour vérifier ces informations.+C'est généralement le programme **login** qui se charge de ça. Une fois le nom et le mot de passe saisis, ce programme va lire le fichier ''/​etc/​passwd''​(([[:​doc:​systeme:passwd]])) pour vérifier ces informations.
  
-En mode texte, le programme permettant de se connecter va donc lancer le shell choisi par l'​utilisateur. Sur un système GNU/Linux, c'est par défaut [[manuel:bash]].+En mode texte, le programme permettant de se connecter va donc lancer le shell choisi par l'​utilisateur. Sur un système GNU/Linux, c'est par défaut ​[[:​doc:​programmation:bash]].
  
 Bash (comme les autres shells) va alors lancer un script dans le répertoire de l'​utilisateur. Il s'agit dans ce cas de ''​.bashrc''​ qui est un fichier caché. \\ Bash (comme les autres shells) va alors lancer un script dans le répertoire de l'​utilisateur. Il s'agit dans ce cas de ''​.bashrc''​ qui est un fichier caché. \\
 C'est donc dans ce script qu'un utilisateur peut rajouter des commandes qu'il souhaite voir exécutées lorsqu'​il se connecte. C'est donc dans ce script qu'un utilisateur peut rajouter des commandes qu'il souhaite voir exécutées lorsqu'​il se connecte.
  
-===== La connexion en mode graphique ​=====+==== La connexion en mode graphique ====
  
 Lors d'une connexion en mode graphique, l'​utilisateur doit saisir son nom d'​utilisateur et son mot de passe dans une fenêtre créée par ce que l'on appelle souvent un gestionnaire d'​affichage. \\ Lors d'une connexion en mode graphique, l'​utilisateur doit saisir son nom d'​utilisateur et son mot de passe dans une fenêtre créée par ce que l'on appelle souvent un gestionnaire d'​affichage. \\
Ligne 279: Ligne 328:
 Ils offrent des fonctionnalités équivalentes : Afficher la liste des utilisateurs,​ vérifier le mot de passe, ... Et surtout lancer ensuite le gestionnaire de fenêtre/​bureau choisi par l'​utilisateur. Ils offrent des fonctionnalités équivalentes : Afficher la liste des utilisateurs,​ vérifier le mot de passe, ... Et surtout lancer ensuite le gestionnaire de fenêtre/​bureau choisi par l'​utilisateur.
  
-[[manuel:environnement_graphique ​| L'environnement_graphique]] sélectionné va ensuite se lancer. Cela correspondra à lancer le gestionnaire de fenêtre, éventuellement un gestionnaire de bureau, puis d'​autres applications. \\+[[:doc:​environnements:​environnements ​| L'environnement graphique]] sélectionné va ensuite se lancer. Cela correspondra à lancer le gestionnaire de fenêtre, éventuellement un gestionnaire de bureau, puis d'​autres applications. \\
 Une fois que ceci est terminé, il y a la possibilité pour l'​utilisateur d'​avoir des programmes lancés automatiquement. Une fois que ceci est terminé, il y a la possibilité pour l'​utilisateur d'​avoir des programmes lancés automatiquement.
  
Ligne 295: Ligne 344:
 ===== Processus ===== ===== Processus =====
  
-  * [[manuel:gnu_linux:processus | Les processus dans le détail.]]+  * [[:doc:systeme: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