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 [06/05/2013 09:26] smolski [Le noyau] |
doc:systeme:gnu-linux [06/05/2013 10:40] smolski [Le processus init] |
||
---|---|---|---|
Ligne 132: | Ligne 132: | ||
- lui passer des options. | - lui passer des options. | ||
- | Les options peuvent être modifiées facilement d'un démarrage à l'autre de façon temporaire ou définitive. \\ | + | Les options peuvent être modifiées d'un démarrage à l'autre de façon temporaire ou définitive. //Cool, non ?// 8-) \\ |
La recompilation n'est nécessaire que pour des cas particuliers d'ajout de matériels spécifiques par exemple... | La recompilation n'est nécessaire que pour des cas particuliers d'ajout de matériels spécifiques par exemple... | ||
Ligne 148: | Ligne 148: | ||
===== Le processus init ===== | ===== Le processus init ===== | ||
- | 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 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. \\ |
+ | Pour trouver //init//, le //noyau// va lancer sa recherche dans ces répertoires : | ||
+ | * /sbin/init | ||
+ | * /etc/init | ||
+ | * /bin/init | ||
+ | * /bin/sh | ||
- | Ce programme s'appelle généralement init. Le noyau va en fait essayer de lancer successivement les programmes suivants : | + | 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. | ||
+ | - Si le shell ne fonctionne pas, le noyau indique l'erreur et s'arrête. | ||
- | /sbin/init | + | 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. |
- | /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. | + | ==== Configuration d'init ==== |
- | On voit que le programme init est cherché dans différents répertoires (/sbin, /etc et finalement /bin). \\ | + | Le fichier //init// se configure dans le répertoire : ''/etc/inittab''. \\ |
- | * 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. | + | Exemple de configurations : |
- | * 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. | + | |
- | + | ||
- | Le comportement d'init se configure à l'aide du fichier ''/etc/inittab''. En voici un exemple d'extrait : | + | |
<code> | <code> | ||
id:5:initdefault: | id:5:initdefault: | ||
Ligne 180: | Ligne 179: | ||
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. | |
- | 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. | + | Certains champs peuvent être ignorés selon ce qui est choisi. |
- | Actions pour /etc/inittab | + | |
+ | ==== Configuration d'inittab ==== | ||
+ | |||
+ | Tableau de configuration pour ''/etc/inittab'' (//les configurations principales...//) | ||
^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 197: | Ligne 197: | ||
|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 niveaux d'exécution ===== |
+ | |||
+ | 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 qui diffèrent les uns des autres par les services qui y sont lancés. | ||
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. \\ | 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. \\ |