Ha offline olvasod ezt a doksit, megtalálod a legfrissebb (angol nyelvû) változatot a http://www.tuxedo.org/~esr/faqs/hacker-howto.html weblapon.
A hacker beállítottság nem korlátozódik a szoftver-hacker kultúrára. Vannak olyanok, akik a hacker mentalitást más területen gyakorolják, ez lehet pl. elektronika vagy zene -- valójában ezzel a viselkedési formával találkozhatsz a tudományok vagy a mûvészet legmagasabb szintjein. A szofver-hackerek elismerik ezeket a rokonlelkeket, néha nyíltan "hackereknek" is hívják õket -- egyesek azt vallják, hogy a hacker természet valójában független attól, hogy mit is hackel az illetõ. Ennek ellenére, e dokumentum hátralévõ részében a szoftver-hackerek képességeivel és viselkedésükkel, valamint a `hacker' kifejezést létrehozó közös kultúra tradíciójával foglalkozom.
Van egy másik csoport is, amely az hangoztatja magáról, hogy hackerekbõl áll, de ez nem fedi a valóságot. Ezek az emberek (fõleg serdülõ fiúk) azok, akik poénosnak tartják, hogy betörnek számítógépekre, vagy szórakoznak a telefonhálózattal. Az igazi hackerek ezeket az embereket `crackereknek' hívják és hangoztatják, hogy semmi közös nincs bennük. Az igazi hackerek szerint a crackerek lusták, felelõtlenek és nem briliáns elmék, azzal érvelnek hogy a biztonsági intézkedések megsértése nem tesz hackerré, ugyanúgy, ahogy attól sem leszel közlekedésmérnök, ha el tudsz kötni egy autót. Sajnos sok író és újságíró keveri a két kifejezést, a crackereket is a `hacker' kifejezéssel írja le; ez kimondhatatlanul idegesíti az igazi hackert.
Az alapvetõ különbség: a hackerek építenek, míg a crackerek rombolnak.
Ha hacker akarsz lenni, olvass tovább. Ha cracker akarsz lenni, olvasd el az alt.2600 hírcsoportot, és készülj fel öttõl tíz évig terjedõ börtönbüntetésre, miután kiderült, hogy nem vagy olyan okos, mint hitted. Ennyit a crackerekrõl.
Ha úgy gondolod, hogy csak azért viselkedsz úgy, mint a hackerek, hogy befogadjanak, akkor elsiklasz a lényeg felett. Az, hogy higgyél ennek a viselkedésnek a helyességében, nagyon fontos Neked -- ez segít a tanulásban, és ez motivál. Mint minden kreatív mûvészetnél, nem elég a mestert csak ésszel imitálni, szívvel is kell.
Tehát, ha hacker akarsz lenni, ismételgesd a következõ dolgokat, amíg el nem hiszed õket:
Ha természetednél fogva nem így érzel, meg kell változnod ahhoz, hogy sikeres hacker legyél. Máskülönben gyorsan azon kapod magad, hogy a hackelésre szánt energiád elfolyik más irányba, mint pl. szex, pénz vagy társadalmi elismerés megszerzésének irányába.
(Ezek mellett meg kell tanulnod hinni a tanulási képességedben -- hinni abban, hogy ha nem is tudsz mindent, ami a probléma megoldásához kell, ha elkezded a probléma egy részét boncolgatni, megtanulsz közben annyit, amennyi a következõ részfeladat megoldásához szükséges -- és így tovább, amíg az egész problémát meg nem oldod.)
A hacker magatartására jellemzõ, hogy tudatában van annak, hogy a többi hacker ideje értékes -- ezért az információ megosztását majdnem erkölcsi kötelességének érzi. Az így megosztott megoldások segítségével más hackerek új problémákkal tudnak foglakozni.
(Nehogy azt hidd, hogy minden kreativitásodból származó szellemi termékedet be kell dobnod a közösbe, bár minél többet adsz, annál jobban fog a többi hacker tisztelni. A hacker értékekkel összefér, ha eladsz annyit magadból, hogy kifizesd a lakbért, tudjál kaját és számítógépeket venni. Belefér, ha hackelésbõl eltartod a családodat, sõt az is, ha meggazdagszol, mindaddig, amíg nem felejted el, hogy hacker vagy.)
Ha hackerként akarsz viselkedni, akkor annyira kell ebben higgyél, hogy automatizáld az unalmas dolgokat, amennyire csak lehet, nem csak magad miatt, de mindenki más miatt is (fõleg a többi hackerért).
(Erre a szabályra egy látszólagos kivétel van. A hackerek csinálnak néha dolgokat, amelyek unalmasnak és robotjellegûnek tûnhetnek a kívülálló számára, de valójában ezekre azért van szükség, hogy egy képességet fejlesszenek, vagy gyakorlatot szerezzenek valamiben, amit másképp nem ismerhetnének meg. Ez azonban a hacker saját választása -- egy gondolkodó embert sem szabad unalomba kényszeríteni.)
(Ez nem jeleni azt, hogy mindennemû hatalmat bírálni kell. A gyerekeknek szükségük van irányításra, és a bûnözõknek felelniük kell tetteikért. A hacker dönthet úgy, hogy elfogad bizonyos szintû irányítást, ha valami olyasmit kap ez által, ami fontosabb Neki, mint az utasítások követésére elpazarolt idõ. De ez csakis korlátozott lehet, szó nincsen arról a személyes behódolásról, amit a parancsolgató beállítottságú emberek elvárnak.)
A parancsolgató ember lételeme a cenzúra és a titkolózás. Bizalmatlan mindennel szemben, ami önkéntes együttmûködés és információmegosztás -- csak az olyan `együttmûködést' szereti, amit õ irányít. Tehát ha hackerként akarsz viselkedni, ki kell fejlesszél egy ösztönös ellenszenvet a cenzúra, a titkolózás és a felelõs felnõtt emberek erõszakos kényszerítése iránt. Nem csak hinned kell, hogy ez a helyes, hanem e szerint kell cselekedned.
Ezért meg kell tanulnod, hogy nem szabad bízni a viselkedésben, és tisztelni kell bármilyen szaktudást. A hacker nem pazarolja az idejét szimulánsokra, de értékeli a szakértelmet -- fõleg a hackeléssel kapcsolatos szakértelmet, de bármilyen más irányú szaktudás is elismerendõ. Ha a szaktudásod olyan területet is lefed, amihez kevesen értenek, az jó, ha olyan terület szakértõje vagy, ami precíz logikai képességeket, szellemi erõt és koncentrációs képességet igényel, az a legjobb.
Ha tiszteled a hozzáértést, örömöd telik majd a képességeid fejlesztésében -- a kemény munka és az, hogy ennek szenteled magad, egy komoly játék lesz, és nem robotolás. Ez életbevágóan fontos, ha hacker akarsz lenni.
Ezek a képességek lassan változnak az idõk során, ahogy a technológia fejlõdik, új területek jönnek létre, melyek új képességeket igényelnek, a régiek ezzel párhuzamosan elavulnak. Például, az alapképességek közé tartozott régebben a gépi kódban való programozás, míg a HTML ismerete csak az utóbbi idõben vált szükségessé. Jelenleg a következõk tartoznak a hacker alapmûveltségéhez:
Legyél tisztában azzal, hogy nem fogod elérni a hacker szaktudását, vagy akárcsak egy egyszerû programozóét sem, ha csak egy nyelvet ismersz -- meg kell tanulnod nyelvtõl függetlenül gondolni a programozási problémákra. Ahhoz, hogy igaz hacker lehess, el kell jussál arra a pontra, amikor egy új programozási nyelvet néhány nap alatt meg tudsz tanulni, a leírások alapján, abból kiindulva, amit már tudsz. Ez azt jelenti, hogy több, egymástól nagyon különbözõ nyelvet kell megtanuljál.
Ha komoly programozásba kezdesz, meg kell tanulnod a C nyelvet, a Unix alapnyelvét (a C-t ettõl függetlenül nem ajánlom elsõ nyelvnek). Az egyéb fontos nyelvek közé tartozik a Perl és a LISP. A Perlt gyakorlati okok miatt érdemes megtanulni; gyakran használják dinamikus web oldalak létrehozásához és rendszer-adminisztrációhoz, tehát ha nem is írsz soha Perlt, mindenképp érdemes megtanulnod olvasni azt. A LISP-et a megvilágosodás mély érzése miatt érdemes megtanulni, amit akkor érzel, amikor végre sikerül megérteni, hogy mirõl is van szó; ez a tapasztalat jobb programozóvá tesz a hátralévõ napjaidra, még akkor is, ha nem használod majd gyakran a LISP-et.
A legjobb, igazából, ha ezt a négy nyelvet (Python, C, Perl, és LISP) mind megtanulod. Amellet, hogy ezek a hacker alapnyelvei, nagyon eltérõ módon közelítik meg a programozást, mindegyikbõl hasznos és értékes új ismeretekre tehetsz szert.
Nem tudok kimerítõ leírást adni arról, hogy hogyan tudsz megtanulni programozni -- nagyon összetett tudásról van szó. Egyet azonban elárulhatok: a könyvek és tanfolyamok nem érnek túl sokat (sok, valószínûleg a legtöbb hacker autodidakta). Aminek van értelme: (a) kódot olvasni és kódot írni.
Programozni megtanulni ugyanolyan, mint a saját anyanyelveden megtanulni írni. A legjobb módszer, ha beleolvasol abba, amit a mesterek írtak, majd írsz valamit, utána olvasol még egy jó adag kódot, írsz egy keveset, olvasol még egy adagot, írsz még egy kicsit... és mindezt addig ismétled, amíg a saját kódodban el nem kezded felfedezni a példaképek kódjainak jó vonásait.
Régen nehézkes volt jó, olvasásra érdemes kódot találni, mert kevés nagy program forráskódja állt a zöldfülû hackerfiókák rendelkezésére. Ez drasztikusan megváltozott; ma már nyílt forráskódú szoftverek, programozási eszközök és operációs rendszerek (ezeket is mind hackerek írták) könnyedén elérhetõk bárki számára. Ez át is vezet minket a következõ témához...
Igen, vannak a Unixon kívül más operációs rendszerek a világon. De azokat binárisokban terjesztik, ergo nem tudod olvasni vagy módosítani a kódot. Hackelni tanulni DOS, Windows vagy MacOS alatt olyan, mintha kényszerzubbonyban próbálnál táncolni tanulni.
Mindezek mellett, nem szabad megfeledkezni arról, hogy a Unix az Internet operációs rendszere. Megtanulhatod ugyan az Internet használatát Unix ismeretek nélkül, de biztosan nem lehetsz Internetes hacker. Éppen ezért, manapság a hacker kultúra elég határozottan Unix-központú. (Ez nem volt mindig így, néhány régi motoros a mai napig nem tud ezzel megbékélni, de a Unix és az Internet közötti szimbiózis annyira megerõsödött, hogy még a Microsoft sem tud igazán csorbát ejteni rajta.)
Tehát húzzál fel egy Unixot -- én személy szerint a Linuxot szeretem, de van választék (és igen, lehet ugyanazon a gépen felváltva Linuxot és DOS / Windows-t használni). Tanuld meg használni. Játsszál vele. Lõdd össze az Internetet vele. Olvasd a forrásokat. Módosítsd a forrásokat. Olyan programozási eszközökkel fogsz találkozni Linux alatt (pl. C, LISP, Python és Perl), amilyenekrõl egy Microsoft operációs rendszer alatt álmodni sem mernél, jól szórakozol, és olyan sok tudást szívsz magadba, hogy bele sem gondolsz, egészen addig, amíg már profi hackerként vissza nem emlékszel ezekre az idõkre.
Ha többet akarsz tudni a Unix-ról, vess egy pillantást a Loginatakára.
Információt találsz arról, hogy hogyan és honnan szerezzél be Linuxot a Honnan szedjek Linuxot? címû oldalról.
Találhatsz BSD Unix-al kapcsolatos segítséget és linkeket a www.bsd.org címen.
(Megjegyzés: Nem ajánlom, hogy Linux vagy BSD telepítésbe kezdjél egyedül, ha teljesen kezdõ vagy a témában. Ha Linuxal próbálkozol, keress meg egy helyi felhasználó csoportot [ilyen Magyarországon az LME] és kérj segítséget, vagy vedd fel a kapcsolatot a Linux Internet Support Co-Operative-al. A LISC üzemeltet IRC csatornákat is, ahol [angol nyelvû] segítséget kaphatsz.)
Ez nem csak azt jelenti, hogy meg kell tanulnod Web-böngészõt használni (ezt bárki megteheti), hanem azt is, hogy el kell sajátítanod a HTML-t, a web nyelvét. Ha nem tudsz programozni, a HTML tanulása közben felvehetsz bizonyos jó szokásokat, amiknek hasznát veszed a késõbbi tanulmányaid során. Tehát hozzál létre egy honlapot.
Az, hogy van egy honlapod, még közelítõleg sem jelenti azt, hogy hacker vagy. A Web tele van honlapokkal. A legtöbbjük értelmetlen, nulltartalmú hulladék -- tarka hulladék, mondhatnád, de attól még ugyanúgy szemét. (errõl többet olvashatsz a A HTML Pokol oldalán).
Hogy olvasásra érdemes legyen egy lap, kell legyen tartalma -- érdekes és vagy hasznos kell legyen más hackerek számára. Ez átvezet a következõ témához...
Ehhez hasonlóan, amikor a hackerek szabályai szerint játszol, megtanulod, hogy az alapján kapod a jó pontokat, hogy mások mire tartják a szakértelmedet (ezért írtam korábban, hogy addig nem vagy igazi hacker, amíg nem a többiek hívnak annak). Ezt a tényt elhomályosítja az a kép, ami a hackelést magányos munkának tünteti fel, valamint az a hacker körökben elterjedt nézet, miszerint a büszkeség vagy az, hogy mások mit gondolnak, nem lehet a motiváló tényezõk része.
Egészen pontosan, a hackerség az, amit az antropológusok ajándék kultúrának neveznek. Nem az által szerzel egy ilyen társadalomban hírnevet, hogy elnyomsz másokat, azzal sem, hogy szép vagy, vagy olyan dolgokat birtokolsz, amikért mások áhítoznak, hanem azzal, hogy adsz. Másokra áldozod történetesen az idõdet, a kreativitásodat és a szaktudásod gyümölcseit.
Alapvetõen öt dolgot tehetsz, hogy kivívd a hackerek elismerését:
(Ezeket a munkákat ``free software''-nek hívtuk, de mivel nem volt mindenki számára egyértelmû, hogy a ``free'' a szabadra vagy az ingyenesre utal-e, sokunk inkább az ``open-source'' azaz nyílt forráskódú szoftver kifejezést részesíti elõnyben.)
A hacker kultúra legelismertebb félistenei olyan emberek, akik nagy, hasznos programokat írtak, amikre széles körben volt szükség, majd a közösség rendelkezésére bocsátották ezeket, hogy mindenki szabadon felhasználhassa õket.
Ha újonc vagy, keress egy fejlesztés alatt álló programot, ami érdekel és próbálj jó béta-tesztelõ lenni. Innen már magától megy minden, a tesztelés után besegíthetsz a hibakeresésbe, utána besegíthetsz a fejlesztésbe. Sokat tanulhatsz így, és jó pontot szerezhetsz olyan embereknél, akik segíthetnek majd a késõbbiek során.
A fõbb szakmai GyIK-ek karbantartói majdnem olyan elismerésben részesülnek, mint a nyílt forráskódú szoftvert író programozók.
Azok az emberek, aki ezeket a feladatokat jól látják el, nagy tiszteletben állnak, mert mindenki tudja, hogy a munkájuk borzalmasan idõt rabló, és nem olyan mókás, mint a kódolás. Akik ezt a fajta munkát csinálják, elhivatottak.
A hacker társadalomnak nincsenek kimondott vezetõi, de vannak hõsei, ``vénjei'', történészei és szóvivõi. Ha már elég régóta vagy a csatasorban, ezek egyikévé nõheted ki magad. De ne feledd: a hackerek bizalmatlanok a túl nagy mellénnyel rendelkezõ ``vénekkel'' szemben, tehát veszélyes ezt a stádiumot látványosan elérni. Ne törekedjél erre, inkább helyezkedj úgy, hogy az öledbe hulljon, majd legyél szerény, és ápold gondosan a kapcsolataidat.
Ezért sok hacker felvállalja a ``kocka'' bélyeget, sõt, büszkén használják a durvább ``geek'' kifejezést is -- így függetlenítik magukat a konvencionális társadalmi elvárásoktól. A Geek oldalon olvashatsz bõvebben a témáról.
Ha meg tudod oldani, hogy elég figyelmet fordítasz a hackelésre ahhoz, hogy jó hacker legyél, és emellett normális életet is tudsz folytatni, akkor jó. Ez manapság sokkal könnyebb feladat egy újonc számára, mint az én idõmben volt, a 70-es években; napjainkban a társadalom sokkal toleránsabb a techno-megszállottakkal szemben. Sõt, egyre több ember jön rá, hogy a hackerek gyakran kiváló minõségû szeretõ és férj alapanyagok.
Ha azért vonz a hackelés, mert nincs életed, az is OK -- legalább nem vonja el semmi a figyelmedet. Lehet, hogy késõbb még az is kialakul.
Végül néhány kerülendõ dolog:
A becenevek problémájára külön visszatérnék. Az igazi személyed becenevek mögé rejtése gyerekes és ostoba dolog, és a crackerekre, warez d00dz-okra és más alsóbbrendû életformákra jellemzõ viselkedés. A hacker nem csinál ilyet; büszke arra amit csinál és amit elért, ezért szereti, ha az igazi nevét is ismerik. Tehát ha ilyen becenevet használsz, hagyd el, mert a hackerek között csak vesztesnek bélyegez.
A Loginatakának van némi mondanivalója a Unix hacker képzettségét és hozzáállását illetõen.
Írtam egy esszét A hackerség rövid története címmel.
Írtam egy esszét, A Katedrális és a Bazár címmel, ami részletesem elemzi a Linux és az open-source köré épülõ társadalmak mûködését. Még közvetlenebbül tárgyaltam ezt a témát a folytatásban a Homesteading the Noosphere-ben.
Még ha lenne is lehetõségem arra, hogy a hackelést tanítsam, nem tehetném, mert ez egy olyan hozzáállás és képesség, amit magadnak kell egyedül elsajátítanod. Meg fogod látni, hogy az igazi hackerek örömmel segítenek neked, de nem fognak tisztelni és elismerni, ha mindent a szádba kell rágjanak.
Tanulj meg elõször néhány dolgot. Mutasd meg, hogy próbálkozol, hogy tudsz önállóan tanulni. Ezek után a hackereket már csak specifikus kérdésekkel zargasd.
(Régebben azt írtam volna itt, hogy IRC-n nem találkozhatsz igazi hackerrel, de úgy tûnik ez változik. Mostanában igazi hacker csoportoknak, mint pl. a GIMP és a Perl körül serénykedõknek, saját IRC csatornájuk van.)
A HTML azonban nem programozási nyelv. Ha felkészültél arra, hogy elkezdjél programozni tanulni, véleményem szerint a Pythont válaszd. Sokan a Perlt ajánlják, ami igaz, hogy elterjedtebb, mint a Python, de nehezebb megtanulni és (véleményem szerint) nincs olyan jól megtervezve. Találhatsz linkgyûjteményt a kezdõ Python programozó számára a Weben.
A C igazán fontos, de ugyanakkor sokkal nehezebb, mint a Python vagy a Perl. Ne próbáld elsõként megtanulni.
Windows felhasználók, ne ragadjatok le a Visual Basic-nél! Rossz programozási szokásokat fogtok felvenni tõle, és nem hordozható, teljesen a Windows platformra van utalva. Kerülendõ.
Fordította:
Kovács Emese < emese@goliat.eik.bme.hu >