BSD présentation
Histoire d'unix - origine des BSD
A l'origine, le premier système unix a été développé par Ken Thompson dans les laboratoires Bell de AT&T à partir de 1965. On considère que la date de naissance d'Unix est le 1er janvier 1970 (date d'origine de l'horloge système des unix).
Un décret interdisant à AT&T de commercialiser autre chose que des équipements télécom, la décision a été prise de fournir les codes sources d'Unix aux universités. En 1977, l'université de Berkeley (Califormie) donnait naissance à la Berkeley Software Developpement (BSD).
On avait désormais deux branches de développement :
- la branche System V d'AT&T (devenue commerciale en 1983)
- la branche BSD de l'université de Berkeley (la dernière en date étant la 4.4BSD)
Les unix issus de la branche 4.4BSD ont été entièrement réécrits, pour être totalement débarassés de tout code de l'unix AT&T d'origine. Ainsi, ils sont entièrement indépendants et aucune poursuite judiciaire n'est envisageable (comme dans l'affaire SCO contre linux).
Les différences sont nombreuses entre les deux branches, particulièrement au niveau du démarrage et de la gestion des services. Les "system V" utilisent les runlevels, et permettent une gestion facile des daemons en les invoquants avec stop, start, restart, etc. Les BSD n'ont pas de runlevels, et les daemons se gèrent plus difficilement quand la machine tourne ; mais la gestion du démarrage est plus simple (il n'y a pas 50 000 raccourcis dans /etc/rc*.d). Mais de toutes façons, tous les unix évoluent en parallèle et chacun emprunte les bonnes idées du voisin. Donc les différences entre les deux branches évoluent au cours du temps, et aucun unix n'est vraiment un pur System V ou un pur BSD, comme on pouvait les définir au début. D'ailleurs, NetBSD et FreeBSD peuvent désormais aussi gérer leurs daemons avec stop et start (pour OpenBSD, je ne sais pas).
Comparaison avec GNU/Linux
OpenBSD, FreeBSD, NetBSD et DragonflyBSD sont issus de la branche BSD du système Unix d'origine et sont plutôt réservés aux utilisateurs avertis, car il y a beaucoup de choses à configurer à la main. Chaque ajout ou modification de l'OS est vérifié et validé par une équipe de mainteneurs, ce qui fait d'eux des systèmes très robustes, mais pas toujours très dynamiques dans leur développement. Cependant, des projets tels que PC-BSD ajoutent une surcouche au système de base et configurent une partie du système automatiquement, ce qui rend l'ensemble accessible à tous.
Linux a été développé à partir de Minix, un système minimaliste basé sur Unix, avec très peu de fonctionnalités. Son créateur, Linus Torvalds, l'a grandement amélioré en reprenant le meilleur de la branche BSD et de la branche System V (c'est principalement de cette dernière dont il s'inspire). Rapidement, des centaines, puis des milliers de développeurs à travers le monde ont participé au développement de Linux, ce qui en fait un système très riche, très dynamique, mais pas toujours aussi stable et aussi facile à maintenir. Il existe de nombreuses distributions Linux, qui se basent toutes sur le noyau Linux, en y ajoutant divers logiciels autour. Certaines utilisent les toutes dernières versions des logiciels, au risque de perdre en stabilité ; d'autres suivent la politique inverse. Certaines sont vouées à une utilisation spécifique, d'autres sont plus généralistes. Ce très (trop ?) grand choix de distributions peut dérouter et on peut s'y perdre. En contrepartie, on est presque sûr de trouver celle qui correspond à nos besoins. Autre point important, il est très facile de trouver de l'aide pour linux sur internet. Des sites d'aide BSD existent aussi, mais ils sont beaucoup moins nombreux.
Les principales différences techniques sont :
- la structure du noyau. Les BSD adoptent un noyau monolithique, linux est quant à lui modulaire (note : FreeBSD est devenu modulaire il y a quelques années).
- il n'y a qu'un seul niveau de démarrage (runlevel) pour les BSD.
- la gestion des partitions. Les BSD ont une unique partition (appelée slice) qui est découpée en interne en plusieurs sous-partitions (appelées partitions). Les sous-partitions ne sont pas visibles des autres OS. Linux a choisi un système plus conventionnel avec une partition racine "/", une partition de swap pour les échanges mémoire et éventuellement d'autres partitions.
Une autre différence importante concerne les licences. Les deux licences sont open source (les sources sont librement consultables), mais la licence BSD autorise qu'on réutilise les sources pour les inclure dans un produit commercial non open source, alors que la GPL de linux impose que tout logiciel qui inclut des sources GPL, soit lui aussi sous GPL. En résumé, à partir du GPL, on ne peut faire que du GPL ; on fait ce qu'on veut avec du source BSD. La contrepartie, c'est qu'on peut réutiliser librement le travail fait par un autre.
Pour choisir entre GNU/Linux et les BSD, c'est une question d'utilisation et/ou de philosophie. Les systèmes sont en effet très proches. Un débutant préfèrera probablement une distribution "facile", comme Ubuntu ou Mandriva pour Linux, ou PC-BSD pour les BSD. Quelqu'un qui cherche un système très robuste, pour faire un serveur par exemple, se tournera plutôt vers BSD, ou un linux plus "costaud" type debian ou redhat serveur (ce ne sont que des exemples, que les afficionados des autres distribs ne se fâchent pas ). Pour les vrais paranos de la sécurité, choissez OpenBSD, qui peut se vanter de n'avoir eu que deux vulnérabilités à distance dans l'installation par défaut durant 10 ans (!!) ou bien une debian stable qui, à mon sens, n'a rien à lui envier, mais qui n'est pas aussi sécurisée dans son installation par défaut.
Il faut aussi savoir que dans tous les cas, un matériel très récent ou trop exotique risque de ne pas fonctionner sous Linux. Le problème est encore pire pour les BSD. Heureusement, certains fabricants développent des pilotes libres pour leur matériel.
Dernier point, les BSD sont compatibles avec les binaires linux, c'est-à-dire qu'en théorie, ils sont capables de faire fonctionner la quasi-totalité des programmes linux. Les BSD utilisent aussi les gestionnaires de fenêtres gnome, kde, etc. Ils sont donc graphiquement identiques à GNU/Linux.
A vous de choisir. Sachez qu'il existe de nombreux live-cd pour Linux et BSD (voir paragraphe Pour tester sans risques) qui vous donnent un aperçu de chaque système.
Quelles différences entre les BSD ?
FreeBSD | Il n'est disponible que pour quelques plateformes (x86, Alpha, UltraSparc et IA-64), et vise donc à être intégré et optimisé au maximum pour ces architectures. Orienté simplicité, grand nombre d'applications et performances réseau. | |
OpenBSD | Orienté sécurité / cryptographie, robustesse à toute épreuve. Disponible sur de nombreux matériels. En contrepartie, beaucoup moins d'applications disponibles, et souvent avec quelques versions de retard. | |
NetBSD | Orienté multi-plateformes : disponible sur quasiment toutes les architechtures existantes (plus de 60 types de processeurs supportés). | |
DragonflyBSD | Continuité de la branche 4 de FreeBSD qui diffère de la branche 5 par quelques détails techniques et politiques. Donc proche de FreeBSD. | |
PC-BSD | Il s'agit de FreeBSD avec une surcouche qui le rend encore plus facile à installer et à utiliser, notement avec un installeur graphique et une installation des logiciels ultra simplifiée. |
Où trouver de l'aide pour les BSD ?
Je vous conseille ces deux là, qui sont francophones : www.gcu-squad.org et www.freebsdebutant.org.
Celui-là est anglophone, mais il est encore plus complet et réactif : http://www.bsdforums.org/forums/?ref_=fr.
Pour tester sans risques
Comme linux, les BSD possèdent beaucoup de live-cd. Vous pourrez donc tester ces OS sans rien installer sur votre disque dur. Voici une petite sélection :
- FreeSBIE - basé sur FreeBSD
- Frenzy - basé sur FreeBSD
- OliveBSD - basé sur OpenBSD
- NetBSD Live! - basé sur ... NetBSD
Amusez-vous bien !