Cyrille DUNANT
Emmanuel ECKARD
EF: pour l'instant, ce sont des linuxiens qui mènent la danse.
ST: J'ai appris qu'il était question de mettre la gestion du système solaire sous Linux, c'est Dieu qui va etre content.
-- ST in Guide du linuxien pervers : « Linux : les affres de la création »
Ce document constitue un projet STS (Sciences, Technique et Société) présenté
par Cyrille DUNANT et Emmanuel
ECKARD. Au terme des dispositions de l'EPFL concernant les projets STS
réalisés dans le cadre d'une association,
ce travail est également placé sous la license GNU FDL (Free Documentation
License).
Les logiciels libres évoluant à grande vitesse, nous attirons l'attention du lecteur sur le fait que nos affirmations sont en principe vraies au moment où nous publions ce rapport ; il se peut que certaines deviennent rapidement fausse ou inexactes.
Mais il est également écrit dans le cadre de GNU Generation, l'association d'étudiants de l'EPFL pour la promotion des logiciels libres. Dans cette idée, il est supposé pouvoir servir d'introduction à UNIX pour les débutants.
Il ne s'agit pas pour nous d'écrire un livre technique, il y en a quantité disponibles, et le nôtre n'apporterait rien. Notre idée est de tenter d'offrir aux débutants un arrière-plan de «culture de base» de UNIX ; nous avons en effet remarqué que l'effet de dépaysement qu'éprouvent les gens qui découvrent UNIX peut être atténué si l'on n'explique pas seulement des détails techniques, mais également les raisons pour lesquelles les choses sont comme elles sont.
Nous proposons donc une brève histoire de GNU, de UNIX, de Linux ; quelques explications techniques très générales sur la conception du système ; quelques indices sur les caractéristiques de la communauté qui s'est consituée autour de Linux -- communauté qu'il faudra bien fréquenter, et dont il est donc utile de connaître un peu les codes. Et enfin, en appendice, un petit guide des utilitaires Linux -- pour qui ne s'y retrouverait pas après avoir utilisé d'autres systèmes -- et un résumé de quelques commandes, complété par un lexique.
Nous espérons que la lecture de ce livret vous sera agréable, et qu'elle vous rendra plus douce la découverte d'UNIX et Linux.
-- Cyrille DUNANT et Emmanuel ECKARD
Un detail, je suis sur Unix... Redemarrer un systeme Unix fait generalement apparaitre dans mon bureau entre 1 et 3 ingenieurs systeme a l'humeur agressive voire violente.
-- VS in Guide du linuxien pervers - « De l'art de faire apparaître des IS »
Vers la fin des années 1960, les ordinateurs se répandaient dans les
universités et les centres de recherches, de sorte que le besoin d'un système
d'exploitation efficace se faisait de plus en plus pressant. Un vaste projet fut
donc lancé par AT&T, General Electrics et le MIT (Massachusetts Institute
of Technology) pour développer le nouveau système. L'une des avancées
prévue eût été de passer du mode client, où un
opérateur derrière un guichet prenait vos cartes et les introduisait lui-même
dans la machine, à un mode multi-utilisateurs,
où plusieurs utilisateurs peuvent communiquer simultanément avec l'ordinateur
central par l'intermédiaire
d'une console.
Le système, baptisé Multics, gagna très
vite en complexité, à tel point qu'il devint de plus en plus difficile à gérer
et que son développement s'éternisait. Le travail s'enlisant, le projet fut
abandonné en 1969.
Ken Thompson, des laboratoires
Bell,
avait travaillé sur
Multics ; il rêvait d'un système qui puisse servir à
toute une équipe de
recherche en informatique programmant simultanément.
Thompson résolut de s'éloigner totalement des concepts
de systèmes
d'exploitation de l'époque ; son système devrait répondre aux
critères suivants:
Contrairement à Multics, dont la complexité avait causé la perte 1.1 , le nouveau système devait être composé de «briques élémentaires» aussi simples que possible, la complexité venant de la combinaison des éléments. Pour bien marquer le changement d'esprit par rapport à Multics, on appela le nouveau système UNIX 1.2.
Afin que son idée passe la barrière des
managers, Thompson présenta son projet comme un outil
de préparation de
documents pour l'organisation de brevets des laboratoires
Bell. Effectivement,
l'office des brevets fut doté d'une version préliminaire
d'UNIX en 1971.
Ainsi, dès ses balbutiements, UNIX faisait ses points forts
de deux domaines
très différents : la programmation et le traitement de texte.
À la longue, il
s'est avéré que le traitement de texte est vital pour presque
tous les domaines, y
compris la programmation.
En 1973, UNIX fut entièrement réécrit en C par
Dennis Ritchie, qui avait développé ce nouveau language
précisement pour le
travail sur UNIX. C est un langage de moyen niveau (il est
très proche du
matériel), apte à tous les usages, et adaptable à un grand
nombre
d'architectures d'ordinateurs (portable). Le portage
de UNIX en C le
délivrait ainsi des machines sur lesquelles il avait été
développé (les PDP-7
qui commençaient à se faire vieilles).
Le premier portage vers un autre
ordinateur fut effectué en
1976, lorsque Ritchie et Stephen Johnson traduisirent UNIX
pour le Interdata
8/32. Progressivement, d'autres architectures populaires
furent adoptées: les
Zilog Z-80 et Z-8000, les Motorolla MC68000, 68010 et 68020,
les Intel
8086/8088, 80286 et 80386, et aussi les gros systèmes comme
l' IBM S/370, l'Amdahl 470 et le célèbre Cray-II.
Le monde académique adopta bientôt UNIX avec un immense
enthousiame, quoique
l'industrie le regardât encore avec septicisme. Mais la
sortie de UNIX
version 7 en 1978 et de System III en 1982 assirent la
diffusion de UNIX dans
les milieux industriels.
L'Université de Californie, à Berkeley, mena de grands
travaux pour étendre
UNIX, mais comme le nom était protégé, la nouvelle version
fut appelée
BSD, Berkeley Software Distribution
1.3; de façon
similaire, les grands constructeurs d'ordinateurs se
heurtèrent au nom protégé
de UNIX lorsqu'il voulurent le modifier à leur usage, d'où
la pléthore noms de
versions que l'on trouve aujourd'hui encore (comme
DG/UX de Data
General, HP/UX de Hewlett Packard,
UTS de Amdhal,
etc. ). Cette tendance compliqua les choses, car les
différentes versions
s'éloignaient les unes des autres, de sorte qu'un programme
écrit pour une
version devait être modifié avant de tourner sur une
autre.
At&T fit alors un effort de standardisation, avec la parution du System V et de sa documentation, qui définissaient un UNIX «canonique». En réaction à l'attitude de AT&T, certaines entreprises se regroupèrent pour développer un produit qui respecterait les standards UNIX, mais serait libre des licenses de AT&T: ce fut là la naissance de OSF/1 (pour Open Software Foundation1.4). Ainsi l'on vit s'opposer deux écoles : ceux qui prônaient l'OSF/1, et les tenants du System V.
La généralisation des PC sous MS-Windows
1.5 (et accessoirement des
Macintosh) faisait que les gens arrivant dans l'industrie ou dans de grandes
universités considéraient les machines UNIX comme des vestiges du passé,
impression renforcée par la gêne que les utilisateurs de PCs éprouvaient au
contact de UNIX : ceux qui n'étaient plus habitués à la console la considéraient
comme une obsolescence comparable à MS-DOS et ceux qui avaient encore quelques
notions de MS-DOS ne se sentaient guère plus à l'aise, les commandes étant
différentes sous MS-DOS et sous UNIX (le fameux reflexe de taper dir
dans la console au lieu de ls); de sorte que ces personnes, attribuant
les problèmes au système, au meilleur des cas évitaient autant que
possible les machines UNIX (se coupant ainsi de toute chance d'apprendre), et
au pire, faisaient
remplacer de splendides installations par des machines bien
moins performantes,
mais dont ils avaient plus l'habitude.
C'est souple, élégant, maniable ... l'arme noble d'une époque civilisée.
-- Obi-Wan Kenobi 1.6
Les «derniers bastions» de UNIX restaient les domaines d'où UNIX
était issu: les grands centres de recherche et les milieux académiques, et les
grands serveurs (bien que ce domaine semblât - à l'époque - lui aussi
menacé à moyen terme par les serveurs Windows NT). Là, des sociétés telles que
Sun Microsystems, IBM et Hewlett Packard restaient pour le moment capable
d'assurer la relève. Mais dans ces domaines même, l'avenir à long terme était
sombre: les universités remplaçaient leurs stations de travail UNIX par des PC
de bureaux, bien moins onéreux; d'autre part, les éditeurs proposaient de plus
en plus de logiciels scientifiques pour MS-Windows, et les offres d'emploi
exigeant régulièrement la connaissance des systèmes et applications Microsoft,
personne n'était prêt à se faire mettre «sur la touche» en négligeant
d'apprendre ces logiciels.
Ainsi, dans le début des années 1990, le PC sous Windows était-il considéré
comme l'incarnation d'un avenir radieux et moderne, tandis qu'UNIX tombait
dans l'oubli comme vestige du passé 1.7.
Deux forces présidèrent au retour de la gloire d'UNIX : le projet GNU,
allié au kernel Linux 1.8, et la mise en lumière des faiblesses des systèmes
propriétaires,
particulièrement grâce à l'avénement des grands réseaux et de
leur interconnexion dans Internet.
La constitution d'Internet remonte aux années 70, avec les efforts de l'armée
américaine pour connecter entre eux les réseaux informatiques des centres de
recherche 1.9 avec des connections
haut débit : de la même façon qu'un réseau local met en relation
les ordinateurs dans un espace défini (une université, une base militaire),
Internet met
les réseaux locaux en réseau, ce qui permet à un ordinateur de
l'EPFL de communiquer avec un ordinateur en Australie. Vers 1990, le CERN mit
au
point le standard (libre) HTML et le World Wide Web, pour le partage des
données - des données scientifiques, s'entend; il n'était pas encore question
de
saturer les lignes avec des photos de caniches ou des sélections d'anatomie
humaine.
Au bout de quelques années, le public commença à s'intéresser à Internet, et il
fut autorisé à utiliser le réseau dans des buts commerciaux
- ce qui était jusque-là rigoureusement interdit. En quelques mois,
Internet devint un «must», et les utilisateurs de PC se heurtèrent à
la stratégie de développement de Microsoft : considérant Internet comme un
phénomène
négligeable, il y avait été décidé d'ignorer superbement le mouvement,
ceci
jusqu'au moment où la faiblesse des fonctions réseaux de Windows 3.11 for
workgroups et la
montée de Netscape devinrent dérangeantes. On assista alors à un
spectaculaire virage à 180 degrés du géant, qui inclut même un navigateur
Internet dans son système suivant, le fameux (à différents titres) Windows 95
«avec Internet Explorer» 1.10.
Le contact généralisé du public avec Internet permit de sensibiliser les
utilisateurs aux problèmes de sécurité des réseaux et de fiabilité des
systèmes, questions qui étaient jusque-là la chasse gardée des grands systèmes.
En effet, la mise en réseau d'un grand nombre de postes Windows
mono-utilisateurs, non sûrs (pas d'autorisation en écriture des fichiers,
faiblesse du cryptage des mots de passe), dotés des mêmes logiciels
(Internet Explorer, MS-Outlook, ...) affligés de grossiers
trous de sécurité et de réglages par défauts très permissifs, permit à
quelques virus et vers célèbres de faire des dégâts considérables, et à
quelques crackers 1.11 de réaliser des coups d'éclats 1.12. On vit alors le public supposer qu'il est fatal
et inévitable que le quart des ordinateurs de la planête puissent être infectés
par un script Visual Basic très élémentaire écrit par un adolescent 1.13 -- attitude renforcée
par la publicité de Microsoft, qui ne voulait pas être forcé de repenser toute
sa gamme de produits, et par les éditeurs d'«anti-virus» qui, naturellement,
se frottaient les mains. L'image de marque de Microsoft auprès du public pâtit
grandement de ces faiblesses, mais la société de Redmond restait un «mal
nécessaire», faute d'alternative.
Les entreprises, entrainées dans la commercialisation d'Internet, craignaient
aussi les virus et les crackers, plus encore que le public ; elles
étaient aussi confrontées
à la mise en place de serveurs pour publier leurs sites sur le réseau: il
fallait des ordinateurs qui puissent tourner 24 heures sur 24, 7 jours sur 7,
en supportant les requêtes de nombreux clients; or, Microsoft proposait des
systèmes de serveurs très coûteux, qui se faisaient régulièrement attaquer avec
succès par les pirates, et qui, du propre aveu de Microsoft, restaient en ligne
«99,9 % du temps» 1.14. Les entreprises payaient ainsi très cher des serveurs très
fragiles et vulnérables, qu'il fallait donc doubler ou tripler, et sur
lesquels des
équipes de maintenance devaient pouvoir intervenir à tout moment. Pour
couronner le tout, la politique de licenses de Microsoft mettait les
entreprises à la merci d'un
changement de version de Windows, ou même de versions
bridées (par exemple, la
version «serveur» de Windows NT permet plus de
dix connections,
contrairement à la version «station de travail», mais coûte quatre
fois plus cher ; les deux versions ne diffèrent l'une de l'autre que de
quelques bits). Le Réseau impose d'énormes contraintes, et
en dernière analyse, seule la qualité technique des systèmes compte ;
aussi les entreprises qui en avaient les moyens étaient-elles incitées
à chercher les alternatives des grands constructeurs - IBM, HP, etc. -
sous UNIX.
En 1990, Linus Torwalds publiait son noyau Linux et la jonction avec les
nombreuses applications du projet GNU de Richard Stallman était opérée en
quelques semaines, donnant naissance à un système UNIX totalement libre. Dans
le même temps, le système BSD, lui aussi libre, atteignait une belle maturité.
Quelques années plus tard, alors que les entreprises et les
organes gouvernementaux cherchèrent des alternatives aux serveurs Microsoft,
ces
systèmes s'imposèrent en force : libres, au sens où leur code
source est librement lisible et modifiable, ces systèmes sont
corrigés en permanence (voir l'affaire du « Ping de la Mort », section
F.2.7 , page
), ce qui leur assure une grande qualité, et
une correction
rapide des bugs ou des failles de sécurité. Contrairement au
système Windows, où l'administrateur passe sa vie à courir pour patcher son
serveur avant qu'il ne succombe à une attaque 1.15 (dans l'hypothèse où Microsoft fournit un patch, ce qui est loin
d'être
évident !), là, le système reconnait tous les logiciels installés comme des
«paquetages» , qu'il peut mettre à jour lui-même automatiquement ; les sites
officiels
fournissent régulièrement les mises à jour (libres elles
aussi) signées de cryptographiquement, de façon à ce qu'une imposture soit
exclue (si un malveillant
parvenait à introduire un paquetage sur le serveur
officiel, celui-ci ne serait pas distribué faute d'être signé de manière
adéquate) ; de
sorte que l'administrateur Linux prend connaissance d'une nouvelle
faille de sécurité en voyant qu'elle a été corrigée par le système pendant la
nuit.
Au cours des années qui suivirent, des sociétés comme IBM commencèrent à
proposer leurs lignes
de grands serveurs tournant traditionellement sous leur UNIX propriétaire avec
Linux. Des
entreprises aidaient à propager Linux, se finançant par la
vente de disques, de livres, de support aux utilisateurs ou de cours aux
administrateurs.
Très vite, la bonne réputation technique de Linux, système stable, invulnérable
aux virus, présent sur de nombreux types d'ordinateurs, et puissament servi par
les logiciels GNU, lui permit de conquérir les c
urs d'utilisateurs
motivés,
en dehors du cercle des «premiers fidèles» : des «transfuges de Windows»
commencaient à «passer à Linux» 1.16, attirés par la liberté d'échanger les logiciels, par leur qualité et la
facilité pour les trouver et les installer de façon correcte (combien
d'heures sur les sites «warez» sordides pour trouver une version pirate d'un
jeu
à la mode qui se révélera buggée ou infectée ...), et par les avantages
inhérants au système dans ses points forts: programmation, traitement de texte
LATEX, ...
De plus, une distribution Linux contient plusieurs milliers d'applications
libres,
et c'est un système complet qui est installé 1.17, gratuit et
libre.
Ainsi, au début 2002, UNIX, réincarné en Linux, a non seulement reconquis une bonne part du marché des serveurs et des ordinateurs de calcul (cinéma, météorologie ), mais est aussi en passe d'arriver en force sur les ordinateurs de bureau 1.18.
L'essor de Linux fait l'objet d'un chapitre spécifique (voir
Chapitre
3, page
) ; pour
conclure
cette modeste revue de l'histoire d'UNIX, on notera tout de
même qu'avec Linux,
UNIX s'est lancé à la conquête de l'ordinateur de bureau,
de
l'ordinateur comme machine de jeux, du téléphone portable, de
l'organisateur de poche, et
même de nombreux gadgets comme des montres et des lecteurs multimédias.
Quant aux domaines naturels des UNIX, comme le calcul massif, les domaines
scientifiques, les serveurs, l'espace, et autres, Linux et
BSD confirment la suprématie du système de Thompson et Richtie, tout en faisant
briller les principes de libre expression des idées et de
liberté.
Lorqu'en 1971 Richard Stallman débuta sa carrière au MIT,
l'informatique était un domaine de recherche scientifique ; de la même
manière que les mathématique ou la physique sont ouvertes et libres - il
serait inconcevable qu'un matématicien brevette le théorème de Pythagore et
exige des royalties pour chacune de ses utilisations
- , l'informatique était à l'époque un domaine dans lequel les chercheurs
partageaient leurs découvertes, avec comme idéal l'avancée de la Science en
général. On pouvait librement consulter les codes sources des programmes, qui
étaient de la sorte constamment améliorés (voir section F.2.7). Stallman
lui-même travaillait comme ingénieur système au laboratoire d'Intelligence
Artificielle, domaine éminemment académique et scientifique : le but est la
connaissance pure pour le bien de l'humanité, et non d'éventuelles applications
commerciales immédiates.
Un jour, le laboratoire d'IA du MIT reçut une imprimante laser Xerox. A cette
époque, les imprimantes laser représentaient une révolution, tant du point de
vue de la qualité de l'impression que de la vitesse ; toutefois, ces imprimantes
n'étaient pas toujours très fiables, et il arrivait assez régulièrement qu'elles
se bloquassent. L'ancienne imprimante était affligée du même défaut ; aussi, les
programmeurs du MIT avaient-ils pris le code qui pilotait l'imprimante et
l'avaient modifié de façon à ce que l'imprimante envoie un
message de détresse lorsqu'elle tombait en panne ; si elle
s'enrayait, on voyait arriver des gens qualifiés pour la débloquer dans les
instants qui suivaient. Tout naturellement, Stallman voulut implémenter la même
fonction
pour la nouvelle imprimante, mais le code source du logiciel de l'imprimante
n'était pas disponible. Stallman savait qu'un chercheur de Carnegie
Mellon avait ce code, aussi alla-t-il en personne le lui demander. Or ce code
était un secret commercial de Xerox, et le chercheur avait signé un accord
de non-divulgation - il refusa à Stallman l'accès au code.
Refuser l'accès au code allait à l'encontre de tout ce en quoi croyait
Stallman,
et il en fut profondément et durablement impressionné. Dès lors, il combattit
l'utilisation des programmes dont les licenses interdisaient l'accès au code ;
mais ce type de license devenait de plus en plus répandu,
si bien que ce combat d'arrière-garde était voué à l'echec.
Stallman décida alors de se lancer lui-même dans l'écriture d'un système complet
et libre, suivant en cela le moto des geeks les plus
prestigieux : «si vous en avez envie, créez-le
vous-mêmes». De crainte que son travail ne puisse être revendiqué par le MIT
- et
peut-être placé sous license, auquel cas le travail aurait été fait en vain -
,
Stallman démissionna de son poste de chercheur. L'université lui laissa
toutefois l'accès aux ordinateurs, ce qui facilita le début du travail.
Virtuose du LISP 2.1 Stallman se lança à plein temps dans son projet, en commencant par réécrire
l'éditeur Emacs. À ce stade, il devenait urgent de trouver une source de
revenu
pour subsister.
Dès sa sortie, Emacs connut une grande popularité ; un grand nombre d'ordinateurs
n'ayant alors pas accès au réseau, il arrivait que l'on demandât Emacs sur
support magnétique - des bandes, à l'époque. Stallman décida de mettre à
profit cette source de revenus possible, et se mit à
fournir des copies de Emacs, moneyant 150 dollars. Il est important de
souligner
à quel point cette démarche n'a rien à voir avec le commerce habituel du
logiciel : lorsque l'on achète un logiciel, il est bien entendu que l'on aura
pas
le droit de copier le logiciel, que l'on ne pourra pas le distribuer, que l'on
n'aura pas accès au code et que les tentatives pour décompiler le programme
sont interdites. Avec Emacs, on n'achetait pas le programme lui-même,
mais
le service que Stallman rendait en copiant et en envoyant la bande;
après tout, vous étiez libre de télécharger le programme sur le réseau, ou de
demander à un ami de vous faire une copie. Simplement, payer les 150 dollars
permettait à Stallman de continuer son
uvre, et la plupart des gens qui le
pouvaient jouèrent le jeu.
A cette époque, les versions commerciales de UNIX
florissaient, et il devenait courant de les voir munies d'interfaces
graphiques. Les
éditeurs de logiciels commencèrent à mettre au point leurs couches graphiques,
mais elles devaient faire concurence à un système libre, XFree. XFree était un
logiciel libre dont le seul but était de devenir le standard de facto ;
sa license était donc des plus permissives, et en effet, on vit bientôt les
grands éditeurs renoncer à leurs versions propriéaires pour adopter XFree.
Mais en réalité, les versions commerciales de UNIX se bornaient à récupérer le
code de XFree, à l'adapter au passage si nécessaire, puis à fournir une
boite noire fermée qui comportait certes les fonctionnalités de XFree, mais pas
son code. Ainsi la version originale, libre, de XFree avait-elle engendré des
batards propriétaires, et le progrès était ainsi perdu dès la
deuxième génération.
Pour éviter qu'un tel lot n'échût à ses programmes, Stallman décida de poser
une clause restrictive à sa license : les droits de copies,
d'accès au code et de modification seraient garantis, mais les versions
suivantes devraient obligatoirement garantir les mêmes droits. Ainsi, il
était impossible de faire avec Emacs ce qui était arrivé à XFree. Et de fait,
Emacs devint vite un must de toute distribution UNIX, même commerciale,
sans qu'il y ait jamais de version fermée.
Stallman donna à sa license le nom humoristique de «gauche d'auteur»
(copyleft) 2.2 ; avec les conseils
d'avocats, il l'officialisa sous le nom de GNU Public
License - la fameuse GPL.
La GPL existe en plusieurs versions : il existe une GPL
spécifique pour la documentation - elle s'applique par exemple au document
que vous avez à cet instant dans les mains -, une pour les librairies -
plus légère, cette license permet d'utiliser une librairie GNU dans le cadre
d'un projet propriétaire - et même une pour la musique (qui a dit que
«télécharger de la musique sur Internet est illégal» ?).
Stallman décida de créer une fondation qui permettrait de centraliser le
travail, de défendre juridiquement les logiciels libres
contre d'éventuelles violations de la GPL - il devait d'ailleurs en survenir
! - et d'engager des programmateurs à plein temps. Cette fondation, la FSF
(Free Software Foundation) reprit bientôt à son compte le service de
duplication des bandes magnétiques -- Stallman gagna alors son pain en
proposant
de modifier ses logiciels en suivant les désirs des clients qui seraient
plus facilement prêts à payer qu'à mettre eux-mêmes la main à la pâte.
Au fil des années, la FSF implémentait les différentes composantes d'un vaste et
puissant systèmes UNIX ; bon nombres de ces composantes
étaient reprises dans des versions commerciales d'UNIX (tels Solaris ou plus
récemment MacOS X). Mais une composante essentielle restait manquante : le
noyau du
système d'exploitation. Stallman dira plus tard que tout le système
étant à écrire, il n'y avait pas de raison de commencer par telle ou telle
composante plutôt qu'une autre ; en fait, beaucoup des composantes
essentielles et très complexes étaient bien implémentées, mais le noyau
résistait à cause
d'un parti pris technique : il existait un micro-noyau libre, Mach, qui
était déjà fonctionnel ; la FSF décida de reprendre Mach et de construire les
autre modules qui en feraient un noyau complet, le système Hurd (la
«horde» de modules travaillant ensemble, comme une horde de gnous).
Malheureusement, il s'avéra que si, en principe, l'architecture en micro-noyau
est
plus moderne et plus efficace, elle est en revanche beaucoup plus compliquée à
mettre en place qu'un noyau monolitique : même si les modules,
individuellement,
sont plus simples que le noyau monolithique, leur communication les uns avec
les autres
est, elle, d'une grande complexité 2.3.
C'est
pourquoi le travail avec Hurd piétinait, et qu'en 1990, l'avénement du
système d'exploitation entièrement GNU tardait encore.
C'est alors que du fin fond de la Finlande - et de la liste de diffusion
comp.os.minix - arriva la nouvelle de la création
de Linux, un noyau un peu brouillon, monolithique, mais qui tournait,
vaille que vaille. Linux avait à l'origine une license libre assez restrictive
- il était interdit de l'utiliser dans un but commercial, ce qui
limitait pratiquement sa diffusion au milieu académique -, mais très vite,
Linus
Torvalds décida de le mettre sous license GPL 2.4; à partir de ce moment, il était
légalement possible de connecter le noyau Linux avec toutes
les autres composantes du système GNU, ce qui fut fait en quelques
semaines. C'est ainsi que naquit le premier système d'exploitation entièrement
GPL - quoique non entièrement GNU.
Dès lors, la FSF contribua à la montée de Linux, tout en continuant lentement à développer le noyau Hurd. La FSF continue encore aujourd'hui à être le garant et le défenseur de la liberté du système GNU (même si dans certains cas les critiques de Stallman font penser à des disputes de groupuscules trotskistes - voir l'affaire GNOME, où, ses demandes étant totalement exaucées, Stallman ira jusqu'à exiger des excuses des développeurs de KDE). Récemment, la FSF a commencé à sortir des versions de test du noyau Hurd, et l'on peut espérer que bientôt un système totalement GNU verra le jour 2.5, ajoutant encore à la richesse et à la diversité des systèmes libres.
Le nom Linux strictement parlant
désigne le noyau du système d'exploitation utilisable notamment avec le système
GNU. Pour plus de concision nous utiliserons parfois le terme Linux
pour désigner le système complet avec ses applications - ce qui strictement
devrait être couvert par le terme GNU/Linux.
Linux est l'un des projet informatiques actuels les plus vaste, tant du point de vue de la complexité technique que de sa taille même ; il compte aujourd'hui environ 30 millions de lignes de code, dont plus de la moitié sont des drivers gérant le nombre toujours croissant de périphériqus supportés par linux. Ceci représente l'équivalent de 8000 heures-personne de travail, ou un milliard de dollars de développement pour une entreprise de logiciels.
Notre histoire commence en 1991 ; c'était le temps
des PC 386 et 486, qui avaient déjà conquis une vaste part du marché des
ordinateurs personnels, du fait de leur prix abordable -
par rapport aux Apple MacIntosh. Les PCs avaient déjà
consacré l'hégémonie de Microsoft, par l'intermédiaire du
système d'exploitation MS-DOS fourni - déjà exclusivement
- avec chaque ordinateur. Il existait des systèmes
alternatifs, principalement des UNIX, généralement très
coûteux - de fait, aucun d'entre eux ne risquait de percer
comme système d'exploitation populaire et de concurencer
de MS-DOS. Mais surtout, ces UNIX n'étaient pas libres : on
ne pouvait en obtenir le code source qu'à prix d'or, et il
eût été inconcevable que chaque utilisateur puisse en
distribuer des copies 3.1.
Le projet GNU de Richard M. Stallman portait la promesse du système
totalement libre (c'est-à-dire dont le code source serait disponible pour
consultation et modification), gratuit et de qualité
professionelle ; mais si presque tout le système GNU était déjà disponible - en
particulier le compilateur GCC, qui permettait de créer
d'autres programmes, et l'éditeur EMACS - il n'en était
pas ainsi de Hurd, le kernel du
système, sur lequel devait reposer tout le reste de
l'édifice.
Pour les besoins de l'enseignement et de la recherche, il
existait des systèmes UNIX dont les codes source étaient lisibles, mais seulement
sous license deslicences restrictives. L'un de ces systèmes, MINIX, faisait
l'objet d'une liste de diffusion sur Internet, comp.os.minix, où
des passionnés, principalement des étudiants et des chercheurs en
informatique, échangeaient leurs opinions et conseils techniques. Le 25 août 1991, un
étudiant finlandais y posta le message suivant:
Linux Torvalds, 21 ans, était étudiant en informatique à l'université d'Helsinki ; principalement autodidacte, il était tombé dans l'informatique quand il était petit. Son message suscita très bientôt l'intérêt sur comp.os.minix, et les commentaires, critiques et corrections venus d'Internet amenèrent très vite la sortie de Linux version 0.0.1 (mi-septembre); puis, des versions corrigées et améliorées parurent chaque mois environ.
Assez vite, Linus commença à recevoir une masse de cartes postales des quatres
coins du monde ; les mensualités de son ordinateur, qu'il
avait acheté à crédit, furent payées en quelques jours par des cotisations venues
du monde entier. Encore plus important, Linux fut hébergé sur un serveur
FTP et ainsi mis à la disposition de tous 24
heures sur 24.
Les critiques constructives sur Linux permettaient au système de s'améliorer à
une très grande vitesse, et avec une ampleur qui dépassa rapidement tout ce que
Linus aurait imaginé : ainsi, ce système qui, initialement, ne supportait que
les disques durs AT et n'avait pas de login, eut
dès la version 0.11 le support pour les claviers
multilingues, les lecteurs de disquettes, les standards
EGA, VGA, Hercules, ...
Le nouvel arrivant dans l'arène des systèmes d'exploitations ne fut pas non plus épargné par la critique : Andrew S. Tannenbaum, créateur de Minix, eut avec Linus Torvalds un débat sur les mérites respectifs des architectures en micro-noyau (Minix) et en noyau monolithique (Linux)3.2; la philosophie étant à l'époque de ce débat que les noyaux monolithiques étaient condamnés à disparaître, et que l'avenir était aux micro-noyaux. À l'heure actuelle, ce n'est toujours pas le cas : la difficulté de faire communiquer entre eux les différents sous-systèmes semble être prohibitive dans le cas d'un système généraliste. En revanche, le code de Linux tend à être de plus en plus modulaire.
Finalement, la licence de Linux et son efficacité dans les cas d'utilisation réels ont fait son succès : qui a entendu parler de Minix récemment - ailleurs que dans ce texte ?
Les principaux outils GNU furent portés sur Linux, ce qui en faisait
un système utilisable pour la programmation ou le travail ; rapidement, le
nombre d'utilisateur se compta en milliers, puis en dizaines
de milliers : le système était sorti de son enfance et, de
jouet pour étudiant, il était devenu un système utilisable.
Des sociétés commerciales commençaient à s'intéresser à
Linux, et les premières distributions firent leur
apparition : des éditeurs proposaient des boîtes
contenant tous les logiciels Linux pré-configurés, ainsi
qu'un support technique. C'est ainsi que Red Hat,
Slackware, SuSE, et les distributions non commerciales,
telle que Debian, attirèrent de plus en plus de monde vers
Linux.
De grandes entreprises d'informatiques commençaient elles aussi à s'intéresser à Linux, et c'est ainsi qu'une coûteuse station de travail à base de processeur Alpha fut mise à la disposition de Torvalds pour qu'il réalise une version de Linux qui puisse tourner dessus. Effectivement, la «traduction» fut réalisée, démentant la prédiction de Linus selon laquelle son système ne tournerait jamais que sur les processeurs 386. À l'heure où j'écris, Linux a été notamment porté pour toute la gamme des processeurs Intel x86 (id est les 386, 486, Pentium, Pentium Pro, Pentium II, III et IV, ainsi que les clones : AMD, Cyrix, Transmetta, etc) ainsi que pour les version 64 bits d'Intel (les IA-64), pour la plupart des 68000 de Motorola, les SPARC et UltraSPARC de Sun, les Alpha, les PowerPC, les ARM, les MIPS (que l'on trouve dans les Silicon Graphics et les DEC), les Hewlett Packard HP PA-RISC, les grands serveurs IBM S/390 et les processeurs SuperH de Hitachi. Linux est même d'hors et déjà compatible avec les AMD 64 bits : il tourne sur des processeurs qui n'existent pas encore !
Le serveur XFree avait également été porté sur Linux, offrant ainsi
une interface graphique qui ouvrait la voie aux
environnements de travail graphiques.
Les systèmes UNIX traditionnels utilisaient pour la plupart l'environement CDE (Common Desktop Environnement, que l'on peut encore voir sur Solaris, HP/UX, Tru64 UNIX ...). Le projet KDE débuta avec une ambition simple : faire mieux, et faire libre 3.3.
Le projet KDE se base sur la librairie Qt de la société
TrollTech ; ces librairies étaient n'étaient pas «officiellement» libres
3.4. Aussi, pour les puristes, Qt n'était-elle
pas «libre» ; dans les faits, les ingénieurs de Qt
collaboraient étroitement avec les développeurs de KDE, de
sorte que les rapports de bugs ou les demandes de
nouvelles fonctionalités étaient pris en compte très
activement par TrollTech. On était là à un cas limite, où
sur le papier la situation n'était pas garantie (TrolTech
aurait pu se montrer soudainement hostile à KDE -
quelqu'improbable que fût cette éventualité), mais où,
dans les faits, l'utilisation de Qt était praticable.
TrollTech fit plusieurs tentatives pour trouver un compromis
avec la FSF et le Projet Debian, dont une license libre -
mais différente de la GPL - et la création d'une fondation
destinée à assurer qu'une version au moins de Qt resterait
toujours libre quoi qu'il advînt, mais il apparut bientôt
que seule la mise de Qt sous license GPL appaiserait les
puristes. Ce qui fut fait avec Qt 2.2 . Miguel de Icaza
essaya de détourner KDE de la librairie Qt, mais sans
succès. Finalement, il y eut scission et le projet GNOME
3.5 fut lancé, pour faire un «KDE vraiment
libre».
Cet épisode est un bon exemple du défaut des
projets libres : le risque de se faire submerger sous un raz-de-marée
d'ergoties et de discussion philosophiques qui finissent par
détourner de la question3.6.
En définitive, la scission KDE-GNOME eut ceci de négatif qu'elle donna des
logiciels libres une image de groupuscule extremiste
tourmenté par des conflits internes sectaires ; qu'elle détourna beaucoup de talents et
d'énergie de leur travail -- la programmation ; et qu'elle était en
définitive vaine, puisque la librairie Qt fut placée sous
GPL quelques temps après.
Elle eut ceci de positif
qu'elle fournit un choix suplémentaire d'interface
3.7, et qu'elle permit aussi de voir la différence
entre un projet sans coordination centralisée, KDE, et un
projet organisé principalement autour d'un meneur - Miguel
de Icaza ayant finalement établi son ascendant sur le projet
GNOME.
Le lecteur intéressé pourra se reporter à [25], qui montre le point de vue d'un puriste s'il en est, Richard Stallman, et au site de KDE qui offre un résumé de l'histoire des licenses de Qt.
Les premières idées étaient des parodies de logos
d'autres systèmes - suivant la tradition UNIXienne des parodies et des allusions
- ou des animaux comme des aigles, des requins ou autres banalités. C'est
Linus lui-même qui mentionna son affection pour les pinguins, ce qui emporta la
décision ; 3.8. Par la suite
lors de la phase de conception, Linus posta le fameux
message
La forme du pinguin étant donnée, on organisa un
concours et le
célèbre dessin de Larry Ewing (voir figure
3.2, page
) - fait avec le
GIMP ! - gagna par acclamation. Le nom du Grand pinguin
semble dériver de Torvalds's UniX, étant entendu qu'en
anglais, «Tux» est l'abréviation de tuxedo, l'habit
de cérémonie que semblent porter ces petites bêtes.
Par la suite, les fans britanniques de Linux achetèrent un
véritable pinguin, le baptisèrent Tux, et l'offrirent au
zoo de Bristol. Tux est maintenant le symbole
universellement accepté de Linux ; il personifie ce
système décentralisé qui n'appartient à personne, et
en donne une image amusante et décontractée qui a
beaucoup fait pour sa popularité.
La diffusion de Linux dans le grand public est
principalement
fonction de la connaissance que les gens en ont: si Linux
est peu répandu dans
les entreprises comme environnement de bureau, il est
omniprésent au CERN, par
exemple.
Actuellement, on estime à 10 millions le nombre
d'utilisateurs de Linux. Comme
grandes étapes de la diffusions de Linux, on peut citer les
distributions,
surtout avec l'effort réalisé à partir de 2000 pour créer
des distributions
très faciles à installer 3.9 ; la diffusion très
large sur les
serveurs, les machines de calcul, et tous les endroits où
le besoin d'une
grande fiabilité se fait sentir 3.10 ; et enfin les systèmes embarqués : montres,
assistants personels, téléphones, baladeurs, pour
lesquels Linux devient une solution de plus en plus
répandue.
La «niche écologique» dans laquelle Linux semble avoir du
mal à s'imposer
est l'ordinateur de bureau, que ce soit pour le
travail ou pour les
jeux. Si la première catégorie est fortement due au
conservatisme naturel du
grand public et aux man
uvres des grandes entreprises de
logiciels pour
maintenir leur monopole, la
seconde est plus fondée techniquement : les jeux à la mode
sortent en effet
toujours pour MS Windows, parfois pour MacOS, presque
jamais pour Linux ; la
solution à ce problème viendra-t-elle de projets
d'émulateurs qui rendraient
Linux compatible avec des logiciels écrits pour MS Windows
- comme le projet
Wine - , de l'apparition de jeux de qualité
professionelle venus du
monde des logiciels libres (comme Parsec ou
TuxRacer), ou d'une prise de conscience des éditeurs
3.11 ?
La mentalité UNIX et Linux est néanmoins bien partie pour
conquérir le bastion des logiciels propriétaires, avec MacOS X, basé sur un
noyau BSD libre, la publication sous GPL par Sun d'OpenOffice, suite
burautique qui permet une relative interopérabilité avec la
suite MS Office, et la tendance les dernières
distributions, avec des interfaces très «léchées», une
configuration du matériel presque entièrement automatique,
et un effort du côté du multi-média et des jeux.
Et il
n'est pas interdit de faire s'arrêter un instant pour
admirer le chemin parcouru, depuis le petit OS qui n'avait
d'autre prétention que d'amuser ceux qui y prêteraient
attention.
La personnalité de Linus Torvalds a sans doute
marqué la tradition
dans laquel Linux est forgé. A la différence de la
tradition BSD ou GNU, où un
comité directeur corrige et juge le travail effectué (sur
des critères
technique et politiques, comme c'est notamment le cas avec
Stallman), Linux a
fait fleurir un monde de développeurs dont les réalisations
vivent et meurent
d'elles-mêmes, par sélection naturelle : le meilleur
programme rassemblera
souvent les efforts des auteurs de programmes concurents,
et la meilleure
philosophie s'impose pratiquement toute seule, sans les
discussions enflammées
qui caractisent la FSF.
Si la FSF ignore ou
combat par principe toute
contribution commerciale, la tradition Linux permet d'en
tirer avantage, et
souvent d'attirer dans le camp des logiciels libres des
alliés commerciaux de
valeur ; c'est ainsi que KDE a su tirer parti des
librairies QT de TrollTech,
et a en définitive contribué à ce que QT soit mis sous GPL.
Le principe très
linuxien de décentralisation se voit là aussi à l'
uvre, et l'on constate
que KDE évolue plus vite que GNOME, qui est principalement
sous l'autorité d'un
meneur, Miguel de Icaza. Cette décentalisation est aussi
une force en ceci que
Linux devient par là un mouvement de masse, qu'il est
impossible d'entraver --
ceci est bien mis en évidence dans certains documents à
usage interne de
Microsoft -- le fameux «Halloween Document» [33], par
exemple.
Linux a hérité toute son architecture et ses commandes de
GNU, qui lui-même les tirait de UNIX. C'est ainsi que Linux
est
totalement compatible avec UNIX 4.1.
L'arborescence des répertoires systèmes, les commandes, le système de fenêtrage, toutes ces composantes sont directement inspirées ou héritées des grands UNIX traditionnels. Au niveau de la communauté, c'est toute une culture et un ensemble de traditions qui figurent dans le monde Linux.
Contrairement à ce que pourrait laisser croire la
«gratuité» des logiciels libres, Linux n'est pas bloqué
dans un monde
qui exclut les entreprises commerciales ; l'enrichissement
est à double sens : les entreprises tirent avantage de
Linux --
elles l'emploient abondemment -- et Linux bénificie de
toutes sortes de contributions commerciales.
Pour commencer, il y a les fameuses distributions qui
sont aujourd'hui la source principale d'où les utilisateurs
tirent le système installé sur leur ordinateur. Ce sont des
collections de logiciels de toutes sortes, mis à jour, et
présentés sous forme de «paquetages logiciels»
précompilés, de façon à pouvoir s'inscrire de façon
cohérente et automatique
dans l'ensemble du système. Les distributions modernes
incluent un programme d'installation qui facilite la mise
en
uvre
et le réglage du système, ainsi qu'une documentation
imprimée et l'accès à un support technique.
Les distributions ne vendent pas Linux lui-même -- elles ne
le possèdent pas -- , mais le service qu'elles
rendent
en rassemblant ainsi les programmes sur des CD-ROM, en les
compilant et en écrivant des installateurs. Une fois que
l'on a
acquis une boîte de Linux, il est tout à fait autorisé
d'installer le système sur autant d'ordinateurs que l'on
veut, et de
faire -- et distribuer -- des copies des disques. Ainsi
les distributions favorisent énormément la diffusion de
Linux
auprès du public.
En ce qui concerne les sociétés et les entreprises, le fait de pouvoir s'adresser à un fournisseur de services et de support est un argument de poids lorqu'elles réfléchissent au choix de Linux pour leur infrastructure informatique.
Les éditeurs de logiciels commencent à s'intéresser
sérieusement à Linux après l'avoir longtemps ignoré. Devant
la demande
du milieu scientifique, certaines application commerciales
sont portées pour Linux -- c'est le cas de
Mathematica, par
exemple. Ces programmes, qui sont sous des licenses
commerciales classiques (payants, une seule installation,
pas d'accès au code
source), prouvent que Linux est aussi un marché pour ce
genre de produits. On commence même à voir des éditeurs de
jeux
s'intéresser au sujet -- c'est ainsi que Soldiers of
Fortune a été porté pour Linux.
Il arrive aussi que des programmes propriétaires «passent»
du côté des logiciels libres, comme ce fut le cas avec
Doom, Quake I et Quake II, qui, après
une carrière commerciale des plus classiques, ont vu leur
code
mis en accès ouvert pour Linux. L'entreprise y gagne en
popularité auprès d'une population par ailleurs susceptible
d'acheter le type de produit dont elle tire son pain, et les
anciens jeux reprennent du poil de la bête en étant
«bricolés» par la communauté des hackers.
Enfin, certaines sociétés commerciales produisent délibérement du code libre dès le départ; c'est le cas notamment de la société TrollTech, qui publie (sous GPL) la librairie Qt qui est l'épine dorsale de KDE. Les versions Windows ou Mac de Qt sont propriétaires (il faut les payer pour pouvoir développer des logiciels dessus), de sorte que la mise sous GPL de la version Linux constitue un fabuleux coup de pub. De plus, comme le prix des licenses est modéré, il est assez facile de rentabiliser l'investissement pour les développeurs qui souhaitent porter leurs applications Linux vers Windows ou MacOS. La communauté du logiciel libre y gagne bien sûr énormément, puisque non seulement une excellente librairie tombe pratiquement du ciel, mais qu'en plus certains des meilleurs développeurs finissent par trouver un emploi dans l'entreprise pour continuer leur travail à plein temps, et payés.
La concurrence effrénée de Microsoft et l'excellence des
logiciels libres a fini pour convaincre IBM et Sun,
notamment, de
s'allier à Linux. Ces société récupèrent ainsi sur le plan
technique le travail de la communauté libre -- ce qui leur
évite des millions, voire
des milliards de dollards d'investissements en recherche et
développement -- et sur le plan publicitaire l'image
dynamique
et contestataire dont bénéficie Linux. Mais si cela leur
facilite la vie, le travail ne leur est tout de même pas
entièrement mâché : les grands serveurs de IBM, par exemple,
utilisent un tel nombre de processeurs qu'aucun noyau Linux
ne
pouvait convenir ; il a donc fallu qu'IBM développe lui-même
sont propre linux spécialement conçu pour ses machines. Là
encore, cela fut l'occasion d'embaucher des spécialistes
Linux, et de reverser à la communauté une partie des
progrès
effectués.
Les échanges avec le monde commercial ne se font pas toujours sans heurts : Les licences Apple sont telles que les parties du codes soit-disant libres ne le sont pas vraiment et qu'il y a peu de retour à la communauté. En effet la license BSD permet à ceux qui le désirent de s'approprier le code source et de le rendre propriétaire - ou de le mettre sous une license intermédiaire, ce qu'a fait Apple.
Les logiciels libres sont à l'opposé de ce qui semble être le modèle économique le plus efficace, le capitalisme de marché : ils prônent la coopération et le don de soi. Toutefois, si l'on s'intéresse aux rouages de leur fonctionnement, il apparaît alors que les deux modèles ne sont en réalité que fort peu différents.
Le capitalisme se base sur la notion du capital, c'est-à-dire d'un moyen - habituellement le papier-monnaie - d'échanger un travail fourni contre un autre de manière directe. Il suppose la notion de propriété ; un objet matériel a une appartenance, à un groupe, à une personne. Le développement des techniques a fait que les idées ont commencé à prendre de la valeur, et il est apparu nécessaire de protéger leurs auteurs du plagiat. Si la diffusion d'une idée fait que l'on va me copier et profiter à mes dépends de mon effort de recherche, je vais alors tenter de cacher ma découverte. L'invention des brevets à permis de pallier cette situation 5.1. La propriété s'est étendue du domaine matériel aux idées.
Avec le développement de l'informatique, une nouvelle problématique est survenue : bien sûr, je ne peux breveter un algorithme, ou un théorème, mais un programme informatique est-il autre chose qu'une suite d'algorithmes interagissant entres eux 5.2 ? Pourtant, un logiciel correspond à une réalité tangible, et à une solution pratique à un problème concret. Alors faut-il pouvoir les breveter 5.3 ?
Le danger vient du monde de développement des logiciels : généralement une même idée apparaît simultanément en plusieurs points du globe, et de manière tout à fait indépendante. Mais une grande entreprise déposera le brevet, car le coût est pour elle négligeable, alors qu'un développeur isolé n'y songera sans dout même pas : il vient d'avoir l'idée, et elle lui semble évidente - donc non brevetable. Alors quoi ? eh bien même si le brevet n'est pas valide, le petit développeur n'a aucune chance : il ne veut généralement pas se lancer dans un procès coûteux.
De plus l'esprit des logiciels libres est de partager ce que l'on découvre, et il apparait généralement impensable de vouloir s'approprier une idée. De fait, certain grands groupes économiques tel que Microsoft voient le brevet comme une arme contre la concurrence déloyale de logiciels libres : «Quoi ? ils donnent ce que nous essayons de vendre ?».
En ceci, les approches capitalistes et du logiciel libre se rejoignent : tous deux supposent que, pour le bon fonctionnement du système, une offre est faite à tous, et que les conditions sont telles qu'un monopole naturel ne s'établisse pas - les prix atteignent alors leur niveau optimal. Mais il ne s'agit pas ici de prix : les logiciels sont distribués gratuitement ; néanmoins, la concurence joue avec une efficacité maximale. Pour cela, il suffit d'assurer que la distribution d'un logiciel se fait bien de façon équitable pour tous ceux qui souhaitent l'avoir.
Concurrence ? En effet, il y a compétition pour des ressources, spécifiquement, la ressource principale est ici le développeur. Plus un projet est important - et meilleur par rapport à ses concurents - , plus vite il se développera. Ici, les ressources financières, pour payer la bande passante, pour pouvoir se nourir, sont une commodité, et les programmateurs, la ressource que l'on cherche à acquérir. Dans le monde des logiciels propriétaires, c'est le contraire ! Le but est de faire de l'argent, et les développeurs sont une commodité.
Or, ceci ne fonctionne que parce que les développeurs communiquent. L'effet réseau fait que chacun profite des idées des autres et que chaque développeur, même débutant, est utile - les brevets logiciels sont donc vus comme une menace d'autant plus grande qu'ils empêchent certaines communications, et donc s'attaquent à ce qui forme l'épine dorsale des logiciels libres : la liberté de communiquer.
On peut se poser la question de la motivation : qu'est-ce qui peut bien pousser les developpeurs du libre à avancer ? Plusieurs explications sont généralement avancées :
Et il faut se souvenir que si une très grande société rassemblera des milliers d'ingénieurs, la communauté libre réunit des millions de personnes qui contribuent plus ou moins à l'édifice -- et l'effet est cummulatif.
Pourquoi, d'un point de vue théorique, un programmateur aurait-il intérêt à distribuer son programme ? Si l'on suppose que le programmateur a de toute façon l'usage de son programme, le distribuer ne lui coûte (presque) rien. Si par la suite le programme se voit amélioré par d'autres développeurs, alors son auteur a déjà gagné quelque chose.
La reproduction d'un objet virtuel ne coûte rien ; mieux, elle peut rapporter. On aurait donc intérêt à distribuer tous les programmes ? Pas sûr. En effet, si suffisamment de gens sont prêts à payer pour avoir le droit d'utiliser mon programme, j'ai sans doute intérêt à le vendre dans des boîte. C'est la logique qui préside à l'élaboration et à la vente de logiciels commerciaux. Or, ceci va à l'encontre d'un bon fonctionnement économique : le «juste prix» d'un logiciel est
; or, comme le coût de reproduction est nul, le nombre de copies devrait être infini, et la concurence jouant, la marge devrait être quasi-nulle. Pourquoi alors les logiciels sont-ils aussi cher ?
C'est tout simplement que la concurence ne joue pas. En effet, il est possible par divers artifices techniques d'empêcher la clientèle de changer d'avis quant à ses choix de logiciels5.4, et l'on se retrouve alors très vite dans une situation de monopole. Pour que la concurence puisse jouer, il faut que les acteurs acceptent de rendre disponible leurs formats de fichiers et leurs protocoles - qui ne sont pas des biens, mais des services.
Dans cette optique, tous ceux qui ne bénéficient pas d'un monopole dans leur niche ne peuvent faire des bénéfices qu'en offrant des services accompagnant leurs logiciels. Le bénéfice est alors maximisé si le coût de développement est au plus bas. C'est pourquoi de plus en plus d'entreprises donnent leurs logiciels avec le code source ; elles obtiennent alors l'aide de développeurs du monde entier, qui eux peuvent avoir accès à un programme utile ou intéressant. C'est ainsi que l'industrie du logiciel migre d'une industrie de biens vers une industrie de services.
Le développement de logiciels libre est décentralisé : les développeurs ne se voient parfois jamais et sur un projet de grande envergure, l'équipe peut compter plusieurs centaines de membres. Comment peut-on gérer un tel assemblage humain en l'absence de structures d'autorité classiques ?
Plusieurs modèles sont possibles. Le noyau Linux se développe sur le modèle du «dictateur bienveillant» ; Linus Torvald aidé de ses fidèles «lieutenants» décide de l'incorporation ou non des patch. Et nul (ou presque) ne conteste sa décision finale. Ceci est possible car Linus a acquis la confiance de ceux qu'il «dirige». Le projet KDE se développe plutôt sur le modèle du bazar : il y a un groupe central de développeurs, dont aucun n'a l'ascendant sur les autres, qui décident collégialement de la marche à suivre. L'accès à ce groupe se fait au mérite.
Si un projet grandit trop et qu'aucune solution n'apparait d'elle-même, alors tôt ou tard il y a scission à la suite d'une différence d'opinions. Et deux projets concurrents existent là où il n'y en avait qu'un - deux projet qui peut-être refusionneront à l'avenir.
Une société est normalement définie dans un moment du temps, et dans un espace défini ; par exemple la société française, la société allemande,...
Une société peut-elle apparaître sans qu'il y ait de lien géographique unissant ses membres?
«Une société est un ensemble d'individus vivants dans un espace géographique défini, à une période donnée». Cette définition est celle qui apparaît le plus souvent dans les ouvrages traitants de sociologie. Elle est normalement satisfaisante, car dans un voisinage donné, des individus vont naturellement être amenés à des compromis leur permettant de se partager au mieux les ressources. La nécessité de communiquer conduit à l'élaboration d'une langue commune, et les liens entre les individus vont naturellement se complexifier et se renforcer.
Mais la définition d'une société dans un lieu défini montre ses limites dès que l'on s'intéresse à des groupes culturels tels que l'on peut les observer sur Internet. Ces groupes, s'ils vivaient dans des villages isolés, seraient qualifiés de sociétés : ils ont une culture commune, un langage, des traditions, un folklore, et même des mythes. Il est vrai toutefois que les aspects d'éducation normalement présents dans une société - il faut élever des enfants - sont absent. En apparence du moins.
L'absence d'unité géographique n'a pas d'importance du point de vue de la propagation et de la conservation d'une culture : seule compte la communication. Or il est possible de correler l'apparition et le développement d'un sentiment d'appartenance à une culture propre de certains groupes d'individus avec le développement des réseaux informatiques. Ceux-ci permettent une nouvelle forme de communication de traditions : orales par leur nature, mais écrites quant à leur forme.
Il est bien sûr possible d'étudier l'évolution d'une société dans le temps, mais on constate alors que celle-ci calque ses activités sur les cycles naturels (jour, nuit, saisons). Notre vie est rythmée par ces cycles.
Il n'en va pas de même pour une société virtuelle. Le moyen de communication type, l'e-mail est à la fois très rapide et asynchrone ; la réponse à un message peut être immédiate, mais peut aussi arriver le lendemain, en fonction des cycles de sommeil des correspondants. Deux individus très proches dans la société virtuelle peuvent être décalés dans le temps réel. On remarque que les informaticiens ont des horaires abscons ; en effet, leurs collègues vivent sans doute dans une autre partie du monde et la communication directe demande de prendre rendez-vous à des moments quelconques de la journée. Une société virtuelle vit en temps continu : elle n'a ni jours, ni nuits, ni saisons.
Son développement est tributaire du développement des structures de communication : plus celle-ci est aisée, plus grande est la cohérence sociétale.
Avec internet, un nouveau mode de communication est apparu : l'individu peut communiquer avec le monde. Ce qui signifie que lorsqu'un projet a besoin de volontaires pour s'étendre, l'appel est publié très facilement sur les mailing-lists ou encore sur des sites internets très fréquentés. Si l'appel est entendu, les réponses prennent la forme d'e-mail, et un groupe d'intérêt se forme. La cohésion de grands groupes est difficile à maintenir, ce qui explique que les projets qui ont le plus de succès sont généralement ceux qui ont à leur tête un leader charismatique. Le succès de Linux vient en grande partie du fait que Linus Torvalds est un membre respecté de la communauté des développeurs, et qu'il est connu pour ses décisions raisonnables.
Le développement d'un projet de grande envergure demande de grande quantités de ressources en bande passante et en espace de stockage. Si Linux est aussi efficace dans le domaine des serveurs, c'est parce qu'il est vital avant tout d'être bon dans ce domaine. Si l'infrastructure d'internet se base sur UNIX 6.1 c'est que le système est dès sa naissance conçu comme outil de collaboration à distance : les ressources d'une machine sont partagées équitablement entre ses utilisateurs, qui sont tous responsables de son bon fonctionnement.
- Bon, je recherche toujours un mec qui "touche" sous linux sur rochefort
- Il m'arrive de toucher, mais dans ces moments la, je pense pas trop à linux.
-- ST in Guide du linuxien pervers : « Linux c'est une affaire de doigté »
Mais alors, les informaticiens ne se rencontrent jamais ? Si, bien sûr, mais c'est plus rare. Et ils ont tendance à faire d'internet le théâtre de leur vie privée 6.2. En effet ils se sentent protégés par l'effet de foule du réseau ; il y a découplement entre la réalité informatique et le monde extérieur : sur le réseau, l'anonymat est la règle.
L'informatique est par bien des aspects un monde à part : en effet, sa complexité atteint presque celle du monde réel, et les réseaux permettent la création de sociétés déconnectées dans le temps et dans l'espace. Les geeks sont des individus qui se réclament plus du monde virtuel que du réel.
Le terme geek décrivait à l'origine la personne qui décapitait le coq avec ses dents lors d'une cérémonie vaudou. Il a désigné, principalement en Amérique du nord, des individus plus concernés par l'acquisition du savoir - généralement scientifique et technique - que par la grâce sociale ou même l'hygiène... Actuellement le mot a perdu de sa force, et tend simplement à s'appliquer aux passionnés d'informatique.
Les milieux académiques sont souvent accusés de vivre en vase clos, déconectés du monde extérieur. Et on a souvent raison. Or, de pareilles circonstances se prêtent à la mise en place d'une société tribale : lorsque les influences extérieures sont faibles, les hommes inventent naturellement des traditions, au départ orales, et des codes de conduite. Et bien sûr ceux-ci seront en rapport avec les activités menées par le groupe.
La complexité et la nouveauté de l'informatique demandaient de nouveaux moyens d'expression, de nouveaux mots, de nouveaux comportements. Et c'est ainsi que la sous-culture des geeks est née. Cette sous-culture est définie par :
Cette culture est celle des réseaux : c'est une culture dont la tradition orale est en fait écrite, les individus qui la composent étant généralement géographiquement distants. IRC7.1, les e-mails sont en effet des moyens de communication quasi-instantanés, à la manière de la parole, mais sont écrit. Toutefois, les même phénomènes linguistiques observés d'habitude dans la langue orale sont ici présents.
Le vocabulaire des geeks s'est développé par le besoin de communiquer. La communication écrite se prête assez mal à l'échange rapide d'idées - par rapide, on entend presque en temps réel, à la manière d'une conversation orale. Des racourcis sont naturellement apparu : IMHO, ASAP, RTFM7.2.
La langue se déforme aussi par l'usage : des jeux de mots deviennent des traditions puis des règles. L'explétif anglo-saxon F-- s'écrit presque toujours fsck, sigle pour File System ChecK, mais dont l'orthographe à naturellement conduit à un autre usage. Dans d'autres langues que l'anglais les termes techniques sont souvent repris, mais conjugués, respectivement déclinés dans la langue nationale : en français, on dira par exemple «démonter un disque»7.3 - ce qui consiste en fait à le retirer de l'arborescence des répertoires.
La sous-culture geek étant née avec l'informatique aux États-Unis, l'anglais est une langue obligatoire. Sans cette langue commune, des projets coopératifs à vaste échelles seraient impossibles. Toutefois quelque soit votre langue, vous trouverez toujours quelqu'un qui acceptera de traduire et transmettre votre message, le cas échéant. Et il est fréquent que sur des forums de langue anglaise apparaissent des conversations en allemand, en suédois, en français...
Les geeks sont défenseurs de leur culture propre. Typiquement, les projets libres sont très bien traduits dans de nombreuses langues - par des gens qui bien sûr n'auraient aucun besoin de la traduction.
- J'ai lu quelque part qu'il y avait une maniére d'avoir des ACL avec Ext2fs. Ça se passe comment ?
- Ça se passe bien.
-- Rémy in Guide du linuxien pervers - « Le serpent de mer repointe son nez »
Le groupe se réclamant de la culture geek est composé d'individus dont la particularité est d'être tous compétents d'un point de vue technique7.4. Ceci se reflète dans l'échelle des valeurs adoptée : la compétence informatique est la vertu cardinale; c'est elle qui est à la base de la hiérarchie des individus. Cette société serait donc idéalement une méritocratie.
Les jugement portés sur les choses sont parfois basés sur des considérations que d'aucuns considéreraient absconses ; nul ne se soucie qu'un programme soit facile à utiliser, seule (ou presque) compte son élégance7.5. L'élégance en informatique tient à des critère subjectifs, mais on peut citer :
Le code de valeur est également étendu aux individus : la société formée par les geeks se base sur la reconnaissance du mérite technique de l'autre.
C'est essentiellement l'histoire d'UNIX, mais surtout l'histoire de ceux qui l'ont créé. Cette culture est unique en ceci que ceux qui en sont les héros sont des contemporains, humains et atteignables par tous. Tout les utilisateurs de linux vous le diront : il est possible de discuter avec tous les programateurs responsable du programme que vous utilisez. Et en définitive, si le créateur du programme ne peut pas vous aider, qui le pourra ?
L'esprit Free Software, c'est un esprit de collaboration : chacun aide selon ses moyens la «communauté». Si un programmateur décide de d'écrire quelque chose, c'est avant tout pour lui ; le logiciel est donc utile par lui-même à son créateur. Donner à tous la possibilité d'utiliser ce même programme n'est pas un acte gratuit : ce faisant, les possibilités d'amélioration deviennent énormes. En effet, même si les utilisateurs ne sont pas capables de corriger les bugs, ils peuvent les identifier. Des artistes peuvent créer des logos, et des icônes pour le programme, certains peuvent écrire de la documentation, d'autre traduire le programme en plusieurs langues7.6. Encore une fois, aucun de ces actes n'est gratuit : plus il y a d'utilisateurs, meilleur sera le programme.
Dans la vie de tout les jours, ceux qui font partie d'une association font un peu preuve de l'esprit Free Software. Ils pensent qu'en s'associant les hommes deviennent meilleurs.
Dans le monde de la recherche, les résultats sont publiés pour permettre à tous d'en profiter. Le publicateur en retire un bénéfice : le respect de ses pairs, mais aussi l'assurance que ceux qui travaillent dans le même domaine que lui en feront de même, et qu'ainsi la cause de la Science pourra avancer plus vite.
Là aussi nous voyons des individus
uvrer ensemble pour une cause commune, pas
tant par altruisme que pour un intérêt commun.
Les références culturelles des geeks se rapportent généralement à des
uvres décrivant des mondes complets et vivants. Ceci peut venir du fait que les geeks sont souvent mal adaptés à notre société, ou du moins s'y sentent mal. De fait, ils sont attirés par les
uvres cinématographiques et littéraires qui leur permettent de s'évader. Dans le même esprit, et aussi au second degré, les geeks tendent à une certaine nostalgie de l'enfance, une tendance à la régression, qui procède à la fois d'un rapport compliqué à la réalité présente, de ce qu'ils compensent ainsi l'absence de l'enfance typique qu'ils ont rarement vécue 7.7, et du fait qu'ils ont à la programmation le même rapport qu'un enfant a au jeu.
Les films de science-fiction sont donc naturellement très populaires. Matrix,
Star Wars, 2001 Odyssée de l'espace. Il n'est pas rare pour un geek
d'être capable de citer de mémoire des scènes entières7.8.
Dans l'esprit de «régression», les dessins animés sont très recherchés, surtout les séries introuvables, peu connues ou épuisées.
C'est encore une fois dans la littérature fantastique qu'il faut chercher les
références les plus frappantes : le courant cyber-punk lancé par William Gibson
aver The Neuromancer, les
uvres de John Ronald Reuel Tolkien (Le Seigneur des
Anneaux), la science-fiction en général. Toutes des
uvres qui tendent soit à
décrire des univers hautement technologiques, ou alors dont les héros sont des
personnages en marge de leur société. L'humour est un autre favori, avec par exemple le Guide du Routard Galactique [18] -- qui allie humour, saga et science-fiction.
Les geeks cultivant naturellement l'art d'être différent, sont friands de cuisine exotique, spécialement chinoise ou japonaise 7.9. Les horaires extrêmes couramment pratiqués7.10 font des geeks de grands consommateurs de boissons caféïnées, thé, café et autre succédanés chimiques.
La proportion de musiciens est plus élevée parmi les geeks que dans l'ensemble de la population. Les geeks apprécient la musique, que ce soit pour l'écouter ou pour la jouer ; le répertoire est assez vaste, et, là encore, plutôt atypique : on trouve des geeks amateurs de musique baroque ou classique 7.11 ou de jazz ; en ce qui concerne la musique moderne, le rock alternatif (musique pop, type Marcy Playground ou Smashing Pumpkins) est plus prisé que le rap ; la techno est relativement populaire, de par son côté électronique.
Le côté enfantin et humoristique du geek le ramène aussi vers la musique de son enfance (les génériques de dessins animés, de préférence stupides, sont très prisés), des musiques électroniques très typiques (comme Popcorn ou les
uvres de Jean-Michel Jarre), ou des paléo-rocks des années 50 - 60.
La «consommation» de musique est encouragée par les formats mp3 7.12 et ogg ; il arrive en effet aux geeks de s'échanger de la musique par le réseau peer-to-peer Gnutella ; toutefois, la tendance est à essayer les musiques en les téléchargeant, puis à acheter les disques des artistes que l'on apprécie.
Une minorité musicienne et agissante a même mis au point une license semblable à la GPL, la Free Music Public License (FMPL) qui s'applique à la musique ; on trouve ainsi des fichiers ogg, wav et mp3 librement diffusables.
L'habitat du geek est typiqument la chambre d'étudiant. Mais une chambre d'étudiant qui tiendrait plus d'un marriage contre nature entre Star Wars et l'entrepôt d'un brocanteur fou. On y trouve, en vrac, plusieurs PC, bien sûr, mais souvent aussi diverses stations UNIX démodées, trouvées on ne sait où. Aucune de ces machines, bien entendu, ne possède encore son système d'exploitation d'origine. On trouve aussi toutes sortes de jouets, poupées, gadgets techniques improbables, indices d'un esprit encore tourné vers la magie de l'enfance.
Linux, bien que ne faisant pas l'objet d'une politique d'envergure de la part de la direction de l'EPFL, est néanmoins dans certains départements extrêmement présent. On notera particulièrement la section8.1 de mathématique où il est présent sur tous les PC8.2. Il est également très présent dans la section d'informatique ainsi que dans certaines branches de la physique.
Dire qu'il n'y a aucun support officiel de Linux à l'EPFL serait inexact : en effet, depuis déjà bien longtemps, les outils du projet GNU sont distribués par le SIC. Aussi, lorsque le phénomène Linux eut pris de l'ampleur, c'est tout naturellement que s'est mis en place un support linux pour ceux qui le désireraient.
Comme dans bien d'autres domaines, l'introduction de Linux s'est faite à partir de la base. C'est un petit groupe de passionnés qui a mis en route toute la machine -- ça n'a jamais été un choix politique de l'école. Linux, par ses qualités techniques, et le fait qu'il s'agissait d'un logiciel libre, a su s'imposer de lui-même.
Le super-ordinateur Swiss T1 utilise comme système d'exploitation un UNIX propriétaire, Tru64 UNIX, de Compaq 8.3 ; la raison en est que le compilateur de Compaq donne des applications mieux optimisées que gcc -- dans ce domaine, la rapidité d'exécution du code est cruciale. En revanche, de très nombreux logiciels libres tournent sur cette plate-forme : gcc, NEdit, Perl , Tcl/Tk , CVS , Qt , Apache, MPICH Blacs et Scalapack en sont des exemples. On peut voir ainsi que dans le domaine prestigieux des super-calculateurs, les logiciels libres sont largement utilisés.
Le LAMP de l'EPFL est presque exclusivement sous Linux ;
il fait un usage intensif des logiciels libres, qui se sont
imposés d'eux-mêmes pour leurs qualités
intrinsèques : ainsi, les étudiants sont encouragés
à travailler avec EMACS.
La plupart des projets du LAMP, dans le cadre de l'EPFL, sont Open Source -- certains sont même hébergés sur SourceForge 8.4. La raison en est surtout que l'on désire une diffusion aussi large que possible de ces logiciels dans le milieu académique.
Le professeur Martin
Odersky, à qui nous avons parlé, a lui-même
développé le compilateur Pizza, une extension du
langage Java
8.5
sous Artistic License 8.6 ; « j'ai dû abandonner la
maintenance de ce code, mais j'ai pu la confier à
quelqu'un d'autre sur Internet », nous a-t-il déclaré.
Le professeur Odersky pense que si Linux se développe effectivement dans le milieu académique, c'est surtout au détriment de Solaris, le système d'exploitation de Sun ; il craint aussi que la « fenêtre » de l'ordinteur de bureau ne soit passée, et que l'intérêt du grand public ne retombe. « J'espère que Linux va gagner en popularité, parce que cela a aussi un sens philosophique et politique », ajoute-t-il toutefois : «Je partage le vue de Richard Stallman sur l'économie des informations. Les logiciels ne sont pas comme des biens traditionels, parce que leur duplication ne coûte (presque) rien. Conséquemment le plus grand bénéfice pour l'économie est atteint quand tout le monde peut y accéder librement. » .
Le laboratoire de télé-informatique centre ses recherches sur le développement d'applications intéractives à distance. Son parc informatique est donc assez varié, comptant des stations sous Windows, Linux et Solaris.
M. Petitpierre du laboratoire de télé-informatique a eu la gentillesse de nous faire part de son sentiment sur les logiciels libres. S'il reconnait l'avantage très important pour le développeur d'avoir accès aux sources, selon lui, ce sont les failles du modèle économique des logiciels libres qui empêchent leur plus grande diffusion. Les coûts de développement doivent en effet pouvoir être recouvrés, ce qui semble pour le moins difficile lorsque l'on donne le produit. Les logiciels distribués gratuitement le seraient dans cette optique :
M. Petitpierre ne croit pas à un engagement philosophique ou politiques des développeurs : ces derniers ne programmeraient que parce qu'ils prennent plaisir à le faire.
Nous avons également interrogé Me Haldy sur quelques aspects légaux ayant traits aux logiciels. Il est ressorti de cette conversation plusieurs points :
Bien que les utilisateurs ne s'en rendent souvent pas compte, l'enseignement en informatique ne serait pas possible sans eux : GCC, (X)EMACS et tous les autres utilitaires du projet GNU qui forment la colonne vertébrale de cet enseignement dispensé au premier cycle. L'école formant des scientifiques et des ingénieurs, la formation est, du moins indirectement, tournée vers UNIX.
Il est donc naturel que les étudiants qui désirent parfaire leur connaissance de l'informatique se tournent vers l'UNIX libre le plus répendu : Linux. Celui-ci, venant avec la suite complète des outils scientifiques GNU, représente un formidable outil de travail.
Un questionnaire a été soumis aux membres de l'EPFL, qui a reçu 567 réponses,
dont 477 d'étudiants et 56 d'assistants.
Les sections les mieux représentées sont celles
d'Informatique (127 réponses), Systèmes de Communication (96 réponses) et
Microtechnique (76 réponses). Les résultats des autres sections sont fondés
sur des échantillons de moindre cardinalité, et il convient donc de les
prendre avec précaution. Toutefois, les résultats des sections de Physique et
Mathématique semblent assez bien refléter la réalité observée dans notre
expérience quotidienne.
Les sections les plus utilisatrices de logiciels libres sont, sans surprise, les
sections d'Informatique et de Systèmes de Communications, où seuls 2 % des gens
disent n'avoir jamais utilisé de logiciels libres -- d'ailleurs, ces 2 % se trompent
probablement, l'utilisation de Emacs étant à peu près obligatoire dans ces sections.
Ensuite viennent les sections de Mathématiques (5 % de non-utilisateurs), Mécanique (7 %),
Microtechnique (9 % ), Électricité (12 %), Physique (14 %), CMS (33 %), Génie Rural
(59 %) et Génie civil (60 %).
Au total, toutes sections confondues, 13 % des interrogés affirment ne pas utiliser les logiciels libres.
Si la majorité des étudiants de première année se dit utilisatrice de logiciels libres, à 90 % , il est remarquable que 55 % dit les utiliser depuis moins d'une année ; autrement dit, pour la majorité des futurs ingénieurs, le premier contact avec les logiciels libres se fait à l'EPFL. Ceci met fort bien en excergue le rôle important que l'EPFL a à jouer dans ce processus.
Comme mentionné plus haut, 13 % des interrogés disent ne pas utiliser de
logiciels libres ; 23 % s'estiment débutants, 36 % d'un niveau intermédiaire,
19 % se considèrent avancés, 5 % experts, et 1 % «gourou» (le stade suprême
de l'éveil selon le tao geek).
Les gourous se trouvent en section d'Informatique ; les avancés et experts se trouvent surtout
en Mathématiques, Physique, Informatique et Systèmes de Communication. Si les résultats
des deux dernières sections ne sont pas surprenants, ceux des deux premières méritent d'être notés : l'esprit des logiciels libres s'accorde bien avec celui des sciences
dures les plus fondamentales, où les connaissances ont une valeur intrinsèque et où
les progrès sont accomplis par le partage et la collaboration.
Il est aussi remarquable que la proportion d'utilisateurs confirmés (avancés, experts et gourous confondus) reste à peu près stable sur les quatre premières années de la formation, ce qui tend à suggérer une maîtrise acquise plus par goût personnel que par l'intermédiaire de la formation EPFL.
Sur notre échantillon de 567 personnes, 474 utilisent les logiciels libres pour leurs études;
330 les ont découverts par le bouche à oreille ; 129 par l'intermédiaire d'un cours
donné à l'EPFL ; et 74 par de la publicité ou des articles.
Là encore, il semble que l'EPFL pourrait mieux faire pour promouvoir les logiciels libres, puisqu'elle informe à peine plus que les journaux, qui, dans leur ensemble, ne font pas des logiciels libres leur préoccupation principale -- et qui sont plus tentés par les fonds que leur rapporte la publicité pour les logiciels propriétaires.
Si, en plus des 13 % qui ne les utilisent pas, 16 % des gens se disent déçus par les logiciels libres, 53 % sont satisfaits avec certains ou avec la plupart des logiciels libres. Ainsi, pour les étudiants de l'EPFL aussi se vérifie la qualité des logiciels libres.
Le Top 15 des logiciels libres les plus utilisés sur notre échantillon :
De nombreux autres logiciels ont été mentionnés avec des utilisations plus faibles, parmi lesquels , Octave, R, XFig, Python, MySQL, Xmms, Vim, Povray, DDD, XWindow, xv, XMovie, Xdvi, Windowmaker, TuxRacer, nedit, Mozilla, Pine, Konqueror, Kdevelop, Chromium, ...
Ce dernier point est extrêmement regrettable dans une école comme la nôtre : l'utilisation de logiciels libres permettrait d'effectuer de substentiels économies dans le domaine informatique en ramenant le coût des licenses logicielles à zéro -- l'argent ainsi économisé pourrait être par exemple affecté à l'achat de plus de matériel.
Les licenses logicielles sont un fardeau pour l'EPFL : un exemple valant mieux qu'un discours, disons simplement que lors d'un test de Matlab en section de Mathématique, certains étudiants n'ont tout simplement pas pu accéder au programme en début d'examen, car toutes les licenses dont dispose l'EPFL étaient en cours d'utilisation ; ceci ne serait pas arrivé si l'on avait utilisé Octave ou Scilab, qui ont la même syntaxe et supportent toutes les fonctions dont les étudiants avaient besoin en l'occurence.
Mais par-delà les contingences pratiques, c'est l'esprit même de l'académie qui est en jeu : l'informatique est un outil de travail capital pour l'ingénieur, et la relation que l'on a avec son ordinateur est toujours très personnelle et intime8.8 ; il est donc infiniment regrettable que sur ce point qui touche tellement le développement personnel de ses étudiants, l'EPFL n'encourage pas une attitude d'ingénieur.
Nous ne pouvons qu'espérer que cela changera et que l'EPFL saura prendre la place qui devrait être la sienne dans ce mouvement de progrès, en s'y impliquant, en l'encourageant et en contribaunt aux logiciels libres.
- A l'heure actuelle, il s'est formé une sorte « d'aristocratie » de Linux qui essaye de maintenir ses connaissances pour elle et d'en priver les autres en innondant chaque débutant de documentations
-- EF in Guide du linuxien pervers : « Comprenne qui pourra »
À l'origine, il y avait un petit groupe d'amis centré sur
le Départment de Mathématique de l'EPFL, qui utilisaient
Linux. L'idée vient un jour à une mathématicienne de
présenter un stand sur le thème de Linux lors de l'édition
2000 de la fête annuelle de l'école,
Vivapoly. L'idée fit son chemin jusqu'à
l'inscription ; là, il fallut remplir une case donnant le
nom du groupe qui organisait le stand : c'est là que l'on
vit pour la première fois écrit le nom de GNU Generation
8.9.
On demanda à diverses distributions Linux des CDs de
démonstration, et des affiches furent collées dans toute
l'école ; le jour J, un demi-millier de ces CD fut
distribué en quelques minutes. Le stand présentait en outre
trois ordinateurs pour les démonstrations et il y avait
aussi un concours de dessin pour les enfants (d'où la
tradition désormais établie d'une activité pour enfants
chaque année à Vivapoly). Ce stand fut un tel succès que la
direction de l'EPFL lui décerna un premier prix ; après
quoi le groupe ne voulut plus se dissoudre, et évolua
finalement en association reconnue à part entière par
l'EPFL.
Depuis lors, GNU Generation organise trois Install-Parties 8.10 par an, maintient à jour la distribution GNUWin, et présente des stands à Vivapoly et à la journée d'accueil.
Le premier logo de GNU Generation avait été conçu à la
va-vite pour le premier stand ; c'était simplement un gros
Tux surplombant les mots «GNU Generation», écrits en
fonte Helvetica grasse italique, en bleu ; comme vous
pouvez l'imaginer, le logo n'était pas très original, et
surtout ses «e» rappelaient de façon tout à fait fâcheuse
l'icône d'un navigateur web
célèbre particulièrement raté. La création d'un nouveau
logo devenait urgente.
Il fut donc procédé à une tempête de cerveaux
(brainstorming) au cours de laquelle Ivo, président
de GNU Generation, ne put s'empêcher de mentionner son
affection pour les vaches. Il demanda à un membre
d'esquisser une vache de dessin animé ; celui-ci refusa ;
le président insista ; pour prouver à quel point l'idée
était mauvaise, le membre griffona une vache
particulièrement hideuse ; à sa grande déception, tout le
monde la trouva géniale. La vache fut instantanément promue
logo de l'association, et le malheureux dut la dessiner à
de nombreuses reprises.
Le logo de GNU Generation est maintenant la Gblgbl-vache surplombant les mots «GNU Generation», typographiés de manière à parodier LATEX, et en noir parce que c'est plus facile à photocopier pour les affiches.
Tout commença par le fait que beaucoup de monde à l'EPFL
voulait utiliser LATEX, mais que peu sont prêts à
installer Linux pour cela. L'un des membres de GNU Generation possédait un
CD-ROM contenant une distribution LATEX pour MS-Windows
; plutôt que de le prêter sans cesse, l'idée germa de le
graver et de le distribuer. Avec aussi la documentation.
Et Emacs. Et LyX 8.11. Et aussi StarOffice. Et
... Vous devinez la suite : le contenu du CD enfla
tellement qu'en définitive, il devint une distribution de
logiciels
libres dont le spectre allait bien au-delà de LATEX.
La compilation eu lieu pendant les vacances d'été 2001,
grâce à des scripts dynamiques mis en place par Ivo.
L'idée initiale était de copier les CD un à un selon
la demande ; des e-mail furent toutefois envoyés à quelques
sponsors possibles à tout hasard, et l'un d'entre eux, la
librairie Ellipse, accepta de financer le pressage de
500 disques. 300 d'entre eux furent distribués pendant la
journée d'accueil des nouveaux étudiants, et les 200
autres au cours de l'anné qui suivit8.12.
GNUWin est aussi disponible directement sur le site de GNU
Generation ; entre août 2001 et mai 2002, il y eu 6883
connexions, totalisant plus de 5882 Mo téléchargés,
dont plus du quart de l'extérieur
de la Suisse ; par ailleurs, de nombreuses demandes de copies
CD de GNUWin parviennent chaque semaine, dont certaines de France ; le site de GNUWin est répertorié sur http://www.framasoft.net, et il en est fait mention sur des forums de discussion Internet (comme http://playstation.clubic.net/forum/06/message/3180-0.htm
).
On utilise aussi la notation chiffrée, plus compacte: on associe R à 4, W à 2 et X à 1 A.1; pour exprimer une combinaison de droits, on additionne les chiffres, ce qui détermine univoquement les autorisations (par exemple, W et R se note 2+4=6). Pour définir les autorisation relatives aux trois groupes d'utilisateurs (u, g et o), on note trois chiffres successifs, le premier étant associé au propriétaire, le second au groupe et le dernier au reste du monde. On arrive ainsi à la notation chmod 644 qui équivaut à chmod u=rw,g=r,o=r.
$ chmod 644 toto
$ ls -l toto
-rw-r-r- 1 bernel users 0 Jan 11 13:09
toto
$
| Effet | vi | emacs |
|---|---|---|
| Lance l'éditeur | vi [fichier] | emacs |
| Ouvre un fichier | :r fichier | C-x C-f |
| déplace le curseur par: | ||
| caractère | l, h | C-b, C-f |
| mot | w, W | M-b, M-f |
| ligne | j, k | C-p, C-n |
| phrase | ),( | M-a, M-e |
| écran | C-b, C-f | |
| Insert du texte | ||
| Après le curseur | a | au curseur |
| à la fin de la ligne | A | |
| avant le curseur | i | |
| au début de la ligne | I | |
| Efface du texte | ||
| un caractère | x, X | DEL, C-d |
| un mot | dw, dW | |
| une ligne | dd | |
| jusqu'à un repère | d' lettre | |
| Cherche le texte | ||
| vers le bas | /[chaîne] | C-s |
| vers le haut | ?[chaîne] | C-r |
| répète | n, N | C-s, C-r |
| pose un repère | m [lettre] | C-@, C-SPC |
| Enregistre le fichier | :w [fichier] | C-x, C-s |
| Quitte | ||
| en sauvant | :wq | C-x, C-c |
| sans sauver | :q! | C-x, C-x |
Collections de programmes intégrés et interopérables avec des fonctions de bureau telles que le traitement de texte, la production de documents, l'organisation de données, le stockage d'informations, l'analyse numérique, le tableur, les présentations par transparents, ...
Programmes permettant de mettre un texte en page, la plupart du temps en mode WYSIWYG (What You See Is What You Get -- «ce que vous voyez (à l'écran) est ce que vous recevrez (à la sortie de l'imprimante)»).
Assez semblables aux traitement de texte en apparence, leurs fonctions sont bien plus avancées et le traitement n'est pas toujours en mode WYSIWYG.
Mouais, enfin pour l'instant c'est des jeux d'intellos qui aiment réfléchir. Les seuls vrais jeux amusant sont ceux qui ne font > travailler *que* la partie reptilienne (*) du cerveau.
-- RR in Guide du linuxien pervers - « Moi c'que j'aime ? La baston ! »
Il y a un nombre presqu'infini de jeux sur Linux, aussi nous ne donnerons ici que quelques exemples
...et je suis persuadé qu'on va bientôt pouvoir latter du windowsien par serveur Q3 interposé :-) (la bonne parole ne se propage jamais mieux qu'à grand coup de baffes :-))
-- RR in Guide du linuxien pervers - « C'est beau le prosélitisme »
Programmes de communication en temps réel sur Internet
Il convient peut-être de présenter le fonctionnement d'un point de vue global du système.
L'arborescence du système de fichier a pour but de permettre à l'utilisateur de s'abstraire des considérations matérielles : en effet, qui a besoin de savoir que le deuxième disque dur se trouve à la
position sur la chaîne IDEC.1 ? qui même a besoin de savoir qu'il y a un deuxième disque dur ?
Tous les répertoires sont issus de la même racine «/». Ils ont chacun une fonction bien déterminée :
Linux ne démarre pas en une fois : le démarrage se fait par couches, appelées runlevels. Le runlevel 0 correspond à l'arrêt du système et le 6 à son redémarrage. Traditionnellemet, les autres numéros correspondent à :
Le démarrage s'effectue en lançant toute une série de scripts les uns après les autres. Les différentes distributions de Linux ont chacune leur manière propre de gérer ces scripts. Toutefois on peut préciser que ces scripts sont généralement placés dans des répertoires correspondant aux différents runlevels, et ont leur nom préfixé d'un numéro indiquant l'ordre d'exécution.
Un système UNIX comporte typiquement des milliers d'applications servant à tout, aussi bien à transférer des e-mails qu'à éditer du texte, ou de la musique. Les fichiers se rapportant à la configuration globale, c'est à dire standard pour tous les utilisateurs du système se trouvent dans un seul et même dossier : /etc.
On peut, en éditant ces fichiers, personaliser l'invite, créer des aliasC.4. Une documentation complète des options disponibles est obtenue en tapant : man le_nom_du_fichier. Ces fichiers sont - en fonction du shell que vous utilisez : tcshrc, cshrc, bashrc, zshrcC.5
Les fichiers sont, pour réguler les accès : hosts.conf (ou hosts), hosts.allow, hosts.deny ; pour la configuration elle-même inetd.conf. La configuration de base du réseau se fait au démarrage.
le fichier de configuration du server X est XF86config . Il contient la liste des résolutions autorisées ainsi que la géométrie de l'écran, la listes des polices disponibles et la liste de extensions à charger.
X , c'est un millefeuille avec une couche de crème patissière, une de sauce tomate et une de crème d'anchois... Mais c'est vrai que c'est un système ouvert: tu peux y rajouter des pépites de chocolat.
-- Ol in Guide du linuxien pervers - « Remettez m'en une couche ! »
X est la couche graphique du système. Il permet l'affichage de fenêtre à l'aide d'un autre programme appelé «gestionnaire de fenêtres». Par-dessus ce gestionnaire de fenêtres peut encore se rajouter un «gestionnaire de bureau», chargé, lui, de la communication entre les applications : son, texte, images, configuration.
X est dit «transparent sur le réseau» : cela signifie que pour l'utilisateur, la localisation physique de la machine qui fait tourner le programme n'a aucune incidence sur son usage. En pratique ceci revient à donner la valeur de l'adresse de sa propre machine à la variable DISPLAY sur la machine distante, par exemple : DISPLAY=ma_machine:0.0 , puis à donner l'autorisation d'affichage sur sa machine propre xhost + mon_login@ma_machine_distante.
X ne sait qu'afficher des rectangles et du texte. Il faut un programme spécialisé, le Window Manager, pour donner une barre de titre à vos fenêtres. Celui-ci vous permettra alors de les déplacer à votre convenanceC.6, de les réduire à leur barre de titre, à les fermer et ainsi de suite. On peut citer quelque uns des plus connus :
on pourrait encore en citer de nombreux autres, mais ceux-ci sont parmis les plus utilisés.
Face aux accusations de difficulté d'utilisation des détracteurs de linux, différents projets ont été lancés dans le but de fournir une interface qui serait aussi puissante et facile à utiliser que possible. La pièce centrale d'un environnement de bureau est le gestionnaire de fichier, car c'est lui qui doit permettre aux utilisateurs de s'affranchir de l'usage du clavier. Les deux projets concurents - GNOME et KDEC.8 - ont tous deux choisi une approche intégrée : le gestionnaire de fichier est un visualisateur de tout, on entend par là qu'il doit permettre d'afficher tant des images que du son ou de la vidéo, et bien sûr des pages web.
Les différents environnements de bureau fournissent également des instructions quant à l'aspect des application : la constance dans le placement des menus, dans la nature des raccourcis clavier aide beaucoup l'apprentissage de nouvelles applications. Pour ce faire ces environnement sont basés sur des boîtes à outils qui fournissent les interfaces de programation pour l'interface utilisateur des applications. Cette standardisation a été beaucoup décriée lors de son inceptionC.9 ; toutefois, devant la qualité du travail accomplis, les critiques se sont progressivement tues.
X est - comme d'ailleur le reste du système - construit en couches : il y a X lui-même qui fournit le protocole permettant d'afficher des rectangles et du texte, puis il y a les boîtes à outils qui facilitent la création d'interfaces plus avancées, avec des bares de défilement, des boutons. Puis le gestionnaire de fenêtres qui permet de placer lesdites applications dans l'espace de l'ecran, et enfin, il y a le gestionnaire de bureau, chargé d'apporter la cohérence à l'ensemble.
Les périphériques du système apparaissent sous la forme de fichiers spéciaux dans le répertoire /dev.
Ce sont les disques durs, les CD-ROMs, les lecteurs ZIP. les périphériques IDE ont leurs noms en hd-, les périphériques SCSI en sd-, puis vient la position sur la chaîne de périphériques, hda, hdb, et finalement la partition 1, 2 etc.
Il est possible de monter ces périphériques sur des répertoires à l'aide de la commande mount.
Ce sont les terminaux virtuels (tty1, tty2, etc.)
Il y a encore les cartes réseau, eth--, et l'arborescence des périphériques USB et FireWire.
Le système d'exploitation UNIX est un ensemble de programmes qui contrôlent l'ordinateur, jouant un rôle d'intermédiaire entre l'utilisateur et la machine.
Le coeur du système d'exploitation s'appelle le
kernel (on francise aussi
parfois en disant noyau). Le kernel
contrôle l'ordinateur au plus bas niveau possible,
c'est-à-dire qu'il touche
vraiment la couche matérielle de la machine : il contrôle
l'accès à l'ordinateur,
gère la mémoire, assure la maintenance du système de
fichier, et alloue les
ressources de l'ordinateur entre les processus et les
utilisateurs.
Le kernel est divisé en sous-systèmes. On comptera notament :
Les différents UNIX se distinguent par leurs noyaux. En effet, les optimisations ne sont pas les même dans le cas d'un système embarqué devant fonctionner en temps réel que dans celui d'un mainframe qui aurait plus de 300 processeurs fonctionnant en parallèle.
Un processus se compose de deux
parties : un programme et un environnement de processus.
Tout processus est lié à un programme ; pas un programme
au sens de fichier binaire exécutable, mais comme ensemble
d'instructions chargées en mémoire centrale et en cours
d'exécution.
Un programme enregistré sur disque dur est potentiellement
à la disposition du système, mais pour pouvoir
l'exécuter, il faut le charger en mémoire centrale; ceci
n'est bien sûr possible que dans le cadre d'un système
d'exploitation qui cherche les informations sur le disque
et gère la mémoire. C'est l'environnement de processus.
Sous UNIX, chaque processus est caractérisé pas une série d'informations D.3 :
Lorsque l'on tape une commande dans le shell, un nouveau
processus (processus fils) est lancé; on peut alors voir
la ligne de commande se bloquer jusqu'à la fin de
l'exécution du processus fils ; on parle d'
exécution synchrone : le
shell et le processus fils sont liés dans le temps
(synchronisés) par l'attente de la fin de la
tâche.
Il est toutefois possible de lancer une commande complexe
à la console tout en récupérant immédiatement la
main : il s'agit de lancer une exécution asynchrone du
processus fils ; on parle de lancer l'application en
tâche de fond
(background). Concrètement, il
suffit pour cela de faire suivre le nom de la commande par
un & (par exemple, mozilla & au lieu de
mozilla).
Le traitement asynchrone des processus présente des
avantages évidents : il est possible de lancer de longs
calculs, ou une application graphique, tout en gardant la
console à disposition. Ceci est vrai tant que l'on
travaille dans un environnement graphique fenêtré (comme
X Window D.5) ; cela ne l'est
pas si l'on ne dispose que d'un terminal, car alors il faut
prendre garde à ne pas lancer d'applications qui
présentent des sorties à l'écran ou qui nécessitent
des entrées au clavier, puisque ces canaux ne sont pas repris par
la console.
Il faut aussi prendre garde au fait que le traitement
asynchrone ne coupe pas la filiation entre les processus :
si la session console se termine, les processus en tâche
de fond aussi ! (il est possible d'éviter cela par la
commande nohup).
On a vu plus haut le rôle joué par les priorités
associées aux processus (voir paragraphe
D.2.1, page
). Ces
caractéristiques sont la marque d'un système
multi-tâche préemptif : le système d'exploitation est le seul à
connaître l'état des ressources ; il agit en despote
éclairé (du moins on l'espère) qui régit la vie des
processus sans leur demander leur avis. Les
systèmes comme MS-DOS sont mono-tâche: il ne
peuvent exécuter qu'un processus à la fois. Quand à
MS-Windows 3.x D.6 et au
Multifinder de MacOS D.7 il s'agit d'un système
multi-tâche collaboratif : les processus sont
supposés être raisonnables et rendre civiquement la main
de temps à autre pour que les autres tâches puissent
s'effectuer. Sur le plan de la réalisation, cette solution
est simple car elle ne requiert finalement qu'une couche
logicielle suplémentaire sur un système mono-tâche ;
sur le plan de l'utilisation, elle est désastreuse, car la
gestion de la mémoire devient anarchique et l'on peut
presque entendre les programmes qui se battent dans la boîte
pour contrôler toute la mémoire possible. Un tel
système est instable par nature, et il n'est pas
étonnant que tous les systèmes modernes dignes de ce nom
se tournent vers des solution de multi-tâche préemptif.
Tout le système UNIX est fondé sur les fichiers et
l'idée que tout peut être contrôlé, symbolisé et
organisé par des fichiers.
Il existe quatres types de fichiers essentiels sous UNIX :
Les fichiers UNIX sont organisés en un schéma strict, qui porte le nom
d'arborescence D.9.
Chaque fichier possède un nom et un chemin d'accès --
son nom précédé de tous les répertoires
qu'il faut parcourir pour y arriver, depuis la racine. Par
exemple, un fichier pourrait s'appeler WMState et
avoir le chemin d'accès
/etc/X11/WindowMaker/WMState.
Les noms de fichiers sur les anciens systèmes UNIX
étaient limités à 14 caractères, mais les systèmes
plus récents acceptent sans problème jusqu'à 255
caractères; UNIX est sensible à la casse (il fait la
différence entre majuscules et minuscules). Il n'est pas
obligatoire que les fichiers aient une «extension» de
trois ou quatre caractères précédés d'un point --
il peut ne pas y en avoir, avoir une extension de plus de
quatre caractères, ou avoir plusieurs points dans un nom
de fichiers. Il est même possible d'utiliser les
espaces.
Les fichiers dont le premier caractère est un point sont
par convention les fichiers de configuration ; ils
contiennent des informations et des commandes lues et
exécutées au démarage de certaines applications. Ils
n'apparaissent pas à l'appel de la commande ls
(pour les voir, il faut demander ls -a).
Chaque dossier (folder) contient lui-même deux dossiers «virtuels»: ., qui pointe vers le dossier lui-même (taper cd . vous laisse où vous êtes), et .. qui pointe vers le répertoire parent (taper cd .. vous fait remonter un cran dans l'arborescence. Attention, il faut bien faire cd .., et non cd.. comme sous DOS).
L'arborescence peut être exprimée par chemin d'accès absolu (comme cd /etc/X11/) ou relatif (comme cd ../../X11/); ces deux exemples sont équivalents pour quelqu'un qui se trouve dans /etc/kde/kdm.
Sous UNIX, chaque fichier est associé à une table
d'autorisations d'accès. Cette disposition s'inscrit
dans l'idée selon laquelle un bon système d'exploitation
doit être sûr. C'est pourquoi tous les utilisateurs
sont constamment contrôlés à chaque fois qu'ils
essayent de lire, écrire ou exécuter le contenu d'un
fichier. Seul l'utilisateur root peut tout faire
à volonté -- on considère que le compte root
est détenu par un ou plusieurs techniciens compétents
et responsables.
Il existe trois droits principaux :
Ces droits peuvent être donnés ou refusés à trois catégories de personnes :
Ces trois droits et ces trois populations définissent une
matrice logique à neuf éléments grâce à laquelle
absolument toutes les combinaisons d'autorisation peuvent
être exprimées. La commande ls -l vous
renseignera sur les autorisations dans un
répertoire.
Seul le propriétaire d'un fichier peut en modifier les
droits, à l'aide de la commande chmod (voir
section A.1, page
). Il peut abdiquer ses droits
en faisant don du fichier à un autre utilisateur (par la
commande chown, CHange OWNer), mais dans ce
cas il ne pourra plus le récupérer (sans que le
nouveau propriétaire ne le lui rende.).
UNIX a, dès la conception, été un système
multi-utilisateurs. C'est cette caractéristique qui conduit
à certaines spécificités d'Unix comme le système
d'autorisations, la notions de propriétaire d'un fichier, et
le login.
Pour accéder à un système Unix, il est indispensable
de disposer d'un compte utilisateur, une identité
par laquelle on sera reconnu du système. C'est
l'administrateur (root) qui octroît à des
humains cette «identité virtuelle».
Chaque compte, ou utilisateur, possède un numéro
d'utilisateur, un nom d'utilisateur username
D.10 , un mot de passe
password et un répertoire personnel, avec parfois
un quota d'espace disque (typiquement, ce répertoire
s'appellera /home/gago pour l'utilisateur
gago).
Le numéro d'utilisateur permet au système de contrôler les accès; les processus lancés par l'utilisateur reçoivent ce numéro comme userID, et par là, les mêmes droits que lui.
Le nom d'utilisateur constitue la moitié de
la clef qui permettra d'accéder au système par la
procédure de login (l'autre étant le mot de
passe). Il permet aussi de «coiffer un casquette»
particulière -- l'administrateur qui a accès au compte
root a certainement aussi un compte personnel doté
de privilèges ordinaires, qu'il utilise pour ses tâches
quotidiennes anodines (sinon une fausse man
uvre
exécutée avec les privilèges root pourrait
détruire tout le système ; il ne faut jamais utiliser
les privilèges administrateur lorsque cela n'est pas
strictement nécessaire). On peut passer d'une identité
à l'autre par la commande su (Super User,
car par défaut elle tente de vous octroyer l'identité
de l'administrateur) -- mais il faut pour cela avoir le mot
de passe correspondant à l'identitié que vous essayez
de prendre. Si mener une double (ou multiple) vie vous
trouble et que vous ne savez plus très bien «qui vous
êtes», vous pouvez le demander au système par le
commande whoami (Who am I ?, qui suis-je ?
).
Le mot de passe constitue la protection
principale contre l'usurpation de votre identité. S'il est
relativement facile de deviner un nom d'utilisateur
D.11, trouver votre mot de passe
est a priori beaucoup plus compliqué.
L'importance du mot de passe en fait le terrain de bataille
pour les crackers d'un côté, et les
administrateurs et les samouraïs D.12 de l'autre.
Le nom d'utilisateur est crypté à l'aide d'algorithmes
non réversibles, puis stocké dans un fichier système
important : /etc/passwd. Au login, le
système vous demande votre mot de passe ; lorsque vous
l'aurez saisi, il cryptera votre entrée selon le même
algorithme, et comparera le résultat ainsi obtenu avec le
mot de passe crypté contenu dans /etc/passwd.
Si les deux résultats coïncident, vous aurez accès
au système. Si ce n'est pas le cas, le système vous
proposera de faire une nouvelle tentative au bout de
quelques seconde d'attente. La manière exacte dont le
système réagit dépend naturellement de la politique de
sécurité définie par l'administrateur D.13.
Le système est bon, en théorie : il existe un nombre
énorme de combinaisons possibles, de sorte qu'une attaque
par force brute (essayer bêtement une à une toutes les
combinaisons possibles) prend un temps considérable --
tellement considérable que le mot de passe est changé
par l'utilisateur avant que l'attaquant ne l'ait brisé.
Le point le plus faible du système est l'homme ; la
plupart du temps, les gens ne sont guère enthousiastes à
l'idée de mémoriser une suite de caractères
aléatoire, et ils vont vers la solution de facilité :
utiliser le nom de leur petite amie, de leur chien, d'un
ami, voire même le mot «password» ; ceci
n'est pas un bonne idée D.14. Il existe des
logiciels dit «de cryptanalyse par dictionnaire» qui
essayent un à un les mots qui figurent dans une base de
données ; ces bases de données comprennent typiquement
tous les mots de la langue courante (noms communs et noms
propres) écrits avec plusieurs capitalisations (arbre,
Arbre, aRbre, ArBrE, etc), précédés ou suivis de
chiffres, ou caractères spéciaux (arbre123, *arbre!),
etc. La parade à ce type d'attaques consiste à trouver
des suites de caractères mémorisables mais qui en
elles-mêmes ne veulent rien dire, comme «cpEubMdpSoeAb»
(pour «Ceci Pourrait Etre Un Bon Mot De Passe Si On En
Avait Besoin»).
Au niveau de l'administrateur, la réponse classique est de ne pas réellement stocker les mots de passe dans le fichier /etc/passwd -- c'est le «masquage des mots de passe», le shadowing. Mais là encore, il y a des solutions pour récupérer les mots de passe cryptés et procéder à des attaques ; c'est une lutte de l'épée contre la cuirasse qui est loin d'être simple; mais il faut souligner que la cuirasse n'a aucune chance si un seul des utilisateur choisit un mot de passe simpliste. Une identité compromise peut être le pied dans la porte pour compromettre tout le système ; et quoi qu'il en soit, le cracker qui a votre mot de passe peut faire tout ce qu'il veut en votre nom -- y compris, pour commencer, lire ou saccager tous vos fichiers. Alors, votre meilleure protection : un bon mot de passe !
Une interface utilisateur peut, en informatique, être de deux natures : graphique ou en ligne de commandeE.1. Ces deux types d'interface ont toutes deux leurs intérêts propres et il est bon, pour avoir la maîtrise complète de son système, de possèder leurs tenants et aboutissants.
C'est l'interface en ligne de commande, héritée des débuts de l'informatique. Elle permet une interaction extrèmement complexe avec la machine : il n'est pas exagéré de dire que tout est possible en ligne de commande. Toutefois, un bon manuel de référence peut s'avérer utile.
En effet, la philosophie de la console sous UNIX est de pouvoir relier entre eux de petits programmes spécialisés par des «tuyauxE.2». Je peux, par exemple, lister les fichiers d'un répertoire, rechercher ceux dont le nom contient a et en faire le compteE.3.
Ouvrez un terminal. Voilà, vous êtes devant une invite austère ressemblant quelque peu à ceci
Ma_machine /home/mon_login > _Tapez la commande ls, vous verrez apparaître la liste des fichiers de votre répertoire. Créez à présent un répertoire «essai» : mkdir essai. Allons-y - cd essai - ls : il est vide. Vous vous dites peut-être déjà : oui, mais si mon répertoire a un nom à rallonge, il doit être très pénible d'y aller ! En fait, la ligne de commande est intelligente ; revenez en arrière cd .. puis tapez cd es, puis la touche «tabulation». Le nom s'est auto-complété ! Revenez dans «essai». Créons un nouveau fichier : touch mon_fichier. Copions-le : cp mon_fichier mon_nouveau_fichier - n'oubliez pas «tabulation». Nous avons deux fichiers à présent ; tapons ls | wc. Qu'avons-nous fait ? nous avons listé les fichiers («ls»), mais ensuite ? nous avons pris le résultat - qui n'est rien d'autre qu'un bout de texte - et nous en avons compté le nombre de mots («wc», Word Count).
En réalité, c'est cela, la puissance de la ligne de commande : avec un peu d'imagination, nous pouvons assembler comme bon nous semble et produire tout ce que nous désirons. Il faut voir la ligne de commande comme un gigantesque méccano, qui offre des possibilités quasi-illimitées. Ce texte comporte un récapitulatif des commandes les plus utilisées. N'ayez pas peur d'expérimenter et de leur imaginer de nouveaux usages créatifs.
Pour effectuer des tâches de nature graphique, il peut être bon de disposer d'un environnement de travail à même de les faciliter en leur conférant une nature visuelle.
Traditionellement, X n'avait pas de bureau, c'est-à-dire qu'il n'était pas possible de placer des objets - des icônes par exemple - sur le bureau. Or, le bureau est un élément central de l'environnement : il sert en effet
Il est généralement muni de menus appelés d'un clic de la souris ; ces menus sont typiquement
les bureaux modernes peuvent comporter toutes sortes d'objets représentant des parties logicielles et matérielles du système : lecteurs de disquettes ou de CD-ROM, liens internet, images, sons.
La barre de lancement sert, comme son nom l'indique, à lancer les applications : alors qu'une interface en ligne de commande présuppose une connaissance certaine du système, une interface graphique cherche à donner une liste exhaustive des actions possibles. L'objet essentiel de la barre de lancement est le menu situé habituellement à sa gauche. Il contient la liste des applications graphiques du système organisée hiérarchiquement par thèmes.
La barre peut également contenir des lanceurs d'application, une «barre des tâches» qui donne la liste des applications lancées, et des mini-applications, ratachées à la barre principale, à caractère utilitaire (liste des bureaux virtuels, horloge) ou ludique (mini-jeux)E.4
Le centre de contrôle est l'application qui centralise la configuration de l'environnemnt. Tout est modifiable à l'envie : polices et couleurs, bien sûr, mais aussi forme et comportement de la barre de titre, «skins» des boutons et autres éléments standards de l'interface, et même les raccourcis clavier.
Le centre de contrôle comprend aussi une section où sont présentés graphiquement différents éléments du système : mémoire, cartes d'extensions, connectivité réseau.
L'élément le plus important d'un environnement de bureau est peut-être le gestionnaire de fichiers. Celui-ci ne remplit d'ailleurs pas uniquement cette fonction : il s'est mué en un visualisateur universel. Tout les documents traitables par le système peuvent être vus à travers le gestionnaire. Ceci comprend bien entendu également les éléments distants.
Internet permet le partage des données entre tous. Ceci n'est valable que s'il est facile d'y accéder. Presque tous les protocoles pratiqués par le réseau sont compris par le gestionnaire : FTP, HTTP, SMB et bien d'autres encore. Ils sont appelés par une syntaxe commune ; par exemple ftp:/, http:/, smb:/ dans la barre d'adresse suivis du nom du site ou de la machine distante commandent une tentative de connection par le protocole souhaitéE.5.
<rominet> Entendu chez HSC : il y a tellment de ports ouverts sur le firewall que netstat -an fait coredump
-- HSC in Guide du linuxien pervers - « Bien configurer son firewall »
L'idée même d'ordinateur est étroitement liée à la notion d'information (il suffit de penser au terme français informatique) ; or la meilleure manière de faire passer l'information entre deux machines est le réseau. On comprend ainsi mieux le slogan de la société Sun, «The network is the computer» («Le réseau est l'ordinateur»), ou l'absence de lecteurs de disquettes sur les Macintosh récents : l'avancement de l'informatique est tel que tous les ordinateurs sont (ou plutôt devraient être) en réseau, et l'on devrait pouvoir accéder aux informations n'importe où comme si elles étaient effectivement sur le disque dur de la machine locale F.1.
L'utilisation massive des réseaux par la «société moderne de l'information» impose naturellement des solutions techniques pour son implémentation ; c'est le protocole libre TCP/IP (Transmission Control Protocol / Internet Protocol) qui est devenu le standard de facto, de par son utilisation sur internet. TCP/IP est bien adapté tant pour les réseaux locaux (LAN, Local Area Networks) que pour les réseaux vastes et interconnectés (WAN, Wide Area Networks); actuellement, on ne trouve plus de système d'exploitation qui ne gère pas TCP/IP.
Sur un réseau, l'échange de données entre ordinateurs impose toujours entre les machines une relation client-serveur : une machine, le client, envoie un requête à l'autre ; cette dernière, le Serveur serveur, traite la demande et envoie le résultat au client.
Il existe des clients telnet et ssh pour MS-Windows, mais si les premiers sont plus ou moins intégrés au système, les second sont plus difficile à trouver. Quand à MacOS, la plupart du temps il faut acheter un logiciel propriétaire coûteux pour disposer de ces fonctions.
Tout le monde sait que Unix a une histoire et des traditions, et que certaines composantes sont en place d'une certaine façon pour des «raisons historiques» F.2. En voici un exemple frappant : tapons man ftp dans une console ; que voyons-nous apparaître ?
FTP(1) NAME ftp - ARPANET file transfer program(...)
Oui, vous avez bien lu : ftp nous revient tout droit de la plus haute préhistoire, de temps aussi reculés que ceux du vénérable ARPANET. Voilà qui nous ramène à l'époque héroïque des claviers qui faisaient du bruit, des imprimantes à aiguilles et des cartes perforées.
D'un autre côté, on peut voir ce qui arrive à un bon outil bien rustique mais qui fonctionne : il perdure, à la satisfaction générale. Pas besoin d'acheter la mise à jour pour passer à la version XP ...
La mise en réseau local de machines de types différents peut être une nécéssité, soit lors d'une transition d'un système à l'autre, soit tout simplement parce que le parc n'est pas homogène. Dans ces conditions, il faut pouvoir partager les fichiers entre les machines .
Il existe de nombreux serveurs commerciaux et propriétaires qui permettent d'accomplir ce travail, mais ce n'est pas là notre propos. L'outil libre qui offre ce service est Samba F.5. Samba permet de partager les imprimantes et les disques entre machines Windows, Linux, MacOS et OS/2.
Les logiciels libres permettent également de partager un serveur de login (n'avoir qu'une seule identité pour les machines de tous types), d'installer des clients X sur des machines non Unix, ...
- je voudrais pirater la fac ou je suis qui est sur réseau sur linux! Aidez moi SVP
- echo "C'est quoi le mot de passe?" | mail root
-- AGV in Guide du linuxien pervers - « Faut savoir rendre service. »
La sécurité des réseaux constitue l'un des domaines les plus ardus de l'informatique. Notre propos n'est donc pas ici de donner un cours technique (ce qui serait de toute façon bien au-dela de nos compétence, fort incomplet, et vain, puisque ce domaine est en évolution constante et rapide), mais de donner une brêve introduction à l'histoire et aux mentalités qui dominent en la matière.
Avec la mise en réseau de pratiquement toute la société, la question de sécurité des réseaux, jusque-là réservée essentiellement aux universités, aux bases militaires et aux banques, finit par concerner tout un chacun ; comme le disait un reportage récent sur France Info, à propos de «l'Internet à haut débit» (locution qu'emploient les journalistes pour désigner en vrac le cable, T1, T3, l'ADSL et tout ce qui va plus vite qu'un modem analogique) : « la connexion permanente à Internet est une fenêtre ouvert pour les pirates » F.6.
Unix a été présent tout au long de l'élaboration d'Internet, et Linux a fourni une bonne part des ressources qui ont donné au World Wide Web son extension actuelle. Il est donc naturel que la sécurité passe par eux.
Il existe deux idées opposées sur la sécurité : l'obscurité, ou la transparence.
L'expérience prouve que ce raisonnement est faux ; en fait, il s'agit d'un variante sophistiquée de la politique de l'autruche F.7.
This document was generated using the LaTeX2HTML translator Version 99.2beta8 (1.43)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -no_subdir -split 1 -show_section_numbers -dir html/ projet.tex
The translation was initiated by Emmanuel Eckard on 2002-08-30