Aller au contenu

Notions fondamentales sur les Serveur Linux

Mise à jour :

Après avoir installé Linux sur votre machine, que ce soit via une procédure classique décrite dans ce guide d’installation Linux ou grâce à WSL2 pour une utilisation sous Windows (voir ici), vous voici prêt à entrer dans le cœur du système.

Nous allons aborder des concepts essentiels comme l’architecture du système, le rôle du noyau, la gestion des processus, des fichiers et des utilisateurs, ainsi que la manière dont Linux gère le réseau et les services.

À la fin vous aurez une compréhension globale qui vous permettra d’approfondir les aspects pratiques dans la suite de votre parcours.

Qu’est-ce que Linux ?

Linux est un système d’exploitation open source de type Unix, créé en 1991 par Linus Torvalds. À l’origine, le terme « Linux » désignait uniquement le noyau du système, mais par métonymie, il est aujourd’hui couramment utilisé pour désigner l’ensemble du système d’exploitation, qui combine le noyau Linux avec des outils issus du projet GNU .

Composants principaux de Linux

  • Noyau (Kernel) : C’est le cœur du système. Il gère les ressources matérielles, la mémoire, les processus et les périphériques. Le noyau assure la communication entre le matériel et les logiciels .

  • Shell : Il s’agit de l’interface en ligne de commande qui permet aux utilisateurs d’interagir avec le système. Le shell interprète les commandes saisies et les transmet au noyau pour exécution. Il existe plusieurs shells, dont Bash, Zsh et Fish. Le shell est essentiel pour l’administration système, l’automatisation des tâches et le développement d’applications. Il permet aux utilisateurs d’exécuter des commandes, de gérer des fichiers, de configurer le système et d’interagir avec d’autres programmes. Le shell est également utilisé pour écrire des scripts, qui sont des séquences de commandes exécutées automatiquement. Ces scripts peuvent être utilisés pour automatiser des tâches répétitives, gérer des configurations système, effectuer des sauvegardes, déployer des applications, etc. Plus de détails sur les shells dans la section Shells Linux.

  • Outils CLI : Ce sont des outils essentiels qui complètent le noyau pour former un système d’exploitation fonctionnel. Ils incluent outils toute la gamme de commandes et d’utilitaires qui permettent aux utilisateurs d’effectuer des tâches variées, telles que la gestion des fichiers, la configuration du réseau, la surveillance des performances, etc. Ces outils sont souvent fournis par le projet GNU et d’autres projets open source. Ils comprennent des commandes de base comme ls, cp, mv, rm, ainsi que des utilitaires plus avancés pour la gestion des systèmes de fichiers, la gestion des processus, la configuration du réseau, la gestion des utilisateurs, etc. Plus de détails sur ces commandes dans la section Commandes Linux.

  • Applications : En plus des composants de base, les distributions Linux incluent souvent une variété d’applications pour des tâches spécifiques, allant des navigateurs web aux suites bureautiques. Ces applications peuvent être installées via des gestionnaires de paquets, qui facilitent l’installation, la mise à jour et la suppression de ces logiciels.

Distributions Linux

Une distribution Linux est un ensemble cohérent qui combine le noyau Linux avec des utilitaires GNU, un système d’initialisation, des gestionnaires de paquets et d’autres logiciels. Chaque distribution est adaptée à des besoins spécifiques, qu’il s’agisse de serveurs, de postes de travail ou d’appareils embarqués .

Open Source et communauté

Linux est distribué sous la licence publique générale GNU (GPL), ce qui signifie que son code source est librement accessible, modifiable et redistribuable. Cette nature open source a favorisé une vaste communauté de développeurs et d’utilisateurs qui contribuent activement à son développement et à son amélioration continue.

Architecture du système Linux

Le fonctionnement de Linux repose sur une architecture en couches qui garantit souplesse, stabilité et sécurité. À la base, le matériel : processeur, mémoire, périphériques. Ce matériel est contrôlé par le noyau Linux, qui agit comme un intermédiaire entre la machine et les logiciels utilisateurs.

Les couches principales

  1. Matériel Il comprend les composants physiques (CPU, RAM, disques…).

  2. Noyau Linux Le kernel est responsable de :

    • la gestion des ressources matérielles,
    • la gestion des processus,
    • la gestion de la mémoire,
    • la gestion du système de fichiers,
  3. Interface système (APIs) Le noyau expose des interfaces pour permettre aux programmes d’accéder aux fonctionnalités systèmes (exemple : appels système read(), write()).

  4. Shells et interfaces utilisateur Les utilisateurs interagissent avec le système grâce aux :

    • Shells (Bash, Zsh),
    • Interfaces graphiques (GNOME, KDE).
  5. Applications Les applications utilisent les services fournis par le noyau via des appels système.

Mode utilisateur vs mode noyau

Linux fonctionne en deux modes distincts :

  • Mode noyau : le noyau s’exécute avec tous les droits matériels.
  • Mode utilisateur : les applications tournent avec des privilèges restreints pour éviter d’endommager le système.

Les communications entre couches

Lorsqu’une application utilisateur a besoin d’un service système (lire un fichier, ouvrir un socket…), elle fait un appel système qui traverse la couche utilisateur pour atteindre le noyau.

Illustration du modèle

Pour comprendre l’enchaînement des couches, voici un scénario :

  • Vous tapez ls dans un terminal.
  • Le shell interprète la commande.
  • La commande utilise des appels système pour lire le contenu du répertoire.
  • Le noyau communique avec le système de fichiers (matériel) pour récupérer les données.

Ce fonctionnement structuré garantit que chaque composant a un rôle précis et que le système reste modulaire et sécurisé.

Le processus de démarrage

Le démarrage d’un système Linux suit un enchaînement d’étapes précises qui permettent de passer d’une machine éteinte à un système pleinement opérationnel. Comprendre ces étapes est fondamental pour diagnostiquer des problèmes de boot ou optimiser le temps de démarrage.

Les étapes clés

  1. BIOS/UEFI À l’allumage, le BIOS ou l’UEFI initialise le matériel. Il détermine l’ordre de boot et lance le chargeur de démarrage.

  2. Chargeur de démarrage (GRUB/systemd-boot) Le chargeur comme GRUB2 propose un menu de sélection du système à démarrer. Il charge ensuite le noyau Linux en mémoire.

  3. Chargement du noyau Une fois en mémoire, le noyau détecte le matériel, monte le système de fichiers racine /, et démarre le processus PID 1.

  4. Systemd (init) La gestion des services est ensuite prise en charge par systemd, qui remplace les anciens systèmes init. Il lance en parallèle les services nécessaires. Cette partie est développée ici.

Gestion des processus

Sous Linux, chaque programme actif est un processus, identifié par un PID. Ces processus sont organisés en arborescence (parent/enfant) et passent par différents états : actif, suspendu, zombie.

Les commandes clés incluent :

Terminal window
ps aux
top
kill <PID>

La priorité des processus peut être ajustée avec nice ou renice. Ces notions, indispensables pour surveiller et gérer efficacement votre système, sont détaillées dans le guide dédié : Gestion des processus Linux.

La Gestion des services sous Linux

La gestion des services sous Linux permet de contrôler les programmes qui tournent en arrière-plan (appelés aussi démons). Avec l’arrivée de systemd, cette gestion est centralisée via la commande systemctl, qui permet de démarrer, arrêter, activer ou surveiller ces services.

Quelques commandes essentielles :

Terminal window
systemctl start nom_service
systemctl stop nom_service
systemctl status nom_service

Les services sont définis par des fichiers unités, qui spécifient comment chaque service doit être lancé et contrôlé. Pour aller plus loin : Gestion des services Linux.

La gestion des utilisateurs sous Linux

Linux gère l’accès aux ressources grâce à un système d’utilisateurs et de groupes, chaque utilisateur étant membre d’au moins un groupe. Le super-utilisateur (root) dispose de privilèges complets pour administrer le système. Les comptes utilisateurs sont créés avec useradd, modifiés avec usermod et supprimés avec userdel. Les informations d’authentification sont stockées dans /etc/passwd (utilisateurs) et /etc/group (groupes).

L’élévation de privilèges, via des outils comme sudo, permet aux utilisateurs d’exécuter des commandes avec des droits temporaires plus élevés. Ce mécanisme, crucial pour la sécurité, doit être maîtrisé pour éviter des abus ou des failles.

Pour approfondir ces notions : Gestion des utilisateurs.

Le système de fichiers Linux

Le système de fichiers Linux organise les données sous forme d’une arborescence, débutant à la racine /. Chaque répertoire joue un rôle spécifique : /bin pour les commandes essentielles, /etc pour la configuration, /home pour les répertoires utilisateurs, ou encore /var/log pour les journaux. Cette structure cohérente facilite la gestion des ressources et des services système.

Les permissions (lecture, écriture, exécution) définissent les droits d’accès pour le propriétaire, le groupe et les autres utilisateurs. Elles peuvent être gérées en mode octal (ex. chmod 755 fichier) ou symbolique (ex. chmod u=rw,g=r,o=). Des attributs spéciaux comme le sticky bit, le setgid et le setuid renforcent la sécurité, notamment sur les répertoires sensibles.

Pour des explications détaillées et des exemples pratiques, consultez le guide Système de fichiers Linux.

Contrôle de connaissances

Pourquoi ce contrôle ?

Cet contrôle va vous permettre de valider vos connaissances sur le sujet abordé dans le guide. Il comporte des QCM, des questions vrai/faux et des réponses ouvertes à un mot.

🕒 Le chronomètre commence dès que vous cliquez sur Démarrer le test. Vous devrez terminer l’examen avant la fin du temps imparti.

🎯 Pour réussir, vous devez obtenir au moins 80% de bonnes réponses.

💡 Je ne fournis pas directement les réponses aux questions. Cependant, si certaines sont complexes, des pistes d’explication pourront être proposées dans le guide ou après l’examen.

Bonne chance ! 🚀

Conclusion

Maintenant que vous avez une vue d’ensemble du fonctionnement de Linux, vous disposez des bases indispensables pour administrer efficacement un serveur ou un poste de travail sous Linux. Vous avez découvert les principaux composants du système : du noyau aux processus, des services aux utilisateurs, sans oublier le système de fichiers qui structure toutes vos données.

Ces notions vous permettront :

  • de mieux comprendre ce qui se passe « sous le capot »,
  • d’anticiper les problèmes courants,
  • et de progresser vers des tâches plus avancées comme la sécurisation, la gestion réseau ou l’automatisation.

La suite de votre apprentissage vous amènera à approfondir chaque aspect de manière plus détaillée grâce aux guides dédiés disponibles dans la formation. Pratiquez régulièrement ces concepts de base pour consolider vos acquis et devenir à l’aise avec l’administration Linux au quotidien.