Voici un texte mythique quia pour but de fixer les régles du hacking et
de prouver que c'est une pratique plus noble que l'on veut nous le faire
croire. C'est l'occasion aussi de découvrir que certains bouzeux qui se
prétendent hackers se nomment autrement, histoire de décrasser un peu
le terme de hacker.
Qu'est-ce qu'un hacker?
Le Jargon File(+) (traduit en français par Frédéric de SOLLIERS(+) et Christian ROZEBOOM sous le titre Cyberlexis(+),
Editions Masson) contient un certain nombre de définitions du terme
"hacker'', qui sont toutes liées à l'aptitude technique et au plaisir
pris à résoudre des problèmes et à dépasser des limites arbitraires.
Cependant, si vous voulez savoir comment devenir un hacker, seules deux
de ces définitions sont pertinentes.
Il existe une communauté, une culture partagée, de programmeurs
expérimentés et de spécialistes des réseaux, dont l'histoire remonte aux
premiers mini-ordinateurs multi-utilisateurs, il y a quelques dizaines
d'années, et aux premières expériences de l'ARPAnet (le réseau connu
aujourd'hui sous le nom d'Internet). Les membres de cette culture ont
créé le mot "hacker''. Ce sont des hackers qui ont créé l'Internet. Ce
sont des hackers qui ont fait du système d'exploitation Unix ce qu'il
est de nos jours. Ce sont des hackers qui font tourner les newsgroups
(forums de discussion), Usenet et le World Wide Web.
Si vous faites partie de cette culture, si vous y avez contribué et
si d'autres personnes qui en font partie savent qui vous êtes et vous
considèrent comme un hacker, alors vous êtes un hacker.
L'état d'esprit d'un hacker ne se réduit pas à cette culture des
hackers du logiciel. Il y a des gens qui appliquent l'attitude du hacker
à d'autres domaines, comme l'électronique ou la musique. En fait, on
trouve cet esprit à l'état le plus avancé dans n'importe quel domaine de
la science ou des arts. Les hackers du logiciel reconnaissent cette
similitude d'esprit, et certains affirment que la nature même du hacker
est indépendante du domaine particulier auquel le hacker se consacre
réellement. Mais dans la suite de ce document, nous nous concentrerons
sur les aptitudes et les attitudes des hackers du logiciel, et sur les
traditions de la culture partagée qui a créé le terme "hacker".
NB: il y a un autre groupe de personnes qui s'autoproclament des
"hackers'', mais qui n'en sont pas. Ces gens (principalement des
adolescents de sexe masculin) prennent leur pied en s'introduisant à
distance dans les systèmes informatiques et en piratant les systèmes
téléphoniques. Les vrais hackers appellent ces gens des "lamers'' et ne
veulent rien avoir à faire avec eux. Les vrais hackers pensent que les
lamers sont des gens paresseux, irresponsables et pas très brillants.
Malheureusement, de nombreux journalistes se sont laissés abuser et
utilisent le mot "hacker'' quand ils devraient utiliser le mot "lamers".
Cela ne lasse pas d'irriter les vrais hackers.
La différence fondamentale est la suivante: les hackers construisent des choses, les lamers les cassent.
L'attitude des hackers
Les hackers résolvent des problèmes, construisent des choses et
croient à la liberté et à l'entraide volontaire. Pour être accepté comme
un hacker, vous devez vous comporter comme si vous aviez ce type
d'attitude vous-même. Et pour vous comporter comme si vous aviez ce type
d'attitude, vous devez vraiment y croire.
Mais si vous pensez qu'adopter l'attitude d'un hacker n'est qu'un
moyen pour être accepté dans la culture des hackers, alors vous avez
raté le point essentiel: il faut croire à ces principes pour en tirer la
motivation personnelle pour continuer à apprendre. Comme pour tous les
arts créatifs, la façon la plus efficace de devenir un maître est
d'imiter l'état d'esprit des maîtres - non seulement intellectuellement -
mais aussi émotionnellement.
Donc, pour devenir un hacker, répétez les phrases suivantes jusqu'à y croire réellement :
1. Le monde est plein de problèmes fascinants qui n'attendent que d'être résolus
C'est très amusant d'être un hacker, mais c'est un amusement qui
demande beaucoup d'efforts, et l'effort demande de la motivation. Les
champions sportifs tirent leur motivation d'un plaisir physique à
accomplir des performances avec leur corps, à dépasser leurs propres
limites physiques. De façon similaire, pour être un hacker, il faut
ressentir une certaine excitation à résoudre des problèmes, à affûter
ses compétences et à exercer son intelligence.
Si pour vous cette façon de penser n'est pas naturelle, il faut
qu'elle le devienne si vous voulez devenir un hacker. Autrement, vous
allez découvrir que votre énergie va se disperser dans des distractions
comme le sexe, l'argent ou la reconnaissance sociale.
(Vous devez également développer une certaine foi en votre propre
capacité d'apprentissage : même si vous ne savez pas tout ce qu'il faut
pour résoudre un problème, si vous en traitez seulement une partie et
que vous en apprenez quelque chose, alors vous allez réussir à traiter
la partie suivante, et ainsi de suite jusqu'à ce que le problème soit
résolu.)
2. Personne ne devrait jamais avoir à résoudre le même problème deux fois.
Les cerveaux créatifs sont une ressource précieuse et limitée. Il ne
faut pas la gâcher en réinventant la roue quand il y a tant de problèmes
fascinants qui attendent.
Pour vous comporter comme un hacker, vous devez vous convaincre que
le temps de pensée des autres hackers est précieux, à tel point que
c'est pour vous une obligation morale de partager vos informations, de
résoudre des problèmes et d'en donner les solutions pour que les autres
hackers puissent résoudre de nouveaux problèmes au lieu de
perpétuellement revenir sur les mêmes.
(Il n'est pas nécessaire de vous croire obligé de donner toute votre
production créative, bien que les hackers les plus respectés soient ceux
qui le font. Il est tout à fait compatible avec les valeurs des hackers
d'en vendre une partie suffisante pour payer sa nourriture, son loyer
et ses ordinateurs, d'entretenir une famille et même de devenir riche, à
condition de ne jamais oublier que vous êtes un hacker pendant tout ce
temps.)
3. La routine et l'ennui sont inacceptables.
Les hackers (et les gens créatifs en général) ne devraient jamais se
consacrer à des tâches ennuyeuses ou répétitives, parce que cela
signifie qu'ils ne font pas ce qu'eux seuls savent faire : résoudre de
nouveaux problèmes.
Pour se comporter comme un hacker, vous devez vous en convaincre
suffisamment pour automatiser les parties ennuyeuses de votre travail,
non seulement pour vous-même, mais aussi pour tous les autres (et
particulièrement les autres hackers).
(Il y a une exception apparente à cette règle : un hacker va parfois
faire des choses qui semblent répétitives ou ennuyeuses à un observateur
pour se vider l'esprit, pour acquérir une nouvelle compétence, ou pour
faire une expérience particulière. Mais c'est toujours par choix : une
personne capable de penser ne devrait jamais être forcée à faire un
travail ennuyeux.)
4. Vive la liberté!
Les hackers sont naturellement anti-autoritaristes. Si une personne
peut vous donner des ordres, elle peut vous empêcher de résoudre le
problème particulier, quel qu'il soit, par lequel vous êtes fasciné à un
instant donné. Et, vu la façon dont les esprits autoritaristes
fonctionnent, elle trouvera en général une raison particulièrement
stupide de le faire. Par conséquent, les attitudes autoritaristes
doivent être combattues partout où elles se trouvent.
(Ce n'est pas la même chose que de combattre toute forme d'autorité.
Les enfants ont besoin d'être guidés, et les criminels d'être arrêtés.
Un hacker peut accepter de se soumettre à une certaine forme d'autorité
pour obtenir quelque chose qu'il désire plus que le temps perdu à suivre
les ordres. Mais c'est un marchandage limité, conscient. Une soumission
totale à une autorité donnée est hors de question.)
Les autoritaristes se nourrissent de censure et de secrets. Et ils se
méfient de l'entraide mutuelle et du partage d'informations. Ils
n'apprécient la "coopération" que quand ils peuvent la contrôler. Donc,
pour vous comporter comme un hacker, vous devez développer une hostilité
instinctive vis-à-vis de la censure, du secret et de l'usage de la
force ou de la ruse pour dominer des adultes responsables. Et vous devez
vous tenir prêt à agir conformément à cette conviction.
5. L'attitude n'est pas un substitut à la compétence.
Pour être un hacker, vous devez développer un certain nombre de ces
attitudes. Mais cela seul ne suffira pas à faire de vous un hacker, pas
plus qu'un champion sportif ou une rock star. Pour devenir un hacker, il
faut de l'intelligence, de l'expérience, de la persévérance et beaucoup
de travail.
Par conséquent, vous devez apprendre à vous méfier des attitudes
et à respecter les compétences, quelles qu'elles soient. Les hackers ne
se laissent pas impressionner par les poseurs, mais ils apprécient les
compétences, particulièrement les compétences de hackers, mais aussi
toutes les autres. Les compétences dans les domaines exigeants
maîtrisées par une élite sont particulièrement appréciées, et plus
particulièrement celles qui nécessitent un esprit perçant et une grande
concentration.
Si vous respectez la compétence, alors vous aimerez travailler à vous
améliorer sans cesse, et cela sera plus un plaisir qu'une routine.
C'est vital pour devenir un hacker.
Les compétences de base du hacker
Il est vital d'avoir une attitude de hacker, mais encore plus vital
d'en avoir les compétences. L'attitude n'est pas un substitut pour la
compétence, et il convient de développer un ensemble minimal de
compétences avant que l'idée n'effleure un autre hacker de vous accepter
comme son pair.
Cet ensemble change lentement au cours du temps, au fur et à mesure
que l'évolution technologique crée de nouvelles compétences et en rend
d'autres obsolètes. Par exemple, à une certaine époque il convenait de
savoir programmer en assembleur et il n'était pas question, jusqu'à une
date récente, de HTML.
En tout état de cause, il est clair que cela inclut, fin 1996 :
1. Apprendre à programmer.
C'est, évidemment, la compétence fondamentale du hacker. En 1997, le
langage à connaître absolument est le C (mais ce n'est probablement pas
celui qu'il faut apprendre en premier). Mais vous n'êtes pas un hacker
(ni même juste un programmeur) si vous ne connaissez qu'un seul langage.
Il faut apprendre à penser à la programmation en termes généraux,
indépendamment d'un langage particulier. Pour être un vrai hacker, il
faut être arrivé au point où vous pouvez apprendre un nouveau langage en
quelques jours, en faisant le rapport entre ce qui est écrit dans le
manuel et vos propres connaissances. Cela signifie que vous devez
apprendre plusieurs langages très différents.
A part le C, vous devez également apprendre LISP (ou Scheme(+)) et Perl(+) (ou Python(+)), et Java(+)
aura bientôt sa place également dans la liste. En plus d'être les
langages les plus pratiqués par les hackers, ils représentent chacun une
approche très différente de la programmation, et contribueront de façon
très sensible à votre éducation.
Je ne peux pas vous donner un cours complet sur "comment apprendre à
programmer'', c'est quelque chose de très complexe. Mais je peux vous
dire que les livres et les cours ne suffisent pas (la plupart des
meilleurs hackers sont autodidactes). Ce qu'il faut, c'est (a) lire du
code et (b) écrire du code.
Apprendre à programmer, c'est comme apprendre à écrire correctement
dans un langage humain. La meilleure façon d'y arriver, c'est de lire
des trucs écrits par des maîtres, d'en écrire un peu, d'en lire beaucoup
plus, d'en écrire un peu plus, etc. jusqu'à ce que vous arriviez à
écrire avec la même force et la même économie de moyens que vos modèles.
Trouver du bon code à lire a longtemps été difficile, parce qu'il y
avait très peu de gros programmes disponibles sous forme de sources pour
que les apprentis hackers puissent les lire et les étudier.
Heureusement, cette situation a évolué, et maintenant des logiciels
libres, des outils de programmation libres et des systèmes
d'exploitation libres (tous disponibles sous forme de sources, tous
écris par des hackers) sont maintenant très faciles à trouver. Cela nous
amène directement à notre sujet suivant...
2. Installer un Unix libre et apprendre à s'en servir.
Je vais supposer que vous possédez, ou que vous avez accès à un
ordinateur personnel. Pour un débutant qui aspire à acquérir des
compétences de hacker, l'action la plus importante à entreprendre est
d'obtenir une copie de Linux ou d'un des clones de BSD, de l'installer
sur une machine personnelle, et de le faire tourner.
Bien sûr, il y a d'autres systèmes d'exploitation dans le monde à
part Unix. Le problème, c'est qu'ils sont distribués sous forme de
binaires. Vous ne pouvez pas lire le code, et encore moins le modifier.
Apprendre à hacker sur une machine DOS ou Windows, ou sous MacOS, c'est
comme d'apprendre à danser en étant plâtré des pieds à la tête.
En plus, Unix est le système d'exploitation de l'Internet. On peut
apprendre à utiliser l'Internet sans connaître Unix, mais on ne peut pas
être un hacker de l'Internet sans le comprendre. C'est pour cette
raison que la culture des hackers est à l'heure actuelles fortement
Unix-centrique. (Ce n'a pas été toujours le cas, et quelques hackers
âgés regrettent cet état de fait, mais la symbiose entre Unix et
l'Internet est devenue suffisamment forte pour que même Microsoft semble
s'y casser les dents.)
Donc, installez un Unix (j'aime bien personnellement Linux mais
d'autres choix sont possibles). Apprenez-le. Faites-le tourner. Parlez à
l'Internet avec. Lisez le code. Modifiez le code. Vous trouverez de
meilleurs outils de programmation (y compris C, Lisp, Perl) que sous
n'importe quel système d'exploitation de Microsoft, vous vous amuserez,
et vous en tirerez plus de connaissances que ce que vous avez
l'impression d'apprendre, jusqu'à ce que vous deveniez un vrai maître
hacker. Pour en savoir plus sur comment apprendre Unix, voir The Loginataka(+).
Pour obtenir Linux, voir Where To Get Linux(+) (En français, allez voir sur Freenix(+), ou Loria(+))
3. Apprendre à utiliser le World Wide Web et à écrire en HTML.
La plupart des choses créées par la culture des hackers travaillent
dans l'ombre, en aidant à faire tourner des usines, des bureaux et des
universités, sans impact direct sur les vies des non-hackers. Il y a une
grosse exception, le Web, ce jouet de hacker énorme et lumineux dont
même les politiciens admettent qu'il est en train de changer la face du
monde. Rien que pour cette raison (et pour de bonnes raisons par
ailleurs), vous devez apprendre à travailler avec le Web.
Cela ne signifie pas seulement apprendre à utiliser un browser
(navigateur, butineur), mais aussi apprendre à écrire en HTML, le
langage de balisage du Web. Si vous ne savez pas programmer, le fait
d'écrire en HTML vous apprendra quelques habitudes mentales qui vous
aideront à démarrer. Donc, faites-vous une home page (page personnelle).
Mais ce n'est pas seulement d'avoir une home page qui fera de vous un
hacker. Le Web est plein de home pages. La plupart sont d'un intérêt
absolument nul, parfois jolies à regarder mais nulles quand même (pour
plus d'information voir The HTML Hell Page(+)).
Pour être utile, votre page doit avoir du contenu. Elle doit être
intéressante et/ou utile pour les autres hackers. Cela nous conduit à
notre sujet suivant...
Les statuts dans la culture des hackers
Comme pour la plupart des cultures sans économie monétaire, le
fondement de la culture des hackers est la réputation. Vous essayez de
résoudre des problèmes intéressants, mais seuls vos pairs ou vos
supérieurs dans la hiérarchie technique sont à même de juger si ces
problèmes sont intéressants, et si ces solutions sont vraiment
correctes.
Par conséquent, si vous jouez le jeu du hacker, vous apprenez le
score principalement à partir de ce que les autres hackers pensent de
vos capacités, et c'est pour ça que l'on n'est vraiment un hacker que
lorsque les autres hackers vous considèrent comme tel. Ce fait est
obscurci par l'image du hacker comme un travailleur solitaire, aussi
bien que par un tabou de la culture des hackers (qui s'estompe
progressivement mais qui reste présent) : le fait d'admettre qu'une
partie de sa motivation vient de son ego ou de la recherche d'une
acceptation externe.
De façon spécifique, le monde des hackers constitue ce que les
anthropologues appellent une culture du don. On obtient un statut ou une
réputation non pas en dominant les autres, en étant beau ou en
possédant des choses que les autres désirent, mais en faisant des dons :
de son temps, de sa créativité, du résultat de ses compétences.
Il y a principalement cinq types de choses à faire pour être respecté par les hackers :
1. Ecrire des logiciels libres.
La première, la plus centrale et la plus traditionnelle, est d'écrire
des programmes dont les autres hackers pensent qu'ils sont amusants ou
utiles, est de faire don du code source pour que toute la communauté des
hackers puisse les utiliser.
Les "demi-dieux" les plus respectés dans l'univers des hackers sont
ceux qui ont écrit des programmes importants, utiles et correspondant à
un besoin répandu, et qui en ont fait don à la communauté, de sorte que
maintenant tout le monde s'en sert.
2. Aider à tester et à débugger des logiciels libres.
Il
est également utile d'aider à débugger et à perfectionner les logiciels
libres. Dans ce monde imparfait, nous passons inévitablement la part la
plus importante du temps de développement d'un logiciel dans la phase
de débuggage. C'est pour cela que les auteurs de logiciels libres savent
que des bons béta-testeurs (ceux qui savent décrire les symptômes
clairement, localiser précisément les problèmes, qui peuvent tolérer
quelques bugs dans une distribution rapide et qui sont prêt à appliquer
une procédure de diagnostic simple) valent leur pesant d'or. Un seul
d'entre eux peut faire la différence entre une séance de débuggage
cauchemardesque et une simple nuisance salutaire.
Si vous êtes un débutant, essayez de trouver un programme en cours de
développement qui vous intéresse et de devenir un bon béta-testeur.
C'est une progression naturelle que de commencer par aider à tester des
programmes, puis d'aider à les débugger, puis d'aider à les modifier.
Vous apprendrez beaucoup de cette façon, et vous vous ferez un bon karma
par rapport à des gens qui vous aideront plus tard.
3. Publier des informations utiles.
Une autre bonne chose est de réunir et de filtrer des informations
utiles et intéressantes sous forme de pages Web ou de documents comme
les FAQs (listes de Frequently Asked Questions, (en français, Foires Aux
Questions) et de les rendre accessibles à tous.
Les personnes qui maintiennent les FAQs techniques les plus
importantes sont presque autant respectées que les auteurs de logiciels
libres.
4. Aider à faire tourner l'infrastructure.
La culture des hackers (et le développement technique de l'Internet)
marche grâce à des volontaires. Il y a beaucoup de travail peu excitant,
mais nécessaire, qui doit être fait pour que ça continue à tourner :
administrer les mailing lists (listes de diffusion), modérer les
newsgroups, gérer les sites d'archives de logiciels, écrire les RFC
(Requests For Comments, les "normes'' de l'Internet) et autres standards
techniques.
Les gens qui font ce genre de choses sont très respectés, parce que
tout le monde sait que c'est un boulot qui demande énormément de temps
et qui n'est pas aussi drôle que de jouer avec du code.
5. Servir la culture des hackers elle-même.
Pour finir, vous pouvez servir et propager la culture elle-même (par
exemple, en écrivant une introduction précise (ou une traduction
d'icelle) sur comment devenir un hacker :-)). ce n'est pas quelque chose
qu'il vous sera possible de faire avant d'avoir été dans le bain
pendant un certain temps et d'être devenu bien connu pour l'une des
quatre premières choses.
La culture des hackers n'a pas de chefs, au sens précis du terme,
mais elle a des héros, des historiens et des porte-parole. Quand vous
aurez été dans les tranchées pendant assez longtemps, vous pourrez
peut-être devenir l'un de ceux-ci. Mais attention : les hackers se
méfient des egos surdimensionnés chez les anciens de leur tribu. Il faut
donc éviter de montrer ouvertement que l'on recherche à obtenir ce
genre de célébrité. Il vaut mieux faire en sorte qu'elle vous tombe
toute cuite dans votre assiette, et toujours rester modeste à sujet de
votre statut.
Le rapport entre les hackers et les nerds
Contrairement à un mythe populaire, on n'a pas besoin d'être un nerd
(polard) pour être un hacker. Cela aide, cependant, et de nombreux
hackers sont en fait des nerds. D'être un proscrit social vous aide à
vous concentrer sur les choses importantes, comme penser et hacker.
C'est pour cette raison que de nombreux hackers ont adopté
l'étiquette "nerd" et utilisent même le terme plus cru de "geek" comme
un insigne honorifique; c'est une façon de déclarer leur indépendance
vis-à-vis des attentes normales de la vie sociale. Voir The Geek Page(+) pour une discussion exhaustive.
Si vous arrivez à vous concentrer suffisamment sur le hack pour y
exceller et vivre votre vie par ailleurs, tant mieux. C'est beaucoup
plus facile à présent que lorsque j'étais un débutant. La culture
dominante est beaucoup plus tolérante de nos jours vis-à-vis des
techno-nerds. Il y a même un nombre croissant de gens pour penser que
les hackers forment un matériel de premiers choix en tant que petit(e)
ami(e)/mari/femme (consultez par exemple Girl's Guide to Geek Guys(+)).
Si vous voulez devenir un hacker parce que vous n'avez pas de vie
privée, pas de problème : au moins il n'y aura rien pour vous empêcher
de vous concentrer. Et vous finirez peut-être par en avoir une un jour.
Style de vie
Encore une fois, pour être un hacker, il faut entrer dans l'état
d'esprit du hacker. Pour cela, il y a quelques activités que l'on
pratique loin d'un ordinateur qui semblent aider. Ce ne sont évidemment
pas des substituts à la pratique de l'informatique, mais de nombreux
hackers les pratiquent, et pensent qu'elles sont reliées de façon
fondamentale à l'essence du hack.
- Lire de la science-fiction. Aller à des conventions de SF (un bon moyen pour rencontrer des hackers et des proto-hackers);
- Pratiquer le Zen et/ou les arts martiaux (pour la discipline mentale);
- Ecouter et analyser de la musique, apprendre à apprécier des formes particulières de musique. Apprendre à bien jouer d'un instrument, ou à chanter;
- Apprécier les jeux de mot;
- Apprendre à bien écrire dans sa langue maternelle.
Plus vous pratiquez ces disciplines, plus il est probable que vous
pourrez naturellement faire un bon hacker. Les raisons pour lesquelles
ces activités sont importantes ne sont pas claires, mais il semble que
ce soit parce qu'elles font intervenir à la fois les parties gauche et
droite du cortex (les hackers ont besoin de passer de façon instantanée
d'un raisonnement logique à une perception plus subjective d'un
problème).
Pour finir, une liste de choses à ne pas faire:
- Ne pas utiliser des noms de pseudos grandiloquents ou stupides;
- Ne pas intervenir dans les flame wars [guerres au lance-flamme] dans les newsgroups Usenet ou ailleurs;
- Ne pas s'autoproclamer "cyberpunk'', et ne pas perdre son temps avec quelqu'un qui le fait;
- Ne pas poster de message rempli de fautes d'orthographe ou de grammaire.
La seule réputation que vous vous ferez de cette façon est celle d'un
parfait idiot. Les hackers ont la mémoire longue. Cela pourra vous
prendre plusieurs années avant que de telles erreurs soient oubliées.
Traduit de l'anglais par Stéphane FERMIGIER & Emmanuel JUD.
0 التعليقات:
Enregistrer un commentaire