Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
wiki:systemes_d_exploitation:bsd_unix:freebsd [2024/12/23 12:01] – [Quelques Daemons (Services) et Logiciels installés par défaut sous FreeBSD] Thibault Seguin | wiki:systemes_d_exploitation:bsd_unix:freebsd [2025/03/14 12:30] (Version actuelle) – [Système d’initialisation de FreeBSD] Thibault Seguin |
---|
====== FreeBSD, le système BSD le plus Populaire et Polyvalent ====== | ====== FreeBSD, le système BSD le plus populaire et polyvalent ====== |
Le **logo** de **FreeBSD** : {{ :wiki:systemes_d_exploitation:bsd_unix:logo-freebsd.svg |}} | Le **logo** de **FreeBSD** : {{ :wiki:systemes_d_exploitation:bsd_unix:logo-freebsd.png?nolink&400 |}} |
| |
===== Présentation de FreeBSD ===== | ===== Présentation de FreeBSD ===== |
**FreeBSD** est sans aucun doute la **distribution BSD** la plus utilisée et est également le **BSD** que l'on peut utiliser dans le plus de ''domaines'' différents et contrairement à se que l'on peut penser, **FreeBSD** n'est pas seulement un **OS** pour les **serveurs informatiques** mais peut très bien être utilisé pour se creer une **station de travail** ''professionnelle'' ou bien même pour la **bureautique**, **multimedia** mais **FreeBSD** étant un **système d'exploitation** ayant été prévu à l'origine plutôt pour les **serveurs**, il n'y a pas d' **interface graphique** installée par défaut donc il faut avoir un minimum de ''connaissance'' pour configurer son **OS** à son image après ''installation''. | **FreeBSD** est sans aucun doute la **distribution BSD** la plus utilisée et est également le **BSD** que l'on peut utiliser dans le plus de ''domaines'' différents et contrairement à se que l'on peut penser, **FreeBSD** n'est pas seulement un **OS** pour les **serveurs informatiques** mais peut très bien être utilisé pour se creer une **station de travail** ''professionnelle'' ou bien même pour la **bureautique**, **multimedia** mais **FreeBSD** étant un **système d'exploitation** ayant été prévu à l'origine plutôt pour les **serveurs**, il n'y a pas d' **interface graphique** installée par défaut donc il faut avoir un minimum de ''connaissance'' pour configurer son **OS** à son image après ''installation''. |
| |
À la différence de **GNU/Linux** les **distributions BSD** sont des **OS** complets, qui comporte à la fois leurs propres **utilitaires Unix** et un **noyau monolithique modulaire** (pour **FreeBSD** et **NetBSD**) et les **daemons** (**//services//** de base), comme **FTP**, **NFS**, **SSH**, **NTP**,...etc, en clair tous les **composants** d'un **système BSD** sont crées par la même ''entité'', en l'occurence les **membres** du ''développement'' de **FreeBSD**. De plus le nombre de **logiciels** disponibles dans les **dépôts** de **FreeBSD** sont relativement conséquents, la plupart des **logiciels** disponibles sous **GNU/Linux** le sont aussi sous **FreeBSD**, mis à part les **programmes** qui sont spécifiques à **GNU/Linux**. | À la différence de **GNU/Linux** les **distributions BSD** sont des **OS** complets, qui comporte à la fois leurs propres **utilitaires Unix** et un **noyau monolithique modulaire** (pour **FreeBSD** et [[wiki:systemes_d_exploitation:bsd_unix:netbsd|NetBSD]]) et les **daemons** (**//services//** de base), comme **FTP**, **NFS**, **SSH**, **NTP**,...etc, en clair tous les **composants** d'un **système BSD** sont crées par la même ''entité'', en l'occurence les **membres** du ''développement'' de **FreeBSD**. De plus le nombre de **logiciels** disponibles dans les **dépôts** de **FreeBSD** sont relativement conséquents, la plupart des **logiciels** disponibles sous **GNU/Linux** le sont aussi sous **FreeBSD**, mis à part les **programmes** qui sont spécifiques à **GNU/Linux**. |
| |
Les **sites internet** ''officiels'' de **FreeBSD** : | Les **sites internet** ''officiels'' de **FreeBSD** : |
<note important>Les **systèmes BSD** sont certainement les plus ''stables'', ''robustes'', ''sécurisés'', ils sont **développés** depuis plus de ''40 ans'', ''46 ans'' pour être précis et ça, sa fait toute la différence par rapport à d'autres **OS** beaucoup moins ''matures''. Raison pour laquelle ils sont utilisés sur certains des plus importants **data center** (salle contenant une multitude de **serveurs informatiques** en **rack**). [[https://fr.wikipedia.org/wiki/Centre_de_donn%C3%A9es#/media/Fichier:Cern_datacenter.jpg|Photo]] d'une salle de **data center** (**centre de données** en français).</note> | <note important>Les **systèmes BSD** sont certainement les plus ''stables'', ''robustes'', ''sécurisés'', ils sont **développés** depuis plus de ''40 ans'', ''46 ans'' pour être précis et ça, sa fait toute la différence par rapport à d'autres **OS** beaucoup moins ''matures''. Raison pour laquelle ils sont utilisés sur certains des plus importants **data center** (salle contenant une multitude de **serveurs informatiques** en **rack**). [[https://fr.wikipedia.org/wiki/Centre_de_donn%C3%A9es#/media/Fichier:Cern_datacenter.jpg|Photo]] d'une salle de **data center** (**centre de données** en français).</note> |
| |
==== Sites Officiels FreeBSD ==== | ==== Sites officiels FreeBSD ==== |
* [[https://www.freebsd.org/|Le Site Officiel de FreeBSD]]. | * [[https://www.freebsd.org/|Le Site Officiel de FreeBSD]]. |
* [[https://wiki.freebsd.org/|Le Wiki Officiel]]. | * [[https://wiki.freebsd.org/|Le Wiki Officiel]]. |
* Et enfin [[https://freebsdfoundation.org/|La Fondation FreeBSD]]. | * Et enfin [[https://freebsdfoundation.org/|La Fondation FreeBSD]]. |
| |
===== Les différentes Branches de FreeBSD ===== | ===== Les différentes branches de FreeBSD ===== |
* La ''branche'' **RELEASE** (**RELENG**) : est la version à privilégier pour la ''production'', les **logiciels** qui la compose sont figés, ils ne reçoivent que des **correctifs de séciurité**, c'est donc la **branche** la plus ''stable'' de **FreeBSD** et celle qui est recommandée par le **projet FreeBSD**. Elle est idéale pour les **serveurs informatiques** et pour les personnes souhaitants un **OS** ''solide'' comme un roc. | * La ''branche'' **RELEASE** (**RELENG**) : est la version à privilégier pour la ''production'', les **logiciels** qui la compose sont figés, ils ne reçoivent que des **correctifs de séciurité**, c'est donc la **branche** la plus ''stable'' de **FreeBSD** et celle qui est recommandée par le **projet FreeBSD**. Elle est idéale pour les **serveurs informatiques** et pour les personnes souhaitants un **OS** ''solide'' comme un roc. |
* La ''branche'' **STABLE** : cette **branche** sert de base à la future version ''majeure'' de **FreeBSD-RELEASE**, c'est une bonne option pour avoir des **logiciels** plus récents que la **branche** **RELEASE** et elle est relativement ''stable''. Donc pour un **poste de travail** c'est une bonne candidate. | * La ''branche'' **STABLE** : cette **branche** sert de base à la future version ''majeure'' de **FreeBSD-RELEASE**, c'est une bonne option pour avoir des **logiciels** plus récents que la **branche** **RELEASE** et elle est relativement ''stable''. Donc pour un **poste de travail** c'est une bonne candidate. |
| |
===== Spécifications et caractéristiques de FreeBSD ===== | ===== Spécifications et caractéristiques de FreeBSD ===== |
==== FreeBSD un Système d'Exploitation Complet ==== | ==== FreeBSD un système d'exploitation complet ==== |
Tout d'abord, comme mentionné précédement, tous les **systèmes d'exploitation** de type **BSD**, sont des **OS** ''complets'', qui comportent les **utilitaires Unix** en **ligne de commande**, le **noyau BSD** spécifique à chaque **distributions BSD**, les **daemons** (**services** en français) et tout ce que nécessite un **système d'exploitation** complet après installation et pour une utilisation optimale et **FreeBSD** ne déroge pas à cette règle. **FreeBSD** dispose d'un **noyau** de ''type'' **monolithique modulaire**, c'est à dire qu'il est possible d'installer des **modules** (équivalent des **pilotes** sous **Windows**) externes qui ne sont pas intégrés au **noyau** par défaut, celà permet d'avoir un **noyau monolithique** qui prend moins de place sur la **mémoire de masse** et qui donne la possiblité de prendre en ''charge'' du **matériel informatique** supplémentaire. Tout ce qui compose **FreeBSD** (**utilitaires Unix**, **noyau FreeBSD**, **daemons de base**, **pilotes de périphériques** et plus encore) est ''développé'' en interne par les ''membres'' du **projet FreeBSD** spécialisés dans le ''développement'' de cet **OS**. Par contre, si vous souhaitez faire de **FreeBSD** votre **poste de travail**, il vous faut installer l'**environnement de bureau** de votre choix par vos propres moyens car **FreeBSD** n'installe pas d'**interface graphique** par défaut après installation et c'est un choix délibéré pour vous laissez le choix de créer votre **système d'exploitation** selon vos besoins (**serveur** ou **poste bureautique**) mais surtout pour une histoire de **licence**, car **FreeBSD** a fait de choix d'inclure un maximum de **logiciels** sous **licence BSD**, mais pour les plus pressés d'entre vous, sachez qu'il existe une **distribution BSD** basée sur **FreeBSD** du nom de [[wiki:systemes_d_exploitation:bsd_unix:ghostbsd|GhostBSD]] qui vous permet au choix, d'installer l'**environnement de bureau** appelé **MATE** (**fork** de **GNOME2**) ou **Xfce** qui est non pas géré par le **projet** ''officiel'' de **GhostBSD** comme **MATE** mais par sa **communauté**. | Tout d'abord, comme mentionné précédement, tous les **systèmes d'exploitation** de type **BSD**, sont des **OS** ''complets'', qui comportent les **utilitaires Unix** en **ligne de commande**, le **noyau BSD** spécifique à chaque **distributions BSD**, les **daemons** (**services** en français) et tout ce que nécessite un **système d'exploitation** complet après installation et pour une utilisation optimale et **FreeBSD** ne déroge pas à cette règle. **FreeBSD** utilise par défaut les **shells Unix**, **tcsh** pour un **utilisateur ordinaire** (**non-privilégié**) et **sh** (**ash**) pour le **compte** de **root** (**superutilisateur**), il est à noter que **FreeBSD** dispose d'un **compte** du nom de **toor**, qui a les même privilèges que **root** mais sur lequel on peut associer un **shell Unix** des **dépôts tiers** comme le populaire **bash**. **FreeBSD** dispose d'un **noyau** de ''type'' **monolithique modulaire**, c'est à dire qu'il est possible d'installer des **modules** (équivalent des **pilotes** sous **Windows**) externes qui ne sont pas intégrés au **noyau** par défaut, celà permet d'avoir un **noyau monolithique** qui prend moins de place sur la **mémoire de masse** et qui donne la possiblité de prendre en ''charge'' du **matériel informatique** supplémentaire. Tout ce qui compose **FreeBSD** (**utilitaires Unix**, **noyau FreeBSD**, **daemons de base**, **pilotes de périphériques** et plus encore) est ''développé'' en interne par les ''membres'' du **projet FreeBSD** spécialisés dans le ''développement'' de cet **OS**. Par contre, si vous souhaitez faire de **FreeBSD** votre **poste de travail**, il vous faut installer l'**environnement de bureau** de votre choix par vos propres moyens car **FreeBSD** n'installe pas d'**interface graphique** par défaut après installation et c'est un choix délibéré pour vous laissez le choix de créer votre **système d'exploitation** selon vos besoins (**serveur** ou **poste bureautique**) mais surtout pour une histoire de **licence**, car **FreeBSD** a fait de choix d'inclure un maximum de **logiciels** sous **licence BSD**, mais pour les plus pressés d'entre vous, sachez qu'il existe une **distribution BSD** basée sur **FreeBSD** du nom de [[wiki:systemes_d_exploitation:bsd_unix:ghostbsd|GhostBSD]] qui vous permet au choix, d'installer l'**environnement de bureau** appelé **MATE** (**fork** de **GNOME2**) ou **Xfce** qui est non pas géré par le **projet** ''officiel'' de **GhostBSD** comme **MATE** mais par sa **communauté**. |
| |
<note important>Si par mégarde pour avez installés **FreeBSD** avec la **disposition clavier** **QWERTY** et souhaitez passer votre **clavier** en **AZERTY**, exécutez cette commande : ''kbdcontrol -l fr.iso.acc'' (ceci n'est que ''temporaire''), pour passer votre **clavier** en **AZERTY** de manière ''définitive'' il faut ajouter cette **disposition** au **fichier** ''/etc/rc.conf'' en ajoutant : ''keymap="fr.acc.kbd"'' à ''/etc/rc.conf''.</note> | <note important>Si par mégarde pour avez installés **FreeBSD** avec la **disposition clavier** **QWERTY** et souhaitez passer votre **clavier** en **AZERTY**, exécutez cette commande : ''kbdcontrol -l fr.iso.acc'' (ceci n'est que ''temporaire''), pour passer votre **clavier** en **AZERTY** de manière ''définitive'' il faut ajouter cette **disposition** au **fichier** ''/etc/rc.conf'' en ajoutant : ''keymap="fr.acc.kbd"'' à ''/etc/rc.conf''.</note> |
| |
| |
==== Le Noyau FreeBSD ==== | ==== Le noyau FreeBSD ==== |
Le **noyau** (**kernel** en anglais) de **FreeBSD** est de type **monolithique modulaire** tout comme **Linux**. Pour gérer les **modules** du **noyau**, il y a ''trois'' **commandes Unix** qui sont : **kldload** pour charger les **modules**, **kldunload** pour les décharger et **kldstat** pour savoir quels **modules** du **noyau** sont chargés. Dans le **FHS** de **FreeBSD** les **modules** du **noyau** installés par défaut se trouvent dans ''/boot/kernel'' et la plupart des **modules** externes, dans ''/boot/modules''. Le **noyau** en lui même est le **fichier** ''/boot/kernel/kernel''. | Le **noyau** (**kernel** en anglais) de **FreeBSD** est de type **monolithique modulaire** tout comme **Linux**. Pour gérer les **modules** du **noyau**, il y a ''trois'' **commandes Unix** qui sont : **kldload** pour charger les **modules**, **kldunload** pour les décharger et **kldstat** pour savoir quels **modules** du **noyau** sont chargés. Dans le **FHS** de **FreeBSD** les **modules** du **noyau** installés par défaut se trouvent dans ''/boot/kernel'' et la plupart des **modules** externes, dans ''/boot/modules''. Le **noyau** en lui même est le **fichier** ''/boot/kernel/kernel''. |
| |
**FreeBSD** intègre **KMS** (**//Kernel-based Mode-Setting//**) qui est un **pilote graphique** qui se charge de la **gestion** des modes d'**affichage graphique**. | **FreeBSD** intègre **KMS** (**//Kernel-based Mode-Setting//**) qui est un **pilote graphique** qui se charge de la **gestion** des modes d'**affichage graphique**. |
| |
| <note important>**FreeBSD** et ses **dérivés** sont les seuls **systèmes BSD** à supporter le **pilote propriétaire** **NVIDIA** via les **logiciels tiers**, pour les **cartes graphiques** produitent par **NVIDIA** !!!</note> |
==== Installateur de FreeBSD ==== | ==== Installateur de FreeBSD ==== |
L'**installateur** de **FreeBSD** se nomme **bsdinstall**, il a été adopté dans **FreeBSD 9.0** le 12 janvier 2012. L'**installateur** précédent était **sysinstall** apparu dans **FreeBSD 2.0** le 22 novembre 1994 et en fonction jusqu'à **FreeBSD 8.4** sorti le 1er août 2015. | L'**installateur** de **FreeBSD** se nomme **bsdinstall**, il a été adopté dans **FreeBSD 9.0** le 12 janvier 2012. L'**installateur** précédent était **sysinstall** apparu dans **FreeBSD 2.0** le 22 novembre 1994 et en fonction jusqu'à **FreeBSD 8.4** sorti le 1er août 2015. |
L'**installateur** **bsdinstall** est nettement plus conviviale et cohérent que **sysinstall** et il permet, même après installation l'**administration** de son **FreeBSD** est ça permet par certains aspects de simplifier certaine **tâche** qui serait plus complexe pour un **utilisateur** non initié aux **système** de type **BSD**. Parmi ses **tâches**, ont peut énumérer : la possibilité de créer une **Jail**, de configurer le **clavier**, **configuration** du **non d'hôte** (**hostname**) et du **réseau**, la **partition** des **disques durs**, l'ajout d'**utilisateur**,... | L'**installateur** **bsdinstall** est nettement plus conviviale et cohérent que **sysinstall** et il permet, même après installation l'**administration** de son **FreeBSD** est ça permet par certains aspects de simplifier certaine **tâche** qui serait plus complexe pour un **utilisateur** non initié aux **système** de type **BSD**. Parmi ses **tâches**, ont peut énumérer : la possibilité de créer une **Jail**, de configurer le **clavier**, **configuration** du **non d'hôte** (**hostname**) et du **réseau**, la **partition** des **disques durs**, l'ajout d'**utilisateur**,... |
==== Système d’initialisation de FreeBSD ==== | ==== Système d’initialisation de FreeBSD ==== |
Le **système d’initialisation** de **FreeBSD** est **rc**, très ''stable'', ''simplissime'', ''éprouvé'' et bien moins complexe à gérer que **systemd** de **GNU/Linux**. Pour résumer, le **système d’initialisation rc** lance le **programme init** (''1er'' **processus** du **système**), qui lit le **script** ''/etc/rc'' (qui est le ''coeur'' du **système d’initialisation**) qui éxecute les **daemons** (**services**) indiqués dans le **fichier** ''/etc/rc.conf'', les **scripts d’initialisation** de chaque **daemon** se trouvent dans ''/etc/rc.d'' pour les **scripts** internes et dans ''/usr/local/etc/rc.d'' pour les **scripts** externes (ne faisant à l'origine pas partie de **FreeBSD**). | Le **système d’initialisation** de **FreeBSD** est **rc-ng**, très ''stable'', ''simplissime'', ''éprouvé'' et bien moins complexe à gérer que **systemd** de **GNU/Linux**. Pour résumer, le **système d’initialisation rc** lance le **programme init** (''1er'' **processus** du **système**), qui lit le **script** ''/etc/rc'' (qui est le ''coeur'' du **système d’initialisation**) qui éxecute les **daemons** (**services**) indiqués dans le **fichier** ''/etc/rc.conf'', les **scripts d’initialisation** de chaque **daemon** se trouvent dans ''/etc/rc.d'' pour les **scripts** internes et dans ''/usr/local/etc/rc.d'' pour les **scripts** externes (ne faisant à l'origine pas partie de **FreeBSD**). |
| |
==== Compilateur Logiciel sous FreeBSD ==== | ==== Compilateur logiciel sous FreeBSD ==== |
**FreeBSD** est passé du **compilateur GCC** (**//GNU Compiler Collection//**) sous **licence GNU GPL** à ''droit d'auteur'' **copyleft** au **compilateur Clang** et ses **bibliothèques LLVM** qui sont sous **licence libre permissive** et de se fait **FreeBSD** n'est plus contraint à la ''notion'' de **copyleft**. Désormais tous les **logiciels** par défaut de **FreeBSD** sont **compilés** avec l'association **Clang/LLVM** ainsi que les **logiciels** ''tiers'' dans le **catalogue des logiciels portés**. Le principal but de **Clang/LLVM** est d'être une alternative ''viable'' à **GCC**. Derrière les ''composants'' de se **compilateur**, se trouvent les **entreprises** : **Apple**, **Microsoft**, **Google**, **ARM**, **Sony**, **Intel**, **AMD** et **Mozilla** (en ce qui concerne les **bibliothèques LLVM**). **Clang** prend en charge les **langages de programmation** **C**, **C++**, **Objective-C** et **Objective-C++**. Les **développeurs** de **Clang** affirment qu'il utilise moins de **mémoire vive** et est plus rapide que le **compilateur GCC**. **Clang** est également le **compilateur** par défaut de **macOS**. À noter que le **débogueur DTrace** provenant de **Sun Microsystems** pour le **projet** et **OS** **OpenSolaris** fait partie intégrante de **FreeBSD**. | **FreeBSD** est passé du **compilateur GCC** (**//GNU Compiler Collection//**) sous **licence GNU GPL** à ''droit d'auteur'' **copyleft** au **compilateur Clang** et ses **bibliothèques LLVM** qui sont sous **licence libre permissive** et de se fait **FreeBSD** n'est plus contraint à la ''notion'' de **copyleft**. Désormais tous les **logiciels** par défaut de **FreeBSD** sont **compilés** avec l'association **Clang/LLVM** ainsi que les **logiciels** ''tiers'' dans le **catalogue des logiciels portés**. Le principal but de **Clang/LLVM** est d'être une alternative ''viable'' à **GCC**. Derrière les ''composants'' de se **compilateur**, se trouvent les **entreprises** : **Apple**, **Microsoft**, **Google**, **ARM**, **Sony**, **Intel**, **AMD** et **Mozilla** (en ce qui concerne les **bibliothèques LLVM**). **Clang** prend en charge les **langages de programmation** **C**, **C++**, **Objective-C** et **Objective-C++**. Les **développeurs** de **Clang** affirment qu'il utilise moins de **mémoire vive** et est plus rapide que le **compilateur GCC**. **Clang** est également le **compilateur** par défaut de **macOS**. À noter que le **débogueur DTrace** provenant de **Sun Microsystems** pour le **projet** et **OS** **OpenSolaris** fait partie intégrante de **FreeBSD**. |
| |
| |
==== Installation de Logiciels par Défaut ==== | ==== Installation de logiciels par Défaut ==== |
En ce qui concerne l'installation de **logiciels** de manière ''officielle'', il existe deux ''méthodologies'', soit vous utilisez le **catalogue des logiciels portés** qui se trouve dans ''/usr/ports'' et vous vous rendez dans le **répertoire** du **logiciel** souhaité qui comporte en autres des **fichiers Makefile** qui sont une suite d'**instructions** pour **compliler** le **logiciel** et ses possibles **dépendances** , cette pratique consiste à **compiler** les **logiciels** en questions et toutes leurs **dépendances** de manière automatisée. Le seul **utilitaire make** en **ligne de commande** permet d'effectuer le **processus** d'installation.\\ | En ce qui concerne l'installation de **logiciels** de manière ''officielle'', il existe deux ''méthodologies'', soit vous utilisez le **catalogue des logiciels portés** qui se trouve dans ''/usr/ports'' et vous vous rendez dans le **répertoire** du **logiciel** souhaité qui comporte en autres des **fichiers Makefile** qui sont une suite d'**instructions** pour **compliler** le **logiciel** et ses possibles **dépendances** , cette pratique consiste à **compiler** les **logiciels** en questions et toutes leurs **dépendances** de manière automatisée. Le seul **utilitaire make** en **ligne de commande** permet d'effectuer le **processus** d'installation.\\ |
L'autre option qui est nettement plus ''rapide'' est d'opter pour les **logiciels pré-compilés** avec l'**utilitaire** en **ligne de commande** du nom de **pkg**, le **programme** complet s'appel **pkgng**, crée par **Baptiste Daroussin** apparu sous **FreeBSD 9.1**, qui est un **gestionnaire de paquets** en **ligne de commande** extrèment complet qui utilise les **dépôts** de **paquets** de son choix, il permet à la fois d'installer un **paquet logiciel** et ses **dépendances** mais aussi de rechercher des **logiciels** en fonction de différents ''critères'', de mettre à jour les **logiciels** installés, que ça soit par le biais des **logiciels pré-compilés** ou du **catalogue des logiciels portés**, enfin c'est un **gestionnaire de paquets** doté de très nombreuses ''fonctionnalités''. Il était de coutûme d'installer les **logiciels** par **compilation** sous les **distributions BSD** mais là, c'est de l'histoire ancienne. Il existe également une **interface graphique** pour **pkg** appelée **octopkg** mais malheureusement, elle n'utilise qu'un faible ''potentiel'' de cet **outil** extraordinaire qu'est **pkg**. | L'autre option qui est nettement plus ''rapide'' est d'opter pour les **logiciels pré-compilés** avec l'**utilitaire** en **ligne de commande** du nom de **pkg**, le **programme** complet s'appel **pkgng**, crée par **Baptiste Daroussin** apparu sous **FreeBSD 9.1**, qui est un **gestionnaire de paquets** en **ligne de commande** extrèment complet qui utilise les **dépôts** de **paquets** de son choix, il permet à la fois d'installer un **paquet logiciel** et ses **dépendances** mais aussi de rechercher des **logiciels** en fonction de différents ''critères'', de mettre à jour les **logiciels** installés, que ça soit par le biais des **logiciels pré-compilés** ou du **catalogue des logiciels portés**, enfin c'est un **gestionnaire de paquets** doté de très nombreuses ''fonctionnalités''. Il était de coutûme d'installer les **logiciels** par **compilation** sous les **distributions BSD** mais là, c'est de l'histoire ancienne. Il existe également une **interface graphique** pour **pkg** appelée **octopkg** mais malheureusement, elle n'utilise qu'un faible ''potentiel'' de cet **outil** extraordinaire qu'est **pkg**. |
<note>Tous les **logiciels** installés soi même se logent dans le **répertoire** ''/usr/local''. Les **logiciels** provenant du **catalogue des logiciels portés** s'appellent des **ports** sous **FreeBSD** alors que les **ports** sont pour la ''plupart'' des **système Unix** des **architectures processeurs** pour les **OS** en question.</note> | <note>Tous les **logiciels** installés soi même se logent dans le **répertoire** ''/usr/local''. Les **logiciels** provenant du **catalogue des logiciels portés** s'appellent des **ports** sous **FreeBSD** alors que les **ports** sont pour la ''plupart'' des **système Unix** des **architectures processeurs** pour les **OS** en question.</note> |
| |
==== Organisation du Système de Fichiers ==== | ==== Organisation du système de fichiers ==== |
Le **FHS** (**//Filesystem Hierarchy Standard//**) est pleinement ''compatible'' **POSIX** et est bien mieux ''compartimenté'' que sous **GNU/Linux**, les **utilitaires utilisateur BSD fondamentaux** sont dans ''/bin'', les **utilitaires administrateur fondamentaux** sont dans ''/sbin'', les **utilitaires utilisateur courants, outils de programmation et applications** sont dans ''/usr/bin'' et les **utilitaires administrateur et daemons système** sont dans ''/usr/sbin'', les **utilitaires et daemons système exécutés par des programmes** sont dans ''/usr/libexec''. En ce qui concerne les **fichiers de configurations** interne à **FreeBSD**, ils se trouvent dans ''/etc'' et les **fichiers de configurations** externes, suite à l'installation de **logiciels** se situent dans ''/usr/local/etc''. Pour plus d'informations sur le l ''organisation'' du **système de fichiers FreeBSD**, exécuter la **commande** composé **man hier**. Sous **FreeBSD**, ''/home'' n'est qu'un **lien symbolique** vers le vrai **répertoire home** ''/usr/home'' donc sous **FreeBSD**, **home** ne se trouve pas à la **racine** ''/'' du **système** comme la ''plupart'' des **système Unix** mais dans ''/usr''. Le **répertoire home** est l'endroit où se trouve les **répertoires** de chaque **utilisateur**, par exemple ''/home/david'' pointe vers le **répertoire** ''/usr/home/david''. | Le **FHS** (**//Filesystem Hierarchy Standard//**) est pleinement ''compatible'' **POSIX** et est bien mieux ''compartimenté'' que sous **GNU/Linux**, les **utilitaires utilisateur BSD fondamentaux** sont dans ''/bin'', les **utilitaires administrateur fondamentaux** sont dans ''/sbin'', les **utilitaires utilisateur courants, outils de programmation et applications** sont dans ''/usr/bin'' et les **utilitaires administrateur et daemons système** sont dans ''/usr/sbin'', les **utilitaires et daemons système exécutés par des programmes** sont dans ''/usr/libexec''. En ce qui concerne les **fichiers de configurations** interne à **FreeBSD**, ils se trouvent dans ''/etc'' et les **fichiers de configurations** externes, suite à l'installation de **logiciels** se situent dans ''/usr/local/etc''. Pour plus d'informations sur le l ''organisation'' du **système de fichiers FreeBSD**, exécuter la **commande** composé **man hier**. Sous **FreeBSD**, ''/home'' n'est qu'un **lien symbolique** vers le vrai **répertoire home** ''/usr/home'' donc sous **FreeBSD**, **home** ne se trouve pas à la **racine** ''/'' du **système** comme la ''plupart'' des **système Unix** mais dans ''/usr''. Le **répertoire home** est l'endroit où se trouve les **répertoires** de chaque **utilisateur**, par exemple ''/home/david'' pointe vers le **répertoire** ''/usr/home/david''. |
| |
| |
| |
==== Le Réseau sous FreeBSD ==== | ==== Le réseau sous FreeBSD ==== |
La mise en ''réseau'' de **FreeBSD** fait partie de ses grands atouts. La **pile TCP/IP** de **FreeBSD** se base sur celle de **4.4BSD** en ayant été énormément améliorée, en plus du **protocole IPv4**, elle prend en ''charge'' **IPv6**, le **protocole SCTP** (**//Stream Control Transmission Protocol//**),**IPsec** (**//Internet Protocol Security//**) qui est une **suite de protocoles** de **réseau** ''sécurisés'' qui sert en autres pour créer un **réseau VPN** (**//Virtual private network//**), les **réseaux** sans fil **Wi-Fi** et encore bien d'autres **protocoles réseaux**. **IPv6** et **IPsec** ont été à la base repris du **projet KAME**. La **pile TCP/IP** de **FreeBSD** est ''mature'', ''robuste'' et ''fiable'', utilisée par des **data center** (en français **centre de données**) de grande importance, un **data center** est une multitude de **serveurs informatiques** regroupés dans une ''salle sécurisée'' qui ''hébergent'' énormément de **données**. | La mise en ''réseau'' de **FreeBSD** fait partie de ses grands atouts. La **pile TCP/IP** de **FreeBSD** se base sur celle de **4.4BSD** en ayant été énormément améliorée, en plus du **protocole IPv4**, elle prend en ''charge'' **IPv6**, le **protocole SCTP** (**//Stream Control Transmission Protocol//**),**IPsec** (**//Internet Protocol Security//**) qui est une **suite de protocoles** de **réseau** ''sécurisés'' qui sert en autres pour créer un **réseau VPN** (**//Virtual private network//**), les **réseaux** sans fil **Wi-Fi** et encore bien d'autres **protocoles réseaux**. **IPv6** et **IPsec** ont été à la base repris du **projet KAME**. La **pile TCP/IP** de **FreeBSD** est ''mature'', ''robuste'' et ''fiable'', utilisée par des **data center** (en français **centre de données**) de grande importance, un **data center** est une multitude de **serveurs informatiques** regroupés dans une ''salle sécurisée'' qui ''hébergent'' énormément de **données**. |
| |
<note>Le **protocole SSH** d'**OpenBSD**, **OpenSSH** mérite une page ''complète'' tellement il est riche et complet !!! Pour rappel, **OpenSSH**, le **logiciel** exploitant le **protocole SSH**, est le plus utilisé parmi les **OS** **Unix** et il est y compris disponible sur **Microsoft Windows**, à partir de **Windows 10**.</note> | <note>Le **protocole SSH** d'**OpenBSD**, **OpenSSH** mérite une page ''complète'' tellement il est riche et complet !!! Pour rappel, **OpenSSH**, le **logiciel** exploitant le **protocole SSH**, est le plus utilisé parmi les **OS** **Unix** et il est y compris disponible sur **Microsoft Windows**, à partir de **Windows 10**.</note> |
| |
==== Couche de Compatibilité Binaire avec d'autres OS==== | ==== Couche de compatibilité binaire avec d'autres OS==== |
**FreeBSD** comporte une **compatibilité binaire** avec **Windows** pour les **pilotes** de **carte réseau** via **NDIS** (**//Network Driver Interface Specification//**) qui est une **interface de programmation d'application** que l'on appelle plus simplement **API** (**//Application Programming Interface//**) qui permet d'installer des **pilotes Windows** (sous **FreeBSD** les **pilotes** s'appellent des **modules**) sous **FreeBSD** pour les **cartes réseaux** n'étant pas reconnus par défaut sous le **noyau FreeBSD**. **FreeBSD** permet également d'installer des **logiciels** prévus pour **Windows** via le **projet** et **logiciel** du nom de **Wine**, se **logiciel** ne fait pas partie de la **distribution FreeBSD** par défaut mais est installable via les **logiciels tiers** en passant par les **logiciels pré-compilés** ou le **catalogue des logiciels portés**. | **FreeBSD** comporte une **compatibilité binaire** avec **Windows** pour les **pilotes** de **carte réseau** via **NDIS** (**//Network Driver Interface Specification//**) qui est une **interface de programmation d'application** que l'on appelle plus simplement **API** (**//Application Programming Interface//**) qui permet d'installer des **pilotes Windows** (sous **FreeBSD** les **pilotes** s'appellent des **modules**) sous **FreeBSD** pour les **cartes réseaux** n'étant pas reconnus par défaut sous le **noyau FreeBSD**. **FreeBSD** permet également d'installer des **logiciels** prévus pour **Windows** via le **projet** et **logiciel** du nom de **Wine**, se **logiciel** ne fait pas partie de la **distribution FreeBSD** par défaut mais est installable via les **logiciels tiers** en passant par les **logiciels pré-compilés** ou le **catalogue des logiciels portés**. |
| |
**FreeBSD** a également une **compatibilité binaire** avec **Linux** qui n'est pas une **émulation** mais utilise les **appels systèmes** appelé **ABI** (**//Application Binary Interface//**) de **Linux**, cette ''compatibilté'' peut être activée par le biais d'un **module** du **noyau FreeBSD** qui se nomme **linux.ko** ou/et **linux64.ko** pour les **programmes** ''64 bits'', pour activer cette ''compatibilté'' au ''démarrage'' et de manière définitive, il suffit d'ajouter ''linux_enable="YES"'' au **fichier** ''/etc/rc.conf''. Les **exécutables** et **bibliothèques partagées** de **Linux** sont executés comme les **exécutables** et **bibliothèques partagées** de **FreeBSD** donc l'execution d'un **logiciel Linux** est quasiment identique à l'execution d'un **logiciel** sous **FreeBSD** en ce qui concerne les ''performances''. La **couche de compatibilité binaire Linux** fonctionne aussi bien pour les **programmes** ''32 bits'' et ''64 bits'' provenant de **GNU/Linux**. Le **FHS** (**//Filesystem Hierarchy Standard//**) de **Linux** se situe par défaut dans ''/compat/linux''. Par défaut vous pouvez installer via les **logiciels** ''tiers'' des **dépôts officiels** de **FreeBSD** les **distributions Linux** **CentOS 7** ou **Rocky Linux** qui est basée sur le **code source** de **Red Hat Enterprise Linux** (**//RHEL//**) et qui est pleinement ''compatible'' au niveau **binaire** avec la **RHEL**. Si vous n'êtes pas fan des **distributions Linux** basées sur **RHEL**, vous pouvez également installer une **distribution** basée sur **Debian** (ou autres) telle que **Ubuntu** à l' aide de l'**utilitaire** en **ligne de commande** du nom de **debootstrap** mais l'installation est légèrement plus complexe et ''manuelle''. La **compatibilité binaire** **Linux** permet de faire fonctionner la ''plupart'' des **logiciels** conçus pour **Linux**. | **FreeBSD** a également une **compatibilité binaire** avec **Linux** qui n'est pas une **émulation** mais utilise les **appels systèmes** appelé **ABI** (**//Application Binary Interface//**) de **Linux**, cette ''compatibilté'' peut être activée par le biais d'un **module** du **noyau FreeBSD** qui se nomme **linux.ko** ou/et **linux64.ko** pour les **programmes** ''64 bits'', pour activer cette ''compatibilté'' au ''démarrage'' et de manière définitive, il suffit d'ajouter ''linux_enable="YES"'' au **fichier** ''/etc/rc.conf''. Les **exécutables** et **bibliothèques partagées** de **Linux** sont executés comme les **exécutables** et **bibliothèques partagées** de **FreeBSD** donc l'execution d'un **logiciel Linux** est quasiment identique à l'execution d'un **logiciel** sous **FreeBSD** en ce qui concerne les ''performances''. La **couche de compatibilité binaire Linux** fonctionne aussi bien pour les **programmes** ''32 bits'' et ''64 bits'' provenant de **GNU/Linux**. Le **FHS** (**//Filesystem Hierarchy Standard//**) de **Linux** se situe par défaut dans ''/compat/linux''. Par défaut vous pouvez installer via les **logiciels** ''tiers'' des **dépôts officiels** de **FreeBSD** les **distributions Linux** **CentOS 7** ou **Rocky Linux** qui est basée sur le **code source** de **Red Hat Enterprise Linux** (**//RHEL//**) et qui est pleinement ''compatible'' au niveau **binaire** avec la **RHEL**. Si vous n'êtes pas fan des **distributions Linux** basées sur **RHEL**, vous pouvez également installer une **distribution** basée sur **Debian** (ou autres) telle que **Ubuntu** à l' aide de l'**utilitaire** en **ligne de commande** du nom de **debootstrap** mais l'installation est légèrement plus complexe et ''manuelle''. La **compatibilité binaire** **Linux** permet de faire fonctionner la ''plupart'' des **logiciels** conçus pour **Linux**. |
| |
==== Virtualisation et Conteneurisation par Défaut sous FreeBSD ==== | ==== Virtualisation et conteneurisation par défaut sous FreeBSD ==== |
=== Hyperviseur Bhyve développé par FreeBSD === | === Hyperviseur Bhyve développé par FreeBSD === |
**Bhyve** est un **hyperviseur** de ''type 2'', tout comme l'est **VirtualBox**, installé par défaut sous **FreeBSD**, il a été intégré à **FreeBSD** à partir de la version **FreeBSD 10.0-RELEASE**, il est relativement récent mais est très ''prometteur'' et est d'ores et déjà en mesure de **virtualiser**, divers **distributions GNU/Linux**, tel que : **Debian**, **Ubuntu**, **Fedora**, **Alpine Linux**..., du côté des **distributions Illumos** on peut citer : **OpenIndiana**, **SmartOS**, **OmniOS** et plus encore et bien évidemment la plupart des **distributions BSD** comme : **FreeBSD**, **NetBSD**, **OpenBSD** mais aussi **Windows** de **Microsoft**. La version initiale de **bhyve** a été créée en 2014 par les **développeurs** de **FreeBSD**. Pour le moment, il n'existe pas d'**interface graphique** pour **bhyve** mais il y a des **outils** en **ligne de commande** tels que : **iohyve**, **vm-bhyve** pour les plus courants permettant de gérer en intégralité l'**hyperviseur** spécifique à **FreeBSD**. Si vous n'êtes pas fan de la **ligne de commande**, vous pouvez vous orienter vers une **interface Web** ''légère'' du nom de **BVCP** disponible à cette [[https://bhyve.npulse.net/|adresse]]. Parmi les ''fonctionnalités'', **bhyve** prend en ''charge'' les installations **UEFI** (**//Unified Extensible Firmware Interface//**),les **interfaces émulées** de **KVM**, **VirtIO**, pour la prise en charge des **périphériques** tels que les **contrôleurs USB** avec la ''spécification'' **xHCI** (**//eXtensible Host Controller Interface//**), les **contrôleurs NVM Express** (**//NVMe//**), les **contrôleurs audio** ''haute définition'', le **périphérique** de **mémoire tampon** d'**image brute** connecté au **serveur VNC** (**sortie vidéo**) et le **relais AHCI / PCI**. | **Bhyve** est un **hyperviseur** de ''type 2'', tout comme l'est **VirtualBox**, installé par défaut sous **FreeBSD**, il a été intégré à **FreeBSD** à partir de la version **FreeBSD 10.0-RELEASE**, il est relativement récent mais est très ''prometteur'' et est d'ores et déjà en mesure de **virtualiser**, divers **distributions GNU/Linux**, tel que : **Debian**, **Ubuntu**, **Fedora**, **Alpine Linux**..., du côté des **distributions Illumos** on peut citer : **OpenIndiana**, **SmartOS**, **OmniOS** et plus encore et bien évidemment la plupart des **distributions BSD** comme : **FreeBSD**, **NetBSD**, **OpenBSD** mais aussi **Windows** de **Microsoft**. La version initiale de **bhyve** a été créée en 2014 par les **développeurs** de **FreeBSD**. Pour le moment, il n'existe pas d'**interface graphique** pour **bhyve** mais il y a des **outils** en **ligne de commande** tels que : **iohyve**, **vm-bhyve** pour les plus courants permettant de gérer en intégralité l'**hyperviseur** spécifique à **FreeBSD**. Si vous n'êtes pas fan de la **ligne de commande**, vous pouvez vous orienter vers une **interface Web** ''légère'' du nom de **BVCP** disponible à cette [[https://bhyve.npulse.net/|adresse]]. Parmi les ''fonctionnalités'', **bhyve** prend en ''charge'' les installations **UEFI** (**//Unified Extensible Firmware Interface//**),les **interfaces émulées** de **KVM**, **VirtIO**, pour la prise en charge des **périphériques** tels que les **contrôleurs USB** avec la ''spécification'' **xHCI** (**//eXtensible Host Controller Interface//**), les **contrôleurs NVM Express** (**//NVMe//**), les **contrôleurs audio** ''haute définition'', le **périphérique** de **mémoire tampon** d'**image brute** connecté au **serveur VNC** (**sortie vidéo**) et le **relais AHCI / PCI**. |
| |
| Sachez qu'il est tout à fait possible installer via les **logiciels tiers** l'**hyperiveur** d'**Oracle**, **VirtualBox**. |
| |
<note>L'**OS** d'**Apple** **macOS** à un **portage** de **bhyve** du nom de **xhyve**. Se **port logiciel**, est utilisé par l'**hyperviseur** de **macOS** appelé **HyperKit**, qui permet de faire fonctionner **Docker**, le **logiciel** de **conteneurs** le plus ''populaire''. L'**hyperviseur xhyve** peut tout à fait être utilisé pour faire tourner de nombreux **systèmes d'exploitation** différents.</note> | <note>L'**OS** d'**Apple** **macOS** à un **portage** de **bhyve** du nom de **xhyve**. Se **port logiciel**, est utilisé par l'**hyperviseur** de **macOS** appelé **HyperKit**, qui permet de faire fonctionner **Docker**, le **logiciel** de **conteneurs** le plus ''populaire''. L'**hyperviseur xhyve** peut tout à fait être utilisé pour faire tourner de nombreux **systèmes d'exploitation** différents.</note> |
<note>Les **Jails** sont idéales pour avoir un **serveur Web** de ''test'' ou de ''productrion'' qui a sa propre **adresse IP**, elles peuvent également servir pour se faire un **environment de développement**, enfin tout ce qui permet d'avoir une multitude de **systèmes FreeBSD**, isolés de l'**OS FreeBSD Hôte** et des autres **Jails** et désormais plusieurs **GNU/Linux** au sein de l'**ordinateur**. Par les **logiciels tiers**, il est également possible d'installer **Docker** mais je n'y vois pas trop d' ''intérêt''.</note> | <note>Les **Jails** sont idéales pour avoir un **serveur Web** de ''test'' ou de ''productrion'' qui a sa propre **adresse IP**, elles peuvent également servir pour se faire un **environment de développement**, enfin tout ce qui permet d'avoir une multitude de **systèmes FreeBSD**, isolés de l'**OS FreeBSD Hôte** et des autres **Jails** et désormais plusieurs **GNU/Linux** au sein de l'**ordinateur**. Par les **logiciels tiers**, il est également possible d'installer **Docker** mais je n'y vois pas trop d' ''intérêt''.</note> |
| |
==== Quelques Daemons (Services) et Logiciels installés par défaut sous FreeBSD ==== | ==== Quelques daemons (services) et logiciels installés par défaut sous FreeBSD ==== |
=== Exemple de Daemons installés par Défaut === | === Exemple de daemons installés par Défaut === |
* **OpenSSH**, **protocole SSH** (**//Secure Shell//**) par défaut sur la plupart des **systèmes UNIX**. Créée à l'origine par et pour l'**OS** **OpenBSD**. | * **OpenSSH**, **protocole SSH** (**//Secure Shell//**) par défaut sur la plupart des **systèmes UNIX**. Créée à l'origine par et pour l'**OS** **OpenBSD**. |
* **FTP** (**//File Transfer Protocol//**), qui est un **protocole** qui a été créée avant même l'arrivée du **Web**. | * **FTP** (**//File Transfer Protocol//**), qui est un **protocole** qui a été créée avant même l'arrivée du **Web**. |
<note>Par défaut, tous les **daemons** sous **FreeBSD** sont désactivés. Ils sont tous activables dans ''/etc/rc.conf''. Exemple, ajoutez ''inetd_enable="YES"'' à ''/etc/rc.conf''. **FreeBSD** est d'une conception très ''sécurisée'' par défaut, et le fait que tous les **daemons** intégrés au **système** soient désactivés par défaut, il n'y a aucun risque de ''sécurité'' à se qu'ils soient préinstallés.</note> | <note>Par défaut, tous les **daemons** sous **FreeBSD** sont désactivés. Ils sont tous activables dans ''/etc/rc.conf''. Exemple, ajoutez ''inetd_enable="YES"'' à ''/etc/rc.conf''. **FreeBSD** est d'une conception très ''sécurisée'' par défaut, et le fait que tous les **daemons** intégrés au **système** soient désactivés par défaut, il n'y a aucun risque de ''sécurité'' à se qu'ils soient préinstallés.</note> |
| |
==== Mise à Jour ou à Niveau de FreeBSD ==== | ==== Mise à jour ou à niveau de FreeBSD ==== |
L'**outil** en **ligne de commande** pour mettre à jour ou mettre à niveau **FreeBSD** se nomme **freebsd-update**. Il est extrèment ''fiable'' pour qui connaît cet **OS** ! Les mise à jour ou à niveau sont à effectuer avec le **compte root** (**super-utilisateur**) ou **sudo** ou **doas**. | L'**outil** en **ligne de commande** pour mettre à jour ou mettre à niveau **FreeBSD** se nomme **freebsd-update**. Il est extrèment ''fiable'' pour qui connaît cet **OS** ! Les mise à jour ou à niveau sont à effectuer avec le **compte root** (**super-utilisateur**) ou **sudo** ou **doas**. |
| |
| |
Puis tapez votre **mot de passe** à l'aveugle et appuyer sur la touche **Enter**. | Puis tapez votre **mot de passe** à l'aveugle et appuyer sur la touche **Enter**. |
=== Mise à Jour === | === Mise à jour === |
Pour faire une simple ''mise à jour'' : | Pour faire une simple ''mise à jour'' : |
| |
<code>freebsd-update rollback</code> | <code>freebsd-update rollback</code> |
| |
=== Mise à Niveau === | === Mise à niveau === |
Il existe deux types de ''mise à niveau'', ''mineure'' et ''majeure''. | Il existe deux types de ''mise à niveau'', ''mineure'' et ''majeure''. |
| |