A la découverte d'UNIX (FreeBSD)
Last updated on Tuesday, January 8, 2013
  • 4 semaines
  • Moyen

Ce cours est visible gratuitement en ligne.

Got it!

Un UNIX, des UNIX.

UNIX est un système d'exploitation bien vivant et tout à fait actuel. Mais cela ne l'a pas empêché de souffler ses 40 bougies en 2009. Pour bien comprendre d'où il vient, on va donc commencer par un peu d'Histoire. Pas trop, je vous rassure. ;)

Retour en 1969...

A - Il était une fois...

Image utilisateur

Il était une fois, au Laboratoire Bell, une équipe de chercheurs sur le point de révolutionner l'informatique. A sa tête, Ken Thompson, à gauche sur la photo, l'inventeur du langage de programmation B, et Dennis Ritchie, au centre (ne me demandez pas qui est le type à droite ;) ). Cette équipe travaillait, avec d'autres, sur un système d'exploitation du nom de Multics, qui devait permettre à de multiples utilisateurs de travailler sur le même ordinateur. Il faut dire qu'à l'époque, un ordinateur remplissait une pièce entière et tout le monde n'avait pas le sien sur son bureau.

Multics était un ensemble de programmes très sophistiqués, donc chacun pouvait réaliser toutes sortes de tâches. Inversement, pour une tâche donnée, plusieurs programmes étaient susceptibles de la mener à bien et entraient donc en concurrence. Cette configuration déplut profondément à l'équipe du Laboratoire Bell, qui décida de repartir de zéro et de créer Unics : un OS dans lequel chaque tâche était prise en charge par un unique programme, qui ne faisait qu'une unique chose mais qui la faisait bien. L'orthographe Unics céda vite la place à UNIX.

Le code-source d'UNIX, sa recette de fabrication, fut d'abord écrit en Assembleur, un langage de programmation très bas niveau (proche du langage machine et très difficile à comprendre pour des êtres humains). Puis, à partir de 1971, Dennis Ritchie développa un nouveau langage, très largement inspiré du B : le C.

L'entreprise de téléphonie AT&T, propriétaire des laboratoires Bell, aurait bien voulu commercialiser un OS aussi brillant qu'UNIX. Cependant, certaines subtilités législatives américaines lui interdisaient de vendre des logiciels. Elle vendait donc le code-source d'UNIX, sa recette de fabrication, à des entreprises et des universités qui pouvaient le modifier selon leurs besoins avant de le compiler : de le transformer en programmes compréhensibles par des ordinateurs.

Le statut juridique de ce code-source, et la question de savoir si les universités et entreprises clientes avaient le droit de le redistribuer, était assez mal défini : il faudra attendre le début des années 90 pour qu'une série de procès clarifie la situation. On vit donc apparaître, à partir de 1977, plusieurs versions améliorées d'UNIX, et notamment :

  • BSD UNIX (Berkeley Software Distribution, 1977), distribuée gratuitement par l'Université de Californie Berkeley. Son principal développeur était un étudiant : Bill Joy.

  • Xenix (1980), oeuvre d'une petite entreprise américaine répondant au doux nom de... Microsoft.

  • Sun OS (1982), version payante de BSD UNIX vendue par Sun Microsystems, la société fondée par Bill Joy après ses études.

Image utilisateur

Puis, malgré les lois anti-trusts, AT&T parvint finalement à commercialiser, non pas l'UNIX original, mais une version dérivée : System III.

Mais alors, il y a combien d'UNIX différents ?

Il y en a beaucoup. UNIX n'est plus, aujourd'hui, un système d'exploitation unique. C'est toute une famille. Un peu comme pour Linux, qui a de nombreuses distributions. Voici une "généalogie" simplifiée des principaux systèmes UNIX :

Image utilisateur

La licence d'un logiciel est un document juridique indiquant ce que l'utilisateur a le droit de faire avec (et, bien souvent, ce qu'il n'a pas le droit de faire). Pour les UNIX modernes, trois cas peuvent se présenter :

  • Licence de type "propriétaire" : La société qui commercialise le logiciel en conserve la propriété, même après l'avoir vendu (eh oui, c'est très fort :p ). L'utilisateur n'achète en réalité que le droit de se servir du programme d'une certaine manière. En particulier, il ne peut ni consulter le code-source du logiciel, ni le modifier, ni le redistribuer, même à titre gratuit. Parfois, une partie du code-source peut tout de même être accessible (ex : Mac OS X et Solaris).

  • Licence BSD : Tout le contraire de la précédente. L'utilisateur peut faire ce qu'il veut du logiciel. Il peut consulter son code source, le modifier et le redistribuer sous la licence de son choix. Tout ce qu'on lui demande, c'est de citer l'auteur du logiciel original dans sa documentation.

  • Licence CDDL : C'est une licence libre de type copyleft (comme la licence GPL de Linux). Par rapport à la licence BSD, elle introduit une contrainte supplémentaire : si vous redistribuez une version modifiée du logiciel, vous devez employer la même licence. Les différences entre GPL et CDDL sont très techniques et je n'entrerai pas dans ces détails. Sachez cependant qu'elles sont incompatibles.

Vous trouvez le schéma ci-dessus trop compliqué ? Bon, alors, contentez-vous de retenir ça :

Image utilisateur

B - Qui sont les UNIX ?

La marque commerciale UNIX est déposée et appartient à l'Open Group : un consortium d'entreprises et d'organisations (ex : Oracle, Hitachi, Apple, HP, IBM, NASA, etc.) Pour pouvoir utiliser cette marque dans leur publicité, les OS doivent demander à ce groupe la Single UNIX Specification, une certification payante (et chère) fondée sur un ensemble de critères de ressemblance avec les autres UNIX.

Mais cette définition est toutefois restrictive et ne s'applique, en en fin de compte, qu'aux OS commercialisés par les entreprises membres de l'Open Group. Les autres OS du schéma ci-dessus sont tous dérivés d'UNIX et bénéficient tous de ses principaux avantages : il n'y a ni risque de plantage, ni risque de virus, ni vulnérabilité de l'OS en cas de bug dans une application ou de tentative d'intrusion. :pirate: Ils sont tous reconnus par l'ensemble des professionnels comme étant des UNIX à part entière. J'en ferai donc autant dans ce tutoriel.

Et Linux, alors ?

Les systèmes d'exploitation de type GNU/Linux (Ubuntu, Fedora, Debian, etc.) n'ont pas de lien historique avec UNIX. Le sigle GNU signifie d'ailleurs "GNU is Not UNIX". Ils ressemblent cependant beaucoup aux UNIX et ne sont pas loin d'être aussi performants qu'eux. Une différence importante, tout de même, concerne la stabilité : celle des Linux est très bonne mais peut être remise en cause par les applications exécutées lorsque celles-ci contiennent des bugs. Ces OS sont donc plus adaptés à des particuliers qu'à un usage professionnel en entreprise.

Aujourd'hui, les UNIX les plus utilisés sont :

Mac OS X : Le fameux système d'exploitation d'Apple est de loin le plus répandu. Pas tellement sur les serveurs, mais plutôt sur des ordinateurs de bureau : les fameux Macintoshs. Je n'en parlerai pas trop dans ce tutoriel car il est assez différent des autres : les outils traditionnels d'UNIX sont masqués derrière l'interface graphique et les outils d'Apple. Il mériterait un tutoriel à lui seul (et vous en trouverez plusieurs ici). De plus, les "Macs" sont des produits de luxe que tout le monde ne peut pas s'offrir.

Solaris : Développé pendant des années par Sun Microsystems et désormais par Oracle. C'est l'UNIX leader sur le marché des serveurs. Malgré sa licence propriétaire, il est téléchargeable gratuitement pour une utilisation non commerciale. Il a aussi un clone sous licence libre CDDL, maintenu par une communauté indépendante : OpenIndiana.

Image utilisateur

Solaris 11

FreeBSD : Un système d'exploitation libre, gratuit et de plus en plus utilisé. Il est particulièrement prisé pour héberger des sites web. Les serveurs du moteur de recherche Yahoo!, par exemple, emploient FreeBSD. Idem pour le site web d'Apache, qui s'y connaît en matière de service web.

Image utilisateur

AIX et HP-UX : Développés respectivement par IBM et Hewlett-Packard. Ce sont les plus anciens OS encore utilisés.

OpenBSD : Un système d'exploitation très... fermé. ;) Il soigne particulièrement ses pare-feu et cryptages et n'a pas son pareil pour transformer un ordinateur en coffre-fort.

NetBSD : Le seul OS capable de préparer votre petit-déjeuner. Ce contorsionniste s'adapte à toutes les architectures matérielles possibles et imaginables, depuis les ordinateurs de la Station spatiale internationale jusqu'aux téléphones portables en passant par le périphérique Time Capsule d'Apple. Même les grille-pain ne lui font pas peur. :D

IRIX : Beaucoup d'entreprises l'utilisent encore, bien qu'il ne soit plus développé depuis 2007.

QNX : Un UNIX "temps réel" basé sur un micro-noyau et destiné aux systèmes embarqués.

Mais alors, lequel va-t-on étudier ?

Sachez d'abord que les UNIX se ressemblent tout de même beaucoup les uns aux autres. L'Open Group y veille. Leur parenté ne se limite pas à ce que montre le schéma ci-dessus. Ils s'échangent régulièrement du code et les nouveautés intéressantes développées sur l'un sont vite reprises par les autres. Une fois que vous en connaîtrez un, vous n'aurez pas de mal à en découvrir un autre.

Puisqu'il faut bien commencer quelque part, je vais vous apprendre à utiliser FreeBSD.

Pourquoi FreeBSD ?

  • D'abord parce que c'est celui-là que j'utilise moi-même. Autant que je vous parle de ce que je connais le mieux. Mais ce n'est pas la seule raison.

  • C'est un UNIX très populaire, avec une importante communauté :) disponible pour vous aider sur ses forums en cas de problème.

  • Il est libre et gratuit. Vous n'aurez donc rien à débourser pour suivre ce tutoriel.

  • C'est l'un des plus difficiles à prendre en mains (pas trop quand même, surtout avec un bon tutoriel comme celui-ci ;) ). Il est donc plus facile de passer de FreeBSD à Solaris que l'inverse.

Difficile ? Ce n'est pas pour moi, alors...

Pas de panique ! J'ai une bonne nouvelle pour vous : il existe aussi une version facile de FreeBSD, déjà toute pré-configurée et utilisable immédiatement sur votre ordinateur personnel, avec bureau graphique et tout et tout... Elle s'appelle PC-BSD.

Voici donc notre programme :

  • Dans le prochain chapitre, je vais vous montrer comment préparer votre ordinateur à accueillir UNIX sans perdre votre système d'exploitation actuel.

  • Dans la Partie 2, nous installerons PC-BSD. Puis je vous présenterai ce système, ses outils graphiques, et tout ce qu'on peut faire avec.

  • Dans les Parties 3, 4 et 5, nous passerons aux choses sérieuses : pour apprendre les commandes d'UNIX et bien comprendre son fonctionnement, nous repartirons de zéro, avec le FreeBSD "classique", à monter soi-même à la main. Si vous aimez les légos et autres meccanos, si vous préférez faire la cuisine vous-même plutôt que réchauffer des surgelés, alors vous allez vous régaler.

  • Enfin, dans la Partie 6, je vous parlerai des scripts UNIX, à écrire en (t)csh ou en ksh pour automatiser certaines opérations ou créer vos propres commandes. Vous ne pourrez bientôt plus vous en passer.

C - La mascotte

Avant d'entrer dans le vif du sujet, je dois vous présenter quelqu'un :

Image utilisateur

En Anglais, BSD se prononce « Bisdi ». Voici donc « Beastie ». Beastie est un sympathique démon :diable: , et c'est là encore un jeu de mot avec un DAEMON (Disk And Execution MONitor), c'est à dire un programme informatique s'exécutant en arrière-plan, sans que l'utilisateur y ait directement accès. Vous avez remarqué ses baskets ? Eh oui, Beastie a beau être un démon, c'est d'abord un Californien. ;)

Voici une petite anecdote sur Beastie et les malentendus qu'il a parfois provoqués. Elle est tirée du livre de Greg Lehey, The Complete FreeBSD, que je recommande à tous les anglicistes qui voudront approfondir leurs connaissances sur FreeBSD après avoir lu ce tutoriel : Linda Branagan, spécialiste en DAEMONs, fut un jour abordée dans un restaurant texan par deux locaux, alors qu'elle portait un T-shirt à l'effigie de Beastie. J'ai un peu abrégé :

  • Pardon, madame. Etes-vous sataniste ?

  • Non, certainement pas.

  • Vous voyez, nous nous demandions pourquoi vous portez le seigneur des ténèbres :diable: sur votre poitrine. Nous n'apprécions pas que des gens montrent des images du diable, surtout avec un visage si amical. :)

  • Oh... mais, ce n'est pas vraiment le diable. C'est juste, euh, une sorte de mascotte.

  • Et quel genre d'équipe de football a le diable pour mascotte ?

  • Oh, ce n'est pas une équipe, c'est un système d'ex... euh, :euh: un genre d'ordinateur.

  • D'où viennent ces ordinateurs sataniques ? :colere2:

  • De Californie. Et ils n'ont rien de satanique.

  • Madame, je pense que vous mentez. Et nous apprécierions que vous quittiez cet endroit, maintenant. :colere:

  • Crois-tu que la police est au courant pour ces ordinateurs diaboliques ?

  • S'il viennent de Californie, le FBI doit en être informé.

  • Vous donnez à tout ceci des proportions très exagérées. :( Des tas de gens utilisent ce « genre d'ordinateur » : des universités, des chercheurs, des entreprises. Il est très utile.

  • Est-ce que le gouvernement utilise ces ordinateurs diaboliques ? :colere2:

  • Oui.

  • Et est-ce qu'il paie pour eux ? Avec nos impôts ? :pirate:

Tandis que les deux autres l'escortent vers la sortie, Linda Branagan décide alors d'arrêter les frais : Non. Pas du tout. Vos impôts n'ont rien à voir là-dedans. Les gens du Congrès sont de bons chrétiens :ange: et ne laisseraient jamais faire une chose pareille !

Ouf ! Heureusement que FreeBSD est gratuit.

D - Où trouver de l'aide ?

Si vous décidez d'utiliser UNIX au quotidien, vous allez certainement finir, comme avec n'importe quel OS, par rencontrer tel ou tel problème dont la solution ne figure pas dans ce tutoriel. Heureusement, les endroits où vous pourrez trouver de l'aide ne manquent pas. Voyez plutôt :

La doc'

Le premier document à consulter est bien sûr le manuel officiel de votre UNIX. Voici celui de FreeBSD. Les pages man sont également très utiles. Pour les courageux, vous pouvez carrément télécharger le livre The Complete FreeBSD dont je vous ai parlé un peu plus haut. Il est en Anglais.

Les forums

Vous trouverez de l'aide sur ces forums. Les trois derniers sont en Français. Les autres sont anglophones mais comportent parfois une section francophone (moins fournie, bien sûr).

Forum officiel Solaris

DaemonForums : pour les BSD.

Forum BSDnexus : pour Mac OS X et les BSD.

Forum officiel FreeBSD

Forum officiel PC-BSD

Forum FUG-FR : pour les BSD (surtout FreeBSD).

Forum UNIX de developpez.com : pour AIX, Solaris et les BSD.

et bien sûr :

Forum Linux et *BSD du Site du Zéro : pour Linux et les BSD.

Image utilisateur
Les canaux IRC

À l'aide d'un logiciel de chat IRC, connectez-vous au réseau FreeNode puis à l'un de ces canaux, en fonction de l'UNIX que vous utilisez :

#aix, #bsd, #freebsd, #freebsd-fr, #freebsd-gecko, #freebsd-gnome, #freebsd-python, #haskell-FreeBSD, #hpux, #illumos (pour OpenIndiana et NexentaStor), #kde4-solaris, #netbsd, #nexenta, #nexentastor, #openbsd, #openbsd.fr, #openindiana, #opensolaris, #opensolaris-fr, #pcbsd, #solaris, #unix, #unixlove, #xorg

Magazine

BSD Mag :http://bsdmag.org/

Support commercial

Les entreprises peuvent vouloir s'abonner à un support commercial. Elles sont ainsi certaines de toujours obtenir une réponse à leurs problèmes, étant donné qu'elles ont payé pour, ce qui est toujours sécurisant.

Oracle, IBM, HP, SCO et quelques autres vendent des serveurs accompagnés de leurs UNIX propriétaires respectifs, et proposent à leurs clients ce type de service après-vente. Pour FreeBSD, il est possible de souscrire un support commercial auprès d'iXsystems, une entreprise de type employee-owned company, qui vend des serveurs FreeBSD, participe au développement de cet OS et sponsorise le projet PC-BSD. Notez que ce support est également possible si vous utilisez FreeBSD sur un PC et que vous n'avez pas besoin d'avoir acheté vos machines auprès d'iXsystems.

Image utilisateur
Les sites officiels

L'Open Group :http://www.unix.org/

AIX :http://www-03.ibm.com/systems/power/so [...] ix/index.html

DragonFlyBSD :http://www.dragonflybsd.org/

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

FreeNAS :http://freenas.org

HP-UX :http://h71028.www7.hp.com/enterprise/u [...] e/tsg/go_hpux

IRIX :http://www.sgi.com/products/software/irix/

Mac OS X :http://www.apple.com/macosx/

NetBSD :http://www.netbsd.org/

NexentaStor :http://www.nexentastor.org/

OpenBSD :http://www.openbsd.org/fr/index.html

OpenIndiana :http://openindiana.org/

OpenServer :http://www.sco.com/products/openserver6/

OpenSolaris :http://hub.opensolaris.org/bin/view/Main/

PC-BSD :http://pcbsd.org/

QNX :http://www.qnx.com/

Solaris :http://www.oracle.com/us/products/serv [...] rage/solaris/

Tru64 UNIX :http://h30097.www3.hp.com/

Autres sites intéressants (surtout pour FreeBSD)

Unix Guru Universe :http://www.ugu.com/sui/ugu/warp.ugu

Diablotins.org :http://diablotins.org/index.php/Accueil

FreeBSD diary :http://www.freebsddiary.org/

FUG-fr :http://www.fug-fr.org/

FreshPorts :http://www.freshports.org/

How-to et FAQs (FreeBSD) :http://forums.freebsd.org/forumdisplay.php?f=39

How-to (Solaris) :http://www.oracle.com/technetwork/serv [...] o-517481.html

aisecure.net :http://www.aisecure.net/

BSD News Network : http://bsdnews.net/

FreeBSD News : http://www.freebsdnews.net/

FreeBSD Foundation : http://www.freebsdfoundation.org/

BSDFreak : http://bsdfreak.org/

AboutBSD : http://aboutbsd.net/

BSD Guides : http://www.bsdguides.org/guides/

O'Reilly BSD Devcenter : http://onlamp.com/bsd/

Plus de liens

Sorte d'annuaire avec beaucoup d'autres liens pour tous les UNIX : http://www.dmoz.org/Computers/Software [...] Systems/Unix/

Image utilisateur

Prêts pour l'aventure ? Alors, c'est parti...

Pour les (déjà) fans d'UNIX, voici quelques documents historiques :

  • Le code-source commenté du noyau du premier UNIX (en Assembleur).

  • Vidéo de présentation d'UNIX par Ken Thompson et Dennis Ritchie.

  • Vidéo montrant le démarrage d'un PC avec l'UNIX d'AT&T.

  • Publicité d'époque pour le même PC.

Example of certificate of achievement
Example of certificate of achievement