wiki:systemes_d_exploitation:bsd_unix:freebsd

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 Seguinwiki:systemes_d_exploitation:bsd_unix:freebsd [2025/03/14 12:30] (Version actuelle) – [Système d’initialisation de FreeBSD] Thibault Seguin
Ligne 1: Ligne 1:
-====== 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 =====
Ligne 9: Ligne 9:
 **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** :
Ligne 21: Ligne 21:
 <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]].
Ligne 31: Ligne 31:
   * 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.
Ligne 37: Ligne 37:
  
 ===== 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''
  
Ligne 74: Ligne 75:
  
  
-==== 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**. 
  
Ligne 91: Ligne 92:
 <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>  
Ligne 112: Ligne 115:
 <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**.
Ligne 135: Ligne 138:
 <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**.
  
Ligne 143: Ligne 146:
  
 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'' :
  
Ligne 158: Ligne 161:
 <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''.
  
  • wiki/systemes_d_exploitation/bsd_unix/freebsd.1734955277.txt.gz
  • Dernière modification : 2024/12/23 12:01
  • de Thibault Seguin