Linux peut être divisé en 4 parties : 1. Le noyau, qui contrôle tout le matériel et les logiciels du système informatique et est principalement responsable de la gestion de la mémoire système, de la gestion des programmes logiciels, de la gestion des périphériques matériels et de la gestion du système de fichiers ; , à l'exception du noyau Outils nécessaires autres que les périphériques matériels contrôlés, tels que le shell ; 3. Environnement de bureau, tel que KDE 4. Logiciel d'application.
L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.
Linux est un système d'exploitation gratuit et open source de type UNIX. Il s'inspire principalement des idées de Minix et Unix. Il s'agit d'un système d'exploitation multi-utilisateurs, multi-tâches, multi-thread et multi-CPU basé sur POSIX. Linux peut être divisé en quatre parties suivantes :
La figure suivante est un schéma fonctionnel de base montrant comment les différentes parties fonctionnent ensemble pour former un système Linux complet.
Le cœur du système Linux est le noyau. Le noyau contrôle tout le matériel et les logiciels d'un système informatique. Le noyau est principalement responsable des quatre fonctions suivantes :
1.1 Gestion de la mémoire système
L'une des principales fonctions du Le noyau du système d'exploitation est la gestion de la mémoire. Le noyau gère non seulement la mémoire physique disponible sur le serveur, mais il peut également créer et gérer de la mémoire virtuelle (c'est-à-dire de la mémoire qui n'existe pas réellement). Le noyau implémente la mémoire virtuelle via l'espace de stockage sur le disque dur. Cette zone est appelée espace de swap. Le noyau échange constamment le contenu de la mémoire virtuelle entre l'espace d'échange et la mémoire physique réelle. Cela fait penser au système qu’il dispose de plus de mémoire disponible que de mémoire physique.
L'unité de stockage de mémoire est divisée en plusieurs blocs selon des groupes, et ces blocs sont appelés pages. Le noyau place chaque page mémoire dans la mémoire physique ou dans l'espace d'échange. Le noyau gère ensuite une table de pages mémoire, indiquant quelles pages se trouvent dans la mémoire physique et quelles pages ont été échangées sur le disque.
Le noyau enregistrera les pages mémoire utilisées et copiera automatiquement les pages mémoire qui n'ont pas été consultées pendant un certain temps dans la zone d'espace d'échange (appelée échange) - même s'il reste de la mémoire disponible. Lorsqu'un programme souhaite accéder à une page mémoire qui a été échangée, le noyau doit échanger une autre page mémoire de la mémoire physique pour lui faire de la place, puis échanger la page mémoire demandée depuis l'espace d'échange. Évidemment, ce processus prend du temps et ralentit le processus en cours. Tant que le système Linux est en cours d'exécution, le processus d'échange de pages de mémoire pour les programmes en cours d'exécution ne s'arrêtera jamais.
1.2 Gestion des programmes logiciels
Le système d'exploitation Linux appelle les programmes en cours d'exécution un processus. Le noyau crée le premier processus (appelé processus d'initialisation) pour démarrer tous les autres processus du système. Lorsque le noyau démarre, il charge le processus d'initialisation dans la mémoire virtuelle. Lorsque le noyau démarre un autre processus, il alloue une zone privée de la mémoire virtuelle au nouveau processus pour stocker les données et le code utilisés par le processus.
Le système d'initialisation du système d'exploitation Linux utilise des niveaux d'exécution. Le niveau d'exécution détermine que le processus d'initialisation exécute certains types de processus définis dans le fichier /etc/inittab ou dans le répertoire /etc/rcX.d. Le système d'exploitation Linux dispose de 5 niveaux d'exécution de démarrage.
1.3 Gestion des périphériques matériels Une autre responsabilité du noyau est de gérer les périphériques matériels. Tout périphérique avec lequel un système Linux doit communiquer doit avoir son code de pilote dans le code du noyau. Le code du pilote agit comme intermédiaire entre l'application et le périphérique matériel, permettant l'échange de données entre le noyau et le périphérique. Il existe deux méthodes pour insérer le code du pilote de périphérique dans le noyau Linux :
1.4 Gestion du système de fichiers
Le noyau Linux prend en charge la lecture et l'écriture de données à partir du disque dur via différents types de systèmes de fichiers. Le Tableau 1-1 répertorie les systèmes de fichiers standard utilisés par les systèmes Linux pour lire et écrire des données.
En plus de contrôler les périphériques matériels par le noyau, les systèmes d'exploitation nécessitent également des outils pour exécuter certaines fonctions standard, telles que le contrôle des fichiers et des programmes. Cet ensemble d'outils de base pour les systèmes Linux est appelé package coreutils (utilitaires de base). Le package GNU coreutils se compose de trois parties :
Shell 2.1
Le shell GNU/Linux est un outil interactif spécial. Il offre aux utilisateurs un moyen de lancer des programmes, de gérer des fichiers dans le système de fichiers et des processus exécutés sur les systèmes Linux. Le cœur du shell est l’invite de ligne de commande. L'invite de ligne de commande est la partie interactive du shell. Il vous permet de saisir des commandes de texte, puis d'interpréter les commandes et de les exécuter dans le noyau. Vous pouvez également placer plusieurs commandes shell dans un fichier et les exécuter en tant que programme. Ces fichiers sont appelés scripts shell.
Sur un système Linux, plusieurs shells Linux sont généralement disponibles. Différents shells ont des fonctionnalités différentes, certains sont meilleurs pour créer des scripts et d'autres pour gérer des processus. Le shell par défaut pour toutes les distributions Linux est le shell bash. Le shell bash a été développé par le projet GNU et est considéré comme un shell Unix standard
2.1.1 Types de shells
Le type de programme shell que le système démarre dépend de la configuration de votre ID utilisateur personnel. Dans le fichier /etc/passwd, le programme shell par défaut est répertorié dans le 7ème champ de l'enregistrement de l'ID utilisateur. Dès que l'utilisateur se connecte à un terminal de console virtuelle ou démarre un émulateur de terminal dans l'interface graphique, le programme shell par défaut démarre. Par exemple : l'utilisateur root utilise /bin/bash (bash shell) comme programme shell par défaut.
[root@node1 bin]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
Mais il existe un autre shell par défaut, /bin/sh, qui est utilisé comme shell système par défaut pour ceux qui ont besoin du shell système. script utilisé. Vous voyez souvent certaines distributions utiliser des liens symboliques pour définir le shell système par défaut sur le shell bash, comme les distributions CentOS :
$ ls -l /bin/sh
lrwxrwxrwx. 1 root root 4 Mar 18 15:05 /bin/sh -> bash
/bin/sh est équivalent à /bin/bash - -posix , utiliser sh pour appeler et exécuter le script équivaut à activer le mode standard POSIX de bash. Les différentes différences entre eux proviennent des différences entre le mode standard POSIX et bash.
La relation parent-enfant du shell 2.1.2
Le shell interactif par défaut démarré lors de la connexion à un terminal de contrôleur virtuel ou de l'exécution d'un émulateur de terminal dans l'interface graphique est un shell parent.
Lorsque vous entrez la commande /bin/bash ou une autre commande bash équivalente après l'invite CLI, un nouveau programme shell est créé. Ce programme shell est appelé shell enfant. Le sous-shell dispose également d'une invite CLI et attendra également l'entrée de la commande.
Par exemple : en utilisant ps -f
[root@node1 bin]# ps -fUID PID PPID C STIME TTY TIME CMD root 727 711 0 11:01 pts/0 00:00:00 -bash root 4385 727 0 12:06 pts/0 00:00:00 ps -f
Lors de l'utilisation de ps -f, deux processus sont affichés. L'ID de processus de l'un des processus est 727 et il exécute le programme shell bash. L'ID de processus d'un autre processus est 4385, ce qui correspond à la commande ps -f.
[root@node1 bin]# bash[root@node1 bin]# ps -fUID PID PPID C STIME TTY TIME CMD root 727 711 0 11:01 pts/0 00:00:00 -bash root 4492 727 0 12:08 pts/0 00:00:00 bashroot 4512 4492 0 12:08 pts/0 00:00:00 ps -f
Après avoir entré la commande bash, un sous-shell apparaît. Le deuxième ps -f est exécuté dans un sous-shell. Vous pouvez voir dans les résultats affichés que deux programmes shell bash sont en cours d'exécution. L'ID de processus d'origine du premier programme shell bash, qui est le processus shell parent, est 727. Le deuxième programme shell bash, le processus sous-shell, a un PID de 4492. Notez que l'ID de processus parent (PPID) du sous-shell est 727, ce qui indique que ce processus du shell parent est le processus parent du sous-shell. Lorsqu'un processus sous-shell est généré, seule une partie de l'environnement du processus parent est copiée dans l'environnement sous-shell.
1.KDE (K Desktop Environment, K Desktop Environment) a été initialement publié en tant que projet open source en 1996. Il génère un environnement de bureau graphique similaire à Microsoft Windows.
Le bureau KDE vous permet de placer des icônes d'application et des icônes de fichiers à des emplacements spécifiques sur le bureau. Cliquez sur l'icône de l'application et le système Linux exécutera l'application. Cliquez sur une icône de fichier et le bureau KDE détermine quelle application utiliser pour gérer le fichier.
2.GNOME (l'environnement de modèle d'objet de réseau GNU, l'environnement de modèle d'objet de réseau GNU) est un autre environnement de bureau Linux populaire. GNOME a été publié pour la première fois en 1999 et est devenu l'environnement de bureau par défaut pour de nombreuses distributions Linux.
3. Unity Desktop
Si vous utilisez la distribution Ubuntu Linux, vous remarquerez qu'elle est quelque peu différente des environnements de bureau KDE et GNOME. Pour être précis, cela est dû au fait que la société responsable du développement d'Ubuntu a décidé d'adopter son propre environnement de bureau Linux appelé Unity.
Unity Desktop doit son nom à l'objectif du projet : fournir une expérience de bureau cohérente pour les postes de travail, les tablettes et les appareils mobiles. Que vous utilisiez Ubuntu sur un poste de travail ou sur un téléphone mobile, le bureau Unity fonctionne de la même manière.
Recommandations associées : "Tutoriel vidéo Linux"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!