Histoire et differences des UNIX BSD ------------------------------------ iMil , 06/2004 Ce document n'a pas pour vocation de relater l'histoire complète d'Unix, maintes fois décrite de manière exhaustive, mais de retracer succintement l'histoire des principaux UNIX BSD contemporains, afin d'en comprendre les différences fondamentales. L'histoire de la famille des UNIX BSD commence en 1977 avec l'apparition d'un fork de l'UNIX originel par le groupe de recherche de l'université de Berkeley (CSRG). Il porte le nom de 1bsd (BSD = Berkeley Software Distribution: Distribution Logicielle de Berkeley). Jusqu'à la version 3, il s'agissait plutôt de patchs visant à améliorer l'UNIX originel d'AT&T, et ce jusqu'à la fameuse version 2.11. 3BSD fut le 1er système BSD totalement autonôme, bien qu'encore truffé de code issu des laboratoires d'AT&T. Il bénéficie rapidement du soutien du DARPA, le département americain de la Défense, et prend un envol important en devenant le premier système beneficiant d'une pile TCP/IP. Nous sommes en 1983, la version du moment est la 4.2. Après maintes modifications et le branchement sur les versions 4.x, 4.3BSD ne possède plus qu'à peine 10% de code issus de l'UNIX souche, c'est donc tout naturellement que le CSRG décide de réimplementer le code non-libre, i.e. non ecrit par Berkeley, et après divers branchements tels que 4.3BSD Tahoe, Reno, Net/1 et Net/2, emerge 4.4BSD, véritable épine dorsale de tous les systèmes BSD modernes. Je passe ici les différents aspects politico-juridiques qui ont retardé la libération totale de 4.4BSD et engendré 4.4BSD Lite puis Lite 2. Vous trouverez ici : http://imil.net/docs/bsd-family-tree un graphe représentant l'évolution des systèmes BSD jusqu'à ce jour. - NetBSD ------ Nous sommes en 1993, et le projet NetBSD (issu de la fusion entre BSD Net/2 et 386BSD) voit le jour. Au fur et à mesure que 4.4BSD évoluait, les modifications furent intégrées à NetBSD, aboutissant en Octobre 1994 à la sortie de NetBSD 1.0. Les objectifs principaux de NetBSD sont : (issu de la documentation officielle de NetBSD ) . La portabilité : plus de vingt plateformes sont actuellement supportées . Précision et qualité du code . Adhésion aux standards . Recherche et innovation La "propreté" du code du système NetBSD en fait une plateforme de developpement de choix. En effet, la philosophie du système est de favoriser la qualité à la fonctionnalité. Cela a par contre pour conséquence de souvent retarder l'integration de drivers ou nouvelles fonctionnalités jugés encore trop jeunes. L'aspect phare du système NetBSD est sa grande cohésion, et de ce fait, sa portabilité, l'ensemble du système étant soumis à des methodologies strictes qui lient entre elles les opérations, des plus complexes aux plus simples. NetBSD dispose d'un système de packages très évolué, à l'image de son OS d'origine il fonctionne sur la quasi-totalité des UNIX, libres et propriétaires. Pour plus d'informations, rendez-vous à http://www.pkgsrc.org. A ce jour, 10 Juin 2004, les versions de NetBSD sont NetBSD 1.6.2, actuelle version stable NetBSD 2.0 BETA, beta de la version 2.0, prochaine version stable NetBSD current, version de developpement - FreeBSD ------- A la fin de l'année 1993 émerge un nouveau projet (également articulé sur Net/2 et 386BSD), il s'agit de FreeBSD. Résoluement orienté vers l'architecture x86, il intègre les améliorations issues de 4.4BSD en 1995 et devient FreeBSD 2.0. Les principales facultés de FreeBSD sont : . Simplicité de l'administration . Optimisation . Pluralité, FreeBSD fait un excellent serveur mais également une très bonne station de travail . Une documentation complète et à jour, le Handbook, traduit en de nombreuses langues . Une très bonne réputation dans le monde de l'Internet professionnel Comme le dit joliment le site FreeBSD.org : "L'objectif du projet FreeBSD est de fournir du logiciel qui puisse être utilisé à n'importe quelle fin et sans aucune restriction." Moins modestement, on peut dire qu'une des forces du projet FreeBSD est l'optimisation, il est probablement le BSD moderne le plus rapide des trois plus populaires. Originellement conçu pour ne fonctionner que sur l'architecture i386, il fonctionne aujourd'hui également sur Alpha, UltraSPARC II et AMD64 en vrai mode 64 bits (merci KingBug pour le correctif). L'un des aspects les plus marquants concernant FreeBSD est sa robustesse, son leitmotiv "The Power to Serve" n'a de meilleur temoin que son classement dans les differents "uptime projects", qui à chaque fois montrent que les machines qui ont été redémarrées le moins souvent fonctionnent sous FreeBSD. FreeBSD dispose d'une collection système de packages tiers très fournie, qui compte plus de 10000 "ports" (c'est ainsi qu'on appelle un logiciel préparé à l'installation pour FreeBSD). A ce jour, 10 Juin 2004, les versions de FreeBSD sont FreeBSD 4.10, actuelle version stable, conseillée pour des environnements de production FreeBSD 5.2.1, derniere release de la branche de developpement FreeBSD current, version de developpement - OpenBSD ------- OpenBSD est un BSD récent. C'est un fork de NetBSD datant de 1995, basé sur une désormais célèbre mésentente entre son créateur et le reste de l'équipe du projet NetBSD. Puisque directement issu de NetBSD, OpenBSD a tout naturellement hérité des mêmes ancêtres, mais aussi de l'aspect multi-plateformes de son vénérable parent. C'est en 1996 que la rupture entre les deux projets donna naissance à OpenBSD 2.0. Les objectifs principaux d'OpenBSD sont : (issu de la documentation officielle d'OpenBSD ) . Fournir aux developpeurs la meilleure plateforme de developpement possible . Intégrer de bons codes sources munis de licenses acceptables (comprendre non restrictives au sens liberticite du terme) . Essayer au maximum de rester le systeme le plus securisé, en portant une grande attention aux problemes de sécurité avant que quiconque ne le fasse . Avoir une des meilleures intégrations des systèmes de cryptographie . Se conformer aux standards (ANSI, POSIX, quelques parties d'X/Open, etc...) . Rester autant que possible indépendants de l'architecture pour fournir un code portable . Etre le moins politiques possible en ce qui concerne les choix techniques . Ne pas laisser les problemes sérieux sans solution . Fournir une bonne plateforme pour le cross-developpement/compilation . Intégrer les packages connexes avec un minimum de modifications, et soumettre les modifications aux développeurs lorsque celles-ci sont effectuées. . Presser une release du système environ tous les 6 mois, en grande partie pour financer le projet. OpenBSD dispose d'un système de ports similaire à FreeBSD, qui est cependant beaucoup moins fourni, principalement pour trois raisons : . le projet est tres rigoureux quand aux logiciels qu'il accepte dans ses ports . OpenBSD est beaucoup plus sévère quant aux licenses des ports acceptés . le nombre beaucoup moins elevé de commiters A ce jour, 10 Juin 2004, les versions d' OpenBSD sont OpenBSD 3.5, derniere release OpenBSD current, version de developpement Les challengers --------------- Bien évidemment, l'histoire ne s'arrete pas là, et de nombreux forks ont vu le jour en 10 ans. On notera parmi eux : . picoBSD: descendant de FreeBSD, c'est un système BSD qui tient sur une seule disquette, idéal pour un petit routeur. . ekkoBSD: un fork d'OpenBSD 3.3, comme son parent il vise la sécurité mais également la simplicité d'administration . DragonFly BSD: fork de FreeBSD 4.8 en raison d'une divergence d'opinion sur le nouveau système de threading et SMP de FreeBSD 5. Ce projet s'annonce comme la continuation logique de FreeBSD 4. . Darwin: système ouvert développé par Apple comme plateforme de base pour MacOS X. Construit autour d'un micro-kernel dérivé de Mach, il intègre les outils userland de FreeBSD 3.2. Add-on par BiB: En 1996, Apple réalise que son système d'exploitation Ultra proprietaire, Mac OS, n'a pas beaucoup évolué depuis son lancement en 1984. Steve Jobs, après son départ d'Apple, a fondé NeXT. NeXT produit notament un OS, NeXTStep, dont la version 1.0 du système sorti en 1989 est basée sur un micro noyau Mach 2.5 et sur 4.3BSD. Le prototype du remplacant de MacOS se nomme Rhapsody et commence en 1997. L'un des axes de développement de Mac OS X était de créer un système Unix basé sur des standards. En 1999, Darwin, qui constitue le coeur de Mac OS X et Mac OS X Server ( comprendre tout le système sans l'interface graphique propriétaire et ses applicatifs), capable de tourner sur plateforme PowerPC ou Intel x86, sort en version 0.1. Les versions de Darwin évoluent en parallèle des sorties de nouvelles versions de Mac OS X. De nombreux éléments de FreeBSD 4.5 sont par exemple utilisés dans Darwin 1.4.1/Mac OSX 10.2. Bien d'autres forks existent, ils ne sont pas cités ici par simple méconnaissance de leur particularités, n'hésitez pas à me proposer des ajouts. Pour finir ---------- Ce document n'a pas la prétention d'être exhaustif ou encore exempt d'erreurs, aussi si vous souhaitez y contribuer, n'hésitez pas à m'envoyer vos patchs / remarques à imil@gcu.info. iMil Remerciements ------------- prae, Gab, KingBug, BiB, twisla, alf