Introduction comparative à FreeBSD pour les utilisateurs de Linux

introduction

FreeBSD est un système d’exploitation de type Unix gratuit et à source ouverte, ainsi qu’une plate-forme de serveur populaire. Alors que FreeBSD et d’autres systèmes basés sur BSD ont beaucoup en commun avec des systèmes comme Linux, il existe des points où ces deux familles divergent de manière importante.

Dans ce guide, nous aborderons brièvement quelques points communs entre FreeBSD et Linux avant de passer à une discussion plus longue sur les différences importantes qui les séparent. Beaucoup 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 sont différents, discutons en termes généraux des points communs de 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 à code source ouvert. Les utilisateurs peuvent visualiser et modifier la source comme ils le souhaitent et le développement se fait à l’air libre.

Les distributions FreeBSD et celles basées sur Linux sont de type Unix. FreeBSD a des racines proches des systèmes Unix du passé, alors que Linux était créé à partir de rien comme une alternative ouverte de type Unix. Cette association informe les décisions relatives à la conception des systèmes, à l’interopérabilité des composants et aux attentes générales concernant ce à quoi le système devrait ressembler et qu’il devrait accomplir.

Le comportement courant de type Unix est principalement dû au fait que les deux familles sont principalement POSIX-compliant. La sensation générale et la conception des systèmes sont plutôt normalisées et utilisent des modèles similaires. La hiérarchie du système de fichiers est divisée de la même façon, les environnements shell constituent 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 plusieurs des mêmes outils et applications. Dans certains cas, les versions ou les variantes de ces programmes diffèrent d’un système à l’autre, mais les applications peuvent être portées plus facilement qu’elles ne le sont avec des systèmes de type non-Unix.

Gardant ces points à l’esprit, nous allons maintenant aborder les domaines dans lesquels 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 concédés sous une forme quelconque de licence 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 les travaux dérivés conservent cette licence.

De son côté, FreeBSD, y compris le noyau et les outils créés par les contributeurs de FreeBSD, octroie une licence à son logiciel sous une licence BSD. Ce type de licence est plus permissif que la GPL dans la mesure où il n’exige pas de travail dérivé pour respecter les conditions de la licence. Cela signifie que toute personne ou organisation peut utiliser, distribuer ou modifier le programme sans qu’il soit nécessaire de contribuer aux modifications ou de divulguer la source du travail qu’elle crée. Les seules exigences sont que le copyright original et une copie de la licence BSD soient inclus dans le code source ou dans la documentation (en fonction de la méthode de publication) du travail dérivé et qu’un avertissement fourni limitant la responsabilité soit inclus. La licence principale est très courte et peut être trouvée here.

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 toutes autres considérations. Les logiciels propriétaires doivent faire très attention à ne pas s’appuyer sur un logiciel basé 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 à comprendre certains des choix et des principes qui sous-tendent 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 facteur d’influence de la philosophie à laquelle chaque camp adhère.

Linux est un noyau développé par Linus Torvalds pour remplacer le système MINIX, très restrictif et axé sur l’éducation, qu’il utilisait à l’université d’Helsinki. Combiné à 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 analogues à Unix, bien qu’il ne soit pas directement dérivé d’un précédent système d’exploitation Unix. É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 être très différent des systèmes étroitement liés à Unix.

FreeBSD a de nombreux liens directs avec son héritage Unix. BSD, ou Berkeley Software Distribution, est une distribution de Unix créée à l’Université de Californie à Berkeley, qui étend l’ensemble des fonctionnalités du système d’exploitation Unix d’AT & T et dont les conditions de licence sont satisfaisantes. Par la suite, il a été décidé d’essayer de remplacer autant que possible le système d’exploitation d’origine d’AT & T par des alternatives open source, de sorte que les utilisateurs ne soient pas tenus d’obtenir une licence d’utilisation de BSD par AT & T. Finalement, tous les composants de l’Unix d’origine AT & T ont été réécrits sous licence BSD et portés sur l’architecture i386 en tant que 386BSD. FreeBSD a été créé à partir de cette base dans le but de maintenir, d’améliorer et de moderniser le travail déjà effectué. Il a finalement été modifié 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 d’engagements en termes de licences, mais a maintenu des liens étroits avec son passé. Les développeurs qui travaillent à la création du système sont restés investis dans la manière de faire Unix, probablement parce que FreeBSD a toujours été conçu pour fonctionner comme un clone de Unix sous licence ouverte. Ces racines ont influencé l’orientation de tout développement ultérieur et sont la raison derrière certains des choix dont nous allons discuter.

Séparation du système d’exploitation principal des logiciels supplémentaires

La différence entre les distributions FreeBSD et Linux en termes d’effort de développement et de conception du système est la portée du système. L’équipe FreeBSD développe le noyau et le système d’exploitation de base en tant qu’unité cohérente, alors que Linux ne fait techniquement référence qu’au noyau, les autres composants provenant de différentes sources.

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

En ce sens, les composants essentiels ne diffèrent pas beaucoup des packages optionnels disponibles dans les référentiels de la distribution. Les outils de gestion des paquets de la distribution permettent de suivre et de gérer ces composants de la même manière. Une distribution peut gérer différents référentiels en fonction des équipes responsables de certains packages, de sorte que l’équipe de développement principale ne doit se préoccuper que d’un sous-ensemble du logiciel disponible. Il s’agit toutefois d’une différence d’organisation et de focalisation qui ne provoque généralement pas de différences dans le logiciel. la gestion du point de vue de l’utilisateur.

En revanche, FreeBSD maintient un système d’exploitation central complet. Le noyau et une collection de logiciels, dont beaucoup sont créés par les développeurs FreeBSD eux-mêmes, sont gérés comme une unité. Il n’est pas aussi simple d’échanger les composants de cette collection essentielle, car c’est en quelque sorte un ensemble monolithique de logiciels. Cela permet à l’équipe FreeBSD de gérer de très près le système d’exploitation principal, assurant 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’additions facultatives. FreeBSD propose une vaste collection de logiciels optionnels, à l’instar des distributions Linux, mais ceux-ci sont gérés séparément. Le système de base est mis à jour séparément et les logiciels en option peuvent être mis à jour individuellement.

Comment les rejets sont formés

La plupart des versions de Linux sont le résultat de la collecte de logiciels provenant de diverses sources et de leur modification, le cas échéant. Les responsables de la distribution décident des composants à inclure dans le support d’installation, des composants à inclure dans les référentiels de 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 sortie principale produite.

  • Le logiciel de base est considéré comme un tout cohérent.

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

Tout d’abord, étant donné que ces outils sont tous développés simultanément dans un même référentiel, une version est formée simplement en sélectionnant une révision de l’une des branches du référentiel. Ceci est similaire à la manière dont la plupart des logiciels sont publiés dans la mesure où un point stable est sélectionné dans 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 effectuer avec les composants de leur système. Les utilisateurs ne doivent pas attendre que les développeurs approuvent les modifications pour les intégrer à leur système.

Cela ressemble un peu 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 paquetages, alors que sous FreeBSD, vous pouvez suivre une branche d’un référentiel source centralisé.

Différences de logiciels et conception de systèmes

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

Paquet pris en charge et installations sources

L’une des principales différences entre FreeBSD et la plupart des distributions Linux du point de vue de l’utilisateur réside dans la disponibilité et la prise en charge du logiciel fourni et du logiciel installé à 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 appelé «ports».

Le système de port FreeBSD est un ensemble 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 manière d’appliquer correctement le code source pour qu’il fonctionne correctement avec FreeBSD.

Les versions packagées du logiciel sont en réalité produites à partir du système de ports, faisant de FreeBSD une distribution d’abord source avec des paquetages disponibles pour plus de commodité. Votre système peut être composé de logiciels pré-packagés et construits à la source, et le système de gestion de logiciels peut gérer de manière appropriée une combinaison de ces deux méthodes d’installation.

Vanilla vs logiciel personnalisé

Une décision qui peut sembler un peu étrange aux utilisateurs familiarisés 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 au logiciel afin de faciliter la connexion avec d’autres composants et de faciliter la gestion. La restructuration des hiérarchies de configuration de serveur Web communes afin de rendre la configuration de serveur plus modulaire est un bon exemple de cette tendance.

Bien que de nombreux utilisateurs trouvent ces modifications utiles, cette approche présente également des inconvénients. Un problème avec les modifications apportées est qu’il suppose de savoir quelle approche convient le mieux aux 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 responsables de FreeBSD do modifient souvent les logiciels avec des correctifs, mais il s’agit généralement de modifications plus conservatrices que les choix de paquets 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 soit construit et exécuté correctement dans un environnement FreeBSD et celles nécessaires 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, il est donc nécessaire de prendre un peu de temps supplémentaire pour que les composants puissent communiquer entre eux.

FreeBSD Flavors of Common Tools

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

L’équipe de FreeBSD maintient sa propre version d’un grand nombre d’outils communs. Bien que la plupart des outils disponibles 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. FreeBSD étant responsable du développement et de la maintenance du système d’exploitation principal, il est essentiel de contrôler le développement de ces applications et de les placer sous une licence BSD. 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 tend en général à être moins compatible avec les versions antérieures.

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 façon sur un serveur FreeBSD. Il est important de toujours vérifier les pages + man + des commandes pour se familiariser avec les options des variantes de FreeBSD.

La coque standard

Un point lié qui pourrait prêter à confusion est que le shell par défaut de FreeBSD n’est pas + bash +. FreeBSD utilise plutôt + 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. Alors 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 shell 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 établit une distinction entre le système d’exploitation de base et les composants optionnels, ou ports, pouvant être installés au-dessus de cette couche.

Cela a des implications sur la manière dont FreeBSD organise les composants dans la structure de fichier. 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 fonction et de leur importance pour les fonctionnalités essentielles. . FreeBSD reconnaît ces différences, mais impose également un autre niveau de séparation entre les composants installés dans le système de base et ceux installés en tant que ports. Le logiciel système de base réside dans l’un des répertoires ci-dessus. Tous les programmes installés en tant que port ou paquet 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. La quasi-totalité de la configuration des ports se fait 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 déterminer facilement si une application fait partie du port du système de base et permet de 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 environnement Linux, il est important de reconnaître et de comprendre leurs différences. Là où leurs chemins divergent, les deux systèmes ont leurs avantages et les partisans des deux camps peuvent indiquer les raisons des choix qui ont été faits.

Traiter FreeBSD comme son propre système d’exploitation au lieu d’insister sur le fait de le regarder sous l’optique de Linux vous aidera à éviter de vous battre avec le système d’exploitation et donnera généralement une meilleure expérience. À présent, nous espérons que vous comprenez assez bien les différences à surveiller lorsque vous avancez.

Si vous débutez dans l’utilisation des serveurs FreeBSD, le guide https://www.digitalocean.com/community/tutorials/how-to-get-started-with-freebsd-10-1 started est une bonne étape. avec FreeBSD].