Une introduction comparative à FreeBSD pour les utilisateurs de Linux

De Get Docs
Aller à :navigation, rechercher

Introduction

FreeBSD est un système d'exploitation gratuit et open source de type Unix et une plate-forme de serveur populaire. Alors que FreeBSD et d'autres systèmes basés sur BSD partagent beaucoup de points communs avec des systèmes comme Linux, il y a des points où ces deux familles divergent de manière importante.

Dans ce guide, nous discuterons brièvement de certains points communs entre FreeBSD et Linux avant de passer à une discussion plus approfondie sur les différences importantes entre eux. Bon nombre des points ci-dessous peuvent être appliqués avec précision à la grande famille des systèmes dérivés de BSD, mais en conséquence de notre objectif, nous nous référerons principalement à FreeBSD en tant que représentant de la famille.

Traits que FreeBSD et Linux partagent

Avant de commencer à examiner les domaines dans lesquels FreeBSD et Linux diffèrent, discutons en termes généraux des points communs entre ces systèmes.

Bien que les licences spécifiques utilisées par chaque famille diffèrent (nous en discuterons plus tard), ces deux familles de systèmes sont gratuites et open source. Les utilisateurs peuvent visualiser et modifier la source comme ils le souhaitent et le développement se fait à l'air libre.

Les distributions basées sur FreeBSD et Linux sont de nature Unix. FreeBSD a des racines proches des systèmes Unix du passé, tandis que Linux a été créé à partir de zéro comme une alternative ouverte de type Unix. Cette association éclaire les décisions sur la conception des systèmes, la manière dont les composants doivent interopérer et les attentes générales concernant ce à quoi le système doit ressembler et accomplir.

Le comportement commun de type Unix est principalement le résultat du fait que les deux familles sont principalement compatibles POSIX. La sensation générale et la conception des systèmes sont plutôt standardisées et utilisent des modèles similaires. La hiérarchie du système de fichiers est divisée de la même manière, les environnements shell sont la principale méthode d'interaction pour les deux systèmes et les API de programmation partagent des fonctionnalités similaires.

En raison de ces considérations, les distributions FreeBSD et Linux peuvent partager bon nombre des mêmes outils et applications. Certains cas dictent que les versions ou les saveurs de ces programmes diffèrent entre les systèmes, mais les applications peuvent être portées plus facilement qu'elles ne le peuvent avec des systèmes de type non Unix.

Avec ces points à l'esprit, nous allons maintenant aborder les domaines où ces deux familles de systèmes d'exploitation divergent. Espérons que ces points communs vous aideront à digérer plus précisément les informations concernant leurs différences.

Différences de licence

L'une des différences les plus fondamentales entre les systèmes FreeBSD et Linux est une question de licence.

Le noyau Linux, les applications basées sur GNU et de nombreux logiciels originaires du monde Linux sont sous licence sous une forme ou une autre de la GPL, ou GNU General Public License. Cette licence est souvent décrite comme une licence « copyleft », qui est une forme de licence qui permet la liberté de visualiser, de distribuer et de modifier le code source, tout en exigeant que toute œuvre dérivée conserve cette licence.

FreeBSD, d'autre part, y compris le noyau et tous les outils créés par les contributeurs de FreeBSD, concède ses logiciels sous une licence BSD. Ce type de licence est plus permissif que la GPL dans la mesure où il ne nécessite pas de travail dérivé pour maintenir les conditions de licence. Cela signifie que toute personne ou organisation peut utiliser, distribuer ou modifier le programme sans qu'il soit nécessaire d'apporter des modifications ou de publier la source du travail qu'elle est en train de créer. Les seules exigences sont que le copyright original et une copie de la licence BSD soient inclus dans le code source ou la documentation (selon la méthode de publication) de l'œuvre dérivée et qu'une clause de non-responsabilité limitant la responsabilité soit incluse. La licence principale est très courte et peut être trouvée ici.

L'attrait de chacun de ces types de licences dépend presque entièrement de la philosophie et des besoins de l'utilisateur. Les licences GPL favorisent le partage et un écosystème ouvert avant toute autre considération. Les logiciels propriétaires doivent faire très attention à ne pas s'appuyer sur des logiciels basés sur la GPL. D'autre part, les logiciels sous licence BSD peuvent être librement incorporés dans des applications propriétaires fermées. Cela le rend plus attrayant pour de nombreuses entreprises et particuliers souhaitant monétiser leur logiciel, car il est possible de vendre le logiciel directement et de conserver la source.

Les développeurs ont tendance à préférer une philosophie de licence à une autre, mais chacune a ses avantages. Comprendre les licences de ces systèmes peut nous aider à commencer à comprendre certains des choix et la philosophie qui entrent dans leur développement.

La lignée FreeBSD et ses implications

Une autre différence importante entre les systèmes FreeBSD et Linux est la lignée et l'historique de chaque système. Avec les différences de licence discutées ci-dessus, c'est peut-être le plus grand influenceur de la philosophie à laquelle adhère chaque camp.

Linux est un noyau développé par Linus Torvalds pour remplacer le système MINIX orienté vers l'éducation, mais restrictif, qu'il utilisait à l'Université d'Helsinki. Combiné avec d'autres composants, dont beaucoup proviennent de la suite GNU, un système d'exploitation basé sur le noyau Linux possède de nombreuses propriétés de type Unix, bien qu'il ne soit pas directement dérivé d'un système d'exploitation Unix précédent. Étant donné que Linux a été démarré à partir de zéro sans certains des choix de conception hérités et des considérations héritées, il peut différer considérablement des systèmes ayant des liens plus étroits avec Unix.

FreeBSD a de nombreux liens directs avec son héritage Unix. BSD, ou Berkeley Software Distribution, était une distribution d'Unix créée à l'Université de Californie à Berkeley, qui étendait l'ensemble des fonctionnalités du système d'exploitation Unix d'AT&T et avait des conditions de licence agréables. Plus tard, la décision a été prise d'essayer de remplacer autant que possible le système d'exploitation original d'AT&T par des alternatives open source afin que les utilisateurs ne soient pas tenus d'obtenir une licence AT&T pour utiliser BSD. Finalement, tous les composants de l'AT&T Unix d'origine ont été réécrits sous la licence BSD et portés sur l'architecture i386 en tant que 386BSD. FreeBSD a été dérivé de cette base dans le but de maintenir, d'améliorer et de moderniser le travail qui existait déjà, et a finalement été rebasé sur une version incomplète appelée BSD-Lite pour des raisons de licence.

Grâce au processus de dérivation long et en plusieurs étapes, FreeBSD est devenu libre en termes de licences, mais a maintenu des liens étroits avec son passé. Les développeurs travaillant à la création du système sont restés investis dans la façon de faire d'Unix, probablement parce que FreeBSD a toujours été conçu pour fonctionner comme un clone d'Unix sous licence ouverte. Ces racines ont influencé la direction de tout développement ultérieur et sont à l'origine de certains des choix dont nous discuterons.

Une séparation du système d'exploitation principal des logiciels supplémentaires

Une différence clé en termes d'effort de développement et de conception du système entre les distributions FreeBSD et Linux est la portée du système. L'équipe FreeBSD développe le noyau et le système d'exploitation de base comme une unité cohérente, tandis que Linux se réfère techniquement uniquement au noyau, les autres composants provenant de diverses sources.

Cela peut sembler être une petite différence, mais affecte en fait la façon dont vous interagissez avec et gérez chaque système. Sous Linux, une distribution peut regrouper un groupe sélectionné de packages, en veillant à ce qu'ils interagissent bien ensemble. Cependant, la plupart des composants proviendront d'un large éventail de sources et les développeurs et responsables de la distribution sont chargés de les intégrer dans un système qui fonctionne correctement.

En ce sens, les composants essentiels ne sont pas très différents des packages optionnels disponibles via les référentiels de la distribution. Les outils de gestion des packages de la distribution sont utilisés pour suivre et gérer ces composants exactement de la même manière. Une distribution peut conserver différents référentiels en fonction des équipes responsables de certains packages, de sorte que l'équipe de développement principale ne doit s'inquiéter que d'un sous-ensemble de logiciels disponibles, mais il s'agit d'une différence d'organisation et d'orientation et n'entraîne généralement pas de différences dans le logiciel. gestion du point de vue de l'utilisateur.

En revanche, FreeBSD maintient un système d'exploitation de base complet. Le noyau et une collection de logiciels, dont beaucoup sont créés par les développeurs FreeBSD eux-mêmes, sont maintenus comme une unité. Il n'est pas aussi simple d'échanger des composants qui font partie de cette collection de base car il s'agit, en un sens, d'un ensemble monolithique de logiciels. Cela permet à l'équipe FreeBSD de gérer très étroitement le système d'exploitation principal, garantissant une intégration étroite et une plus grande prévisibilité.

Le logiciel inclus dans le système d'exploitation principal est considéré comme complètement distinct des composants proposés en tant qu'ajouts facultatifs. FreeBSD propose une large collection de logiciels optionnels, tout comme les distributions Linux, mais cela est géré séparément. Le système central est mis à jour comme une seule unité indépendamment et le logiciel optionnel peut être mis à jour individuellement.

Comment les versions sont formées

La plupart des versions de Linux sont le résultat de la collecte de logiciels à partir de diverses sources et de leur modification si nécessaire. Les responsables de la distribution décident des composants à inclure dans le support d'installation, des composants à inclure dans les référentiels gérés par la distribution, etc. Après avoir testé les composants ensemble, une version contenant le logiciel testé est créée.

Dans la dernière section, nous avons appris que :

  • Une grande partie du système d'exploitation FreeBSD est développée par l'équipe FreeBSD.
  • Le système d'exploitation de base est la principale sortie produite.
  • Le logiciel de base est considéré comme un tout cohérent.

Ces qualités conduisent à une approche différente de la publication de logiciels que la plupart des distributions Linux. Parce que FreeBSD organise les choses au niveau du système d'exploitation, tous les composants de base sont conservés dans un référentiel de code source unique. Cela a quelques implications importantes.

Tout d'abord, puisque ces outils sont tous développés en tandem dans un référentiel unique, une version est formée simplement en sélectionnant une révision d'une des branches du référentiel. Ceci est similaire à la façon dont la plupart des logiciels sont publiés en ce sens qu'un point stable est sélectionné à partir d'une base de code organisée.

Étant donné que le système d'exploitation de base est entièrement sous contrôle de version actif, cela signifie également que les utilisateurs peuvent "suivre" différentes branches ou niveaux de stabilité en fonction de la qualité des tests qu'ils souhaitent que leurs composants système soient. Les utilisateurs n'ont pas à attendre que les développeurs approuvent les modifications pour les intégrer à leur système.

Ceci est quelque peu similaire aux utilisateurs qui suivent différents référentiels organisés par stabilité dans certaines distributions Linux. Sous Linux, vous suivez un référentiel de packages, tandis que sous FreeBSD, vous pouvez suivre une branche d'un référentiel source centralisé.

Différences logicielles et conception du système

Les différences restantes dont nous parlerons seront liées au logiciel lui-même et aux qualités générales du système.

Installations de packages et sources prises en charge

L'une des principales différences entre FreeBSD et la plupart des distributions Linux du point de vue de l'utilisateur est la disponibilité et la prise en charge à la fois des logiciels packagés et des logiciels installés à la source.

Alors que la plupart des distributions Linux ne fournissent que des packages binaires pré-compilés du logiciel pris en charge par la distribution, FreeBSD contient à la fois des packages pré-construits ainsi qu'un système de construction pour la compilation et l'installation à partir des sources. Pour la plupart des logiciels, cela vous permet de choisir entre des packages pré-compilés construits avec des valeurs par défaut raisonnables et la possibilité de personnaliser votre logiciel pendant le processus de compilation en le construisant vous-même. FreeBSD le fait via un système qu'il appelle "ports".

Le système de port FreeBSD est une collection de logiciels que FreeBSD sait construire. Une hiérarchie organisée représentant ce logiciel est disponible dans le répertoire /usr/ports où les utilisateurs peuvent accéder aux répertoires de chaque application. Ces répertoires contiennent quelques fichiers qui spécifient l'emplacement où les fichiers source peuvent être obtenus, ainsi que des instructions pour le compilateur sur la façon de corriger correctement la source pour qu'elle fonctionne correctement avec FreeBSD.

Les versions packagées des logiciels sont en fait produites à partir du système de ports, ce qui fait de FreeBSD une distribution source d'abord avec des packages disponibles pour plus de commodité. Votre système peut être composé à la fois de logiciels intégrés et pré-emballés et le système de gestion de logiciels peut gérer de manière adéquate une combinaison de ces deux méthodes d'installation.

Vanille vs logiciel personnalisé

Une décision qui peut sembler un peu étrange aux utilisateurs familiers avec certaines des distributions Linux les plus populaires est que FreeBSD choisit généralement de fournir des logiciels en amont non modifiés dans la mesure du possible.

De nombreuses distributions Linux apportent des modifications aux logiciels afin de faciliter la connexion avec d'autres composants et d'essayer de faciliter la gestion. De bons exemples de cette tendance sont la restructuration des hiérarchies de configuration de serveur Web courantes pour rendre la configuration de serveur plus modulaire.

Bien que de nombreux utilisateurs trouvent ces modifications utiles, cette approche présente également des inconvénients. Un problème avec les modifications est qu'il suppose de savoir quelle approche fonctionne le mieux pour les utilisateurs. Cela rend également les logiciels plus imprévisibles pour les utilisateurs provenant d'autres plates-formes, car ils s'écartent des conventions en amont.

Les mainteneurs de FreeBSD modifient souvent les logiciels avec des correctifs, mais ce sont généralement des modifications plus conservatrices que les choix de packages de certaines distributions Linux. En général, les modifications apportées aux logiciels dans l'écosystème FreeBSD sont celles nécessaires pour que le logiciel se construise et s'exécute correctement dans un environnement FreeBSD et celles requises pour définir des valeurs par défaut raisonnables. Les fichiers de configuration qui sont placés sur le système de fichiers ne sont généralement pas fortement modifiés, donc un travail supplémentaire peut être nécessaire pour que les composants communiquent entre eux.

Versions FreeBSD des outils communs

Un autre aspect des systèmes FreeBSD qui pourrait semer la confusion chez les utilisateurs de Linux est la disponibilité d'outils familiers qui fonctionnent légèrement différemment de ce qu'ils feraient sur les systèmes Linux.

L'équipe FreeBSD maintient sa propre version d'un grand nombre d'outils communs. Alors que de nombreux outils trouvés sur les systèmes Linux proviennent de la suite GNU, FreeBSD lance souvent ses propres variantes pour son système d'exploitation.

Il y a plusieurs raisons à cette décision. Étant donné que FreeBSD est responsable du développement et de la maintenance du système d'exploitation principal, contrôler le développement de ces applications et les placer sous une licence BSD est soit essentiel, soit utile. Certains de ces outils ont également des liens fonctionnels étroits avec les outils BSD et Unix dont ils sont dérivés, contrairement à la suite GNU, qui a généralement tendance à être moins rétrocompatible.

Ces différences se manifestent souvent dans les options et la syntaxe des commandes. Vous pouvez être habitué à exécuter une commande d'une certaine manière sur vos machines Linux, mais celles-ci peuvent ne pas fonctionner de la même manière sur un serveur FreeBSD. Il est important de toujours consulter les pages de commandes man pour se familiariser avec les options des variantes de FreeBSD.

La coque standard

Un point connexe qui pourrait prêter à confusion est que le shell par défaut de FreeBSD n'est pas bash. Au lieu de cela, FreeBSD utilise le tcsh comme shell par défaut.

Ce shell est une version améliorée de csh, qui est le shell C développé pour BSD. Le shell bash est un composant GNU, ce qui en fait un mauvais choix par défaut pour FreeBSD. Bien que les deux shells fonctionnent généralement de manière similaire sur la ligne de commande, les scripts ne doivent pas être effectués dans tcsh. L'utilisation du shell Bourne de base sh est plus fiable et évite certains des pièges bien documentés associés aux scripts tcsh et csh.

Il est également intéressant de noter qu'il est très simple de changer votre coque en bash si vous êtes plus à l'aise dans cet environnement.

Un système de fichiers plus stratifié

Nous avons mentionné à plusieurs reprises ci-dessus que FreeBSD fait la distinction entre le système d'exploitation de base et les composants optionnels, ou ports, qui peuvent être installés au-dessus de cette couche.

Cela a des implications sur la manière dont FreeBSD organise les composants dans la structure des fichiers. Sous Linux, les exécutables sont généralement situés dans les répertoires /bin, /sbin, /usr/sbin ou /usr/bin en fonction de leur objectif et de leur importance pour les fonctionnalités de base. . FreeBSD reconnaît ces différences, mais impose également un autre niveau de séparation entre les composants installés dans le cadre du système de base et ceux installés en tant que ports. Le logiciel du système de base réside dans l'un des répertoires ci-dessus. Tous les programmes installés en tant que port ou package sont placés dans /usr/local/bin ou /usr/local/sbin.

Le répertoire /usr/local contient une structure de répertoire qui reflète principalement la structure trouvée dans le répertoire / ou /usr. Il s'agit du répertoire racine principal des logiciels installés via le système de ports. Presque toute la configuration des ports est effectuée via des fichiers situés dans /usr/local/etc tandis que la configuration du système de base est conservée dans /etc comme d'habitude. Cela permet de reconnaître facilement si une application fait partie du port du système de base et aide à garder le système de fichiers propre.

Dernières pensées

FreeBSD et Linux ont de nombreuses qualités en commun, mais si vous venez d'un milieu Linux, il est important de reconnaître et de comprendre en quoi ils diffèrent. Là où leurs chemins divergent, les deux systèmes ont leurs avantages, et les partisans de l'un ou l'autre camp peuvent indiquer les raisons des choix qui ont été faits.

Traiter FreeBSD comme son propre système d'exploitation au lieu d'insister pour le voir à travers une lentille Linux vous aidera à éviter de vous battre avec le système d'exploitation et se traduira généralement par une meilleure expérience. À présent, nous espérons que vous avez une assez bonne compréhension des différences à surveiller à mesure que vous avancez.

Si vous êtes nouveau dans l'utilisation de serveurs FreeBSD, une bonne prochaine étape peut être notre guide sur commencer avec FreeBSD.