Kuidas saada häkkeriks (Hacker-HOWTO)

Hacker-HOWTO by Eric S. Raymond, Estonian translation by Kaido Kikkas

Ingliskeelne originaaldokument: How To Become A Hacker
Eric Steven Raymond, Thyrsus Enterprises, esr@thyrsus.com. Avaldatud autori nõusolekul.

Tõlkinud: Kaido Kikkas, kakk ätt kakupesa punkt net
Vastab originaali versioonile 1.42
Viimati muudetud 29.11.10

Sisukord

Milleks see dokument?
Kes või mis on häkker?
Häkkerlik suhtumine
1. Maailm on täis imelisi probleeme, mis ootavad lahendamist
2. Ühtegi probleemi ei tuleks lahendada kaks korda
3. Igavus ja nüridus on kurjast
4. Vabadus on hea
5. Suhtumine ei asenda kompetentsi
Häkkeri põhioskused
1. Õpi programmeerima
2. Hangi üks avatud lähtekoodiga Unixitest ja õpi seda kasutama
3. Õpi kasutama veebi ja kirjutama HTMLi
4. Kui sa ei oska piisaval määral inglise keelt, õpi see ära
Staatus häkkerikultuuris
1. Kirjuta avatud lähtekoodiga tarkvara
2. Aita tarkvara testida ja siluda
3. Avalda kasulikku teavet
4. Aita hooldada infrastruktuuri
5. Teeni häkkerikultuuri
Häkkerid ja nohikud
Stiilipunktid
Märkus ajaloo kohta: häkkimine, avatud lähtekood ja vaba tarkvara
Lisalugemist
Korduma Kippuvad Küsimused

spacer

(Tõlkija märkus: Eric on selle dokumendi kirjutanud esimeses isikus ehk "mina"-vormis - seega tuleb tekstis esinevate mina-viidete all mõista autorit, mitte aga tõlkijat.)

Milleks see dokument?

Jargon File'i toimetaja ning veel paari samalaadse hästituntud dokumendi autorina saan ma tihti e-kirju entusiastlikelt värsketelt võrgukasutajatelt, kes küsivad midagi sellist, nagu "kuidas ma võiksin õppida tipphäkkeriks?" Kunagi 1996. aastal märkasin ma, et selle olulise küsimuse kohta polnud leida ühtki teist KKK-d või veebilehte, niisiis ma alustasin seda siin. Praeguseks peavad paljud häkkerid seda autoriteetseks dokumendiks - ma arvan, et ju ta siis seda on. Siiski ei pea ma end ainsaks autoriteediks sel teemal - kui sulle ei meeldi siinloetu, kirjuta ise uus.

Kui te loete selle dokumendi koopiat väljaspool võrku, siis tasub teada, et värskeim versioon asub aadressil catb.org/~esr/faqs/hacker-howto.html.

Märkus: selle dokumendi lõpus on rida Korduma Kippuvaid Küsimusi. Palun loe need kaks korda läbi, enne kui mulle selle dokumendi kohta mõne küsimuse saadad.

See dokument on tõlgitud arvukatesse keeltesse: araabia, bulgaaria, katalaani, hiina (lihtsustatud), taani, hollandi, eesti, pärsia, soome, saksa, kreeka, heebrea, itaalia, jaapani, norra, poola, portugali (Brasiilia dialekt), rumeenia, vene, hispaania, türgi ja rootsi keelde. Tähelepanuks: kuna see dokument aeg-ajalt muutub, võivad need olla eri määral aegunud.

Seda dokumenti kaunistav diagramm - viis punkti üheksal ruudul - on liugur. See on mõnede üllatavate omadustega lihtne kujund, mis pärineb matemaatilisest simulatsioonist nimega Elu (Life), mis on häkkereid ligi tõmmanud juba palju aastaid. Minu arvates on see sobiv visuaalne embleem tähistama seda, millised on häkkerid - abstraktse mõtlemisega, esmalt veidi müstilisena tunduvad, kuid samas avaneb sealtkaudu tee tervesse uude maailma, millel on oma keerukas sisemine loogika. Liuguri kohta võid lähemalt lugeda siit.

Kes või mis on häkker?

Jargon File annab häkkeri kohta peotäie määratlusi, enamik neist mainivad tehnilisi oskusi ning armastust probleemide lahendamise ja piiride ületamise vastu. Kui teid aga huvitab, kuidas häkkeriks saada, siis on neist asjakohased vaid kaks.

On olemas üks tipp-programmeerijatest ja võrguässadest koosnev kogukond, jagatud kultuur, mis loeb oma ajaloo alguseks kümnenditetaguseid esimesi ajajaotussüsteemiga miniarvuteid ja varaseimaid ARPAneti katsetusi. Selle kultuuri liikmed võtsidki kasutusele termini "häkker". Häkkerid ehitasid Interneti. Häkkerid tegid Unixi operatsioonisüsteemist selle, mis ta on praegu. Häkkerid hoiavad käigus Usenetti. Häkkerid panid tööle veebi. Kui sa oled osa sellest kultuurist, oled sellesse andnud oma panuse ning teised selles olijad tunnevad sind ja nimetavad sind häkkeriks, siis oledki sa häkker.

Häkkeri mõtteviis ei ole piiratud vaid tarkvarahäkkeritega. On inimesi, kes rakendavad häkkerlikku suhtumist muudele asjadele, näiteks elektroonika või muusika - tegelikult võib seda kohata mistahes teaduse või kunsti kõrgeimatel tasemetel. Tarkvarahäkkerid tunnustavad neid mujal leiduvaid sugulashingi ja võivad ka neid häkkeriteks kutsuda - mõned väidavadki, et häkkeri loomus ei sõltu tegelikult sellest konkreetsest meediumist, millega häkker töötab. Siiski, edaspidi selles dokumendis keskendume ikkagi tarkvarahäkkerite oskustele ja suhtumistele, samuti tolle jagatud kultuuri traditsioonidele, mis võttis kasutusele termini "häkker".

On olemas ka üks teine rühm inimesi, kes nimetab end valjusti häkkeriteks, kuid pole seda mitte. Need on inimesed (peamiselt noorukid), kes tunnevad lõbu arvutitesse sissemurdmisest ja telefonisüsteemi torkimisest. Pärishäkkerid nimetavad neid inimesi "kräkkeriteks" ja ei taha nendega mingit tegemist teha. Pärishäkkerid peavad kräkkereid laiskadeks, vastutustundetuteks ja mitte eriti taibukateks ning väidavad, et arvuti turvasüsteemide muukimise oskus teeb kellestki häkkeri samavõrd vähe kui autoärandamise oskus teeb inimesest professionaalse autoinseneri. Õnnetuseks on paljud ajakirjanikud ja muud kirjutajad pandud uskuma, et "häkker" vastab kräkkeri kirjeldusele - see on asi, mis võib pärishäkkereid lõputult ärritada.

Põhierinevus on selles: häkkerid teevad asju, kräkkerid lõhuvad neid. Kui sa tahad saada häkkeriks, loe edasi. Kui tahad saada kräkkeriks, mine loe alt.2600 uudisegruppi ja valmistu ka mõneks ajaks pokrimaandumiseks, kui on selgunud, et sa polegi nii taibukas kui ise arvasid end olevat. Ja see on kõik, mida mul kräkkerite kohta öelda on.

spacer

Häkkerlik suhtumine

1. Maailm on täis imelisi probleeme, mis ootavad lahendamist
2. Ühtegi probleemi ei tuleks lahendada kaks korda
3. Igavus ja nüridus on kurjast
4. Vabadus on hea
5. Suhtumine ei asenda kompetentsi

Häkkerid lahendavad probleeme ja loovad uusi asju, nad usuvad vabadusse ning vastastikusse vabatahtlikku abistamisse. Et sind häkkerina tunnustataks, peaksid käituma nii, nagu oleks sinu suhtumine just selline. Ja et nii käituda, peaksid ise sellesse uskuma. Kuid kui sa pead häkkerliku suhtumise kujundamist kõigest viisiks leida selles kultuuris tunnustust, siis pole sa asjale pihta saanud. Nendesse asjadesse uskuvaks inimeseks saamine on tähtis just sinu jaoks - see aitab sul õppida ja säilitada motivatsiooni. Nagu kõigi loovate kunstide puhul, on ka siin meistriks saamise kõige efektiivsem tee imiteerida meistrite mõtteviisi - mitte üksnes intellektuaalsel, vaid ka emotsionaalsel tasandil.

Või nagu järgmine zen'i salm seda väljendab:

Teel käimiseks
Otsi meister
Järgi meistrit
Käi koos meistriga
Näe meistrit läbi
Saa meistriks

Nii et kui sa tahad saada häkkeriks, korda järgnevaid asju seni, kuni sa neid uskuma hakkad.

1. Maailm on täis imelisi probleeme, mis ootavad lahendamist

Häkker olla on lõbus, kuid see on sedasorti lõbu, mis vajab kõvasti pingutamist. Pingutamiseks on vaja motivatsiooni. Edukad sportlased saavad motivatsiooni teatavast füüsilisest rahulolutundest, kui nende keha neile allub ja suudab ületada nende enda füüsilisi piire. Nõndasamuti peab ka häkker tundma rõõmu probleemide lahendamisest, oskuste edenemisest ning oma intellekti proovilepanekust. Kui sa pole juba inimene, kelle jaoks selline tunne on loomulik, siis peaksid sa selleks saama, et häkkerina läbi lüüa. Vastasel juhul leiad varsti, et sinu häkkimisenergia kaob kõrvalistesse asjadesse nagu seks, raha ja sotsiaalne tunnustus.

(Sa pead ka arendama usku omaenese õpivõimesse - usku sellesse, et kui sa ka ei tea algul kõike, mida mingi probleemi lahendamiseks vaja on, siis kui lahendad sellest mingi osa ja õpid sellest, suudad lahendada järgmise tüki - ja nii edasi, kuni lahendus on käes.

2. Ühtegi probleemi ei tuleks lahendada kaks korda

Loovad ajud on väärtuslik ja piiratud ressurss. Neid ei peaks raiskama jalgratta uuestileiutamise peale, kui nii palju põnevaid uusi probleeme ootab ümberringi lahendamist. Et käituda nagu häkker, peaksid uskuma, et teiste häkkerite mõtlemisele kuluv aeg on väärtuslik - niivõrd väärtuslik, et info jagamine, probleemide lahendamine ja seejärel tulemuste teatavakstegemine (et teised häkkerid saaksid võtta käsile uued probleemid, selle asemel et pidevalt vanadega tegelda) muutuvad sulle peaaegu et moraalseks kohuseks.

Pane siiski tähele, et "ühtegi probleemi ei tuleks lahendada kaks korda" ei tähenda seda, et kõiki olemasolevaid lahendusi tuleks pühadeks lehmadeks pidada, või et igale probleemile on vaid üks õige lahendus. Sageli õpime me probleemi kohta palju uut, kui uurime esialgset lahendust. Otsustada, et me suudame paremini teha, on igati hea ja tihti ka vajalik. Mis aga hea ei ole, on kunstlikud tehnilised, seadusandlikud ja organisatsioonilised takistused (nagu suletud lähtekood), mis ei lase häid lahendusi uuesti kasutada ning sunnivad inimesi jalgratast uuesti leiutama.

(Sa ei pea uskuma, et oled kohustatud kogu oma loomingutulemuse ära andma - ehkki just need häkkerid, kes nii teevad, on teiste poolt kõige enam hinnatud. Selle müümine ulatuses, mis võimaldab sul toitu osta, üüri maksta ja arvuteid osta on häkkeriväärtustega täiesti kooskõlas. Oma häkkerioskuste kasutamine perekonna ülalpidamiseks või isegi rikastumiseks on heakskiidetav seni, kuni sa seda taotledes ei unusta lojaalsust oma kunsti ja teiste häkkerite suhtes.

3. Igavus ja nüridus on kurjast

Häkkerid (ja loomeinimesed üldse) ei tohiks kunagi tunda igavust ega teha nüri ja rumalat tsüklilist tööd, sest selles olukorras ei tee nad seda, mida vaid nemad suudavad - lahendada uusi probleeme. Selline raiskamine kahjustab kõiki. Seepärast pole igavus ja nüridus mitte üksnes ebameeldivad, vaid otseselt kurjast.

Et käituda nagu häkker, peaksid sa uskuma seda piisavalt palju, et tahta kõiki igavaid töid automatiseerida niipalju kui võimalik - mitte üksnes enda, vaid kõigi teiste (eriti teiste häkkerite) juures.

(Selle punkti juures on üks selge erand. Häkkerid teevad vahel asju, mis tunduvad kõrvalseisjale igavad või nürid - kas siis meeli puhastava harjutusena või omandamaks oskust või kogemust, mida muud moodi ei ole võimalik saada. Kuid see on teadlik valik - ühtegi mõtlemisvõimelist inimest ei tohiks kunagi sundida igavasse olukorda.)

4.Vabadus on hea

Häkkerid on juba loomu poolest autoritaarsuse vastu. Igaüks, kes võib sind käsutada, võib segada sul lahendada mistahes põnevat probleemi, millega sa parajasti tegeled - ja arvestades viisi, kuidas autoritaarne mõttemall toimib, leiab ta sellele mõne põrutavalt lollaka põhjenduse. Seega tuleb autoritaarse suhtumise vastu võidelda kõikjal, kus seda kohata võib, et ta sind ja teisi häkkereid ära ei lämmataks.

(See ei tähenda igasuguse autoriteedi vastu võitlemist. Lapsi tuleb juhatada ja kurikaelad tuleb kinni panna. Häkker võib nõustuda tunnustama teatud autoriteete, kui ta saab vastu midagi, mida ta tahab rohkem kui seda aega, mis kulub käskude täitmisele. Kuid see on piiratud ulatusega ning teadlik tehing - isikuvabadus, mille loovutamist autoritaarsus eeldab, ei ole kaubaks.)

Autoritaarsus rajaneb tsensuuril ja salatsemisel. Nad ei usalda vabatahtlikku koostööd ega info jagamist - neile meeldb vaid selline "koostöö", mis on nende kontrolli all. Niisiis häkkerina käitumiseks peaksid endas arendama instinktiivset vastumeelsust tsensuuri, salatsemise ning jõu ja pettuse kasutamisele vastutusvõimeliste inimeste veenmiseks. Ja sa peaksid suutma ka tegutseda sellele veendumusele vastavalt.

5. Suhtumine ei asenda kompetentsi

Et olla häkker, peaksid endas arendama teatud suhtumisi. Kuid suhtumine üksi ei tee sind häkkeriks rohkem kui tippatleediks või rokitäheks. Häkkeriks saamine nõuab intelligentsust, praktikat, pühendumist ja rasket tööd.

Seetõttu pead sa õppima umbusaldama paljast suhtumist ja austama igasugust kompetentsi. Häkkerid ei lase poosetajatel enda aega raisata, kuid nad jumaldavad kompetentsi - eriti häkkimisalast, kuid mistahes kompetents on hinnatud. Kompetents keerukatel aladel, mida vaid vähesed suudavad vallata, on eriti hinnatud. Ja kompetents keerukatel aladel, mis nõuavad vaimset täpsust, oskusi ja keskendumist, on parim. Kui sa austad kompetentsi, hakkab sulle meeldima ka seda enda juures arendada - raskest tööst ja pühendumisest saab seeläbi isemoodi karm mäng, mitte enam nüridus. Selline suhtumine on häkkeriks saamisel ülioluline.

spacer

Häkkeri põhioskused

1. Õpi programmeerima
2. Hangi üks avatud lähtekoodiga Unixitest ja õpi seda kasutama
3. Õpi kasutama veebi ja kirjutama HTMLi
4. Kui sa ei oska piisaval määral inglise keelt, õpi see ära

Häkkerlik suhtumine on oluline, kuid oskused on veelgi olulisemad. Suhtumine ei asenda kompetentsi ning on olemas teatav põhioskuste komplekt, mis sul peab olemas olema, enne kui ühelgi häkkeril võiks tulla pähe sind häkkeriks nimetada.

See komplekt muutub aeglaselt aja jooksul, kuna tehnika areng loob uusi oskusi ja muudab vanu aegunuteks. Näiteks kuulus sellesse omal ajal masinkoodis programmeerimine, samal ajal ei sisaldanud see kuni viimase ajani HTMLi valdamist. Käesoleval ajal sisaldab see aga üsna selgesti järgnevaid asju:

1. Õpi programmeerima

See on muidugi põhiline häkkerioskus. Kui sa ei tunne veel ühtki programmeerimiskeelt, siis soovitaksin alustada Pythoniga. See on selge disainiga, hästi dokumenteeritud ja algajate vastu suhteliselt leebe. Kuigi ta sobib esimeseks keeleks, pole see mänguasi - ta on väga võimas ja paindlik ning sobib hästi ka suurte projektide jaoks. Ma olen kirjutanud ühe detailsema hinnangu Pythonile, häid õpetusi leiab ka Pythoni veebilehelt.

Varem soovitasin Javat kui head keelt varakult õppimiseks, kuid see kriitika pani mind meelt muutma (otsi sealt peatükk The Pitfalls of Java as a First Programming Language). Häkker ei saa läheneda probleemile nii, nagu nad seda hävitavalt nimetavad, "nagu torujüri rauapoes" - sa pead teadma, mida mingi asja koostisosad tegelikult teevad. Nüüd arvan, et võib-olla on kasulikum õppida esmalt C-d ja LISPi ning alles seejärel Javat.

Kui sa jõuad tõsise programmeerimiseni, pead ära õppima C, Unixi aluskeele. C++ on C-le väga sarnane, nii et ühte osates ei ole teise õppimine raske. Siiski pole kumbki neist sobiv esimeseks programmeerimiskeeleks. Tegelikult - mida enam sa suudad vältida C-s programmeerimist, seda viljakam sa oled.

C on väga tõhus ning väga kokkuhoidlik arvuti ressurssidega ümberkäimisel. Paraku saavutatakse see tõhusus nõudmisega sooritada suur osa operatsioone madaltaseme ressursihalduses (nagu mälu) käsitsi. See madaltaseme kood on keeruline ja aldis vigadele ning selle silumine võtab tohutult aega. Tänaste masinate võimsuse juures on see enamasti kehv kaup - mõttekam on kasutada keelt, mis kasutab küll arvuti aega vähem tõhusalt, kuid sinu aega palju tõhusamalt. See tähendab Pythonit.

Teised häkkerite jaoks erilise tähtsusega keeled on Perl ja LISP. Perli tasub õppida praktilistel kaalutlustel - seda kasutatakse laialdaselt dünaamilises veebis ja süsteemihalduses, nii et isegi kui sa kunagi Perli ei kirjuta, peaksid suutma seda lugeda. Paljud kasutavad Perli nii, nagu mina soovitaks Pythonit - vältimaks C-s programmeerimist ülesannete juures, mis ei nõua C masinalähedust. Sa pead olema suuteline nende koodi lugema.

LISPi tasub õppida teistel kaalutlustel - nimelt selle suure valgustava kogemuse nimel, mille sa läbi elad, kui see sulle viimaks kohale jõuab. See kogemus muudab su paremaks programmeerijaks elu lõpuni, isegi kui sa tegelikult kuigi palju LISPi ei kasutagi. (Mõningat algkogemust võid LISPiga saada üsna kergesti, kirjutades ja muutes Emacsi tekstiredaktori redigeerimisrežiime või Script-Fu pluginaid GIMPi jaoks.)

Kõige parem oleks tegelikult õppida ära kõik viis: Python, C/C++, Java, Perl ja LISP. Lisaks sellele, et nad on tähtsaimad häkkerikeeled, esindavad nad väga erinevaid lähenemisi programmeerimisele ning igaüks neist harib sind erineval väärtuslikul moel.

Kuid võta teadmiseks, et sa ei saavuta häkkeri - ega isegi programmeerija - taset, kui sa oskad vaid üht-kaht keelt. Sa pead õppima mõtlema programmeerimisprobleemidest üldiselt, sõltumata ühestki konkreetsest keelest. Et olla tõeline häkker, pead jõudma tasemele, kus sa suudad õppida uue keele ära päevadega, lihtsalt seostades omavahel manuaalis kirjasoleva ning juba olemasolevad teadmised. See tähendab, et peaksid õppima mitmeid väga erinevaid keeli.

Ma ei saa siin anda täielikke juhiseid programmeerimise õppimiseks - see on keeruline oskus. Kuid võin öelda, et raamatud ja kursused ei aita (paljud, võib-olla enamik parimatest häkkeritest on iseõppijad). Sa võid raamatust õppida keele omadusi - teadmiste killukesi, kuid seda teadmist "elusaks" oskuseks muutvat mõtteviisi saab omandada üksnes praktika ja õpipoisiajaga. Aitab a) koodi lugemine ja b) koodi kirjutamine.

Peter Norvig, üks Google'i tipphäkkeritest ja maailmas enimkasutatud tehisintellektiõpiku üks kaasautoreist on kirjutanud suurepärase essee pealkirjaga "Õpi kümne aastaga programmeerima". Tema "programmeerimise eduretsept" väärib hoolikat tähelepanu.

Programmeerimise õppimine sarnaneb hea tavakeele õppimisele. Parim meetod selleks on lugeda meistrite kirjutatut, kirjutada midagi ise, lugeda veel kõvasti juurde, kirjutada veel, lugeda veel, kirjutada veel... ja korrata seda seni, kuni su kirjutatu hakkab ilmutama samu omadusi kui eeskujud.

Hea koodi leidmine oli varem üsna raske, kuna vaid väheste suuremate programmide lähtekood oli häkkerite jaoks uurimiseks ja torkimiseks avatud. See on nüüdseks kardinaalselt muutunud - avatud lähtekoodiga tarkvara, programmeerimisvahendid ja operatsioonisüsteemid (kõik häkkerite enda looming) on nüüd laialt saadaval. Siit jõuamegi kenasti järgmise punkti juurde...

2. Hangi üks avatud lähtekoodiga Unixitest ja õpi seda kasutama

Ma eeldan, et sul on olemas personaalarvuti või ligipääs mõnele. (Mõtle hetkeks, kui palju see tähendab. Häkkerikultuur sai alguse aegadel, mil arvutid olid nii kallid, et üksikisikul ei saanud seda olla.) Kõige tähtsam samm, mida algaja saab häkkerioskuste omandamise suunas teha, on hankida endale Linux, üks BSD Unixitest või OpenSolaris, paigaldada see oma arvutisse ja see käima lasta.

Jah, maailmas on teisigi operatsioonisüsteeme peale Unixi. Kuid neid levitatakse kahendkujul - sa ei saa nende koodi lugeda ega muuta. üritus õppida häkkima Microsoft Windowsi või mõne muu suletud lähtekoodiga süsteemiga arvutil sarnaneb katsega üle kere lahasesse panduna tantsima õppida.

MacOS X-is on see võimalik, kuid üksnes osa sellest süsteemist on avatud lähtekoodiga - tõenäoliselt põrkad sa paljudele takistustele, samuti pead olema tähelepanelik, et mitte omandada halba harjumust sõltuda Apple'ile kuuluvast programmikoodist. Kui aga kontsentreeruda süsteemi "kapoti all" töötavale Unixile, on võimalik õppida mõndagi kasulikku.

Unix on Interneti operatsioonisüsteem. Ehkki Internetti kasutama õppida saab ka ilma Unixit tundmata, ei saa ilma Unixit mõistmata olla Interneti-häkker. Sel põhjusel on tänane häkkerikultuur üsna tugevasti Unixi-keskne. (See pole alati nii olnud ning mõned vana kooli häkkerid pole selle üle siiani õnnelikud, kuid Unixi ja Interneti vaheline sümbioos on kasvanud nii tugevaks, et isegi Microsofti hammas sellele kuigivõrd peale ei hakka.)

Niisiis, võta Unix - mulle endale meeldib Linux, kuid on ka teisi teid (ning jah, Linuxi ja Microsoft Windowsi jooksutamine samas masinas on täiesti võimalik). Õpi seda. Jooksuta seda. Torgi seda. Käi sellega Internetis. Loe koodi. Muuda koodi. Sinu käsutuses on paremad programmeerimisvahendid (kaasa arvatud C, LISP, Python ja Perl) kui üheski Microsofti süsteemis iial on, sul saab olema lõbus ning sa kogud rohkem teadmisi, kui isegi aru saad, enne kui sa ükskord meisterhäkkerina sellele kõigele tagasi vaatad.

Unixi õppimise kohta loe edasi Loginataka'st. Võiksid heita pilgu ka Unixi Programmeerimise Kunstile.

Linuxi hankimiseks vaata Linux Online! -veebilehele - võid selle sealt alla laadida või (veel parem mõte) leida mõne kohaliku Linuxi kasutajarühma (Linux User Group ehk LUG), kust võid paigaldamiseks abi saada.

Hea viis "varbaid märjaks teha" on asi, mida Linuxi fännid nimetavad "elus CD-ks" (ingl. k. live CD) - distro, mis jookseb täielikult CD-lt, vajamata muudatusi kõvakettal. CD aegluse tõttu on see aegavõttev, kuid see on viis tutvuda erinevate võimalustega ilma midagi drastilist ette võtmata.

Selle materjali esimese kümne aasta jooksul väitsin, et uue kasutaja vaatenurgast on kõik Linuxi distrod enam-vähem võrdväärsed. 2006-2007 aga ilmus tõeliselt parim valik: Ubuntu. Kuigi teistel distrodel on omad tugevad küljed, on Ubuntu algajate suhtes kaugelt kõige sõbralikum.

BSD Unixi kohta saad abi ja lisamaterjale www.bsd.org veebilehelt.

Ma olen kirjutanud ka ülevaate Unixi ja Interneti põhitõdedest.

(Märkus: ma ausalt öeldes ei soovita algajal üksinda Linuxi või BSD paigaldamist üritada. Linuxi osas võiksid kohalikust kasutajarühmast abi paluda.)

3. Õpi kasutama veebi ja kirjutama HTMLi

Enamik häkkerikultuuri saavutusi töötab varjatult, hoides käigus tehaseid, kontoreid ja ülikoole ilma erilise nähtava mõjuta mitte-häkkerite elule. Veeb on üheks suureks erandiks - see on tohutu ja särav häkkerite mänguasi, mille maailma muutvat mõju tunnistavad isegi poliitikud. Juba ainuüksi seetõttu (ja häid põhjusi on veel hulgi) pead sa õppima veebiga töötama.

See ei tähenda üksnes veebilehitseja kasutamise õppimist (seda suudab igaüks), vaid ka veebi märgendikeele HTMLi kirjutamist. Kui sa ei oska veel programmeerida, õpetab HTMLi kirjutamine sulle mõningaid vaimseid harjumusi, mis aitavad sul seda õppida. Nii et tee endale koduleht. Püüa jääda XHTMLi piiresse, mis on ilusam keel kui klassikaline HTML. (veebis on palju häid õpetusi algajatele - üks neist on siin.)

Kuid kodulehe omamine ei ole kaugeltki mitte piisav, et saada häkkeriks. Veeb on kodulehti täis. Enamik neist on mõttetu, nullsisuga jamps - võib-olla väga uhke väljanägemisega jamps, kuid jamps ikkagi (sel teemal vaata lähemalt HTMLi Põrgut).

Et olla midagi väärt, peab su lehel olema sisu - see peab olema huvitav ja/või kasulik teistele häkkeritele. Ja nii jõuame järgmise punktini...

4. Kui sa ei oska piisaval määral inglise keelt, siis õpi see ära

Ameeriklasena, kelle emakeel on inglise keel, pole ma varem tahtnud seda soovitada, et seda ei võetaks kui teatavat liiki kultuuriimperialismi. Kuid mitmed teiste emakeeltega inimesed on soovitanud mul märkida, et inglise keel on häkkerikultuuri ja Interneti töökeel ning häkkerikultuuris osalemiseks peab seda oskama.

Juba 1991. aasta paiku sain teada, et mitmed häkkerid, kellele inglise keel on teiseks keeleks, kasutavad seda tehnilistes vestlustes isegi juhul, kui neil on sama emakeel - mulle öeldi tollal, et inglise keeles on rikkalikum tehniline sõnavara kui teistes keeltes ning see on lihtsalt parem töövahend sellise töö jaoks. Samadel põhjustel on ingliskeelsete tehniliste raamatute tõlked teistesse keeltesse tihti kehvad (kui neid üldse on).

Soomest pärit Linus Torvalds kommenteerib oma programmikoodi inglise keeles (tal pole ilmselt kunagi tulnud pähe teisiti toimida). Tema hea inglise keel on osutunud oluliseks faktoriks ülemaailmse Linuxi arendajate kogukonna kujundamisel. Seda eeskuju tasub järgida.

Kui su emakeel on inglise keel, ei taga see veel häkkerile piisavat keeleoskust. Kui su kirjutised on pool-kirjaoskamatud, ebagrammatilised ja kirjavigu täis, kipuvad paljud häkkerid (mina ise kaasa arvatud) sind ignoreerima. Ehkki kehv kirjaoskus ei tähenda alati kehva mõtlemisvõimet, oleme me ilmselt leidnud siin tugeva seose - ja kehva mõtlemisvõimega inimestest pole meil tolku. Nii et kui sa ei oska veel korralikult kirjutada, siis õpi see ära.

spacer

Staatus häkkerikultuuris

1. Kirjuta avatud lähtekoodiga tarkvara
2. Aita tarkvara testida ja siluda
3. Avalda kasulikku teavet
4. Aita hooldada infrastruktuuri
5. Teeni häkkerikultuuri

Nagu enamik ilma rahapõhise majanduseta kultuure, püsib häkkerlus reputatsioonil. Sa üritad lahendada huvitavaid probleeme, ent seda, kui huvitavad need on või kas su lahendused on piisavalt head, võivad enamasti hinnata vaid teised sinu kõrval või sinust kõrgemal. Järelikult pead häkkerite seas kaasamängimiseks õppima jälgima seda, mida teised häkkerid sinu oskustest arvavad (seepärast polegi sa häkker enne, kui teised häkkerid sind pidevalt nii nimetavad). Seda muudab aga segasemaks senini püsiv kujutelm häkkimisest kui üksi tehtavast asjast ning ka häkkerikultuuri tabu (mis on alates 1990-ndate lõpust vaikselt taandunud, kuid ikka veel tugev) tunnistada, et ego või väline heakskiit üldse kedagi motiveerivad.

Täpsemalt on häkkerlus midagi sellist, mida antropoloogid nimetavad kingikultuuriks. Staatus ja reputatsioon ei tulene mitte teiste üle domineerimisest, ilusast väljanägemisest või teiste poolt ihaldatavate asjade omamisest, vaid asjade äraandmisest. Täpsemalt oma aja, loovuse ja töötulemuste äraandmisest.

Põhimõtteliselt on viit liiki asju, mida häkkerite seas austuse pälvimiseks teha.

1. Kirjuta avatud lähtekoodiga tarkvara

Esimeseks (kõige kesksemaks ja traditsioonilisemaks) on kirjutada programme, mida teised häkkerid peavad lahedaks või kasulikuks ning anda programmide lähtekood kogu häkkerikultuurile kasutada.

(Varem nimetasime neid töid "vabaks tarkvaraks", kuid see ajas segadusse paljud inimesed, kes ei saanud aru, mida "vaba" all mõeldakse. Enamik meist eelistab tänapäeval terminit "avatud lähtekood") (Tõlkija märkus: eesti keeles on "vaba tarkvara" siiski enam juurdunud, kuna puudub "free" kahetähenduslikkus).

Häkkerluse kõige austatumad "pooljumalad" on inimesed, kes on loonud suuri ja võimsaid programme, mida vajavad paljud inimesed, ning andnud need igaühe kasutusse.

Kuid siin tuleks teha üks ajalooline märkus. Ehkki häkkerid on alati pidanud avatud lähtekoodiga tarkvara arendajaid enda hulgas oma kogukonna tuumikuks, töötas suurem osa häkkereid enne 1990-ndate keskpaika peamiselt suletud lähtekoodiga. See oli nii veel 1996. aastal, kui ma selle teksti algvariandi kirjutasin - alles avatud lähtekoodi laiem levik peale 1997. aastat muutis olukorda. Tänaseks on "häkkerikogukond" ja "avatud lähtekoodiga tarkvara arendajad" kaks erinevat kirjeldust praktiliselt ühe ja sama kultuuri ja inimkoosluse kohta - kuid tasub meeles pidada, et see ei ole alati nõnda olnud.

2. Aita tarkvara testida ja siluda

Abiks on ka avatud lähtekoodiga tarkvara testijad ja silujad. Meie ebatäiuslikus maailmas kulub paratamatult suurim osa tarkvaraarenduse ajast silumisetapile. Seepärast võib iga mõtlev tarkvaralooja kinnitada, et head beetatestijad (kes suudavad probleeme selgelt kirjeldada ning nende tekkekohti täpsustada, elavad üle "puugid" ebastabiilsetes versioonides ning on suutelised ka ise mõne lihtsa diagnostikavahendi valmis kirjutama) on kuldaväärt. Ka üks selline inimene suudab silumise kui piinarikka ja pikaleveniva õudusunenäo asendada kõigest väikese lisakohustusega.

Kui oled algaja, püüa leida arendatav tarkvara, mis sind ennast huvitab, ning hakka heaks beetatestijaks. Testimisest edasi läheb loogiline areng programmide silujaks ja sealt edasi juba muutjaks ja edasiarendajaks. Seda teed käies õpid sa palju ning saavutad head suhted inimestega, kes võivad edaspidi sind ennast aidata.

3. Avalda kasulikku teavet

Veel üks kiiduväärt tegevus on kasuliku ja huvitava info kogumine ja filtreerimine, selle muutmine veebilehtedeks või KKK (Korduma Kippuvad Küsimused) -tüüpi dokumentideks ning tegemine üldiselt kättesaadavaks. Suurte tehniliste KKK-de haldajad on peaaegu samavõrra au sees kui avatud lähtekoodiga tarkvara loojad.

4. Aita hooldada infrastruktuuri

Häkkerikultuur (ja tegelikult kogu Interneti tehniline arendamine) püsib vabatahtlikel. Selle käigushoidmine nõuab palju vajalikku, kuid "musta" tööd - e-postilistide haldamine, uudisegruppide modereerimine, suurte tarkvaraarhiivide hooldamine, RFC-de (Tõlkija märkus - Request For Comments ehk Interneti eri valdkondade korraldust sätestav programmiline dokument) ja muude tehniliste standardite arendamine.

Seda tööd tegevad inimesed pälvivad rohkesti austust, kuna kõik teavad, kui palju aega selline tegevus nõuab ning et see pole nii lõbus kui koodiga mängimine. Selle töö tegemine näitab pühendumist.

5. Teeni häkkerikultuuri

Lõpuks võid sa teenida ja levitada ka häkkerikultuuri ennast (näiteks nagu kirjutades täpse juhise, kuidas häkkeriks saada. :-)). Seda tööd ei anta sulle enne, kui oled mõnda aega asjaga tegelnud ja saanud ühega eelmistest neljast tegevusest piisavalt tuntuks.

Häkkerikultuuril ei ole juhte selle sõna otseses tähenduses, kuid sel on omad kultuuriheerosed, hõimujuhid, ajaloolased ja kõnemehed. Kui sa oled olnud lahinguväljal piisavalt kaua, võib sinust saada üks neist. Vaata ette: häkkerid ei armasta enda vanemate juures oma ego upitamist, nii et sedalaadi kuulsuse otsene taotlemine on ohtlik. Parem on luua endale selline positsioon, et kuulsus ise sülle kukub, ning seejärel olla enda staatuse osas tagasihoidlik ja viisakas.

spacer

Häkkerid ja nohikud

Vastupidiselt laialt levinud eksiarvamusele ei pea sa häkker olemiseks olema nohik. Tõsi, sellest on abi ja paljud häkkerid ongi tegelikult nohikud. Ühiskondlik tõrjutus aitab kontsentreeruda tõeliselt tähtsatele asjadele nagu mõtlemine ja häkkimine.

Seetõttu kannavad paljud häkkerid nohiku (Tõlkija märkus: eesti "nohikul" on inglise keeles kaks eri varjundiga tõlkevastet - geek tähistab enam nohikut, kes on sellise olemise ise valinud, nerd aga õnnetumat sorti, kes seda ise olla ei sooviks) silti uhkusega - see on nende jaoks viis deklareerida oma sõltumatust ühiskonna tavapärastest ootustest (siia käivad ka kiindumus selliste nähtuste nagu ulme ja strateegiamängude vastu, mis sageli häkkereid iseloomustab). 1990-ndate alguses kasutati selliselt (Ameerikas - tõlkija märkus) terminit nerd - see oli kergelt halvustav, samal ajal oli geek märksa räigem sõna (tähistas muuhulgas Inglismaa tsirkustes "metsmeest", kes puuris mörises ja elusaid kanu sõi - tõlkija märkus). Kusagil peale 2000. aastat vahetasid need terminid vähemalt USA popkultuuris kohad ning tänaseks on "nohikukultuur" laienenud ka mittetehniliste inimesteni.

Kui sa suudad keskenduda häkkimisele piisavalt, et saavutada hea tase, ning ometi suudad ka oma elu elada, on kõik hästi. See on tänapäeval palju lihtsam kui minu algaja-aegadel 1970-ndatel, kuna tänane "peavoolu" kultuur on tehnofriikide suhtes märksa sõbralikum. Nende inimeste arv, kes leiavad häkkerid olevat sobivad partnerid ja abikaasad, on isegi tõusuteel.

Kui sind tõmbab häkkimine seetõttu, et sul oma elu ei ole, on ka hästi - vähemalt ei teki sul keskendumisraskusi. Ehk tuleb oma elu kunagi hiljem.

spacer

Stiilipunktid

Taas kord: häkker olemiseks pead sa omandama häkkeri mõtteviisi. Ka väljaspool arvuteid on mõningaid asju, millega tegelemine näib seda soodustavat. Nad ei asenda häkkimist (seda ei asenda miski), kuid paljud häkkerid tegelevad nendega ja tunnevad, et need tegevused seonduvad mingil moel häkkimise olemusega.

Mida enamatega neist asjadest sa juba praegu tegeled, seda tõenäolisemalt on sul loomulikke eeldusi häkkeriks saada. Miks just need asjad, ei ole lõplikult teada, kuid ilmselt on tegu vasaku ja parema ajupoolkeraga seonduvate oskuste sobiliku seguga - häkkerid peavad suutma nii loogiliselt arutleda kui ka hetkevälgatuse mõjul probleemi näilisest loogikast välja astuda.

Tööta sama intensiivselt kui mängid ning mängi sama intensiivselt kui töötad. Tõeliste häkkerite jaoks kipuvad piirid "mängu", "töö", "teaduse" ja "kunsti" vahel kaduma või segunema kõrgemal tasemel loovaks mängulisuseks. Ära ka rahuldu kitsa oskustespektriga. Kuigi enamik häkkereid liigitab end programmeerijateks, on nad tõenäoliselt enam kui kompetentsed mitmetes seonduvates valdkondades - süsteemihaldus, veebidisain ja PC-de riistvara diagnostika on väga levinud. Teisalt on süsteemihaldurist häkker tõenäoliselt ka üsna osav skriptiprogrammeerija ja veebidisainer. Häkkerid ei tee asju poolekaupa - kui nad üldse mingisse oskusse panustavad, siis jõuavad nad harilikult selles väga heale tasemele.

Lõpetuseks ka paar asja, mida ei tohiks teha.

Ainus reputatsioon, mida sa neid tehes saad, on lolli inimese oma. Häkkeritel on pikk mälu - võib kuluda aastaid, enne kui su varajased "ämbrid" andeks antakse.

Kasutajanimede teema väärib natuke arendamist. Enda isiku peitmine kasutajanime taha on lapsik ja tobe käitumine, mis iseloomustab kräkkereid, warez d00d'e ja muid alamaid eluvorme. Häkkerid nii ei tee - nad on uhked selle üle, kes nad on, ning tahavad seda seostada oma pärisnimega. Seega kui sa peitud kasutajanime taha, loobu sellest. Häkkerikultuuris annab see sulle vaid luuseri märgi külge.

Märkus ajaloost: häkkimine, avatud lähtekood ja vaba tarkvara

TÕLKIJA MÄRKUS: ESR esindab siin selgelt avatud lähtekoodi (open source) koolkonda (vastandina Richard Stallmani vaba tarkvara koolkonnale). Eesti keeles on termin "avatud lähtekood" jäänud pigem puhttehniliseks mõisteks ja "vaba tarkvara" tähistab siinmail pigem laiemat terminit, mida inglise keeles tähistatakse ühendterminga FLOSS (Free, Libre and Open-Source Software) ning mis katab mõlemad mainitud koolkonnad.

Kui ma 1996. aasta lõpus selle dokumendi algversiooni kirja panin, olid mitmed asjad üsna teisiti kui tänapäeval. Alljärgnev lühike selgitus aitab ehk vähendada segadust nende inimeste jaoks, kes tunnevad huvi avatud lähtekoodi, vaba tarkvara ja Linuxi seostes häkkerite kogukonnaga. Kui see aga sind ei huvita, võid liikuda kohe edasi lisalugemise ja korduma kippuvate küsimuste juurde.

Häkkerieetika ja -kogukond sellisena, nagu ma seda olen kirjeldanud, ulatub palju varasemasse aega kui seda on Linuxi tulek 1990. aastatel - mina ise alustasin selles 1976. aasta paiku ning selle liikumise juuri võib selgesti näha juba 60. aastate alguses. Kuid enne Linuxi tulekut piirdus häkkimine omanduslike süsteemidega või siis käputäie kodukootud, pool-eksperimentaalsete süsteemidega nagu MIT ITS, mis ei jõudnud kunagi oma kitsast akadeemilisest ringist väljapoole. Ehkki seda olukorda üritati muuta juba enne Linuxit, jäi nende mõju marginaalseks ja piirdus tõeliste fanaatikute rühmadega, kes moodustasid tühise vähemuse isegi häkkerikogukonna sees, rääkimata siis tarkvara maailmast laiemalt.

Avatud lähtekood, nagu seda tänapäeval tuntakse, on sama vana kui häkkerikultuur, ent umbes 1985. aastani oli tegu pigem nimetu rahvakombega kui teadliku, teooriate ja seisukohtadega varustatud liikumisega. See eelajalugu sai otsa 1985. aastal, kui esihäkker Richard Stallman (tuntud ka kui RMS) üritas anda sellele nime - "vaba tarkvara". Kuid see tõi kaasa ka ideoloogilise taaga lisamise "vaba tarkvara" mõistele, mida suur osa olemasolevast häkkerikogukonnast heaks ei kiitnud. Selle tulemusena protestis märgatav vähemus häkkerikogukonnast (eriti need, kes olid koondunud BSD Unixi ümber) valjuhäälselt "vaba tarkvara" arusaamade vastu ning ka enamik (k.a. mina ise) võttis selle omaks tuntavate reservatsioonidega.

Sellest hoolimata kandis RMSi püüe koondada häkkerikultuuri "vaba tarkvara" lipu alla vilja kuni 90. aastate keskpaigani. Sellele esitas väljakutse just Linuxi esiletõus, millest sai avatud lähtekoodi liikumise loomulik keskpunkt. Paljud varasemad projektid, mis levisid praegu avatud lähtekoodina tuntud tingimustel, kolisid omanduslikelt Unixitelt Linuxile. Linuxi kogukond kasvas plahvatuslikult, saades kõvasti suuremaks ja kirjumaks kui Linuxi-eelne häkkerikultuur. RMS püüdis ka seda liikumist "vaba tarkvara" alla koondada, kuid sellele seisis vastu nii kogukonnas leviv arvamuste paljusus kui ka Linuxi looja Linus Torvaldsi selgelt väljendatud umbusk. Kuna paremat terminit polnud, jätkas Torvalds "vaba tarkvara" kasutamist, ent lükkas selgelt tagasi RMSi ideoloogia. Paljud nooremad häkkerid järgnesid talle.

Kui ma 1996. aastal esmakordselt selle dokumendi avaldasin, oli häkkerikogukond kiiresti koondumas Linuxi ja paari teise avatud lähtekoodiga (eriti just BSD Unixi taustaga) süsteemi ümber. Mälestus sellest, et tegelikult oli enamik meist töötanud aastaid kinnise lähtekoodiga tarkvara loomisel kinnise ḱoodiga süsteemides, ei olnud veel kadunud, kuid see oli juba hakanud muutuma kaugeks, surnud minevikuks - häkkerid olid üha enam määratlemas endid avatud lähtekoodiga projektide, nagu Linux ja Apache, kaudu.

Terminit "avatud lähtekood" aga veel ei olnud, see ilmus alles 1998. aasta alguses. Selle tulekuga aga võeti see kuue kuu jooksul omaks enamiku häkkerikogukonna poolt - erandiks jäi vähemus, kes pooldas "vaba tarkvara" ideoloogiat. Alates 1998. (ja eriti 2003.) aastast on "häkkimine" ja "avatud lähtekoodiga (vaba tarkvara) arendus" saanud üha enam samatähenduslikeks. Tänapäeval ei ole enam nende vahel rangel vahetegemisel kuigi suurt mõtet.

On aga kasulik meeles pidada, et see ei ole alati nii olnud.

Lisalugemist

Paul Graham on kirjutanud hea essee pealkirjaga Great Hackers, ning veel teisegi pealkirjaga Undergraduation, millest nähtub suurt tarkust.

On olemas ka juhis nimega Kuidas olla pr

gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.