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 [05/05/2013 20:34]
smolski [GNU/Linux]
doc:systeme:gnu-linux [13/06/2013 06:35]
martinux_qc [La mémoire]
Ligne 14: Ligne 14:
 ===== 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 : [[manuel:​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 exemplewindows mélange ​ces deux couches alors que, dans le but d'un meilleur fonctionnement et de clarté 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 fournis 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 : 
 + 
 +  -  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//...).
   - [[manuel:​gestionnaires | Les gestionnaire de fenêtres]].   - [[manuel:​gestionnaires | Les gestionnaire de fenêtres]].
   - [[manuel:​gui | Les gestionnaire de bureau]].   - [[manuel:​gui | Les gestionnaire de bureau]].
Ligne 33: Ligne 36:
 ===== 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émoire c'est d'​abord la RAM installée((la mémoire vive)) mais pas seulement. \\ +La mémorisation permet de conserver et de distinguer les données propres à chacune des applications actives dans la machine. 
-[[manuel:​partition?&#​la_swap | La partition ​ swap]] créée sur le disque dur est aussi utilisée par l'OS en cas de besoin.+ 
 +La mémoire c'est d'​abord la **RAM** installée((la mémoire vive)) mais pas seulement[[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//.+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 [[logiciel:​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//...
  
-==== Conclusion ==== 
  
   - 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émorisation //​directement//​ dans des zones séparées de la mémoire.
Ligne 52: Ligne 56:
 ==== 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 ! \\ Et nous le faisons comme si tous ces programmes s'​exécutaient ensembles ! \\
 C'est le principe du multitâche dit //​préemptif//​. 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 !+En fait, l'​OS ​répartit ​ces actions en les exécutant non chacune dans son ensemble mais 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 84:
 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 94:
  
 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 103:
 ==== 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. \\ +[[manuel:​wifi:​detecter-le-materiel | 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 124: Ligne 130:
 <note warning>​Par contre, les drivers compilés sous forme de modules ne sont pas encore pris en compte.</​note>​ <note warning>​Par contre, les drivers compilés sous forme de modules ne sont pas encore pris en compte.</​note>​
  
-Ces initialisations concernent surtout ​les composants centraux de la machine ​comme le processeur ​ou les contrôleurs de périphériques\\ +Sont d'​abord initialisés ​les éléments principaux du PC, comme le processeurles contrôleurs de périphérique... Les périphériques externes ​viennent ensuite. \\ 
-Les périphériques externes ​ne seront eux initialisés généralement qu'au moment de leur utilisation. \\ +À ce stade, ​le noyau configure ​rapidement ​la carte graphique dans un mode standart pour permettre la lisibilité des opérations ​par l'​utilisateur\\ 
-L'​écran est toutefois utilisé rapidement après ​le lancement du noyau afin de donner des informations à l'​utilisateur. Le noyau configure ​donc la carte graphique dans un mode standard pouvant être reconnu ​par une majorité de cartesIl est de plus possible de changer cette valeur ​par une option du noyau (vga=XXX).+<note tip>On peut même configurer cela par une option du noyau.</​note>​
  
 Il y a deux manières d'​influer sur ce que va faire le noyau. Il y a deux manières d'​influer sur ce que va faire le noyau.
Ligne 132: Ligne 138:
   - lui passer des options.   - lui passer des options.
  
-L'​avantage des options ​est que cela peut être changé ​d'un démarrage ​sur un autre. Et les chargeurs de noyau vus précédemment permettent de faire cela très facilement, y compris ​de façon temporaire. \\ +Les options ​peuvent ​être modifiées ​d'un démarrage ​à l'autre de façon temporaire ​ou définitive//Cool, non ?// 8-) \\ 
-Mais on rencontrera certains ​cas (comme ​par exemple ​rajouter le support d'un matériel particulier) où une recompilation du noyau sera indispensable.+La recompilation n'est nécessaire que pour des cas particuliers d'​ajout de matériels spécifiques ​par exemple...
  
-Voici quelques exemples d'​options fréquentes et utiles. Leur liste complète est en réalité plus longue mais ne sera pas détaillée ici. \\ 
-**Options courantes** 
-^Option ^Description ^ 
-|vga=XXX |Sert à changer la résolution d'​écran utilisée pendant le démarrage. Utile si celle par défaut n'est pas reconnue par la carte graphique.| 
-|no-scroll |Permet de désactiver le défilement du texte sur l'​écran. A utiliser notamment avec des terminaux braille pour lesquels le défilement peut poser problème.| 
-|noapic |L'​APIC permet à plusieurs périphériques de partager des ressources communes (les IRQ). Avec cette option, on peut désactiver ce mécanisme qui peut engendrer des problèmes avec certains matériels.| 
-|mem=XXX |Permet d'​indiquer la valeur de mémoire vive présente sur la machine pour le cas ou l'​auto-detection échouerait. On peut utiliser des lettres pour cette taille. Par exemple 512M désignera 512 Méga-octets de mémoire.| 
-|init=XXX |Permet d'​indiquer de manière explicite quel programme doit être lancé après l'​initialisation du noyau (plus de détails dans la section suivante).| 
  
-===== Le processus init =====+==== Tableau des options ​====
  
-Une fois que le noyau a fini tout son travail ​d'initialisation,​ il lance alors un programme qui va devenir ​le père de tous les autres processus et portera ​l'identifiant ​de processus ​(le PID1.+^Option ^Description ^ 
 +|vga=XXX |Modifier la résolution ​d'écran utilisée pendant ​le démarrage.| 
 +|no-scroll |Désactive le défilement du texte sur l'écran.| 
 +|noapic |L'​APIC permet à plusieurs périphériques ​de partager des ressources communes ​(les IRQ). Avec cette option, on désactive ce mécanisme en cas de problème avec certains matériels.| 
 +|mem=XXX |Indique la valeur de la mémoire vive présente sur la machine. Par exemple 512M désignera 512 Méga-octets de mémoire.| 
 +|init=XXX |Indique le programme lancé après l'​initialisation du noyau.|
  
-Ce programme s'appelle généralement init. Le noyau va en fait essayer de lancer successivement les programmes suivants :+//Et d'autres encore...// 
 +===== Le processus init =====
  
-    ​/​sbin/​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. \\ 
-    /etc/init +Pour trouver //init//, le //noyau// va lancer sa recherche dans ces répertoires : 
-    /bin/init +  * /​sbin/​init 
-    /bin/sh+  ​* ​/etc/init 
 +  ​* ​/bin/init 
 +  ​* ​/bin/sh
  
-Dès qu'un de ceux-là est lancé avec succès, les autres ​ne sont même pas testés car le contrôle est passé ​au programme.+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 ​pasle noyau tentera de lancer [[manuel:​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.
  
-On voit que le programme init est cherché dans différents répertoires ​(/sbin, /etc et finalement /bin). \\ +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.
-  * S'il ne se trouve dans aucun de ceux-là, le noyau tente de lancer un shell afin que l'utilisateur ait accès au système. +
-  * Si cela échoue également, le noyau affiche un message d'​erreur et s'​arrête.+
  
-Pour pouvoir indiquer un autre programme que ceux-là, il faut utiliser l'option du noyau **init=** vue précédemment. On lui passe en paramètre le chemin complet de l'​exécutable à lancer.+==== Configuration d'init ====
  
-Le comportement d'init se configure ​à l'aide du fichier ​''/​etc/​inittab''​. ​En voici un exemple d'​extrait ​:+Le fichier //init// se configure ​dans le répertoire : ''/​etc/​inittab''​. ​\\ 
 +Exemple de configurations ​:
 <​code>​ <​code>​
 id:​5:​initdefault:​ id:​5:​initdefault:​
Ligne 178: Ligne 185:
  
 ca::​ctrlaltdel:/​sbin/​shutdown -t3 -r now</​code>​ ca::​ctrlaltdel:/​sbin/​shutdown -t3 -r now</​code>​
- +Explication en tableau ​:
-Chaque ligne est construite de la même manière avec les champs suivants ​\\ +
-Format dans /​etc/​inittab+
 ^Position ^Nom ^Description ^ ^Position ^Nom ^Description ^
-|1 |Identifiant |Une chaîne de caractère choisie par l'​utilisateur (sauf dans certains cas particuliers) et permettant d'​identifier la ligne.| +|1 |Identifiant |Une chaîne de caractère choisie par l'​utilisateur (sauf dans certains cas particuliers) et permettant d'​identifier la ligne. | 
-|2 |Niveaux d'​exécution |Les niveaux d'​exécution ​(détaillés dans le chapitre suivant) ​pour lesquels cette ligne doit être prise en compte.| +|2 |Niveaux d'​exécution |Les niveaux d'​exécution pour lesquels cette ligne doit être prise en compte. | 
-|3 |Action |Contient une des actions prédéfinies indiquant ce qui doit être fait.Le tableau suivant les liste.| +|3 |Action |Contient une des actions prédéfinies indiquant ce qui doit être fait. | 
-|4 |Programme |Le programme qui doit être exécuté lorsque l'on rentre dans les niveaux indiqués.|+|4 |Programme |Le programme qui doit être exécuté lorsque l'on rentre dans les niveaux indiqués. | 
 + 
 +Certains champs peuvent être ignorés selon ce qui est choisi. 
 + 
 +==== Configuration d'​inittab ====
  
-Selon l'​action choisie, le comportement sera différent et certains champs peuvent être ignorés. Voici la description des actions le plus souvent utilisées. +Tableau de configuration ​pour ''​/​etc/​inittab''​ (//les configurations principales...//​)
-Actions ​pour /​etc/​inittab+
 ^Action ^Champs ignorés ^Description ^ ^Action ^Champs ignorés ^Description ^
 |initdefault |Programme |Permet d'​indiquer le niveau d'​exécution à utiliser par défaut. Le champs Niveaux d'​exécution contiendra alors une seule valeur qui sera ce niveau par défaut.| |initdefault |Programme |Permet d'​indiquer le niveau d'​exécution à utiliser par défaut. Le champs Niveaux d'​exécution contiendra alors une seule valeur qui sera ce niveau par défaut.|
Ligne 195: Ligne 203:
 |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 Ctrl-Alt-Suppr.|
-Les niveaux d'​exécution (Haut de page)| 
  
-Sur les systèmes GNU/Linux, on a plusieurs niveaux d'​exécution possibles (appelés aussi modes d'​exécution). Il s'agit en fait de mode de démarrage différents qui diffèrent les uns des autres par les services qui y sont lancés.+===== Les modes d'​exécution ​=====
  
-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. \\ +Selon les services qui sont lancés, plusieurs modes d'​exécution sont possibles. \\ 
-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.+La convention ​appliquée ​est appelée ''​System V init''​. Elle définit la gestion des différents niveaux.
  
-On trouve en général 7 niveaux d'exécution numérotés de 0 à 6. \\ +Dans le fichier **inittab** c'​est ​le programme ​''/​etc/​rc.d/rc'' qui gère celaIl est lancé ​avec un numéro en paramètre qui défini ​le niveau ​d'exécution attribué.
-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'​'. \\ +Il y a habituellement 7 niveaux d'exécution numérotés de 0 à 6. \\
-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.+==== Tableau des niveaux d'​exécution ====
  
-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).+^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.|
  
-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é). \\ +==== mode initdefault ====
-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 chiffres. Ils 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é.+Après ​le démarrage, le système se trouve dans le mode indiqué ​par **initdefault** dans ''/​etc/​inittab''​.
  
-Pour illustrer cecivoici un contenu possible d'un de ces répertoires ​:+Pour le changeril existe ​un outil appellé //​telinit//​. Il suffit ​de le lancer en lui passant en paramètre un numéro du niveau. \\ 
 +Par exemple ​:
 <code bash> <code bash>
-ls /​etc/​rc.d/​rc3.d</​code>​ +telinit 6</​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).+Cette commande redémarre ​la machine.
  
-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''​. \\ +==== Le programme ​/​etc/​... ​====
-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.+**En cours de création...** smolski //​06-05-2013//​
  
-En reprenant l'exemple précédent,​ voici ce qui pourrait être fait : +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é). 
-<code bash> cd /etc/rc.d/rc3.d</​code>​ +  - Il y recherche ​d'abord les exécutables commençant par la lettre K (pour Kill) suivie de deux chiffres. \\ 
-<code bash> rm S55sshd</​code>​ +  Il lance ces programmes en leur passant en paramètre ​//stop//. Cela correspond aux services qui doivent être arrêté dans ce mode là. \\ 
-<code bash> ln -/etc/rc.d/init.d/ftpd S40ftpd</code>+  - Ils sont lancés dans l'​ordre croissant du nombre indiqué après le K. 
 + 
 +Ensuite au tour des programmes dont le nom commence par la lettre S (pour Start) avec pareillement le nombre sur deux chiffres. \\ 
 +Ils sont lancés de la même manière que les précédents mais avec le paramètre ​//start//. 
 + 
 +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>​
  
-==== La connexion en mode texte ====+Voici un exemple ... (//à suivre...//​) 
 +===== La connexion en mode texte =====
  
 Après que le système ait terminé les actions à entreprendre dans un niveau donné, un utilisateur peut alors se connecter au système. \\ Après que le système ait terminé les actions à entreprendre dans un niveau donné, un utilisateur peut alors se connecter au système. \\
Ligne 265: Ligne 260:
 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''​(([[commande:​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 ​[[manuel:​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é. \\
Ligne 276: Ligne 271:
 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. \\+[[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. \\
 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.
  
doc/systeme/gnu-linux.txt · Dernière modification: 19/04/2023 18:58 par bendia

Pied de page des forums

Propulsé par FluxBB