Hacker HowTo |
Hacker Howto Autor: Eric Steven Raymond
Oryginalne tłumaczenie: Marek Pętlicki
Poprawa i aktualizacja tłumaczenia: Tomasz P. Kotecki
Tekst tego dokumentu jest tłumaczeniem wersji 1.23 (27 października 2003) oryginalnego tekstu.
#Skąd ten dokument?
Jako twórca Jargon File i autor kilku innych znanych dokumentów o podobnej tematyce, często dostaję maile od rozentuzjazmowanych nowicjuszy sieciowych pytających (w skrócie): "Jak mogę się stać genialnym hackerem?". Co dziwne, jak do tej pory nie ma jakichkolwiek FAQ czy innych dokumentów dotyczących tego ważnego zagadnienia, więc oto mój.
Jeśli czytasz zrzut tego dokumentu offline, bieżąca wersja znajduje się tutaj, a wersja oryginalna (angielska) jest do przeczytania na http://catb.org/~esr/faqs/hacker-howto.html.
Uwaga: na końcu tego dokumentu znajduje się FAQ. Przeczytaj je - dwukrotnie - zanim wyślesz mi maila nt. tego dokumentu.
Symbol 'pięć-kropek-w-dziewięciu-kwadratach', który pojawia się w tym dokumencie jest nazywany glider (ang. szybowiec). To prosty wzór z zadziwiającymi własnościami w grze zwanej Life (ang. życie), który fascynował hackerów od wielu lat. Wydaje mi się, że jest to dobre odzwierciedlenie tego, jacy są hackerzy - abstrakcyjny, na pierwszy rzut oka nieco tajemniczy, ale jednocześnie furtka do całego świata z własną logiką. Poczytaj więcej o tym znaku tutaj.
Kim jest Hacker?
Jargon File zawiera garść definicji terminu "hacker", w większości opierających się na biegłości w zagadnieniach technicznych, znajdowaniu upodobania w rozwiązywaniu problemów i przekraczaniu ograniczeń. Jeśli jednak chcesz wiedzieć, w jaki sposób zostać hackerem, tylko dwie z nich sa naprawdę odpowiednie.
Istnieje pewna społeczność, grupowa kultura, złożona z ekspertów w dziedzinie programowania i magików sieciowych, której historia sięga wstecz poprzez dziesięciolecia do pierwszych wielodostępnych minikomputerów z podziałem czasu i najwcześniejszych eksperymentów z siecią ARPAnet. Członkowie tej kultury zapoczątkowali termin "hacker". Hackerzy zbudowali Internet. Hackerzy uczynili z Uniksa system operayjny, jakim jest dzisiaj. Hackerzy zapoczątkowali Usenet. Hackerzy sprawili, że World Wide Web działa. Jeśli jesteś częścią tej kultury, jeśli bierzesz w niej czynny udział i inni ludzie z tej grupy Cię znają i nazywają Cię hackerem - wtedy jesteś hackerem.
Filozofia hackera nie jest ograniczona do kultury hackerów software'owych. Są ludzie, którzy stosują postawę hackera w innych zagadnieniach, jak elektronika czy muzyka - w rzeczywistości możesz znaleźć ją na najwyższym poziomie we wszystkich dyscyplinach nauki czy sztuki. Software'owi hackerzy rozpoznaję te bratnie dusze gdziekolwiek się pojawią i mogą ich również nazywać hackerami - są tacy, którzy twierdzą, że natura hackera jest naprawdę niezależna od konkretnego medium, nad którym on pracuje. Niemniej jednak w dalszej części tego dokumentu skupię się na umiejętnościach i postawach hackerów software'owych, oraz na tradycjach kultury społecznej, która zapoczątkowała termin "hacker".
Jest też inna grupa ludzi, którzy głośno nazywają siebie hackerami, ale w rzeczywistości nimi nie są. Wspomniani ludzie (głównie niedorosłe osobniki płci męskiej) znajdują podnietę we włamywaniu się do komputerów i przełamywaniu zabezpieczeń systemów telefonicznych (w celu umożliwienia sobie wykonywania darmowych połączeń). Prawdziwi hackerzy nazywają takich ludzi "crackerami" i nie chcą mieć z nimi nic wspólnego. Prawdziwi hackerzy uważają w większości, ze crackerzy są leniwi, nieodpowiedzialni i niezbyt błyskotliwi, a fakt, że jesteś w stanie przełamać system ochrony nie czyni Cię hackerem bardziej niż umiejętność uruchamiania samochodu "na krótko" robi z kogoś inżyniera w dziedzinie motoryzacji. Niestety, wielu dziennikarzy i autorów publikacji podchwyciło ten ton i używają słowa "hacker" na określenie crackera. A to bezgranicznie irytuje prawdziwych hackerów.
Podstawowa różnica polega na tym, że hackerzy coś tworzą, a crackerzy tylko niszczą.
Jeśli chcesz być hackerem, czytaj dalej. Jeśli masz ambicję zostać crackerem, przeczytaj grupę dyskusyjną alt.2600 i przygotuj się na pięć do dziesięciu lat odsiadki po tym, jak okaże się, że nie jesteś tak bystry, jak myślałeś. I tyle mam do powiedzenia, jeśli chodzi o crackerów.
#Postawa hackera
Hackerzy rozwiązują problemy i tworzą rzeczy wierząc w wolność i we wzajemną pomoc. Aby zostać zaakceptowanym jako hacker, musisz zachowywać się jakbyś sam miał ten rodzaj podejścia. A żeby zachowywać się tak, jakbyś miał takie podejście, musisz w nie naprawdę uwierzyć.
Jednakże jeśli myślisz o rozwijaniu postaw hackerskich jedynie jak o metodzie uzyskania akceptacji wewnątrz kultury, zmierzasz w złym kierunku. To, aby stać się człowiekiem wierzącym w te ideały jest istotne dla Ciebie - pomoże Ci to w nauce i byciu zmobilizowanym. Podobnie jak we wszystkich dziedzinach twórczej sztuki, najefektywniejszą metodą zostania mistrzem jest naśladowanie stylu myślenia mistrzów - nie tylko intelektualnie, lecz również emocjonalnie.
Albo, jak ujęto to w poniższym wierszu Zen:
Aby podążać drogą:
patrz na mistrza,
podążaj za mistrzem,
idź razem z mistrzem,
przejrzyj mistrza,
zostań mistrzem.
Zatem, jeśli chcesz zostać hackerem, powtarzaj następujące rzeczy do chwili, kiedy w nie naprawdę uwierzysz:
1. Świat jest pełen fascynujących problemów oczekujących na rozwiązanie.
Być hackerem to kupa zabawy, ale to tego typu zabawa, która pochłania mnóstwo wysiłku. Wysiłek wymaga motywacji. Atleci odnoszący sukcesy biorą swoją motywację z formy fizycznego zadowolenia płynącego z umiejętności nakłonienia własnego ciała, aby działało tak, jak sobie tego życzą, z popychania samych siebie poza własne fizyczne ograniczenia. Podobnie, aby być hackerem, musisz odczuwać podstawową satysfakcję z rozwiązywania problemów, wyostrzania własnych umiejętności i ćwiczenia swojej inteligencji.
Jeśli nie jesteś osobą myślącą tak w sposób naturalny, musisz takim się stać, jeśli chcesz zostać hackerem. W przeciwnym razie okaże się, że twoja energia jako hackera jest wytracana na rzeczy takie jak seks, pieniądze czy społeczna akceptacja.
(Musisz również rozwinąć w sobie rodzaj wiary we własne możliwości uczenia się - wiary, że możesz nie wiedzieć wszystkiego, czego potrzebujesz do rozwiązania problemu, ale jeśli zmierzysz się z nim choć trochę i wskutek tego nauczysz się czegoś, umiesz już wystarczająco, żeby ugryźć następny kawałek - i tak dalej, aż będzie po wszystkim.)
2. Nikt nigdy nie powinien rozwiązywać problemu dwa razy.
Twórcze umysły są wartościowym, rzadkim surowcem. Nie powinny być marnotrawione na powtórne wynajdowanie koła, jeśli jest tyle fascynujących problemów czekających na rozwiązanie.
Aby zachowywać się jak hacker musisz wierzyć, że myślowy czas innych hackerów jest cenny - tak bardzo, że niemal moralnym obowiązkiem jest, abyś dzielił się informacjami, rozwiązywał problemy i rozdawał rozwiązania tak, aby inni hackerzy mogli rozwiązywać nowe problemy zamiast ciągle głowić się nad starymi.
(Nie musisz wierzyć, że masz obowiązek rozdawać za darmo całą swoją twórczą działalność, choć hackerzy, którzy tak czynią uzyskują najwięcej szacunku od innych. Nie jest sprzeczne z wartościami hackera, żebyś mógł sprzedać wystarczająco dużo, aby mieć dostęp do pożywienia, dachu nad głową i komputerów. Nie ma nic złego w tym, że używasz swoich hackerskich umiejętności aby utrzymać rodzinę lub wręcz wzbogacić się, tak długo, dopóki robiąc to nie zapominasz o lojalności wobec swojej sztuki i innych hackerów.)
3. Znudzenie i harówka są złe.
Hackerzy (i wszyscy inni kreatywni ludzie) nie powinni nigdy nudzić się czy być zmuszonym do harowania przy głupiej, powtarzalnej robocie, ponieważ gdy tak się dzieje, nie robią tego, co tylko oni są w stanie robić - rozwiązywać nowe problemy. To marnotrawstwo szkodzi wszystkim. Dlatego znudzenie i nużąca praca są nie tylko nieprzyjemne, ale faktycznie szkodliwe.
Aby zachowywać się tak jak hacker, musisz uwierzyć w to wystarczająco mocno, aby zautomatyzować nudne fragmenty tak bardzo, jak to możliwe, nie tylko dla siebie, ale i dla innych (w szczególności innych hackerów).
(Jest jednak pewien oczywisty wyjątek od tej reguły. Hackerzy czasem robią rzeczy, które mogą wydawać się powtarzalnymi lub nudnymi dla obserwatora, jako ćwiczenia oczyszczające umysł, lub gdy w celu nauczenia się nowej umiejętności czy osiągnięcia konkretnego rodzaju doświadczenia nie można inaczej. Ale to jest wybór - nikt, kto jest istotą myślącą nie powinien być zmuszany do nudy.)
4. Wolność jest dobra.
Hackerzy z natury sprzeciwiają się narzucaniu władzy. Każdy, kto może wydawać Ci polecenia jest w stanie powstrzymać Cię przed rozwiązywaniem problemu, niezależnie jak bardzo byłbyś nim zafascynowany - a biorąc pod uwagę sposób działania władczych umysłów, zawsze znajdą one jakiś niebywale głupi powód aby tak uczynić. Więc autokratyczne nastawienie powinno być zwalczane gdziekolwiek byś go nie znalazł, w przeciwnym razie stłumi Ciebie i innych hackerów.
(To nie jest wszakże to samo, co zwalczanie wszelkich form władzy. Dzieci muszą być wychowywane a przestępcy izolowani. Hacker może zgodzić się na zaakceptowanie pewnych form władzy w celu osiągnięcia czegoś co ceni bardziej niż czas, który poświęci spełniając rozkazy. Ale to jest ograniczona i świadoma transakcja, takiej uległości, jakiej oczekiwaliby ludzie o autokratycznym nastawieniu, nikt nie oferuje.)
Autokratom służy cenzura i utajnienie. Nie ufają oni dobrowolnej współpracy i chęci dzielenia się informacjami - jedyną współpracą, którą lubią jest ta kontrolowana przez nich samych. Więc aby zachowywać się jak hacker, musisz wytworzyć w sobie instynktowną wrogość wobec cenzury, utajnienia i używania siły lub podstępu do wywierania przymusu na odpowiedzialnych za swoje czyny dorosłych ludziach. I musisz być gotów do działania zgodnie z tymi przekonaniami.
5. Postawa nie zastąpi kompetencji.
Aby być hackerem musisz wytworzyć w sobie niektóre z tych postaw. Ale kopiowanie postawy samej dla siebie nie uczyni z Ciebie hackera, tak samo jak postawa nie uczyni z Ciebie mistrza w sporcie lub gwiazdy rocka. Żeby zostać hackerem potrzeba inteligencji, ćwiczeń, poświęcenia i ciężkiej pracy.
W związku z tym musisz nauczyć się niedowierzać postawie oraz szanować kompetencję pod każdą postacią. Hackerzy nie pozwolą pozerom marnować ich czasu, ale cenią sobie kompetencję - szczególnie kompetencję w hackerstwie, lecz każda kompetencja jest dobra. Kompetencja w dziedzinach, które niewielu potrafi opanować jest szczególnie ceniona, a kompetencja w dziedzinach, które wymagają umysłowej dokładności, wysiłku i koncentracji jest ze najlepszą z możliwych.
Jeśli jesteś czcicielem kompetencji, będziesz z przyjemnością rozwijać je w sobie - ciężka praca i poświęcenie staną się formą intensywnej zabawy, nie zaś harówką. A to jest szczególnie istotne w procesie stawania się hackerem.
#Podstawowe umiejętności hackera
Postawa hackera jest istotna, ale umiejętności są jeszcze istotniejsze. Postawa nie zastąpi kompetencji, a można wyróżnić pewien konkretny zestaw umiejętności, które będziesz musiał posiąść, zanim jakiemukolwiek hackerowi przyśni się nazwać Ciebie jednym z nich.
Ten zestaw zmienia się powoli w czasie wraz z technologią wytwarzającą nowe zdolności, a czyniące inne z nich przestarzałymi. Na przykład kiedyś do zasobu zdolności hackera zaliczało się programowanie w języku maszynowym, natomiast do niedawna nie należała do nich znajomość HTML-a. W chwili obecnej w miarę jasno można zaliczyć do nich co następuje:
Naucz się programowania
To jest oczywiście fundamentalna umiejętność hackera. Jeśli nie znasz żadnego "komputerowego języka", polecam rozpoczęcie od Pythona. Jest zaprojektowany w czysty sposób, dobrze udokumentowany i stosunkowo przyjazny dla początkujących. Pomimo dobrego spełniania roli pierwszego języka programowania, nie jest on po prostu zabawką: jest potężnym i elastycznym narzędziem świetnie dopasowanym do dużych projektów. Napisałem bardziej szczegółowe omówienie Pythona. Dobre kursy są dostępne na jego stronie domowej.
Java jest również dobrym językiem do rozpoczęcia nauki programowania. Co prawda jest trudniejsza niż Python, ale generuje szybszy kod. Uważam ją za idealnego kandydata na drugi język.
Bądź jednak świadom, że nie osiągniesz poziomu umiejętności hackera, a nawet zwykłego programisty, jeśli będziesz znać zaledwie jeden czy dwa języki - musisz nauczyć się myśleć o problemie programistycznym w sposób ogólny, niezależny od jakiegokolwiek języka. Aby być prawdziwym hackerem, potrzebujesz osiągnąć poziom, na którym możesz nauczyć się nowego języka w ciągu dni poprzez porównanie tego, co wyczytasz w podręczniku z tym, co już umiesz. Oznacza to, że powinienieś nauczyć się kilku, bardzo różniących się od siebie, języków.
Jeśli zajmiesz się poważnym programowaniem, będziesz musiał się nauczyć C, rdzennego Unixowego języka. C++ jest bardzo blisko spokrewniony z C; jeśli znasz jeden z nich, nauka drugiego nie będzie trudna. Żaden z nich nie jest jednak dobry jako pierwszy język programowania. A w zasadzie, im bardziej jesteś w stanie omijać kodowanie w C, tym bardziej będziesz produktywny.
C jest bardzo wydajne, i bardzo dobrze wykorzystuje zasoby Twojego komputera. Niestety, osiąga tę efektywność poprzez wymaganie, abyś wykonał całą masę niskopoziomowego zarządzania zasobami (np. pamięcią) ręcznie. Cały ten niskopoziomowy kod jest trudny do napisania i bardzo łatwo popełnić jakiś błąd - a poprawienie go może pochłonąć potem olbrzymią ilość Twojego czasu. Biorąc pod uwagę moc dzisiejszych komputerów, jest to zazwyczaj zły układ - sprytniejsze jest użycie języka, który mniej efektywnie korzysta z zasobów komputera, ale Twoim czasem zdecydowanie lepiej. A więc - Python.
Inne języki o specjalnym znaczeniu dla hackerów to Perl i LISP. Perl jest wart nauczenia z przyczyn praktycznych: jest bardzo szeroko wykorzystywany do tworzenia aktywnych stron WWW i administracji systemem, jeśli więc nawet nie zamierzasz programować w Perlu, powinieneś przynajmniej nauczyć się go czytać. Wiele osób używa Perla w sposób, w jaki polecam wykorzystywać Pythona - aby unikać pisania w C, gdy efektywność nie jest najważniejsza. Umiejętność zrozumienia ich kodu będzie potrzebna.
LISP wart jest nauczenia z innych powodów - dla głębokiego uczucia oświecenia, które osiągniesz, gdy go w końcu zrozumiesz. To doświadczenie uczyni z Ciebie o wiele lepszego programistę, nawet jesli nigdy nie będziesz z niego za wiele korzystał. (Możesz łatwo uzyskać podstawowe doświadczenie z LISPem poprzez pisanie i modyfikowanie trybów edycji dla edytora tekstowego Emacs).
Najlepiej jednak nauczyć się wszystkich pięciu (Pythona, Javy, C/C++, Perla, LISPa). Poza faktem, że są najważniejszymi dla hackera językami programowania, reprezentują bardzo różne podejścia do programowania, a każdy z nich nauczy Cię innych, wartościowych rzeczy.
Nie jestem w stanie dać tu kompletnych instrukcji, jak nauczyć się programowania - jest to bowiem skomplikowana umiejętność. Ale na pewno mogę powiedzieć, że książki i kursy tego nie załatwią (wielu, chyba większość hackerów to samouki). Możesz nauczyć się cech języka - kawałków wiedzy - z książek, ale przekształcenie wiedzy w umiejętność może byc osiągnięta tylko poprzez praktykę i naukę. To, co Ci pomoże to: (a) czytanie kodu i (b) pisanie kodu.
Nauka programowania jest jak nauka dobrego pisania w języku naturalnym. Najlepszą metodą jest czytanie rzeczy pisanych przez mistrzów formy, pisanie samemu, czytanie dużo więcej, pisanie nieco więcej, czytanie jeszcze więcej, pisanie jeszcze trochę więcej... powtarzane tak długo, aż Twoje pisanie zacznie rozwijać się do siły i wydajności, którą obserwujesz w swoich wzorcach.
Kiedyś znalezienie dobrego kodu było zadaniem trudnym, ponieważ mało było dużych programów dostępnych z kodem źródłowym do czytania i zabawy dla świeżo opierzonych hackerów. To zmieniło się znacząco. Oprogramowanie open source, narzędzia programistyczne, systemy operacyjne (wszystkie zbudowane przez hackerów) są dziś szeroko dostępne. I to pięknie doprowadza mnie do następnego tematu...
2. Weź jeden z Unixów rozprowadzanych na zasadach open source i naucz się go używać oraz zarządzać nim.
Zakładam, że masz komputer, lub możesz uzyskać dostęp do takowego (ta dzisiejsza młodzież ma tak łatwo :-)). Jednym z najważniejszych kroków, który musi postawić nowicjusz w kierunku osiągnięcia umiejętności hackera jest zdobycie kopii Linuksa lub jednego z BSD-Unixów, zainstalowanie go na komputerze i uruchomienie.
Tak, są inne systemy operacyjne na tym świecie poza Unixem. Ale są udostępniane w postaci binarnej - nie możesz przeczytać ich kodu i nie możesz go zmienić. Próbowanie nauki hackerstwa w DOSie, Windows, MacOS czy jakimkolwiek innym systemie z zamkniętym kodem źródłowym jest jak nauka tańca z gipsem na całym ciele.
Pod OS/X to jest możliwe, ale tylko część systemu jest open source - najprawdopodobniej wiele razy się na coś "nadziejesz", i musisz uważać, aby nie dostać złego nawyku polegania na własnościowym kodzie Apple'a. Jeśli skoncentrujesz się na Unixie ukrytym pod spodem, możesz nauczyć się nieco użytecznych rzeczy.
Poza tym, Unix jest systemem operacyjnym Internetu. Chociaż możesz nauczyć się posługiwania Internetem bez znajomości Uniksa, to bez zrozumienia go nie zostaniesz internetowym hackerem. Z tej przyczyny kultura hackerów jest silnie scentralizowana wokół Uniksa. (To nie zawsze była prawda i niektórzy hackerzy starej daty wciąż nie są z tego powodu szczęśliwi, ale symbioza pomiędzy Unixem i Internetem stała się tak silna, że nawet potęga Microsoftu nie jest w stanie zadać jej poważnego ciosu).
Postaw zatem Uniksa - osobiście lubię Linuksa, ale są inne drogi (no i oczywiście możesz używać Linuksa i DOS/Windows na tej samej maszynie). Naucz się go. Korzystaj z niego. Baw się nim. Nawiąż kontakt z Internetem za jego pomocą. Czytaj jego kod źródłowy. Modyfikuj ten kod. Otrzymasz lepsze narzędzia programistyczne (włączając w to C, Lisp, Python, i Perl) niż jakikolwiek system operacyjny Microsoftu mógłby marzyć, będziesz miał kupę frajdy i wsiąkniesz więcej wiedzy niż się zorientujesz, zanim nie spojrzysz na to później z perspektywy hackerskiego mistrza.
Aby nauczyć się więcej o Unixie, zobacz The Loginataka. Możesz również zajrzeć na Sztukę programowania w Uniksie.
Aby dopaść w swoje ręce Linuksa zobacz Where can I get Linux. Z punktu widzenia nowego użytkownika, wszystkie dystrybucje Linuksa są całkiem podobne.
Możesz znaleźć pomoc nt. Unixów z rodziny BSD na stronie www.bsd.org.
Napisałem artykuł o podstawach Uniksa i Internetu.
(Uwaga: jeśli jesteś początkujący, nie polecam instalowania Linuksa ani BSD jako jedynego systemu operacyjnego. Jeśli chodzi o Linuksa, znajdź najbliższy LUG (Linux Users Group - Grupę Użytkowników Linuksa) i tam proś o pomoc)
3. Naucz się używać World Wide Web i pisać w HTML.
Większość rzeczy, które zostały zbudowane przez kulturę hackerską jest ukrytych przed wzrokiem pozwalając kierować fabrykami, biurami i uniwersytetami bez widocznego piętna na stylu życia nie-hackerów. Sieć jest jednym wielkim wyjątkiem, jedną wielką błyszcącą zabawką hackerów, która, co potwierdzają nawet politycy, zmienia świat. Z tego jedynego powodu (i wielu innych, równie dobrych) powinieneś nauczyć się jak działa Sieć.
To nie oznacza po prostu nauki obsługi przeglądarki (każdy jest w stanie to zrobić), ale nauki pisania w HTML-u, sieciowym języku znacznikowym. Jeśli nie umiesz programować, pisanie w HTML-u da Ci parę umysłowych przyzwyczajeń, które pomogą Ci się uczyć. A więc: zbuduj sobie witrynę domową. Staraj się trzymać XHTML-a, który jest jaśniejszym językiem niż klasyczny HTML (jest wiele dobrych kursów w Sieci, oto jeden z nich).
Posiadanie samej strony domowej nie jest jednak wystarczające do uczynienia Cię hackerem. Sieć jest pełna stron domowych. Większość z nich jest bezcelowym, pozbawionym zawartości chłamem - bardzo wymyślnie wyglądającym, trzeba zauważyć, ale chłamem bez dwóch zdań (dla dalszych informacji zobacz The HTML Hell Page).
Aby Twoja strona posiadała wartość musi zawierać treść - musi być interesująca i/lub użyteczna dla innych hackerów. A to przenosi nas do następnego tematu...
4. Jeśli jeszcze nie znasz angielskiego, naucz się go.
Jako Amerykanin i native-speaker w Angielskim, byłem wcześniej niechętny, aby to zasugerować, jako że może to zostać odebrane jako pewien rodzaj kulturowego imperializmu. Ale kilku native speakerów w językach innych niż angielski nalegało, abym zaznaczył, że angielski jest językiem komunikacji i pracy w kulurze hackerów i w Internecie, i że będziesz go potrzebował, aby funkcjonować w tej kulturze.
To jest prawda. Mniej więcej w 1991 roku zauważyłem, że wielu hackerów, którzy znają angielski jako drugi język, używają go w technicznych dyskusjach nawet jeśli korzystają z tego samego języka podstawowego; ktoś mi mówił, że angielski ma po prostu bogatsze techniczne słownictwo niż jakikolwiek inny jezyk i jest przez to po prostu lepszym narzędziem w takich sytuacjach. Z podobnych względów, tłumaczenia technicznych książek napisanych po angielsku są często niesatysfakcjonujące (jeśli są w ogóle wykonywalne).
Linus Torvalds, Fin, komentuje swój kod po angielsku (i nigdy nie widziano, by robił to w innym języku). Biegłość w języku angielskim była istotnym czynnikiem przy tworzeniu ogólnoświatowej społeczności osób rozwijających Linuksa. Jest to przykład wart naśladowania.
#Status w kulturze hackerów
Podobnie jak większość kultur nie zawierających ekonomii pieniądza hackerstwo opiera się na pojęciu reputacji. Starasz się rozwiązać interesujące problemy, ale na ile są one interesujące oraz na ile Twoje rozwiązania są dobre jest zagadnieniem, które potrafią osądzic tylko podobni Tobie lub lepsi od Ciebie.
W związku z tym, jeśli bierzesz udział w tej hackerskiej zabawie, uczysz się oceniać własne wyniki tylko na podstawie tego, co inni sądzą o Twoich umiejętnościach (stąd właśnie bierze się stwierdzenie, że nie jesteś hackerem dopóki inni hackerzy uparcie nie nazywają Cię hackerem). Ten fakt jest nieco stłumiony przez wizerunek hackera jako samotnika. Podobnie działa tabu kultury hackerskiej (stopniowo zanikające, ale ciągle obecne) sprzeciwiające się wyznaniu, że ego lub zewnętrzne uznanie mogą być w ogóle czyimkolwiek czynnikiem motywującym.
Z pewnego punktu widzenia hackerstwo jest czymś, co antropologia nazywa kulturą darów. Zdobywasz w niej status i reputację nie poprzez dominację nad innymi ludźmi, nie za swoją urodę, ani nie dlatego, że posiadasz to, co inni chcą mieć, ale dlatego, że dajesz coś innym za darmo. W szczególności rozdając swój czas, swoją kreatywność, wyniki swoich umiejętności.
Ogólnie wyróżnia się pięć rzeczy, które można robić dla zdobycia respektu przez hackerów:
1. Pisz oprogramowanie open source.
Pierwszym (centralnym i najbardziej tradycyjnym) elementem jest tworzenie programów, które są odbierane przez innych hackerów jako zabawne lub użyteczne, oraz udostępnianie kodów źródłowych do użytku dla całej kultury hackerskiej.
(Zwyczajowo nazywało się te prace "wolnym oprogramowaniem", ale zbyt wielu ludzi nie wiedziało do końca co miałoby znaczyć pojęcie "wolne". Większośc z nas, co najmniej 2:1, zgodnie z analizą treści Sieci, woli teraz określenie "oprogramowanie open source".)
"Półbogami" hackerstwa są ludzie, którzy napisali duże, użyteczne programy, stanowiące odpowiedź na szerokie zapotrzebowanie, a teraz udostępniają je za darmo, i wszyscy z nich korzystają.
2. Pomagaj testować i usuwać błędy w programach z udostępnionym kodem źródłowym.
Hackerzy pomagają testować i usuwać błędy w oprogramowaniu z dostępnym kodem źródłowym. W tym niedoskonałym świecie nieuniknione jest, że większość naszego czasu przy tworzeniu oprogramowania poświęcamy na usuwanie błędów. Dlatego każdy autor programów powie Ci, że dobry beta-tester (taki, który potrafi opisać symptomy, dobrze zlokalizować problemy, toleruje błędy we wczesnych wersjach i umie zastosować kilka prostych procedur diagnostycznych) jest na wagę złota. Nawet jeden taki człowiek jest w stanie pokazać różnicę pomiędzy procesem usuwania błędów, który wydaje się czasochłonnym, wyczerpującym koszmarem, a takim, który jest wręcz dobroczynną uciążliwością.
Jeśli jesteś nowicjuszem, spróbuj znaleźć program w trakcie procesu tworzenia, który Cię zainteresuje i bądź dobrym beta-testerem. Istnieje naturalny postęp od pomagania przy testowaniu, poprzez pomoc przy usuwaniu błędów aż do pomocy przy tworzeniu programu. W ten sposób nauczysz się wiele i wytworzysz dobre fluidy z ludźmi, którzy później pomogą i Tobie.
3. Publikuj użyteczne informacje.
Inną użyteczną działalnością jest gromadzenie i filtrowanie użytecznych informacji i umieszczanie ich na stronach internetowych i w dokumentach typu FAQ (Frequently Asked Questions - "często zadawane pytania") oraz udostępnianie ich dla szerokiego forum.
Osoby zarządzające dokumentami technicznymi typu FAQ są szanowane prawie tak, jak autorzy oprogramowania.
4. Pomóż działać infrastrukturze.
Kultura hackerska (i techniczny rozwój internetu, jeśli o tym mowa) jest napędzana przez ochotników. Jest wiele koniecznej, ale niezbyt widowiskowej roboty, którą trzeba wykonać, aby wszystko działało tak, jak należy - administracja e-mailowymi listami dyskusyjnymi, filtrowanie grup dyskusyjnych (moderowanie), zarządzanie dużymi archiwami oprogramowania, rozwijanie różnych standardów technicznych.
Ludzie wykonujący dobrze ten rodzaj pracy uzyskują dużo szacunku, bo każdy wie, że ta robota pochłania mnóstwo czasu i nie jest tak ciekawa, jak zabawa z kodem. Robienie tego pokazuje poświęcenie.
5. Służ samej kulturze hackerskiej.
W końcu, możesz służyć samej kulturze oraz szerzyć jej ideologię (chociażby poprzez napisanie rozprawy na temat: "Jak zostać hackerem" :-)). Inni nie będą tego od Ciebie oczekiwać, o ile nie kręciłeś się w tym temacie od jakiegoś czasu i nie zostałeś postacią dobrze znaną z któregoś z pierwszych czterech zagadnień
Kultura hackerów nie posiada przywódców w typowym rozumieniu tego słowa, ale posiada kulturowych bohaterów, "starszyznę plemienną", historyków i rzeczników. Jeśli wystarczająco długo przebywałeś w obozie, możesz w końcu wyrosnąć na jednego z nich. Strzeż się jednak: hackerzy nie ufają wybujałym osobowościom swojej "starszyzny", więc sięganie po tego typu zaszczyty może być niebezpieczne. Zamiast walki o nie powinieneś raczej ustawić się odpowiednio, aby same upadły do Twoich stóp, a wtedy bądź skromny i wdzięczny za swoją pozycję w grupie.
#Związek między pojęciem "hacker" a pojęciem "nerd"
Wbrew popularnemu mitowi nie musisz być nerdem (ang. dziwak), aby móc zostać hackerem. To niewątpliwie pomaga i wielu hackerów jest wyrzutkami społecznymi - pomaga to skupić się na ważnych rzeczach, takich jak myślenie i grzebanie w kodzie.
Z tego też powodu wielu hackerów zaadoptowało sobie etykietę "nerd", a niektórzy nawet używają ostrzejszego terminu "geek" jako oznaki własnej dumy - jest to forma zadeklarowania ich niezależności od normalnych społecznych oczekiwań. Zobacz The Geek Page jeśli chcesz poznać dokładne znaczenie tych słów.
Jeśli potrafisz skoncentrować się na hackerstwie wystarczająco, aby być w tym dobrym i wciąż posiadasz własne życie - w porządku. Dziś jest dużo łatwiej niż w latach siedemdziesiątych, kiedy to ja zaczynałem. Główny nurt kultury społeczeństwa jest dziś dużo bardziej przyjacielsko nastawiony wobec techno-dziwaków. Zwiększa się nawet ilość ludzi zdających sobie sprawę z faktu, że hackerzy są często świetnym materiałem na partnerów i małżonków.
Jeśli pasjonujesz się hackerstwem, bo nie posiadasz własnego życia, to też w porządku - przynajmniej nie będziesz miał problemów z koncentracją. Może później rozpoczniesz prywatne życie.
#Punkty za styl
Znów: aby być hackerem, musisz wejść w styl myślenia hackera. Jest kilka rzeczy, które możesz robić, jeśli nie siedzisz za komputerem, a które zdają się być pomocne. Nie są one substytutami hackerstwa (nic nie jest), ale wielu hackerów to robi czując, że na pewien sposób wiążą się w swych podstawach z duchem hackerstwa.
Naucz się dobrze pisać w swoim języku narodowym. Mimo powszechnego stereotypu, że programiści nie potrafią pisać, zdumiewająco dużo hackerów (włączając w to wszystkich najlepszych, jakich znam), jest doskonałymi pisarzami.
Czytaj science-fiction. Odwiedzaj konwenty science-fiction (świetny sposób, aby spotkać hackerów, lub osoby dobrze rokujące, aby nimi zostać).
Studiuj Zen i/lub trenuj sztuki walki (dyscyplina umysłu jest tu wyraźnie podobna).
Rozwijaj w sobie analityczny słuch do muzyki. Naucz się cenić specyficzne gatunki muzyki. Naucz się dobrze grać na jakimś instrumencie lub dobrze śpiewać.
Rozwiń w sobie szacunek dla gier umysłowych i zabawy słownej.
Im więcej z tych rzeczy już wcześniej Cię zainteresowało, tym bardziej prawdopodobne, że jesteś dobrym materiałem na hackera. Nie wiadomo do końca, dlaczego akurat te rzeczy kojarzą się ze zdolnościami hackerskimi, ale jest to związane z jednoczesnym wykorzystywaniem zdolności prawej i lewej półkuli mózgowej, a to wydaje się być ważne; hackerzy muszą zarówno myśleć logicznie jak i być w stanie wyjść poza zakres pozornej logiki, by móc przekroczyć barierę swoich wyobrażeń w danej chwili.
Pracuj tak intensywnie, jak się bawisz, a baw się tak intensywnie, jak pracujesz. Dla prawdziwych hackerów, różnice między pojeciami takimi jak "zabawa" i "praca", czy "nauka" i "sztuka" zdają się zanikać, lub łączyć w kreatywną zabawę na wysokim poziomie. Poza tym, nie poprzestawaj na wąskim zakresie swoich umiejętności. Mimo, iż większość hackerów sama się określa jako programiści, bardzo często są więcej niż kompetentni w dziedzinach pokrewnych - administracja systemami, projektowanie stron www czy znajomość sprzętu PC to najczęstsze przykłady. Z drugiej strony, hacker, który jest administratorem jest prawdopodobnie uzdolniony, jeśli chodzi o programowanie skryptowe czy projektowanie stron www. Hackerzy nie robią nic "po łebkach"; jeśli już tracą swój czas na naukę jakiejś umiejętności, starają się nauczyc jej na najwyższym poziomie.
W końcu: kilka rzeczy, których nie należy robić.
Nie używaj głupich, górnolotnych pseudonimów.
Nie wdawaj się w święte wojny na Usenecie (ani gdziekolwiek indziej).
Nie nazywaj siebie "cyberpunkiem" i nie marnuj czasu na kogokolwiek, kto się tak określa.
Nie wysyłaj na grupy dyskusyjne poczty ani ogłoszeń, które będą pełne błędów ortograficznych czy gramatycznych.
Reputacja jaką zdobędziesz robiąc te rzeczy jest wątpliwa. Hackerzy mają dobrą pamięć - i może upłynąć wiele lat Twojego życia zanim zostaniesz zaakceptowany.
Problem z pseudonimami wymaga specjalnej uwagi. Ukrywanie swojej tożsamości jest niedojrzałym i głupawym zachowaniem, charakterystycznym dla crackerów, ludzi zajmujacych się warezami i innych niższych form życia. Hakerzy tego nie robią; są dumni z tego, co robią i chcą, aby utożsamiane było to z ich prawdziwymi imionami i nazwiskami. Jeśli więc masz jakiś pseudonim, porzuć go. W kulturze hackerów przedstawi Cię to tylko jako frajera.
#Inne źródła:
Peter Seebach zarządza świetnym Hacker FAQ dla managerów, którzy nie wiedzą, jak postępować z hackerami. Jeśli nie możesz się połączyć z jego stroną, rezultaty tego wyszukiwania na Excite powinny Ci pomóc w znalezieniu kopii tego dokumentu.
Istnieje również dokument noszący nazwę "Jak zostać programistą" (ang. How To Be A Programmer), które jest wspaniałym uzupełnieniem tego tekstu. Zawiera on wartościowe informacje nie tylko na temat kodowania i umiejętności z tym związanych, ale też radzi jak funkcjonować w zespole programistycznym.
Napisałem również tekst pod tytułem "Krótka historia hackerstwa" (ang. A Brief History Of Hackerdom)
Napisałem artykuł The Cathedral and the Bazaar, który wyjaśnia, w jaki sposób działąją kultury hackerskie wokół Linuksa i oprogramowania open source. W dalszej części, Homesteading the Noosphere treści te zostały opisane jeszcze bardziej szczegółowo.
Rick Moen napisał doskonały dokument o tym, jak rozpocząć działanie LUG-u (ang. How to run a Linux user group).
Rick Moen i ja współpracowaliśmy przy tworzeniu innego dokumentu pt. "Jak zadawać inteligentne pytania" (ang. How To Ask Smart Questions). Pomoże Ci on w szukaniu pomocy w sposób, który gwarantuje większe prawdopodonieństwo uzyskania odpowiedzi.
Jeśli potrzebujesz instrukcji odnośnie komputerów, Uniksa i tego, jak działa Internet, polecam The Unix and Internet Fundamentals HOWTO.
Kiedy publikujesz oprogramowanie lub gdy piszesz łatki na programy, staraj się postępować zgodnie z zasadami zawartymi w Software Release Practice HOWTO.
Jeśli podobał Ci się wiersz Zen, spodobać Ci się również może Rootless Root: The Unix Koans of Master Foo.
#Często zadawane pytania(FAQ)
Czy nauczysz mnie hackerstwa?
Od pierwszej publikacji tego dokumentu otrzymuję kilka próśb tygodniowo o to, żebym kogoś nauczył "wszystkiego o hackerstwie". Niestety, nie mam ani czasu ani energii aby to uczynić. Moje własne projekty hackerskie zajmują mi 110% czasu.
Zresztą nawet gdybym miał czas, hackerstwo jest postawą i umiejętnością, których musisz po prostu nauczyć się sam. Przekonasz się, że chociaż prawdziwi hackerzy chcą Ci pomóc, nie uszanują Cię, jeśli będziesz ich błagać, żeby karmili Cię swoją wiedzą jak łyżeczką.
Naucz się na początku kilku rzeczy. Pokaż, że się starasz, że potrafisz uczyć się samodzielnie. Potem zwróć się do znajomych hackerów ze szczegółowymi pytaniami.
Jeśli piszesz maila do hackera z prośbą o pomoc, oto kilka rzeczy, o których warto pamiętać. Po pierwsze: zauważyliśmy, że ludzie, którzy są leniwi i beztroscy, pisząc e-maila są zazwyczaj w ogóle zbyt leniwi i beztroscy, aby zostać hackerem - tak więc staraj się pisać poprawnie, bez błędów gramatycznch czy interpunkcyjnych, ponieważ w przeciwnym wypadku zostaniesz najprawdopodobiej zignorowany. Po drugie, nie waż się prosić o odpowiedź na konto ISP inne, niż to z którego wysłałeś pytanie; często okazuje się, że ludzie którzy o to proszą używają kradzionych kont, a my nie widzimy celu w nagradzaniu ani pochwalaniu kradzieży.
Jak więc mogę zacząć?
Prawdopodobnie najlepszą metodą na rozpoczęcie jest pójść na spotkanie lokalnego LUG-u. Możesz znaleźć takie grupy na LDP General Linux Information Page; najprawdopodobniej znajdziesz jakiś w Twoich okolicach, zapewne związany z jakąś uczelnią. Członkowie LUG-u pewnie dadzą Ci jakąś dystrybucję Linuksa jeśli o to poprosisz, a na pewno pomogą Ci zainstalować go i posługiwać się nim.
W jakim wieku powinienem zacząć? Czy nie jest dla mnie za późno?
Każdy wiek, w którym jesteś zmotywowany, jest odpowiedni. Najczęściej ludzie zaczynają w wieku 15-20 lat, ale znam wyjątki tak w jedną, jak i w drugą stronę.
Jak długo zajmie mi nauka hackerstwa?
To zależy od Twojego talentu i od tego, jak ciężko będziesz nad tym pracował. Większość ludzi może uzyskać odpowiednie umiejętności w przeciągu osiemnastu miesięcy do dwóch lat, jeśli się skoncentrują. Ale nie myśl, że na tym koniec: jeśli będziesz prawdziwym hackerem, spędzisz resztę życia na nauce i doskonaleniu remiosła.
Czy Visual Basic lub C# są dobrymi językami na start?
Jeśli zadajesz tego typu pytanie, oznacza to niewątpliwie, iż pragniesz nauczyć się hackerstwa używając Windows. To jest pomysł zły sam w sobie. Kiedy porównywałem próbę nauki hackerstwa do nauki tańca w gipsie, nie żartowałem. Nawet nie próbuj. To jest złe, i nigdy nie przestaje byc złe.
Jeśli zaś chodzi o Visual Basica czy C#, to są z nimi specyficzne problemy - przede wszystkim chodzi o to, że nie są przenośne. Mimo, iż są prototypy implementacji open source tych języków, stosowne standardy ECMA nie pokrywają nawet małej części ich interfejsu programistycznego. Pod Windows, zdecydowana większość ich bibliotek jest własnością jednej firmy (Microsoft); jeśli nie jesteś ekstremalnie ostrożny z tym, jakich fukcji korzystasz - na pewno dużo ostrożniejszy, niż jakikolwiek nowicjusz jest w stanie być - skończysz przywiązany tylko do tych platform, jakie wspiera Microsoft. Jeśli zaczynasz na Unixie, masz dostęp do sporo lepszych języków i bibliotek do nich.
Visual Basic jest szczególnie wstrętny. Podobnie, jak inne Basic-i jest to kiepsko zaprojektowany język, który nauczy Cię złych nawyków programistycznych. Nie, nie proś mnie o ich szczegółowy opis, bo zająłby on całą książkę. Lepiej naucz się jakiegoś dobrze zaprojektowanego języka.
Jednym z tych złych nawyków jest uzależnienie od bibliotek, widgetów i środowisk wymyślonych przez jedną firmę. Generalnie, jeśli dany język nie jest w pelni wspierany przynajmniej przez Linuksa lub jeden z systemów BSD, i/lub co najmniej trzy odmienne komercyjne systemy operacyjne, nie jest to dobry język do nauki hackerstwa.
Czy pomożesz mi się włamać, albo nauczysz mnie jak to się robi?
Nie. Ktokolwiek, kto zadaje takie pytanie po przeczytaniu tego dokumentu jest zbyt głupi, by się czegoś nauczyć, nawet jeśli miałbym czas na jego naukę. Wszelkie prośby tego typu przesłane mi mailem zostaną przeze mnie zignorowane albo odpowiem na nie ze skrajną nieuprzejmością.
Jak mogę uzyskać hasło do czyjegoś konta?
To jest cracking. Odczep się, idioto.
Jak mogę włamać się do/czytać/monitorować czyjąś pocztę?
To jest cracking. Spadaj, głąbie.
Jak mogę ukraść prawa op-a na IRC-u?
To jest cracking. Precz, kretynie.
Padłem ofiarą ataku cracerów. Czy pomożesz mi odeprzeć przyszłe ataki?
Nie. Za każdym razem, gdy ktoś się mnie o coś takiego pytał, był to jakiś biedak używający Microsoft Windows. Nie jest mozłiwe efektywne zabezpieczenie Windows przeciwko atakom crackerów; kod i architektura tego systemu ma po prostu zbyt dużo błędów, które sprawiają, że zabezpieczanie Windows jest niczym łatanie dziurawej łodzi sitem. Jedyna metoda, na której można polegać to zmiena systemu na Linuksa czy inny system operacyjny, który jest zaprojektowany w taki sposób, aby conajmniej nadawał się do zabezpieczenia.
Mam problemy z moją kopią Microsoft Windows. Pomożesz mi?
Tak. Uruchom linię poleceń DOS i wpisz "format c:". Wszelkie problemy, jakie miałes z tym systemem znikną w kilka minut.
Gdzie mogę znaleźć prawdziwych hackerów do rozmowy?
Najlepszą metodą jest odnaleźć grupę użytkowników Uniksa lub Linuksa w pobliżu i udać się na ich spotkanie (możesz znaleźć linki do kilku list takich grup na stronie LDP na Sunsite).
(Kiedyś uważałem, że nie spotkasz prawdziwych hackerów na IRC, ale miałem okazję przekonać się, że to się zmienia. Okazuje się, że niektóre społeczności hackerskie, związane z takimi rzeczami jak GIMP czy Perl mają własne kanały IRC.)
Czy możesz mi polecić użyteczne książki dotyczące tematów związanych z hakerstwem?
Zarządzam dokumentem pod tytułem "Linux Reading List HOWTO", który może Ci pomóc. Loginataka również może się okazać pomocna.
A co do wstępu do Pythona, polecam materiały na stronie domowej tego języka.
Czy muszę być dobry z matematyki, aby zostać hackerem?
Nie. Mimo, iż musisz być zdolny do logicznego myślenia i postępowania zgodnie ze zdrowym rozsądkiem, hackerstwo wymaga niewiele formalnej matymetyki/arytmetyki.
Konkretniej: nie potrzebujesz trygonometrii, analizy matematycznej (to zostawmy inżynierom elektronikom :-)). Pewne podstawy matematyki skończonej (włączając w to algebry Boole'a, teorię zbiorów skończonych, kombinatorykę i teorię grafów) mogą być jednak przydatne.
Jakiego języka powinienem nauczyć się na początku?
XHTML'a (najnowszego dialektu HTML-a), jeśli jeszcze go nie znasz. Jest pełno widowiskowych, przeładowanych formą, złych książek o HTML'u na rynku i załamująco niewiele dobrych. Tą, którą lubię najbardziej jest HTML: The Definitive Guide.
Ale HTML nie jest pełnym językiem programowania. Kiedy będziesz gotowy zacząć programować, polecam rozpoczęcie od Pythona. Spotkasz wiele osób polecających Perla, i Perl jest popularniejszy od Pythona, ale jest trudniejszy do nauki i (moim zdaniem) gorzej zaprojektowany.
C jest naprawdę ważne, ale jest też dużo trudniejsze od Perla i Pythona. Nie próbuj uczyć się go na początku.
Użytkownicy Windows, nie próbujcie Visual Basica. Nauczy was złych nawyków, a nie jest przenośny poza Windows. Unikać.
Jakiego rodzaju sprzętu potrzebuję?
Kiedyś komputery domowe miały raczej za mało mocy i pamięci, przez co stwarzały sztuczne limity dla procesu nauki hackerów. Od dawna nie jest to już prawdą; każdy komputer od 486DX50 i wzwyż jest więcej niż wystarczająco wydajny do prac nad rozwojem oprogramowania, X-ów i połączeń z internetem, a najmniejsze dyski jakie można dziś kupić są wystarczająco duże.
Istotnym aspektem przy wybieraniu sprzętu do nauki jest to, czy jego komponenty są kompatybilne z Linuksem (czy też z BSD, jeśli zamierzasz z niego korzystać). I znów, będzie to prawdą dla większości nowoczesnych maszyn. Jedynym naprawę problematycznym elementem są modemy; niektóre komputery wyposażone są w modemy zaprojektowane specjalnie dla Windows, i one zazwyczaj nie będą działały pod Linuksem.
Istnieje FAQ na temat zgodności sprzętowej; najnowsza wersja jest dostępna pod tym adresem.
Chcę się zaangażować. Czy mogłbyś pomóc mi wybrać problem do opracowania?
Nie, ponieważ nie znam Twoich talentów ani zainteresowań. Musisz być zmotywowany albo nie wytrzymasz długo, i dlatego robienie tego, co inni Ci wybiorą, prawie nigdy nie skutkuje.
Spróbuj tego: przez kilka dni poobserwuj pojawiające się ogłoszenia projektów na Freashmeat, i kiedy zobaczysz taki, o którym pomyślisz "Cool! Nad tym chciałbym pracować!", dołącz do niego.
Czy muszę nienawidzić i narzekać na Microsoft?
Nie, nie musisz. Nie dlatego, że Microsoft nie jest obrzydliwy, ale dlatego, że kultura hackerów istniała długo przed Microsoftem i wciąż będzie istnieć wtedy, gdy Microsoft będzie już historią. Zamiast tracić energię na nienawiść do Microsoftu, lepiej spożytkuj ją na miłość do swojego rzemiosła. Pisz dobry kod - to zaszkodzi Microsoftowi skuteczniej i nie zabrudzi Twojej karmy.
Ale czy rynek oprogramowania open source nie uniemożliwi programistom zarobienia na życie?
To wydaje się nieprawdopodobne - na razie przemysł oprogramowania open source wydaje się raczej stwarzać nowe miejsca pracy niż je odbierać. Jeśli zrealizowanie programu jest korzystniejsze ekonomicznie niż nie stworzenie go, programista otrzyma zapłatę niezależnie od tego, czy program będzie darmowy. I, niezależnie od ilości "darmowego" oprogramowania, wygląda na to, że zawsze jest duży popyt na nowe i specjalizowane oprogramowanie. Napisałem więcej na ten temat na stronach Open Source.
Jak mogę zacząć? Gdzie mogę dostać darmową wersję Uniksa?
W kilku miejscach na tej stronie zawarłem wskazówki, gdzie znaleźć najpowszechniej stosowany darmowy Unix. Żeby być hackerem potrzebujesz motywacji, inicjatywy i umiejętności samodzielnej nauki. Zacznij teraz...