FreeBSD : un meilleur Linux que Linux !

On ne présente plus Linux, le système d'exploitation compatible Unix et entièrement gratuit conçu pour les machines équipées de processeurs Intel 386 et suivants. Développé par le jeune Finlandais Linus Torvalds et une poignée de volontaires rencontrés sur Internet, Linux devient à juste titre de plus en plus populaire.

Linux a même les faveurs de la presse américaine depuis que Netscape, IBM ou HP s'y intéressent sérieusement.

Même Microsoft est tout content de prouver à la justice américaine qu'il ne détient pas de monopole sur le marché des systèmes d'exploitation en exhibant Linux comme faire-valoir.

Par contre, tout le monde semble avoir oublié FreeBSD, le plus ancien et probablement le plus stable des systèmes d'exploitation gratuite. Tout le monde sauf deux des sites Internet les plus visités au monde comme http://www.yahoo.com et http://www.cdrom.com qui n'ont trouvé que FreeBSD pour supporter de tels volumes de données en ligne. Au mieux, ceux qui en ont entendu parler s'imaginent qu'il s'agit d'une simple distribution de Linux, comme une Caldera, Slackware ou Red Hat. Non, FreeBSD est bien plus que cela

FreeBSD est un système d'exploitation haut de gamme dérivé de BSD ou Berkeley Software Distribution , la version Unix développée par le Computer Systems Research Group de l'Université of California de Berkeley entre 1975 et 1993. FreeBSD n'est pas un clone UNIX comme Linux. Historiquement et techniquement, il a de plus fortes raisons de s'appeler Unix qu'un Unix System V par exemple. Il n'a plus légalement le droit de s'appeler UNIX qui est désormais une marque déposée de l'Open Group ( http://www.opengroup.org )

Si BSD acquiert une telle importance aujourd'hui, c'est avant tout parce qu'il est le premier système d'exploitation à avoir accueilli des couches TCP/IP en 1983. C'est à cette époque que DARPA (Defense Advanced Research Projects Agency ), l'agence à l'origine du projet ARPANET, le futur INTERNET, crée la firme privée Bolt, Beranek & Newman  (BBN) pour implémenter les couches réseau TCP/IP à l’intérieur du système d’exploitation Berkeley BSD Unix. La grande histoire d’amour Unix + TCP/IP remonte donc à cette époque. Quel système d'exploitation contemporain, à part BSD, peut s'enorgueillir de seize années de développement du standard TCP/IP, épine dorsale de l'Internet ?

Le modèle de développement de BSD est similaire à celui de tous les projets Open Source mais se distingue singulièrement du modèle Linux. Chaque BSD a son équipe de base, son "core" team qui prend collégialement des décisions et pilote le projet. Un nombre plus étendu de "Committers" a le droit d'apporter des changements au code source originel. La gestion du code source est assurée par le mécanisme CVS qui permet à plusieurs développeurs de travailler sur les mêmes contenus sans interférer l'un sur l'autre. Via le programme 'cvsup', les utilisateurs peuvent télécharger le code source des nouvelles révisions ou régénérer une version plus ancienne.

  • Le projet FreeBSD est conduit par un groupe de 100 développeurs dirigés par un "core team" de 17 personnes. Ce noyau dur de développeurs garantit à FreeBSD une convergence, une gestion centralisée, une stabilité qui manquent dans les versions de Linux confrontées à des développements plus anarchiques, des incompatibilités entre distributions etc. Le FreeBSD core team assume le rôle joué par Linus Torvalds qui gère seul et autocratiquement l'avenir du kernel Linux. 
  • FreeBSD est complètement gratuit. Le code source du système d'exploitation est fourni dans le package de base. Le code source Linux est aussi public mais est soumis aux conditions d'utilisation plus restrictives de la GNU Public License qui oblige à inclure les sources de chaque altération de l'OS. Avec FreeBSD, vous n'êtes pas obligés de joindre le code source tant que vous mentionnez clairement les emprunts que vous avez réalisé.
  • FreeBSD est un système d'exploitation 32 bits de A à Z. N'oubliez pas par exemple que Windows 98 contient encore énormément de portions de code 16 bits dans son kernel même s'il a été conçu pour accueillir des applications 32 bits.
  • Il propose un multitâche préemptif avec ajustement dynamique des priorités des processes. Windows 3 est un système multitâche mais de type coopératif.  Cela signifie que toutes les applications se partagent une seule queue de messages et que chaque application a la responsabilité de passer la main aux autres tâches. Si une application ne prend pas soin de rendre la main aux autres, si elle se perd dans une boucle de longue durée ou contient un bug qui l'empêche de se comporter correctement, l'ensemble des autres tâches n'a plus accès au temps CPU. Dans un système multitâche préemptif, c'est le système d'exploitation lui-même qui, via le Task Scheduler, détermine quelle application prend le contrôle du processeur en fonction de niveaux de priorité. C'est ce même Task Scheduler qui distribue le temps CPU entre toutes les tâches.
  • FreeBSD est multiuser. C'est probablement ce qui manque le plus à Windows NT qui ne dispose pas de plusieurs consoles simultanées et ne contient pas en standard de serveur Telnet..
  • FreeBSD est doté de couches TCP/IP très élaborées comportant notamment le support SLIP ( Serial Line Internet Protocol), PPP ( Point to Point Protocol ), NFS ( Network File System ) et NIS. FrreBSD propose les applications les plus populaires chez les ISP comme sendmail pour la gestion du serveur SMTP, Apache pour le daemon HTTP, Bind/named pour le serveur DNS, squid comme serveur proxy etc. Des services routing, firewalling, network address translation de très bonne qualité sont également fournis.
  • Memory protection  . Le memory manager fournit un mécanisme de protection de la mémoire empêchant une application de manipuler un espace mémoire qui appartient à une autre application.
  • Gestion performante de la virtual memory.  Chaque programme a à sa disposition un espace mémoire adressable linéaire découpé en pages de 4 KB. Ces pages peuvent être chargées et déchargées de la mémoire, placées sur disque via une procédure appelée page fault. Chaque fois qu'une application tente d'accéder à une page qui n'est pas physiquement présente en mémoire, une page fault est générée. Le noyau FreeBSd se charge alors de la charger en mémoire en déchargeant éventuellement de la mémoire des pages qui n'ont plus été utilisées depuis longtemps pour faire de la place à la nouvelle application
  • Gestion des Shared libraries ( l'équivalent Unix des librairies dynamiques MS-Windows DLLs)
  • Outils de développement C, C++, Fortran, Perl, fournis en standard
  • Une interface graphique est disponible gracieusement sur http://www.xfree86.org . Les window managers les plus classiques comme  kde (http://www.kde.org/ ) , enlightenment (http://www.enlightenment.org/ ), fvwm (http://www.fvwm.org/ ), fvwm95, windowmaker (http://www.windowmaker.org/ ) et afterstep (http://www.afterstep.org/ ) sont proposés en version native FreeBSD.
  • 2300 applications ont été portées sur FreeBSD et sont utilisables gracieusement. Il faut y ajouter toutes les applications SCO Unix, BSDI et Linux qui tournent sous FreeBSD en émulation. Ajoutons que les applications Linux sont quelquefois plus performantes dans l'environnement FreeBSD. FreeBSD supporte les formats ELF et les files systems Linux. A titre anecdotique, votre serviteur a par exemple pu récemment récupérer sur une machine FreeBSD les données d'un disque dur "ext2fs" qu'une distribution linux Slackware n'arrivait plus à réparer.
  • L'installation de FreeBSD est nettement plus simple qu'une installation Linux. Une seule disquette d'installation suffit quelle que soit votre configuration disque (IDE, SCSI, ATAPI)  ou réseau. La création des partitions et swapfile est automatique. Un seul programme :stand/sysinstall gère la totalité des composants du système d'exploitation.

Comme Windows NT, FreeBSD remonte à 1993. S'il n'a pas percé aussi médiatiquement que Linux, c'est pour des raisons légales. En 1992, AT&T et son Unix Systems laboratories déposent une plainte contre BSD Inc. pour distribution de code source ATT en violation des accords entre AT&T et l'Université de Berkeley. Le développement de FreeBSD en a été retardé puisque FreeBSD s'est vu dans l'obligation de retirer les pans de code développés par AT&T et de les réécrire complètement. C'est ce qui a été fait dans la version 2 de FreeBSD en 1994.

FrreBSD en est aujourd'hui à la version 3.2 disponible depuis mai 1999. Ses principales nouveautés sont

  • Le support USB et AGP
  • Le support natif des partitions NTFS

Quel BSD ?

Nous avons recensé cinq variantes de BSD : BSDI, FreeBSD, NetBSD, OpenBSD et  PicoBSD. Ils ont tous le même héritage du University California Berkeley 4.4BSD mais se sont spécialisés.

Au départ du projet BSD open source, deux clans se sont constitués : NetBSD voulant se concentrer sur une version portable et multi plate-forme tandis que  FreeBSD voulait une version de l'OS optimalisée pour les processeurs Intel. BSDI a repris le code source et s'est transformée en société commerciale proposant un Unix dont les sources ne sont plus ouvertes. OpenBSD est une branche dissidente de NetBSD spécialisée dans les domaines de la sécurité et de la cryptographie. PicoBSD est une variante de FreeBSD  conçue pour tenir sur un seul floppy disk.

Mac OS X et BSD

Avec l'annonce en avril du projet Darwin, Apple est le premier géant de l'industrie informatique à publier complètement le code source d'un système d'exploitation, le Mac OS X server, et à le placer sous licence Open Source à l'abri de coûteuses licences propriétaires. Le projet Darwin veut réunir le meilleur de deux mondes : la solidité d'un serveur back office Unix et la convivialité de l'interface graphique Macintosh.

Mac OS X est entièrement basé sur des technologies Open Source. Au centre de Mac OS X, on retrouve le micro noyau Mach 2.5 et 4.4BSD-Lite, relevé d'un ensemble de programmes additionnels comme le serveur HTTP Apache et le support des file systems Unix et Macintosh. Contrairement aux autres systèmes Unix, Mac OS X n'est pas fourni avec une interface graphique XWindow mais avec sa propre interface à la Macintosh.

Apple vend Mac OS X Server seul au prix de USD499.  Un Macintosh Server G3 configuré avec  Mac OS X Server coûte lui USD4,999 pour une configuration avec

·         Processeur 400-MHz PowerPC G3 avec 1MB de cache backside,

·         256MB de PC100 SDRAM,

·         deux disques durs 9GB 10,000-rpm Ultra2 LVD SCSI,

·         un connecteur Ethernet 10/100BASE-T et une carte PCI Ethernet 10/100BASE-T à quatre ports,

·         un lecteur CD-ROM drive

·         Mac OS X Server software (preinstallé) avec un nombre illimité de licences, Appletalk, HFS+, la base de données distribuée NetInfo

Une version d'évaluation est librement accessible aux développeurs sur http://www.apple.com/darwin

http://publicsource.apple.com/projects/darwin/release.html

Mach

L'ancêtre des systèmes d'exploitation portables est indiscutablement MACH. Windows NT en a largement adopté la philosophie. Dès 1979, Richard Rashid, de la Carnegie-Mellon University, s'est attaqué à la conception d'un système d'exploitation modulaire, conçu comme une collection de processus communiquant entre eux au sein d'un réseau par l'échange de messages. En 1984, il décide d'apporter à  Mach la compatibilité UNIX  lui offrant ainsi un grand volume d'applications disponibles. Mach contient déjà des threads, un mécanisme de communication inter-processus, un support multi-processeurs et un système original de mémoire virtuelle.

                DARPA, l'Agence pour les Projets de Recherche Avancés du Département Américain de la Défense, s'intéresse bientôt à  Mach et finance la fusion de Mach et du Berkeley Unix 4.2BSD en un seul et unique noyau. Cette première mouture de Mach débouche en 1986 sur une version dédiée au VAX 11/784, un système composé de quatre processeurs. Suivent rapidement des versions pour l'IBM PC/RT,  Sun 3, Encore et Sequent.

                Le microkernel de Mach a été pensé comme une plate-forme susceptible d'accueillir d'autres systèmes d'exploitation: Unix 4.3 BSD, Unix System V, HP/UX et MS-DOS. L'émulation des systèmes d'exploitation hôtes est prise en charge par une couche logicielle tournant en dehors du noyau, dans l'espace utilisateur

Dans un recoin verdoyant de la Silicon Valley, la société Walnut Creek CDROM Inc, est l'heureuse propriétaire du plus populaire des sites d'archives de logiciels ftp://ftp.cdrom.com . En mai 1999, ftp.cdrom.com a atteint des piques incroyables d'un terabyte de données téléchargé chaque jour avec des pointes quotidiennes de 750000 utilisateurs. Le record absolu pour un dimanche est un montant de download atteignant 1.39TB sur un tout nouveau réseau Gigabit Ethernet et de bons vieux PC Intel équipés de FreeBSD.

 

Cadre D Yahoo et FreeBSD

Le projet Yahoo a démarré à la Stanford University  sur une station DEC Alpha box tournant sous  OSF et une Sparc 20 sous SunOS. Le système a fonctionné une année sans trop de problèmes même si ces stations n'étaient pas réellement architecturées pour supporter un tel nombre de requêtes HTTP. Lorsque Yahoo Inc quitte Stanford pour voler de ses propres ailes, le choix des stations serveurs se porte sur des systèmes SGI IRIX, Linux, et BSDI. Les résultats en terme de "scability" HTTP n'étant toujours pas probants, Tim Koogle, CEO de Yahoo, et son équipe découvrent le site FreeBSD, téléchargent la disquette de démarrage, rebootent le PC et se retrouvent quelques questions plus loin connectés à Internet. Nous citons le même Tim Koogle

"it was the easiest and most painless OS installs I had ever experienced. "

Quelques jours plus tard, un PC équipé de FreeBSD entre en production, dépasse les performances du reste du parc informatique et s'avère plus stable à longue échéance. Ce simple Pentium100 équipé de FreeBSD 2.0.5 a désormais fait place à 1000 serveurs équipés de FreeBSD 2.1. Pour Yahoo, la stabilité et les performances comptent bien plus que le prix du système d'exploitation. Deux exemples vous situeront aisément le niveau de stabilité et de performance du système :

Les machines gérant en moyenne 4 millions de requêtes HTTP par jour sont rebootées en moyenne tous les 180 jours.

Un PentiumPro 200 avec 128 MB de mémoire vive et un système de disk striping est capable de gérer à lui seul 12 millions de requêtes par jour !

Cadre E  FreeBSD au cinéma The Matrix

Jurassic Park s'est construit à l'ombre de centaines de stations Silicon Graphics, Titanic a réclamé deux cent machines Linux mais le dernier film à succès de Warner Bros, The Matrix, n'a nécessité que 32 Dell Precision 410 Dual P-II/450 tournant sous FreeBSD. La société Manex Visual Effects, célèbre depuis ses effets 3D dans Starship Troopers, n'avait pas assez de puissance avec son infrastructure SGI, pour supporter tous les rendus 3D réclamés par sa dernière production. Son patron et visionnaire Charles Henrich, affirme avoir reçu ses 32 PC un mercredi et avoir lancé les machines en production le samedi.

http://www.mvfx.com/

http://www.whatisthematrix.com/

Cadre F OpenBSD

[2.5 logo]

OpenBSD est une variante BSD supportant la compatibilité binaire avec SVR4 (Solaris), FreeBSD, Linux, BSDI, SunOS, et HPUX. OpenBSD est une dissidence FreeBSD gérée par Theo de Raadt

La version actuelle remontant à mai 1999 est baptisée 2.5 et est disponible pour les processeurs suivants

  • DEC Alpha,
  • modèles Amiga m68k,
  • machines Mips R4K et R5K y compris les plates-formes ARC,
  • Hewlett-Packard HP300/HP400,
  • PC à base d'Intel i386, 486, Pentium et compatibles,
  • MC680x0 Apple Macintosh,
  • Motorola MVME147/16x/17x 68K VME,
  • machines DEC MIPS,
  • PowerPC
  • SPARC ( modèles Sun4, Sun4c et Sun4m )
  • Sun's 68020 based Sun3 models.
  • Acorn ARM6+ computers.
  • Atari TT et Falcon
  • NS32532 computer.
  • Sun 68030 Sun3
  • DEC's VAX
  • SHARP X680x0 m68k
  • Motorola MVME18x/19x 88K VME cards
  • IBM PC RT
  • MIPS Silicon Graphics workstations.
  • Hewlett-Packard PA-RISC HP700/HP800 

http://www.openbsd.org

Cadre G NetBSD

 NetBSD est un autre dérivé BSD à la portabilité maximale. Il tourne sous

Port

CPU

Machines

alpha

alpha

Digital Alpha (64bit)

amiga

m68k

Commodore Amiga, MacroSystem DraCo

arm32

arm32

Acorn RiscPC/A7000, CATS, Digital Shark, EBSA-285, VLSI RC7500

atari

m68k

Atari TT030, Falcon, Hades

bebox

powerpc

Be, Inc BeBox

hp300

m68k

Hewlett-Packard 9000/300 et 400

i386

i386

i386 IBM PCs et clones

mac68k

m68k

Apple Macintosh

macppc

powerpc

Apple Power Macintosh

mvme68k

m68k

Motorola MVME 68k SBCs

newsmips

mips

Sony NEWS 3400

next68k

m68k

NeXT 68k 'black' hardware

ofppc

powerpc

PowerPC avec  OpenFirmware

pc532

ns32k

PC532

pica

mips

Acer Pica

pmax

mips

Digital MIPS DECstations et DECsystems

sparc

sparc

Sun SPARC

sparc64

sparc

Sun Ultrasparc (64bit)

sun3

m68k

Sun 3 et Sun 3x

vax

vax

Digital VAX

x68k

m68k

Sharp X680x0

Là où FreeBSD vise l'efficacité maximale sur machines Intel, le projet NetBSD vise plutôt la portabilité. NetBSD a eu son heure de gloire lorsque Apple l'a exploité comme noyau central de son projet Rhapsody.

http://www.netbsd.org

Cadre H Pico BSD FreeBSD sur une seule disquette

Un vieux 386SX avec 8 MB de RAM sans disque dur suffit à satisfaire PicoBSD 0.42, la version de FreeBSD qui tient sur une disquette 1.44 MB. PicoBSD se décline en quatre versions optimisées pour les accès dial-up, le réseau local, le routage ou même pour les serveurs d'accès.

En une disquette, vous trouvez

  • Support PPP
  • IP Firewalling
  • Network Address Translation
  • ifconfig, route, ping, ns (mini-netstat), traceroute
  • telnet, ftp et SSH
  • shell, mount (FreeBSD, DOS, Linux), umount, ps, kill, vm (mini-vmstat), fsck, df, etc..
  • editeur ee
  • routed, inetd, telnetd, snmpd.

http://www.freebsd.org/~picobsd/picobsd.html

Cadre H Différences Linux - FreeBSD

FreeBSD

Linux

Descendant direct de l'Unix original

Clone Unix

Gestion centralisée par un noyau de développeurs

Kernel maintenu autocratiquement par Linus Torvalds

Environnement de production stable

Environnement de développement pour bidouilleurs

Facilité d'installation

La facilité d'installation dépend de la distribution

Compatible Linux

Incompatible BSD

1 seule disquette d'installation

Plusieurs disquettes d'installation

Le bootmanager BootEasy est techniquement supérieur à LILO

Lilo fonctionne mal avec les partitions > à 4GB

1 seule version officielle

Plusieurs distributions incompatibles

Références

Le site de Référence 

http://www.freebsd.org

FreeBSD francophone http://www.freebsd-fr.org/

Code source original du CSRG BSD

http://www.mckusick.com/csrg/

Liste de mailing list BSD disponible sur

http://www.freebsd.org/handbook/eresources.html#ERESOURCES-MAIL

Newsgroups

·         comp.unix.bsd.freebsd.announce

·         comp.unix.bsd.freebsd.misc

·         comp.bugs.4bsd

·         comp.bugs.4bsd.ucb-fixes

·         comp.unix.bsd

Magazines techniques consacrés à BSD

http://www.daemonnews.org/

http://www.freebsdzine.org/

http://www.freebsdrocks.com/

http://www.watson.org/fbsd-hardening/

Tutorial

http://www.vmunix.com/fbsd-book/

http://www.freebsddiary.com/freebsd/

Commande de CD BSD en ligne

http://cart.cheapbytes.com/cgi-bin/cart

http://www.cdrom.com/titles/freebsd/freebsd.phtml

Conclusions

Linux est peut-être le système d'exploitation présenté par la presse et les analystes comme le nouveau concurrent en vogue de NT mais de nombreux développeurs et managers IT se moquent des modes et ont choisi FreeBSD pour sa stabilité et ses performances en tant que serveur Web. Les PSI ( Prestataires de Services Internet ) l'ont adopté en masse et pour paraphraser IBM "FreeBSD est un meilleur Linux que Linux". FreeBSD n'a pas la prétention de concurrencer Microsoft sur le terrain des desktop OS mais outrepasse Windows NT en terme de stabilité et de performance côté des serveurs back office.

eric@netline.be