====== La distribution Debian GNU/Linux ======
Le logo de **Debian GNU/Linux** : {{ :wiki:os:gnu_linux:debian-openlogo.png?nolink&160 |}}
{{ :wiki:os:gnu_linux:screenshot_of_debian_12_bookworm_gnome_43.9_english.png?linkonly |GNOME l'Interface Graphique par défaut de Debian}}
{{ :wiki:os:gnu_linux:capture_d_ecran_du_2024-12-28_17-03-58.png?linkonly |Autre Image de GNOME sous Debian}}
==== Sites sur Debian ====
Les liens internet ''officiels'' de Debian :
* Le [[https://www.debian.org/|site officiel]] de Debian.
* [[https://www.debian.org/distrib/|Télécharger]] Debian.
* [[https://cdimage.debian.org/cdimage/release/current-live/amd64/iso-hybrid/|Télécharger des images Lives de Debian]] en direct ou via un [[https://cdimage.debian.org/cdimage/release/current-live/amd64/bt-hybrid/|logiciel Torrent]], vous avez au choix l'environnement de bureau **GNOME**, **KDE**, **Cinnamon**, **Xfce**, **LXDE**, **LXQt** ou un **environnement en ligne de commande**.
* La [[https://www.debian.org/doc/|documentation]] de Debian traitant de divers sujets.
* Le [[https://wiki.debian.org/fr/FrontPage?action=show&redirect=PageD%27Accueil|Wiki]] Debian.
* Les [[https://www.debian.org/distrib/packages|paquets logiciels]] de Debian.
Les sites internet sur Debian ''non officiels'' :
* Le site [[https://debian-facile.org/|Debian Facile]], une référence française sur Debian :
* Son [[https://debian-facile.org/wiki|Wiki]] qui est excellent..
* Son [[https://debian-facile.org/forum.php| Forum]], c'est l'endroit idéal si vous avez des questions ou problèmes sur Debian. Vous pouvez également joindre des ''membres'' de Debian Facile sur **IRC** (**//Internet Relay Chat//**), un vieux protocole de communication mais qui est loin d'être mort à cette [[https://webchat.oftc.net/?channels=%23debian-facile|endroit]].
* L'[[|Association]] Debian Facile, à laquelle je vous conseille d'adhérer si vous êtes ''utilisateurs'' de Debian, pour ce faire, c'est [[https://debian-facile.org/asso.php?section=adherer|ici]] et le lien du [[https://debian-facile.org/compta/public/members/new.php|formulaire]].
* Pour les ''grands débutants'' de Debian il y a se [[https://debian-facile.org/projets/lescahiersdudebutant/|livre]].
Le livre de //référence sur Debian//, se trouve [[https://debian-handbook.info/browse/fr-FR/stable/|ici]], qui à l'origine était ''payant'' (d'ailleurs l'auteur l'a en livre broché dans sa collection), ce livre est indispensable pour tout **administrateur système** sous Debian. Il est désormais disponible en paquet logiciel dans le référentiel officiel de Debian sous le nom de ''debian-handbook''.
===== Présentation de Debian GNU/Linux =====
**Debian GNU/Linux** est une distribution GNU/Linux(système d'exploitation) communautaire, librement téléchargeable [[https://www.debian.org/distrib/|ici]], qui a été créée par **Ian Murdock** en août 1993 et la **Fondation Debian** qui a impacte ''énorme'' dans le domaine informatique, qui a été créée le 16 août 1993, le site officiel se trouve à cette [[https://www.debian.org/|adresse]]. C'est l'une des distributions Linux les plus anciennes encore en activité.
Debian GNU/Linux est composé de trois branches(versions) distinctes, **Debian Stable**(pour la **//production//**), **Debian Testing**(version de ''test'' pour la future **stable**) et **Debian Unstable**(version ''instable'' mais pas plus instable que la plupart des distributions courantes Linux). La version stable de **Debian** est la branche recommandée pour les nouveaux utilisateurs pour sa facilitée d'utilisation et pour sa très grande stabilité idéale pour les **serveurs** en production ou pour avoir un **poste de travail** de qualité professionnel, d'ailleurs Debian GNU/Linux est certainement l'une des distributions Linux les plus ''stables''.
N'allez pas croire que Debian ne se limite qu'aux professionnels, c'est un **OS Universel** et c'est d'ailleurs le slogan de la distribution. Il est tout à fait possible d'utiliser ce système d'exploitation pour le multimédia, le gaming, le streaming et bien plus encore, c'est d'ailleurs la distro qui a le plus grand nombre de logiciels dans son **référentiel**. Le seul problème de la version stable de Debian est que ces logiciels sont vieillissants, y compris au moment de la sortie de la version stable mais cela n'est plus réellement un problème avec les paquets alternatifs tels que **Flatpak**, **Snap** ou les **AppImage** qui permettent d'installer des logiciels dans leurs versions les plus récentes à part en ce qui concerne le ''coeur'' du système, le **noyau Linux**, qui fait que Debian n'est pas forcément le must pour le matériel relativement récent sauf si vous décidez de migrer vers Debian Testing ou Debian Unstable.
La distribution Debian GNU/Linux doit sa popularité en partie à son gestionnaire de paquets du nom de **APT** (**//Advanced Packaging Tool//**) qui gère automatiquement les dépendances logiciels et qui se base sur l'utilitaire Unix qui s'appelle **dpkg**, qui lui gère l'installation de ''bas niveau'' des paquets logiciels (en anglais, software packages) au format ''.deb'' mais qui n'est pas prévu pour gérer les dépendances (paquets nécessaires pour installer le logiciel). Il existe un grand nombre de logiciels graphiques (**logithèque**), pour installer des logiciels, tel que **GNOME Logiciels** pour **GNOME**, l'environnement de bureau du **projet GNU** ou **Plasma Discover** pour le bureau **KDE Plasma**. Debian dispose du plus grand nombre de paquets logiciels dans son référentiel (ces dépôts).
Debian GNU/Linux est ce qu'on appelle une distribution Linux ''mère'' ou une **méta-distribution**, c'est à dire qu'elle est la base de très nombreuses distributions Linux, parmi les plus notables et populaires ont peut citer [[wiki:systemes_d_exploitation:gnu_linux:ubuntu|Ubuntu]], **Linux Mint**, **MX Linux**, **Kali Linux** et bien d'autres encore. Debian GNU/Linux est une distributions GNU/Linux à tout faire, aucuns domaines de l'informatique ne lui résiste. C'est également la distribution choisie par de nombreuses organisations ou entreprises pour des usages comme, un media center (**Box TV**, comme les **Box Android TV** mais en plus complet et finement configurable), Kali Linux pour le **Hacking**, **Tails** pour préserver votre ''anonymat'' et votre ''vie privée'' et contrer la ''censure'' des **FAI**(**//Fournisseurs d'Accès à Internet//**), pour les personnes en situation de ''handicap'', pour l'astronomie, pour tout ce qui concerne la science et l'éducation, le gaming, le multimédia, pour les ''enfants'', la médecine, pour les serveurs informatiques, **openmediavault** pour un serveur NAS, le domaine des radioamateurs et encore bien plus de possibilité, en partie grâce à l'énorme référentiel logiciel de Debian.
La dernière version de Debian GNU/Linux est **Debian GNU/Linux 12** de son nom de code, **Bookworm**, elle a été publiée le 10 juin 2023 pour la version ''12.0'' et la dernière est **Debian GNU/Linux 12.10**, publiée le 15 mars 2025. Par défaut, le **projet Debian** maintient la distribution stable pour une durée de ''3 ans'' mais vu que chaque distribution stable sont des versions **LTS** (**//Long Term Support//**), elles ont en réalité une durée de vie de ''5 ans''. À noter que le support à long terme de Debian n'est pas géré par Debian elle même mais par des bénévoles et entreprises. D'ailleurs, il faut préciser qu'après la durée de ''3 ans'' il faudra prendre soin de modifier les dépôts de paquets logiciels dans le fichier ''/etc/apt/sources.list'' en ajoutant les dépôts spécifiques à LTS pour bénéficier des ''5 ans'' de support. Dans les versions maintenues, il faut ajouter les anciennes stable (**oldstable**), qui peuvent continuer d'être utilisées ''3 ans'' après la publication de la dernière version stable, grâce au support à long terme (LTS). Debian GNU/Linux ''Oldstable'' version ''11.11'' se nomme **Bullseye** et a été publiée le 31 août 2024.
Le nom Debian vient de la contraction des ''trois'' premières lettres du prénom de l'ex femme du fondateur de Debian, Ian Murdock qui s'appelait ''Debra'' et de ''Ian'', le prénom de Ian Murdock. Vous avez du vous rendre compte qu'il est écrit Debian GNU/Linux (sa distribution principale) au lieu de juste Debian, la raison est simple, Debian étant un projet et organisation très diversifié, il n' utilise pas uniquement le noyau Linux, en autres sont ou ont été utilisés, **noyau FreeBSD**, **NetBSD**, **Hurd**. Les différentes distributions sont : **Debian GNU/kFreeBSD** pour FreeBSD, **Debian GNU/NetBSD** pour NetBSD et **Debian GNU/Hurd** pour Hurd (noyau ''officiel'' du **projet GNU**). Le projet Debian (Fondation Debian) est extrêmement vaste et ne concerne pas seulement la distribution Debian GNU/Linux, le projet Debian est un véritable vivier pour la **communauté open source**. Énormément de projet open source prennent comme source des éléments de Debian !
Debian GNU/Linux est également la distribution la plus utilisée sur les nano-ordinateurs tel que le **Raspberry Pi** et son système d'exploitation ''officiel'' créé par la **Fondation Raspberry Pi** nommé **Raspberry Pi OS** (anciennement **Raspbian**). Avant Debian GNU/Linux 12, il était nécessaire de télécharger des images ''.iso'' de Debian ''non-officiels'' pour bénéficier des firmwares ''non-libres'', ce n'est plus le cas aujourd'hui, Debian GNU/Linux 12 alias Debian GNU/Linux Bookworm, intègre les firmwares non-libres dans ces images ''.iso'' par défaut.
===== Les trois branches distinctes de Debian GNU/Linux =====
Les trois **branches** principales de Debian GNU/Linux sont :
* **stable** : est la branche recommandée par la communauté Debian, elle est d'une stabilité et fiabilité à toutes épreuves. J'irais même jusqu'à dire que Debian GNU/Linux Stable est la distribution Linux la plus ''stable'', toutes distributions confondues, tant qu'il reste des bugs à corriger, les développeurs de Debian ne la publie pas. Tous les paquets logiciels qui sont inclus sont rigoureusement testés. Par défaut, cette branche ne reçoit essentiellement que des mises à jour de ''sécurité'' (correctifs de sécurité). C'est la version de Debian à privilégier pour la ''production'' et pour ceux qui n'ont peu de connaissance en GNU/Linux ou Unix. Cette banche est idéale pour les **serveurs informatiques**.
* **testing** : est la branche de ''test'' pour la future stable, d'ailleurs elle porte le nom de la prochaine version stable de Debian. La distribution Debian GNU/Linux Testing est une version en continue (c'est à dire que les logiciels montent en version au fur et à mesure de la vie de la distribution), c'est une **semi-rolling release**, elle reçoit les paquets provenant de la branche unstable lorsque ceux-ci sont relativement stables pour intégrer Debian GNU/Linux Testing, les paquets qui y sont inclus sont relativement récents. Debian GNU/Linux Testing est un bon compromis pour les utilisateurs qui souhaitent avoir une distribution GNU/Linux ayant une relative stabilité et comprenant des paquets beaucoup plus récents que Debian GNU/Linux Stable. Et globalement, Debian GNU/Linux Testing est aussi voir plus stable que la plupart des distributions Linux ''populaires'' et n'est pas figée comme Stable, ses paquets évoluent en versions contrairement à Debian GNU/Linux Stable qui ne bénéficie que de mise à jour de ''sécurité'', de se fait il y a des mises à jour bien plus régulières que sur Stable. Certaines personnes optent pour Testing sur **poste de travail** du fait que les logiciels sont plutôt récents et la distribution relativement stable. À la fin de son existence Debian GNU/Linux Testing entre en période de freeze (gel) et devient Debian GNU/Linux Stable, une fois qu'elle remplie tous les critères très strictes de celle-ci.
* **unstable** : est une distribution que l'on peut qualifier de **rolling release** (**distribution continue**, **roulante**) tout comme l'est **Arch Linux**, elle contient donc les paquets logiciels les plus récents qui proviennent de la branche **experimental**, experimental n'est pas une distribution GNU/Linux à part entière, c'est seulement un **dépôt** (**référentiel**) de paquets. Debian GNU/Linux Unstable est plutôt réservé aux développeurs de Debian, donc plus utilisé en interne du projet Debian mais il y a toutefois une partie des particuliers qui utilisent Debian GNU/Linux Unstable pour leurs usages personnels et qui en sont très satisfaits. Debian GNU/Linux Unstable n'est pas moins stable que n' importe quelle autre distribution Linux de type rolling release, d'ailleurs la distribution très populaires, **Ubuntu** se base sur Debian Unstable. En réalité, unstable ne signifie pas ''instable'', c'est simplement la branche de développement de Debian, Debian Unstable porte toujours le même nom, **Sid**.
À savoir, il y a une autre branche qui se nomme **Oldstable**, qui est officiellement maintenue par la communauté Debian pendant ''1 ans'' après la sortie de Debian GNU/Linux Stable et ''2 ans'' de plus dès qu'elle passe en version LTS (Long-Term Support), la branche oldstable, qui est l'ancienne branche stable. En définitive Debian GNU/Linux Stable a une durée de vie de ''5 ans'' (pour les architectures les plus usités comme **Intel x86_64** ou **ARM64**).
À vrai dire, maintenant il n'est plus forcément indispensable d'avoir une autre branche que stable pour avoir des logiciels récents ! Il existe différentes techniques pour conserver Debian GNU/Linux Stable avec les dernières versions des logiciels, par exemple par : les **backports**, le **pinning** en ce qui concerne les **paquets Debian** ou alors par des gestionnaires de paquets alternatifs tel que : **Flatpak**, **Snap** d'Ubuntu ou encore les **AppImage** voir même **Docker**, qui utilisent tous une méthode d'isolation qui fait que chaque logiciel installé par se biais est ''isolé'' des logiciels installés par défaut, via APT (le principe du **sandboxing**), donc les solutions sont vastes !
===== Caractéristiques de l'OS communautaire Debian GNU/Linux =====
==== Cours résumé des caractéristiques de Debian GNU/Linux ====
Debian GNU/Linux couvre un très grand nombre de domaine différents, allant du serveur informatique, au poste de travail pour : la bureautique, le multimédia, le gaming, le développement, le hacking et bien d'autres encore. Debian GNU/Linux est également l'une des distributions GNU/Linux qui supporte le plus grand nombre d'architecture processeur différente, comme les portages officiels : **Intel** (**Intel x86** et **Intel x86_64**), **ARM** (**armel**, **armhf**, **arm64**), **MIPS** (**mipsel**, **mips64el**), **PowerPC** (**ppc64el**), **System z** (**s390x**), **RISC-V** (**riscv64**) et d' autres, enfin bref, Debian GNU/Linux est l'une des distributions pouvant fonctionner sur le plus de plateformes différentes et vous avez même la possibilité de télécharger les sources de Debian GNU/Linux. Comme mentionné précédemment, Debian GNU/Linux est une distribution mère (une méta-distribution), sur laquelle repose une multitude d'autres distributions Linux, elles sont tellement nombreuses que je ne peux par toutes les citer, en voici quelques une : les très populaires, Ubuntu, Linux Mint, MX Linux et des distributions ''spécialisées'' dans certains domaines, Raspberry Pi OS pour nano-ordinateur Raspberry Pi, OpenMediaVault pour serveur NAS, Tails pour l'anonymat et éviter la censure, Kali Linux pour le pentesting (**hacking éthique**), **Mobian** pour **smartphone**, **Armbian** pour les processeurs ARM mais il en existe encore beaucoup d'autres. Debian GNU/Linux 12 intègre par défaut toute la panoplie de logiciels GNU, du noyau Linux en version ''6.1'', le shell unix Bash version ''5.2.15'', de systemd version ''252'', d'apt ''2.6.1'', de GCC ''12.2.0'', PHP ''8.2'', Python ''3.11'', GNOME ''43'', Cinnamon ''5.6.8'', KDE Plasma ''5.14.2'', Xfce ''4.18'', LXDE ''11'', LXQt ''31'',...etc
Sachez qu'Ubuntu est devenu également une distribution ''mère'' basé sur la méta-distribution, Debian GNU/Linux. De nos jours, énormément de distribution se base sur Ubuntu, donc indirectement sur Debian GNU/Linux, c'est la raison pour laquelle je n'ai pas cité les distributions basées sur Ubuntu, Ubuntu mérite un article à elle seule. Sachez tout de même que ces deux distributions se ressemblent énormément et que la plupart des tutos pour Debian s'appliquent à Ubuntu et inversement.
==== Le noyau Linux sous Debian GNU/Linux ====
Le **noyau Linux** de Debian GNU/Linux se situe dans le répertoire ''/boot'', le noyau en lui même est le fichier ''/boot/vmlinuz-version_de_votre_noyau-amd64'' pour un noyau ''Intel ou AMD 64 bits''. Le noyau Linux est un **noyau monolithique modulaire**, il comporte des **BLOBs** (**//Binary Large Object//**) qui permettent à Debian de reconnaître un maximum de matériels informatiques et qui de ce fait facilitent l'utilisation de Debian GNU/Linux et des modules. Les **modules** du noyau Linux permettent de charger un pilote de matériels qui n'est pas activé par défaut et d'installer des modules externes, en général sous forme de firmware. La majorité des modules se trouvent dans ''/usr/lib/modules/votre_noyau'' ou ''/lib/modules/votre_noyau'' qui est un lien symbolique vers ''/usr'' ou pour accéder directement à vos modules, tapez la commande ''/usr/lib/modules/`uname -r`''.
Les commande Unix de base (qui sont à exécuter avec un compte administrateur comme root) pour gérer les modules du noyau Linux sont :
* **lsmod** pour visualiser tous les modules chargés dans le noyau.
* **modinfo** pour avoir des informations sur un modules en particulier.
* **insmod** permet de charger un module en spécifiant son chemin complet, exemple : ''insmod /usr/lib/modules/`uname -r`/kernel/XXX/XXX.ko''. insmod ne gère les dépendances des modules que partiellement.
* **rmmod** qui lui, à l'inverse, décharge un module en mentionnant son nom.
* **modprobe** qui a les fonctionnalités de insmod et rmmod mais en plus avancée, car cette commande gère entièrement les dépendances. Exemple : ''modprobe nom_du_module'' pour charger un module et toutes ses dépendances et ''modprobe -r nom_du_module'' pour le décharger.
Il existe un outils en ligne de commande ou en mode interactif via l'interface **curses**, spécifique à Debian GNU/Linux du nom de **module-assistant** qui permet de créer ses propres modules à partir du code source du dit module, cet outil est vraiment riche en fonctionnalités et les modules installés par son biais sont automatiquement re-compilés et installés suite à une mise à jour du noyau Linux.
À savoir, il existe une version du noyau Linux dépourvue de BLOB, cette version se nomme **Linux-libre** qui est le noyau par défaut des distributions GNU/Linux recommandés par la **Fondation GNU** qui les considère comme de véritable distributions **GNU/Linux libres**.
==== Installateur de Debian GNU/Linux ====
Tout d'abord Debian est installable via CD ou DVD-Rom, par clé USB bootable ou par le réseau en passant par exemple par **PXE** (**//Pre-boot eXecution Environment//**) et pour finir par **FAI** (**//Fully Automatic Installer//**) qui permet une installation automatique et massive sur plusieurs ordinateurs à la fois, genre stations de travail, serveurs, voir machines virtuelles. L'**installateur** de Debian se nomme tout simplement **debian-installer**, c'est un installateur extrêmement modulaire qui permet d'installer Debian GNU/Linux au cas par cas, pour commencer debian-installer peut installer Debian en mode **texte** (**console**) via **Curses** ou en mode **graphique**. L'installateur de Debian étant très modulaire, ce n'est pas forcément l'installateur Linux de plus simple à appréhender et il est même jugé comme austère par certains membres de la communauté open source. Mais honnêtement l'apparence n'est que futile, l'important c'est les nombreuses fonctionnalités dont dispose l'installateur de Debian et de ce côté, c'est la panacée. debian-installer permet d'installer Debian de façon standard (automatisé) ou en mode ''expert'' qui permet une installation étape par étape et de manière très fine, via cette option vous avez accès à toutes les configurations possibles de Debian (le mode expert comme sont nom l'indique, est réservé aux personnes ayant de bonnes connaissances en informatique). Avec l'installateur de Debian vous avez la possibilité d'installer le système avec le strict minimum pour un **système embarqué**, en incluant seulement les utilitaires essentiels pour un serveur ou d'installer un environnement de bureau, par défaut GNOME mais vous pouvez également installer **Cinnamon**, **KDE Plasma**, **Xfce**, **MATE**, **LXDE** ou **LXQt** et j'omets les gestionnaires de fenêtres qui sont très nombreux. À savoir que pendant le processus d'installation, Debian détecte si il ne reconnait pas un composant de votre ordinateur et vous permet de charger des firmwares ''non-free'' via une clé USB par exemple. Au moment où il vous est proposé d'installer certains logiciels, vous avez la possibilité d'installer les services (daemons) de bases comme **SSH**, **CUPS** ou encore le serveur Web **Apache**. Vous aurez une page spécifique pour le processus d'installation.
À savoir qu'il existe des fichiers compressés ''tar.gz'' ou ''zip'' contenant les firmwares ''non-free'' inclus, à cette [[https://cdimage.debian.org/cdimage/firmware/|adresse]].
[[https://youtu.be/50yfWD8eGgY|Installation d'une Debian 12.9 minimale sur architecture AMD64 sous VirtualBox]]
==== Le programme de démarrage sous Debian GNU/Linux ====
Sous Debian GNU/Linux, pour l'amorçage du système, c'est **GNU GRUB** (**//GRand Unified Bootloader//**) qui est utilisé, c'est un programme d'amorçage qui est très complet et qui gère très bien le **multiboot** (**multi-amorçage**), il peut booter tous les systèmes d'exploitation
existants, par exemple, si vous avez un ordinateur où Windows, Debian GNU/Linux et FreeBSD sont installés vous pouvez démarrer chaque OS sans aucun problème. GNU GRUB est programme d'amorçage avec énormément de fonctionnalités, vous pouvez en autres booter n'importe quel OS installé sur votre ordinateur mais aussi des clés USB bootables, des CD/DVD-Rom bootables, des images ISO, des disques dur virtuels enfin bref les possibilités sont quasiment infini.
À l'époque c'était le chargeur d'amorçage **LILO** (**//Linux Loader//**) qui était utilisé sur toutes les distributions Linux, il était beaucoup plus limité que GNU GRUB mais jouait tout de même bien son rôle.
==== Système d’initialisation et de gestion des daemons de Debian GNU/Linux ====
À l'origine Debian GNU/Linux utilisait le système d’initialisation **sysvinit** qui utilisait des **scripts shell**, système **SysV init** similaire à celui de **UNIX System V**. Depuis **Debian Jessie**, sortie le 26 avril 2015, c'est **systemd**, créée par **Lennart Poettering**, qui a pris de relais et qui gère l'initialisation, la gestion des services (daemons), les cgroups, les journaux systèmes et beaucoup d'autres services. systemd a été très controversé, il met un terme aux principes **KISS** de sysvinit, c'est une véritable usine à gaz. J'avoue que je ne suis moi même pas très fan de systemd et que j'étais beaucoup plus à l'aise avec sysvinit et son système de **runlevel** au sein de ''/etc/inittab''. Mais malgré tout, même si certaines orientations de GNU/Linux ne me semble pas très bonne, j'essaie tout de même de passer aux nouvelles normes.
Systemd à énormément de fonctionnalités, en autres :
* L'initialisation du système et le lancement des premières consoles virtuelles (**getty**).
* La gestion des daemons (services) via la commande **systemctl**. Par exemple :
* systemctl ACTION .service Parmi les ''ACTIONS'' on peut citer : ''start'', ''stop'', ''restart'', ''reload'', ''status'', ''show'',...
* La getsion des **targets** (équivalent des runlevels de sysv) également avec la commande systemctl. Exemples :
* systemctl isolate multi-user.target qui permet de passer une session **graphique multi-utilisateur** en mode **console multi-utilisateur**.
* systemctl isolate graphical.target pour repasser en mode **graphique multi-utilisateur**.
* Son propre service de **journalisation** via la commande nommé **journalctl**. Exemple pour le serveur SSH :
* journalctl nfs-server.service par le nom du service.
* journalctl _PID=1300 par son ''PID'' (''//Process IDentifier//'').
* journalctl /usr/sbin/sshd par son exécutable.
* Il est aussi possible d'éteindre, mettre en veille, hiberner, exemple par ordre :
* systemctl poweroff pour éteindre.
* systemctl suspend pour mettre en veille.
* systemctl hibernate pour hiberner.
Ce n'est qu'un cours résumé sur les fonctionnalités de systemd qui comme je l'ai dit, est une ''usine à gaz''.
Des utilisateurs, mécontents par la décision de Debian d'intégrer systemd en son sein au détriment de sysvinit, ont créés un fork (fourche logicielle) de Debian du nom de **Devuan** qui reste sur le traditionnel SysV init. Il est possible de choisir entre **sysvinit**, **runit** ou **OpenRC**. Cette distribution est disponible [[https://www.devuan.org/|ici]].
==== Les Systèmes de fichiers sous Debian GNU/Linux ====
Les **systèmes de fichiers** proposés par défaut à l'installation et l' utilisation sont : **ext4**, **ext3**, **btrfs**, **XFS**, **F2FS**. Les systèmes de fichiers **ext** (**//extended file system//**) sont les systèmes de fichiers par défaut sous GNU/Linux. Tous les systèmes de fichiers précédemment mentionnés gèrent la ''journalisation''. ext4 est le système de fichiers conseillé en premier, il est fiable, performant et à plus de fonctionnalités que ext3 mais il est légèrement plus énergivore. btrfs est sans doute le plus avancé, il gère les snapshots, la compression et la mise en miroir mais n'est je pense pas aussi mature que ext4. Un autre choix est F2FS qui a été conçue pour les **SSD** (**//Solid-State Drive//**) et qui offre de meilleures performances d'écriture séquentielle. Bien évidement, suite à l'installation de Debian GNU/Linux vous pouvez installer d'autres systèmes de fichiers.
==== Gestionnaire de paquets sous Debian GNU/Linux ====
L'une des grandes forces de Debian est son **gestionnaire de paquets**, qui a fait en partie la renommé de cette distribution GNU/Linux. Dans les toutes premières versions de Debian, la gestion de paquets n'était géré que par **dpkg** et son frontend **dselect**. C'est à partir de **Debian GNU/Linux 2.1** du nom de **Slink**, publié le 9 mars 1999, que Debian intégra APT (Advanced Packaging Tool), à ne pas confondre avec la commande **apt**, APT est le centre névralgique du gestionnaire de paquets. APT fût le premier gestionnaire de paquets à gérer les dépendances logiciels. L'outil en ligne de commande principal qui installe les paquets à proprement parler sans gérer les dépendances est dpkg. Les outils en ligne de commande qui installent le logiciel souhaité et ses dépendances sont : **apt**, **apt-get** ou **aptitude** pour les principaux. La commande qui est devenue la référence est apt, qui combine les fonctionnalités de apt-get, apt-cache et apt-file. Les logiciels sous Debian se trouvent dans des **dépôts** (**repository** en anglais) qui sont référencés dans le fichier ''/etc/apt/sources.list'' et pour des dépôts hors Debian vous pouvez utiliser le répertoire ''/etc/apt/sources.list.d'' qui se compose de fichiers finissants par l'extension de fichiers ''.list'', se répertoire est très utile pour installer des logiciels ne faisant pas partis des dépôts ''officiels'' de Debian. En ce qui concerne les interfaces graphiques à APT ont peux citer : **Synaptic**, **Adept Manager**,...et pour les **logithèques**, il y a **GNOME Logiciels** pour l'environnement de bureau GNOME ou **Plasma Discover** pour environnement de bureau KDE Plasma, qui sont similaire au **Play Store** de **Google** ou de l'**App Store** d'**Apple**. À savoir, qu'il est tout à fait possible d'installer un paquet ''.deb'' isolé (hors dépôts) en gérant l'installation automatique des dépendances du paquet avec le logiciel du nom de **Gdebi**, pour installer la version graphique, installer le paquet **gdebi** et pour la version en ligne de commande, installer **gdebi-core**.
Le compilateur pour GNU/Linux est **GCC** (**//GNU Compiler Collection//**), il prend en charge les langages de programmation suivants : **C**, **C++**, **Objective-C**, **Java**, **Ada**, **Fortran** et **Go**.
À savoir que sous Debian GNU/Linux, il y a également des gestionnaires de paquets alternatifs qui permettent d'avoir les toutes dernières versions des logiciels n'étant souvent pas disponible par défaut sous Debian GNU/Linux, à moins de faire du **pinning**, qui consiste à installer des logiciels provenant des autres branches de Debian comme Testing ou Unstable en toute sécurité, sans impacter la base logiciel de Debian GNU/Linux Stable mais c'est un procédé un peu complexe et qui n'a plus trop d'intérêt de nos jours. Ces fameux gestionnaires de paquets alternatifs sont : **Flatpak** de **Alexander Larsson**, **Snap** de **Canonical Ltd** et enfin les fichiers **AppImage** qui comporte un logiciel et toutes ses dépendances dans un même fichier. Contrairement à Flatpak et Snap, AppImage n'est qu'un fichier contenant tout le nécessaire pour exécuter un logiciel sans même avoir besoin de l'installer, il suffit de rendre le fichier ''appimage'' exécutable. Tous ses paquets alternatifs son en mode **sandbox**, c'est à dire qu'ils sont ''isolés'' et n' ''interfèrent'' pas avec le système de base de Debian GNU/Linux. C'est très pratique pour avoir la dernière version des logiciels sans se prendre la tête et de manière ''sécurisé''.
Pour installer des logiciels sous Debian GNU/Linux, se référer à ce [[wiki:os:gnu_linux:debian:tutos:admin:install_logiciel_debian|tuto]].
==== La pile audio sous Debian GNU/Linux ====
À l'époque du **noyau Linux 2.4** le pilote pour l'audio etait **OSS** (**//Open Sound System//**), désormais le pilote par défaut pour l'audio est **ALSA** (**//Advanced Linux Sound Architecture//**) qui a une compatibilité avec OSS. Il existe également une nouvelle version du pilote OSS du nom de **OSS4** (**//Open Sound System v4//**) qui se trouve [[http://www.opensound.com/download.cgi|ici]].
Le **serveur de son** utilisé actuellement est **PipeWire**, le serveur de son précédent était **PulseAudio**, créée par l'auteur de systemd. PipeWire a une couche de rétro-compatiblité avec **PulseAudio** du nom de **pipewire-pulse**, une autre pour le serveur de son nommé **JACK** (**//ack Audio Connection Kit//**) qui est devenue obsolète avec PipeWire et enfin **pipewire-alsa**, couche de rétro-compatiblité avec ALSA. Un serveur de son joue le rôle d'intermédiaire entre les applications audio et le pilote ALSA.
==== La pile graphique sous Debian GNU/Linux ====
La **pile graphique** sous GNU/Linux se compose des éléments suivants : les applications graphiques et bibliothèques graphiques, les pilotes graphiques liés au noyau Linux, le serveur X11 (en l'occurrence **X.Org**, maintenu par la Fondation du même nom) ou un compositeur graphique tel que **Wayland** associé à un gestionnaire de fenêtres compatible tel que **Mutter** de l'environnement graphique GNOME ou encore **KWin** de KDE Plasma. Pour le moment il n'y a pas énormément d'interface graphique compatible avec Wayland et malheureusement Wayland ne permet pas d'être utilisé avec les pilotes ''propriétaires'' **Nvidia** qui est pour les cartes graphiques les plus récentes, le seul pilote réellement utilisable.
==== Le réseau sous Debian GNU/Linux ====
L' élément central est la **pile TCP/IP** intégrée au noyau Linux fondée sur le **modèle OSI** qui gère tous les protocoles réseaux et les interfaces réseaux.\\
Il y a deux paquets logiciels qui ont le même rôle et qui sont des outils en ligne de commande pour gérer son **réseau** :
* le paquet du nom de **net-tools**, qui contient les commandes : **ifconfig, netstat, ipmaddr, iptunnel, mii-tool, nameif, plipconfig, rarp, route, slattach** et **arp**.
* le paquet nommé **iproute2** qui comprend les commandes : **ip, ss, bridge, dcb, devlink, rtacct, rtmon, tc, tipc, vdpa, lnstat, nstat, rdma, routel, arpd, genl, ctstat** et **rtstat**.
Il y a également le paquet **wireless-tools** pour gérer les cartes wifi, qui ont comme utilitaires : **iwconfig, iwlist, iwevent, iwgetid, iwpriv** et **iwspy**.\\
En ce qui concerne l'utilitaire graphique (et ses commandes Unix associés) le plus utilisé sous GNU/Linux ont peut citer **Network-Manager** qui contient tous les outils essentiels pour gérer son réseau, auquel on peut ajouter des extensions, par exemple pour les réseaux **VPN** (**//Virtual private network//**, **//Réseau Privé Virtuel//** en français).
Le fichier qui contient les interfaces réseau sous Debian est ''/etc/network/interfaces'' où vous pouvez faire un réglage minutieux de chaque interface. Vous pouvez également créer vos propres fichiers d'interfaces réseaux via le répertoire ''/etc/network/interfaces.d/''.
Globalement le réseau sous Debian GNU/Linux est très stable, ce n'est pas pour rien qu'il y a un nombre gigantesque de **serveur informatique** sous Debian GNU/Linux !
==== La sécurité réseau sous Debian GNU/Linux ====
Debian GNU/Linux inclut dans son noyau Linux le cadriciel (framework) appelé **Netfilter** qui implémente le **pare-feu** du noyau Linux et la commande Unix **iptables** pour **IPv4** et **ip6tables** pour **IPv6** permettent de configurer les chaînes et les règles en autres du pare-feu Netfilter. Parmi les commandes Unix comprises dans le paquet iptables il y a également **ebtables**, spécifique aux trames Ethernet. Il existe un outil en ligne de commande pour configurer de manière simplifiée le pare-feu Netfilter du nom de **UFW** (**//Uncomplicated Firewall//**), il existe également une interface graphique pour UFW nommée **Gufw** (bien pratique pour les **postes de travail**). Il existe aussi un utilitaire Unix qui se veut être le remplacement de l'utilitaire iptables qui a une syntaxe plus claire et cohérente appelé **nftables**, il permet également une compatibilité avec iptables en traduisant la syntaxe de iptables en syntaxe nftables.
Sous Debian GNU/Linux et sous GNU/Linux en général il y a un **antivirus** open source du nom de **ClamAV** qui utilise la bibliothèque **libclamav**. Pour un poste de travail sous GNU/Linux, il est complètement inutile d'avoir un antivirus, sauf si vous êtes en dualboot avec Windows et GNU/Linux sur le même ordinateur, dans ce cas ClamAV peut vérifier que vous n'avez pas de fichiers ''infectés'' sous GNU/Linux qui pourrait nuire à votre Windows. Par contre ClamAV peut-être utile sur un **serveur mail** sous Debian GNU/Linux. Pour installer ClamAV, il faut installer son paquet qui est **clamav**, à savoir qu'il existe également une interface graphique pour ClamAV du nom de ClamTk, son paquet est tout simplement **clamtk**.
Il est totalement inutile d'avoir un antivirus sous Debian GNU/Linux et sur toutes les autres distributions Linux, à moins d'avoir un serveur mail comme mentionné précédemment ! Ça ne ferait que consommer des ''ressources'' inutilement.
==== La virtualisation et conteneurisation sous Debian GNU/Linux ====
Debian GNU/Linux est loin d'être dépourvu de logiciel de **virtualisation**, **émulation** et **conteneurisation**.
=== Virtualisation ===
La **virtualisation** consiste à exécuter un système d'exploitation appelé **machine virtuelle**, qui fonctionne de concert avec l'**hôte** (Debian GNU/Linux, le système ''principal'') en l'occurrence le noyau Linux, de ce fait il y a un gain de performance énorme par rapport à un système d'exploitation ''émulé''. Avec un **hyperviseur**, c'est le **CPU** (**processeur**), **mémoire vive** (**RAM**), **disque** (**mémoire de masse**) de l'hôte (de l'ordinateur) qui est utilisé pour les machines virtuelles (système d'exploitation ''virtualisé'' appelé également **VM**), chaque VM est ''isolée'' les unes des autres et du système hôte. Un OS ''virtualisé'' ne peut fonctionner que si il a la même architecture processeur que l'OS hôte.
En ce qui concerne la virtualisation vous avez les **hyperviseurs** de ''type 1'' suivants :
* L'hyperviseur par défaut de Linux (directement intégré dans le noyau Linux) du nom de **KVM** (**//Kernel-based Virtual Machine//**) qui fonctionne de concert avec l'émulateur **QEMU** (**//Quick Emulator//**), il est très performant et il est disponible sur les processeurs comme **Intel** ou **AMD**, **ESA/390**, **PowerPC**, **IA-64** (**Intel Itanium** ''1'' et ''2'') et **ARM**.
* **Xen** est également un hyperviseur de ''type 1'' natif sous Linux, en partie intégré dans le noyau Linux, il est disponible pour les architectures processeur suivantes : **x86**, **x64**, **IA-64**, **PowerPC** et **ARM** et **SPARC**. À noter que Xen est également disponible sous **NetBSD**.
Les **hyperviseurs** de ''type 2'' :
* [[wiki:virtualisation_et_emulation:virtualbox|VirtualBox]] plus précisément **Oracle VM VirtualBox** est un hyperviseur de ''type 2'', disponible pour les OS : **Linux**, **Windows**, **macOS**, **Solaris**, **FreeBSD** et **Genode**. Il permet de virtualiser la plus grande partie des OS récents, il faut que l' OS ''virtualisé'' soit un système fonctionnant sur le même processeur que l'hôte par exemple pour un OS hôte avec un processeur **Intel** ou **AMD** ''64 bits'', il faut un **OS** ''invité'' (VM) qui supporte soit l'architecture **x86** ou **x64** d'**Intel** ou **AMD**. Pour le moment, VirtualBox n'est disponible que pour les processeurs **Intel** ou **AMD** ''64bits'' (**x64** aussi nommé **x86_64**)
* **VMware Player** est très similaire à VirtualBox, il supporte peut-être un peu plus d'OS ''invité'' par contre VMware Player n'est pas disponible à l'installation pour autant d'OS que VirtualBox et n'est pas un logiciel open source.
=== Émulation ===
L'**émulation** consiste à émuler la totalité d'un appareil informatique, par exemple : un vieux PC, un ancien Macintosh, de vielle station UNIX, un mini-ordinateur (**PDP-11**, **VAX**, **IBM 1130**,...), une console de jeu,...etc. L'émulateur ne bénéficie en aucun cas des ressources de l'hôte mais il permet d'émuler des OS qui non pas la même architecture processeur que votre ordinateur hôte. Par contre, évidement les appareils informatiques ''émulés'' n'ont pas les mêmes performances et réactivités que les OS ''virtualisés''. Mais la plupart du temps, on ''émule'' du vieux matériels qui ne sont vraiment pas gourmand en ''ressources''.
Quelques **émulateurs** :
* [[wiki:virtualisation_et_emulation:qemu|QEMU]] est un émulateur **multi-architecure** qui peut ''émuler'' des systèmes : **x86**, **ARM**, **PowerPC**, **RISC-V**, **MIPS**, **s390**, **SPARC**. C'est l'un des émulateurs les plus complets. Il permet d'émuler une multitude de vieil OS. À la base c'est un émulateur créé pour GNU/Linux.
* [[wiki:virtualisation_et_emulation:simh|SimH]] est un émulateur pour ''simuler'' les vieux ordinateurs des années ''60 à 80''. Il permet en autres de ''simuler'' un PDP-11, VAX, Altair 8800,... Il est idéal pour simuler tous les vieux UNIX mais permet bien plus.
* **PearPC** est un émulateur qui émule les vieux Macintosh de type **PowerPC** et donc **Mac OS Classic** et les premières versions de **Mac OS X**.
* **MAME** (**//Multiple Arcade Machine Emulator//**) permet d'émuler de nombreux jeux d'arcade et consoles de jeux mais aussi de nombreux ordinateurs anciens, qui était à l'époque géré par **MESS**. Il est disponible pour la plupart des OS populaires.
=== Conteneurisation ===
La **conteneurisation** à quelques similitudes avec l'appel système et commande Unix nommé **chroot**, la conteneurisation consiste à virtualiser la totalité d'un système GNU/Linux (peu importe la distribution Linux), hormis son noyau. C'est une méthode de **virtualisation** qui utilise l'**isolation** comme **méthode de cloisonnement** au niveau du **système d'exploitation**. Les performances de la virtualisation par conteneurisation son pour ainsi dire ''native'', en gros, une application exécutée dans un **conteneur** est aussi ''réactive'' que sur le système hôte !
Les **conteneurs** (**containers** en anglais) :
* Les conteneurs **LXC** (**//LinuX Containers//**) peuvent virtualiser toutes les distributions Linux, comme mentionné précédemment, ils virtualisent la totalité de l'**espace utilisateur** (**userland** en anglais) en utilisant les cgroups et le noyau Linux de l'hôte. Un conteneur LXC utilise donc un système Linux complet avec le noyau de l'hôte, le conteneur LXC est ''isolé'' de l'OS principal de l'hôte et n'a donc aucun droit d'accès sur le système ''principal'', alors que le système ''principal'' à tous les droits sur un conteneur. Un conteneur LXC n'a même pas accès aux autres conteneurs LXC. Pour faire simple, chaque conteneur paraît et fonctionne comme n'importe quel système à part entière Linux. LXC est spécifique et disponible seulement sur GNU/Linux.
* **Docker** était à l'origine basé sur LXC mais utilise désormais son propre système de conteneurisation qui est en grande partie similaire à LXC avec une **API** (**//Application Programming Interface//** ou **//Interface de Programmation Applicative//**) de ''haut niveau'' et des fonctionnalités supplémentaires. Contrairement à LXC, de par sa conception, Docker n'est désormais plus seulement compatible avec GNU/Linux mais avec la majorité des systèmes d'exploitation, dont **GNU/Linux**, **macOS**, **Windows** et **FreeBSD**.
La virtualisation, émulation et conteneurisation sur cette page n'est qu'un petit résumé des fonctionnalités et offre logiciels dans ce domaine sous Debian GNU/Linux ! Le monde de la virtualisation/émulation est bien plus vaste sous Debian GNU/Linux, je n'ai citer qu'une infime partie des programmes fournis par Debian dans le domaine !!!
===== Instructions supplémentaires pour Debian GNU/Linux =====
Dans cette section nous traiterons des [[wiki:os:gnu_linux:debian:tutos|tutoriels sur Debian GNU/Linux]], c'est là où vous aurez une documentation sur des sujets bien spécifiques liés à **Debian GNU/Linux**.
Cette article n'est en aucun cas exhaustif, c'est juste un résumé de **Debian GNU/Linux** ! L'endroit où vous aurez réellement une documentation poussée sur **Debian GNU/Linux** est dans les [[wiki:os:gnu_linux:debian:tutos|tutos]].