Processus de démarrage du système Linux


Nous verrons de nombreux messages de démarrage au démarrage de Linux.

Le processus de démarrage du système Linux n'est pas aussi compliqué que tout le monde le pense. Le processus peut être divisé en 5 étapes :

  • Démarrage du noyau.

  • Exécutez init.

  • Initialisation du système.

  • Créez un terminal.

  • L'utilisateur se connecte au système.


Démarrage du noyau

Lorsque l'ordinateur est allumé, la première étape est l'autotest à la mise sous tension du BIOS, qui démarre en fonction du périphérique de démarrage (généralement le disque dur) défini dans le BIOS.

Une fois que le système d'exploitation a pris en charge le matériel, il lit d'abord le fichier du noyau dans le répertoire /boot.

1030.png

Exécuter init

Le processus init est le point de départ de tous les processus du système. Vous pouvez le comparer à l'ancêtre de tous les processus du système sans cela. processus, aucun processus dans le système n’existerait.

Le programme init doit d'abord lire le fichier de configuration /etc/inittab.

1031.png

Niveau d'exécution

De nombreux programmes nécessitent un démarrage. Ils sont appelés « services » sous Windows et « démons » sous Linux.

Une tâche majeure du processus d'initialisation est d'exécuter ces programmes qui sont démarrés au démarrage.

Cependant, différents programmes doivent être démarrés dans différentes situations. Par exemple, lorsqu'il est utilisé comme serveur, Apache doit être démarré, mais lorsqu'il est utilisé comme bureau, ce n'est pas obligatoire.

Linux permet d'attribuer différents programmes de démarrage pour différentes occasions, ce que l'on appelle "runlevel". C'est-à-dire, en fonction du « niveau d'exécution » au démarrage, quels programmes sont déterminés à être exécutés.

1032.png

Le système Linux a 7 niveaux d'exécution :

  • Niveau d'exécution 0 : État d'arrêt du système, le niveau d'exécution par défaut du système ne peut pas être défini sur 0, sinon impossible de démarrer normalement

  • Niveau d'exécution 1 : statut de travail d'un seul utilisateur, autorité racine, utilisé pour la maintenance du système, la connexion à distance est interdite

  • Niveau d'exécution 2 : État multi-utilisateur (sans NFS)

  • Niveau d'exécution 3 : Terminez l'état multi-utilisateur (avec NFS), entrez en mode ligne de commande de la console après vous être connecté

  • Niveau d'exécution 4 : Le système n'est pas utilisé, réservé

  • Niveau d'exécution 5 : console X11, entrez dans le mode GUI graphique après vous être connecté

  • Niveau d'exécution 6 : Le système s'arrête et redémarre normalement. Le niveau d'exécution par défaut ne peut pas être défini sur 6, sinon il ne peut pas démarrer normalement


Initialisation du système

Configuration dans init Il y a cette ligne dans le fichier : si::sysinit:/etc/rc.d/rc.sysinit Il appelle et exécute /etc/rc.d/rc.sysinit, et rc.sysinit est un script shell bash, qui est principalement destiné à effectuer certains travaux d'initialisation du système, rc.sysinit est un script important qui doit être exécuté en premier à chaque niveau d'exécution.

Les principales tâches qu'il accomplit sont : l'activation de la partition d'échange, la vérification du disque, le chargement des modules matériels et d'autres tâches qui doivent être effectuées en premier.

l5:5:wait:/etc/rc.d/rc 5

Cette ligne signifie exécuter /etc/rc.d/rc avec 5 comme paramètre. /etc/rc.d/rc est un script Shell qui accepte 5 comme paramètre pour exécuter /etc/rc. Tous les scripts de démarrage rc dans le répertoire d/rc5.d/ et ces scripts de démarrage dans le répertoire /etc/rc.d/rc5.d/ sont en fait des fichiers de connexion, pas de vrais scripts de démarrage rc. Le script de démarrage rc est en fait placé dans. le répertoire /etc/rc.d/init.d/.

Ces scripts de démarrage rc ont une utilisation similaire. Ils acceptent généralement le démarrage, l'arrêt, le redémarrage, l'état et d'autres paramètres.

Le script de démarrage rc dans /etc/rc.d/rc5.d/ est généralement un fichier de connexion commençant par K ou S. Pour les scripts de démarrage commençant par S, il sera exécuté avec le paramètre start.

S'il s'avère qu'il existe un script correspondant et une connexion commençant par K, et qu'il est déjà en cours d'exécution (en utilisant le fichier sous /var/lock/subsys/ comme signe), il sera arrêtez-vous d'abord avec stop comme paramètre. Ces démons ont été démarrés puis réexécutés.

Ceci est fait pour garantir que lorsque init modifie les niveaux d'exécution, tous les démons associés seront redémarrés.

Quant aux processus démons qui seront exécutés dans chaque niveau d'exécution, les utilisateurs peuvent les définir eux-mêmes via chkconfig ou "Services système" dans la configuration.

1033.png

Établissez un terminal

Une fois rc exécuté, revenez à init. À l'heure actuelle, l'environnement système de base a été configuré et divers processus démons ont été démarrés.

init ouvrira alors 6 terminaux pour permettre aux utilisateurs de se connecter au système. Les 6 lignes suivantes dans inittab définissent 6 terminaux :

1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

Comme le montre ce qui précède, le programme mingetty sera exécuté en mode respawn dans les niveaux d'exécution 2, 3, 4 et 5. Le programme mingetty peut Ouvrez le terminal et le mode configuration.

En même temps, il affichera une interface de connexion textuelle. Cette interface est l'interface de connexion que nous voyons souvent. Dans cette interface de connexion, l'utilisateur sera invité à saisir un nom d'utilisateur et l'utilisateur saisi par. l'utilisateur sera transmis au programme de connexion en tant que paramètre pour vérifier l'identité de l'utilisateur.


Système de connexion utilisateur

De manière générale, il existe trois façons pour les utilisateurs de se connecter :

  • (1) Connexion en ligne de commande

  • (2) Connexion ssh

  • (3) Connexion à l'interface graphique

1034.png

pour niveau d'exécution Pour 5 utilisateurs graphiques, leur connexion se fait via une interface de connexion graphique. Après une connexion réussie, vous pouvez accéder directement aux gestionnaires de fenêtres tels que KDE et Gnome.

Cet article parle principalement de connexion textuelle : lorsque nous voyons l'interface de connexion mingetty, nous pouvons saisir le nom d'utilisateur et le mot de passe pour nous connecter au système.

Le programme de vérification de compte Linux est login. La connexion recevra le nom d'utilisateur envoyé par mingetty comme paramètre de nom d'utilisateur.

Ensuite, login analysera le nom d'utilisateur : si le nom d'utilisateur n'est pas root et que le fichier /etc/nologin existe, login affichera le contenu du fichier nologin puis quittera.

Ceci est généralement utilisé pour empêcher les utilisateurs non root de se connecter pendant la maintenance du système. Seuls les terminaux enregistrés dans /etc/securetty sont autorisés à se connecter en tant qu'utilisateur root. Si ce fichier n'existe pas, root peut se connecter sur n'importe quel terminal. Le fichier

/etc/usertty est utilisé pour imposer des restrictions d'accès supplémentaires aux utilisateurs. Si ce fichier n'existe pas, il n'y a pas d'autres restrictions.


Comment basculer entre le mode graphique et le mode texte

Linux par défaut fournit six terminaux de fenêtre de commande pour nous permettre de nous connecter.

Par défaut, nous nous connectons à la première fenêtre, qui est tty1. Les six fenêtres sont tty1, tty2...tty6 Vous pouvez appuyer sur Ctrl + Alt + F1 ~ F6 pour les changer.

Si vous avez installé une interface graphique, vous entrerez dans l'interface graphique par défaut. À ce moment, vous pouvez appuyer sur Ctrl + Alt + F1 ~ F6 pour entrer dans l'une des interfaces de la fenêtre de commande.

Lorsque vous entrez dans l'interface de la fenêtre de commande et revenez à l'interface graphique, appuyez simplement sur Ctrl + Alt + F7 pour revenir.

Si vous utilisez une machine virtuelle VMware, la touche de raccourci pour changer de fenêtre de commande est Alt + Espace + F1~F6. Si vous êtes dans l'interface graphique, veuillez appuyer sur Alt + Maj + Ctrl + F1~. F6 pour passer à la fenêtre de commande.

1037.png

Arrêt de Linux

est principalement utilisé sur les serveurs dans le domaine Linux, et l'arrêt est rarement rencontré opération. Après tout, il n’y a aucune fin à exécuter un service sur le serveur, sauf circonstances particulières, il sera arrêté en dernier recours.

Le processus d'arrêt correct est : sysnc > shutdown > reboot > halt

La commande d'arrêt est : shutdown, vous pouvez man shutdown pour lire le document d'aide.

Par exemple, vous pouvez exécuter la commande suivante pour arrêter :

sync synchronise les données de la mémoire vers le disque dur.

commande shutdown shutdown, vous pouvez man shutdown pour lire le document d'aide. Par exemple, vous pouvez exécuter la commande suivante pour arrêter :

shutdown –h 10 'Ce serveur s'arrêtera après 10 minutes' Cette commande indique à tout le monde que l'ordinateur s'éteindra après 10 minutes et sera affiché sur l'écran actuel de l'utilisateur connecté.

Arrêt –h maintenant Arrêt immédiat

Arrêt –h 20h25 Le système s'arrêtera à 20h25 aujourd'hui

Arrêt –h +10 Arrêt dans dix minutes

Arrêt –r maintenant Le système redémarrera immédiatement

Arrêt –r +10 Le système redémarrera après dix minutes

le redémarrage est un redémarrage, ce qui équivaut à l'arrêt –r now

halt System, équivalent à shutdown –h now et poweroff

Enfin, pour résumer, que vous redémarriez le système ou que vous arrêtiez le système, vous devez d'abord exécuter la commande sync pour écrire les données de la mémoire sur le disque.

Les commandes pour arrêter sont shutdown –h maintenant arrêter poweroff et init 0, et les commandes pour redémarrer le système sont shutdown –r maintenant redémarrer init 6.