پرونده اصطلاحات(Jargon File) شامل تعاریفیاز' هکر' است که عموما در ارتباط با تعریف تکنیکیآن همراه با وصف سرخوشیحل مشکلات و مرتفع کردن محدودیت هاست. اگر شما میخواهید بدانید چگونه هکر شوید تنها دو تعریف به دردتان میخورد.
یک اجتماع ، یک فرهنگ مشترک ، از برنامه نویسان خبره و جادوگران شبکه که پیشینه آن از میان دهه ها به مینیکامپیوترهایاشتراک زمانی (time-sharing) و اولین تجریه های ARPAnet میرسد. اعضای این فرهنگ اصطلاح ' هکر' را ساختند . هکرها اینترنت را ایجاد کردند. آنان سیستم عاملUnix را آنچنان که امروز هست ایجاد کردند. هکرها usenet را اجرا کردند. آنان باعث شدند شبکه جهانی (World wide web) کار کند. اگر شما دارای این فرهنگ هستید و دیگران میدانند که شما چه کسیهستید و هکر مینامندتان؛ پس شما هکر هستید!
نگرش هکر محدود به 'هکرنرمافزار' نمیشود ، مردمانیهستند که منش هکر را به سایر زمینه ها مانند الکترونیک یا موسیقیسرایت میدهند. در حقیقت شما میتوانید این فرهنگ را در بالاترین سطوح هر علم و هنری بیابید. هکرهای نرمافزار این هم روح ها را در هر جا میشناسند، آنان را 'هکر ' مینامند و برخیمعتقدند که طبیعت هکر واقعا مستقل از زمینه ایست که او در آن کار میکند. اما در تمام این مقاله ما بطور خاص بر مهارت ها و منش هایهکر نرمافزار، و فرهنگ های مشترکی که واژه ی 'هکر' را بوجود آورد تمرکز خواهیم کرد.
گروه دیگریاز مردم هستند که متکبرانه خود را هکر مینامند اما نیستند! این مردمان (که بیشتر نرهای نابالغند) کسانیهستند که سیستمهایکامپیوتری و مخابراتی را 'تخریب' میکنند. هکرهای واقعیاینان را 'شکننده (Cracker) ' مینامند و هیچ کاریبه آنان ندارند. هکرهای واقعی اعتقاد دارند که اینان تنبل، بیمسئولیت و نه چندان باهوشند و میدانند که توانایی نفوذ به سیستمهای امنیتیشما را هکر نمیکند. همانگونه که دزدان اتومبیل را هیچگاه نمیتوان مکانیک نامید. متأسفانه بسیاری از روزنامه نگاران و نویسندگان ناآگاهانه واژه ی' هکر ' را برایتوصیف شکننده ها (Crackers) بکار میبرند و هکرها را تا سرحد مرگ عصبانی میکنند.
تفاوت اصلی این است: هکرها میسازند اما شکنندهها ویران میکنند.
اگر میخواهید هکر باشید (همواره ) مطالعه کنید. اما اگر میخواهید شکننده(Cracker) شوید گروه خبریalt.2600 را بخوانید و آماده باشید که ۵ تا ۱۰ سال را در زندان بگذرانید، پس از اینکه فهمیدید به اندازهای که فکر میکردید زرنگ نیستید. این تمام چیزی است که درباره یشکننده ها (Crackers) خواهم گفت.
منش هکر
منش هکر، هکر میآفریند و یاریمیکند. او به آزادی و یاری متقابل معتقد است؛ برای آن که هکر نامیده شوید باید چنان رفتار کنید که گویا چنین منشیدارید و برایاینکه اینگونه رفتار کنید باید واقعا آن را داشته باشید. اگر به پروراندن منش هکر تنها برای پذیرفته شدن در این فرهنگ میاندیشید در اشتباه هستید! چنین منشی داشتن همواره کمکتان میکند یادگیرید و با انگیزه باشید. مانند تمام هنرها بهترین راه استاد شدن، نگاه کردن به استاد و تقلید از اوست - نه فقط در باب تفکر که حتیدر احساس!
همانگونه که در شعر ذن زیر آمده است:
تا که راه یابی
به استاد نگر
به دنبالش باش
با او برو
از نگاه او بنگر
استاد شو
پس اگر میخواهید استاد شوید، آن قدر ذکرهایزیر را بگویید (افکار زیر را با خود مرور کنید) تا باورشان کنید:
۱ - جهان پر از مشکلات جذابیاست که میباید حل گردند
هکر بودن هیجان دارد، اما هیجانی که نیازمند تلاش فراوان است و تلاش کردن نیازمند انگیزه. ورزشکاران موفق انگیزه خود را از لذتی که در جسمشان احساس میکنند، میگیرند؛ در گذر از حدود جسمانیشان. شما نیز باید از حل مشکلاتتان مشعوف شوید. از پیشرفت مهارتتان و زورآزمایی اندیشهیتان.
اگر شما به طور ذاتیچنین شخصینیستید باید اینگونه گردید و گرنه انرژیتان با شهوت، پول، شهرت و ... به هدر خواهید داد.
(همچنین باید به توانایی یادگیریتان ایمان آورید - باور به اینکه: گر چه تمام آن چه را لازم دارید نمیدانید اما اگر تنها بخشی از آنرا کشف کنید توانایی حل باقی را بدست میآورید)
۲ - هیچ مشکلینباید دوبار حل گردد اندیشه هایخلاق گرانبها و محدودند
ذهن های خلاق باارزش هستند، منابعی محدود. آنان نباید با دوباره کشف کردن چرخ، به هدر بروند در حالی که هزاران معمای حل نشده جذاب باقی است. برای آن که کرداری مانند یک هکر داشته باشید باید باور کنید که وقت هکرها گرانبهاست - آنچنان که گویی یک وظیفه روحانی است که اطلاعتان را مبادله کنید، مشکلات را حل کنیدو راه حلها را به دیگر هکرها بدهید تا آنان مشکلات جدیدتر را مرتفع کنند. بجای آنکه دائما حول همانها بگردند.
(مجبور نیستید باور داشته باشید که تمام آنچه را خلق میکنید باید ببخشید- گرچه هکرهایی که چنین میکنند محترمترین آنان هستند - با ارزش هایهکر سازگار است که مقداریاز آن را بفروشید تا برای خود خورد و خوراک و کامپیوتر تهیه کنید. چه خوب است اگر استعداد هکری خود را برای حمایت از خانواده و حتیثروتمند شدن بکار گیرید، تا هنگامیکه شرافت هنرتان و رفیقان هکرتان را فراموش نکنید.)
۳- کسالت و بیکاریشیاطینند
هکرها (و عموما انسانهای خلاق) هرگز نباید کسل شوند یا مجبور به بیگاریشوند چرا که در این صورت آنها از انجام کاری که تنها آنان قادر به انجام آنند باز میمانند. این هرز رفتن همه را آزار میدهد. بنابراین کسالت و بیگاری نه تنها ناخوشایند بلکه واقعا شیاطینند.
برای اینکه مانند یک هکر رفتار کنید باید باور کنید که میخواهید تمام کسالت آوران را کنار بزنید نه تنها برای خودتان بلکه برای همه (خاصه سایر هکرها).
(یک استثناء بارز وجود دارد. هکرها گاهی کارهایی انجام میدهند که به نظر تکراری و خسته کننده میرسند، تنها برای پاکسازی ذهن شان یا برای بدست آوردن تجربهای خاص. اما به اختیار ،هیچ فرد اندیشمندی نباید مجبور به پذیرفتن موقعیت کسل کنندهایگردد.)
۴ - آزادیخوب است .
هکرها ذاتا ضد استبدادند. هر که به شمادستور دهد، شما را از پرداختن به آنچه عاشق کشف آنید باز میدارد؛ گر چه آنان همواره برای دستوراتشان دلایل ابلهانهی خود را دارند. با منش استبدادی باید مبارزه شود هر جا که پیدا شود چرا که شما و تمام هکرها را تحت فشار میگذارد .
(این به مفهوم مخالفت کلیبا اتورتیه نیست. کودکان باید راهنمایی شوند و جنایتکاران مراقبت. هکر ممکن است نوعی از اتورتیه را قبول کند تا بیشتر از زمانی که برایاجرای دستورات از دست میدهد، بدست آورد. اما این تنها یک معادله آگاهانه است. یک قدرت فردی که مستبدان میخواهند قابل قبول نیست.)
مستبدان تنها با سانسور و پنهان کاری رشد میکنند و به همکاری داوطلبانه اعتمادی ندارند. آنها فقط نوعی از همکاری را دوست دارند که در کنترل آنان باشد، بنابراین برای اینکه یک هکر باشید باید دشمنی ذاتی با سانسور و رازداری، اعمال قدرت و سیاست برای مجبور ساختن افراد متعهد را در خود بپرورانید و باید که براین باور عمل کنید.
۵ - منش جایگزین مهارت نیست
برای آنکه هکر شوید مجبور به پروراندن مواردی از این منشهایید. اما تنها تقلید از این منشها شما را هکر نمیسازد همانگونه که شما را قهرمان یا خواننده نمیکند. هکر شدن احتیاج به تیزهوشی، تمرین، تمرکز و کار سخت دارد.
بنابراین شما باید یاد بگیرید که به منش مشکوک و به مهارت احترام بگذارید. هکرها نمیگذارند فضولان وقت شان را هدر دهند و به مهارت ایمان دارند به خصوص مهارت در درک کردن گرچه مهارت در هر زمینه ایدلپذیر است. مهارت در زمینه های مورد نیاز که متخصصان کمتری دارد بهتر است و تخصص در زمینه های مورد نیاز که به فکر متبحر، استادی و تمرکز نیاز دارند، بهترین.
اگر شیفته مهارت باشید از پروراندن آن در خود لذت خواهید برد . کار سخت و تمرکز بجایکاریکسالت بار به بازیسخت شبیه میگردد و این برایهکر شدن حیاتیاست .
مهارتهای پایهای برای هکر شدن
منش هکر حیاتیاست اما مهارت او حیاتیتر است. منش جایگزین مهارت نمیگردد و مجموعه مهارت های پایه ای خاصی وجود دارند که باید در خود بپرورانید تا هکرها شما را هکر بنامند.
این ابزار به آرامی تغییر میکند با گذشت زمان تکنولوژی مهارت های جدیدی ایجادمیکند و قدیمیها را بیمصرف میکند. مثلا در گذشته زبان ماشین شامل این مجموعه بود، در حالیکه HTML اخیرا به این مجموعه اضافه شده است. اما این مجموعه در حال حاضر مشخصأ شامل موارد زیر است:
۱ - بیاموزید که چگونه برنامه بنویسید
این مسلما پایه ایترین مهارت هکر است. اگر شما هیچ زبان برنامه نویسیبلد نیستید، پیشنهاد میکنم با پیتون شروع کنید. پتیون تمیز طراحیشده است. به خوبیمستند سازیشده و تقریبأ ابتداییاست. با آنکه پتیون زبان اولیه خوبیاست، یک اسباب بازینیست. بلکه بسیار قدرتمند و قابل انعطاف است و مناسب پروژه های بزرگ. من یک مقاله مفصل تر در مورد انقلاب پیتون نوشتهام. خودآموزهای خوبی میتوانید در وب سایت پیتون پیدا کنید.
جاوا زبان بسیار خوبیاست البته بسیار مشکل تر از پیتون است، اما برنامه سریع تری ایجاد میکند و فکر میکنم انتخاب فوق العاده ایبرایزبان دوم است .
البته شما نمیتوانید با دانستن تنها دو زبان به مهارتهای یک هکر و یا حتی یک برنامه نوبس خوب برسید. شما باید بدانید چگونه در مورد مشکلات برنامه نویسی، جدای از زبان برنامه نویسیفکر کنید. برای آنکه یک هکر واقعی شوید، باید به جایی برسید که بتوانید یک زبان جدید را در دو، سه روز یاد بگیرید. این نیازمند آن است که چندین زبان کاملأ متفاوت را یاد بگیرید.
اگر به صورت جدی به برنامه نویسی روی آورید، باید C زبان پایهایUnix را یاد بگیرید. ++C بسیار شبیه C است؛ اگر شما یکی از آنها را یاد بگیرید، یادگرفتن دیگری مشکل نخواهد بود. اما هیچ کدام به عنوان زبان اول قابل یادگیری نیستند. در واقع، هر چقدر از برنامه نویسی به زبان C پرهیز کنید، بازدهتان بیشتر خواهد بود.
C بسیار کاراست و منابع کامپیوتر را کمتر مصرف میکند. متأسفانه C این کارایی را با تلاش بسیار شما برای مدیریت سطح پائین منابع (مانند حافظه) بدست میآورد. این نوع برنامه نویسی سطح پائین بسیار پیچیده و باگ -دوست است و زمان بسیاری برای رفع اشکال (Debug) لازم دارد. با قدرت و سرعتی که کامپیوترهای امروز دارند این معامله خوبی نیست. تیز هوشانهتر است که از زبانی استفاده کنیم که زمان کامپیوتر را بیشتر میگیرد و زمان برنامه نویس را کمتر. مانند ، پیتون.
زبانهای دیگری هستند که ارزش خاصی برای هکرها دارند. Perl به جهت دلایل کاربردی آن با ارزش است، به طور گسترده ای در طراحی صفحات فعال وب و مدیریت سیستم به کار گرفته شده است و حتی اگر شما هرگز با Perl برنامه ننوبسید، باید قادر به خواندن آن باشید. بسیاری از مردم از Perl در جایی استفاده میکنند که من پیتون را پیشنهاد کردم. برای اجتناب از برنامه نویسی C در جاهایی که نیاز به کارایی C ندارید. شما به فهمیدن کدهای Perl احتیاج خواهید داشت.
لیسپ (LISP)به دلایل دیگری ارزشمند است – برای روشن نگری عینی که پس از یادگیری آن بدست خواهید آورد . حتی اگر هیچگاه از لیسپ به طور جدی استفاده نکنید، مسلما یادگیری آن شما را برنامه نویس بهتری خواهد کرد. (شما میتوانید مهارت های اولیه یLISP را به راحتی بانوشتن و تغییر دادن Modها برای ویرایشگر متن Emacs کسب کنید)
حقیقتا بهتر است هر پنج زبان ( پیتون ، جاوا ، C/++C ، پرل و LISP) را یاد بگیرید. جدا از ارزشی که این زبانها برای هکرها دارند، آنان رویکردهای کاملا متفاوتی برای برنامه نویسی دارند که مسا ئل با ارزشی به شما یاد میدهند.
نمیتوانم دستورالعمل خاصی برای یادگرفتن برنامه نویسی بدهم (کار پیچیده ایاست)، اما میتوانم بگویم که کتابها و کلاسها به شما کمک نخواهند کرد (اکثر هکرها خودشان یاد گرفتهاند) شما میتوانید روشهایی را از کتاب فراگیرید اما ساختار فکری که این روشها را به مهارت واقعی تبدیل میکند، تنها با تمرین و شاگردی کردن بدست میآید. وظایف شما شامل ۱) خواندن کد و ۲) نوشتن کد خواهد بود.
یادگیری زبان برنامه نویسی مانند یادگیری نوشتن یک زبان واقعی است. بهترین راه خواندن چیزهایی است که استادان امر نوشته اند و سپس نوشتن برنامه ای از خودتان است؛ بسیار بیشتر مطالعه کنید، کمیبیشتر بنویسید، بیشتر مطالعه کنید، بیشتر بنویسید.... و تا آنجا ادامه دهید که نوشته هایتان قدرت و صلابت کارهای استادتان را پیدا کند.
سابقا پیدا کردن کد خوب مشکل بود، برنامه های بزرگی که متن آنها در دسترس بود تا هکرها بخوانند و آزمایش کنند، بسیار محدود بود. اکنون این مسئله به طور قابل ملاحظهای تغییر کرده است؛ اکنون نرمافزارها ابزارهایبرنامه نوبسی و سیستمهایعامل بازمتن (که تماما بوسیله هکرها نوشته شده است) بسادگی قابل دسترس است - که مرا به نوشتن بخش بعد ترغیب میکند...
۲- یکیاز یونیکس هایباز - متن را بگیرید و استفاده و اجرا کردن آن را بیاموزید
فرض میکنیم یک کامپیوتر شخصی دارید یا لااقل به آن دسترسی دارید (بچه های امروزی خیلی راحت به آن دسترسی دارند:-)). مهمترین قدم اولیه ای که هر مبتدی برای هکر شدن میتواند بردارد، گرفتن یک کپی از لینوکس (Linux) یا بیاس دی-یونیکس (BSD-Unix)؛ نصب کردن آن رویکامپیوتر شخصی و اجرای آن است.
بله ، سیستم عاملهای فراوانی در کنار یونیکس وجود دارد. اما تمام آنها به صورت باینری توزیع میشوند و شما قادر به خواندن و تغییر کد آن نیستید. تلاش برای ایجاد تغییر بر روی یک کامپیوتر داس یا ویندوز یا MacOS مانند این است که بخواهید در لباس شوالیه رقص بیاموزید.
تحت OS/X این کار ممکن است ، اما فقط بخشی از این سیستم بازمتن است. شما به موانع بسیاری برخورد خواهید کرد و باید مواظب باشید تا عادت بد تکیه بر کد اختصاصی اپل را در خود توسعه ندهید. در صورتی که بر روی یونیکسها تمرکز کنید، چیزهای مفیدتری فراخواهید گرفت.
یونیکس سیستم عامل اینترنت است. اگر اینترنت را بدون یونیکس یاد میگیرید، هیچ وقت نمیتوانید یک هکر اینترنت باشید. به این خاطر فرهنگ هکر امروز کاملأ یونیکس-محور است. (این مطلب همیشه صادق نبوده است . بسیاری از هکرهای با سابقه از این موضوع رضایت ندارند اما پیوند محکم یونیکس و اینترنت آنچنان قوی است که حتی قدرت شیطانی مایکروسافت نیز نتوانسته است خلل چندانی در آن ایجادکند.)
پس یک یونیکس نصب کنید. من به شخصه لینوکس را دوست دارم اما راههای دیگری هم وجود دارد ( بله! شما میتوانید مایکروسافت ویندوز و Linux رابا هم داشته باشید). یاد بگیرید، اجرا کنید، ور بروید، کدهایش را بخوانید و تغییرشان دهید. ابزار برنامه نویسی بهتری در اختیار خواهید داشت، مانند C , LISP , Python و Perl که در سیستم عامل ویندوز خواب داشتن آن ها را میبیند. بسیار جذاب و سرگرم کننده خواهد بود و آنچنان در دانش غرق میشوید که حتی متوجه آن نمیشوید تا هنگامیکه به مانند یک استاد هکر به پشت سرتان بنگرید!
برای اطلاعات بیشتر درباره ی یادگیریUnix به The Loginataka نگاه کنید. همین طور شمامیتوانید نگاهی بهThe Art Of Unix Programing (هنر برنامه نویسی در یونیکس) بیاندازید.
برای آن که چیز هایی از لینوکس دست گیرتان شود به سایت Linux Online بروید؛ شما میتوانید از آن جا دانلود کنید یا (ایده یبهتر) یک گروه کاربران لینوکس محلی پیدا کنید تا به شما در نصب لینوکس کمک کنند. از دیدگاه یک کاربر تازه کار تمام توزیع های لینوکس بسیار شبیه یکدیگرند.
شما میتوانید راهنما و منابعBSD Unix را در سایت www.bsd.org پیدا کنید.
من نیز مقالاتی مبتدی درباره ی پایه هاییونیکس و لینوکس نوشته ام.
(توجه : من در حقیقت نصب کردن هیچ کدام از Linux یا BSDها را به طور خاص به شما توصیه کنم ، برای هر تازه کاری هر کدام از این ها یک پروژه ی انفرادی است. برای لینوکس، یک گروه کاربران لینوکس در محل خود پیدا کنید و از آنها برای کمک سوال کنید.)
۳ - استفاده از وب و نوشتن HTML را یاد بگیرید
بسیاری از چیزهایی که فرهنگ هک ساخته است خارج از افق دید شماست، کمک به کارخانهها، دفاتر و دانشگاهها بدون اینکه تأثیر مشخصی در زندگی غیر هکرها نداشته باشد. در این میان اینترنت یک استثناء عمده است، سرگرمی درخشان هکری که حتی به اعتراف سیاست مداران در حال تغییر دادن جهان است . تنها به همین خاطر (و همچنین بسیاریاز دلایل مشابه دیگر) یاد گرفتن کار در اینترنت احتیاج دارید.
این فقط به این معنی نیست که چگونه از یک مرورگر استفاده کنید(!) بلکه به معنی یادگیریHTML است . اگرهنوز برنامه نویسی یاد نگرفتهاید، نوشتن HTML عادت های ذهنی را برایتان فراهم میکند که به یادگیری برنامه نویسی کمک میکند. پس برای خودتان یک Homepage درست کنید. سعی کنید از XHTML استفاده کنید که نسبت به HTML سنتی تمیزتر است.(منابع بسیار خوبی برروی وب برای تازه کارها وجوددارد؛ این یکی از آن هاست!)
اما نوشتن یک Homepage به هرحال آنقدر خوب نیست که شما را هکر کند. وب پر از Homepage است. بیشترشان بیارزشند. لجن های بیمحتوا، فضولات شیک، اما مطمئن باشید که لجن همیشه لجن است. (برای اطلاعات بیشتر صفحه یTheHTML Hell را ببینید.)
برای با ارزش بودن؛ Homepage تان باید محتوا داشته باشد و برای هکرهای دیگر جذاب و یا آموزنده باشد. تمام اینها شمارا به بخش بعد هدایت میکند...
۴ - اگر انگلیسیبلد نیستید آن رایاد بگیرید
به عنوان یک آمریکایی بخاطر آنکه زبان مادریم انگلیسی است قبلأ از ذکر این موضوع ناراحت بودم. حداقل این میتواند یک امپریالیسم فرهنگیتلقیگردد. ولی تعدادی از غیر انگلیسی زبانان از من خواستند که این موضوع را متذکر شوم که انگلیسی زبان فرهنگ هکر و اینترنت محسوب میگردد و شما احتیاج خواهید داشت که این زبان را یادبگیرید تا در جامعه هکرها فعال شوید.
این موضوع واقعیت دارد. حدود سال ۱۹۹۱ متوجه شدم که بسیاری از هکرها که انگلیسیزبان دومشان بود آن را برای بحث های تکنیکیشان بهره میگرفتند، حتی اگر زبان مادریشان یکی بود. به من اطلاع دادند که انگلیسی بعلت غنیتر بودن به لحاظ لغات فنی برای این کار مناسبتر است . به همین دلیل ترجمه متنهای فنی که در زبان انگلیسی هستند، غالبا رضایت بخش نیست. لینوس توروالدز که یک فنلاندی است، کد خود را به زبان انگلیسی تشریح کرده است (و هرگز غیر از این روش، روش دیگری را پیش نگرفته است) تسلط بر انگلیسی، عامل مهمی در جمع کردن جامعه جهانی برنامه نویسان لینوکس بوده است. این مورد نمونه قابل ذکری در مورد نقش زبان انگلیسی است.
موقعیت فرهنگ هکر
مانند بسیاری از فرهنگهای برپایه ی روابط غیر اقتصادی، هکرگری نیز با شهرت اداره می گردد، شما سعی میکنید که مسئله جالبی را حل کنید اما اینکه آن مسئله چقدر قابل تأمل است یا راه حل شما واقعا چقدر خوب است، چیزی است که تنها استادان شما صلاحیت تأیید آن را دارند.
به همین ترتیب، وقتی وارد بازی هکر ها شدید، مدارجتان را با آنچه سایرین در مورد شما فکر می کنند بدست خواهید آورد (به این علت است که تا هنگامی که دیگران شما را هکر نمی دانند واقعأ هکر نیستید). این حقیقت بوسیله پنداری که هک را یک کار منزوی گرایانه میداند، محو شده است؛ هم چنین با وجود این تابوی فرهنگ هکری (که در حال از میان رفتن ولی فعلا همچنان نیرومند است) در برابر پذیرش اینکه تصدیق خود یا دیگری، تنها در گیر انگیزه یک شخص باشد.
به خصوص ، هکرگری نوعی از فرهنگ است که مردم شناسان به آن فرهنگ هدیه میگویند. شما شهرت و موقعیت خود را نه با سلطه بر دیگر مردم، نه با زیبایی یا در اختیار داشتن چیزهای مورد نیاز مردم بلکه با دادن هدیه بدست می آورید. به خصوص با دادن وقت خود، خلاقیت و مهارتتان.
پنج چیز وجود دارد که با انجام آن مورد احترام هکرها قرار میگیرید:
۱ - برنامههای باز - متن بنویسد
اولین (محوری ترین و سنتی ترین) روش، نوشتن برنامههایی است که هکرهای دیگر آن را جالب و مفید میدانند و سپس دادن کد منبع برنامهها به دیگران.
(ما قبلا این را نرمافزار آزاد مینامیدیم ، اما این اصطلاح موجب اشتباه بسیاری از مردم شد که نمیدانستند منظور از آزاد دقیقا چیست، امروزه بسیاری از ما حداقل به نسبت ۲ به ۱ اصطلاح بازمتن (open-source) را ترجیح می دهیم.)
محترم ترین هکر ها [1] افرادی هستند که برنامههای بزرگی نوشته اند - برنامههای پرقدرتی که احتیاجات گسترده ای را مرتفع می سازد - و آنان را در دسترس همگان قرار داده اند.
۲ - به آزمایش ورفع اشکال کردن برنامههای بازمتن کمک کنید
هکرها به کسانی که نرم افزارهای بازمتن را آزمایش و رفع اشکال میکنند، یاری میرسانند. در این دنیای ناقص ناگزیر به صرف دقت بسیاری برای رفع اشکال برنامهها هستم، به این علت است که مولفان بازمتن میگویند یک آزمایشگر خوب ( تعریف کردنش دشوار است؛ مشکلات در ضمن انتشار، کسی که بتواند اشتباهات یک انتشار عجله ای را تحمل کند و مشکلات نرمافزار را گزارش کنند) سزاوار یاقوت به اندازه ی وزنشان هستند. حتی یک نفر از آنان میتواند رفع اشکال کردن را از یک کابوس طولانی به یک دردسر عبرت آموز تبدیل کند. اگر مبتدی هستید یک نرم افزار در حال برنامه نویسی پیدا کنید و یک آزمایشگر خوب باشید. یک پیشرفت طبیعی از کمک به آزمایش برنامه تا کمک به رفع اشکال کردن آن و بهتر کردن آن است. از این راه چیزهای بسیاری یاد میگیرید و روابط خوبی با افرادی که بعدا شما را کمک خواهند کرد بر قرار خواهید کرد.
۳ - اطلاعات خوب را منتشر کنید
کار خوب دیگری که میتوانید بکنید جمع آوری و دستچین کردن مطالب جالب و مفید در برگههای وب یا پروندههایی مانند سؤالات متداول ( FAQ ) و منتشر کردن آن است. گردآورندگان مجموعه سؤالات متداول (FAQ) به اندازه برنامه نویسندگان بازمتن مورد احترام هستند.
۴ - به پایداری شالوده ی کار کمک کنید
فرهنگ هکر (و مهندسی اینترنت بعنوان شاخهای از آن) با داوطلبان به پیش می رود. بسیاری از کارهای کوچک ولی ضروری وجود دارند که باید انجام شوند. مدیریت لیستهای پستی و گروههای خبری، مرتب کردن آرشیو نرم افزارهای بزرگ، گسترش RFCها و سایر استانداردهای فنی.
مردمی که این کارها را انجام می دهند مورد احترام فراوان هستند. چرا که همه می دانند این نوع مسئولیت چقدر زمانبر است در حالیکه جذابیت زیادی مانند بازی کردن با کد هم ندارد. انجام آنها نشاندهنده ی ایثارگریست.
۵ - به خود فرهنگ هکر کمک کنید
در انتها می توانید به خود فرهنگ کمک کنید و آن را منتشر کنید (مثلأ با نوشتن مقاله ای در مورد اینکه چگونه هکر شویم :-) ). گرچه این کاری نیست که در همان ابتدا انجام دهید تا وقتی که شهرت خوبی در بین هکرها بدست آورید.
فرهنگ هکر، رهبر به معنی دقیق آن ندارد. اما قهرمانان، پیران ، مورخان و سخنگویان زیادی دارد. بعد از این که به اندازه ی کافی در سنگرها مدت زیادی را سپری کنید، میتوانید یکی از آنها شوید. باید بدانید که هکرها به منیت آشکار پیران خود بدبینند؛ رسیدن به این درجه از شهرت آشکارا خطرناک است. به جای تلاش برای رسیدن به آن موقعیتتان را چنان بسازید که در مسیرشما افتد. سپس در مقامتان فروتن و مهربان باشید.
رابطه هکر / نرد (Nerd)
ارتباط هکر و نرد بر خلاف افسانه مشهور، برای هکر بودن اجباری بر نرد بودن نیست (نرد به شخصی گفته میشود که تمام زندگی او بر کامپیوتر/تکنولوژی استوار است ). اما به هرحال نرد بودن کمکتان میکند و بسیاری از هکرها اینگونهاند. نرد بودن کمکتان میکند که بر مهمترین مسائل مانند فکر کردن و هک کردن تمرکز داشته باشید.
به همین خاطر بسیاری از هکرها صفت نرد بودن و حتی سرسختانهتر گیک را به عنوان شعار برگزیدهاند. روشی برای بیان جداییشان از انتظارات عوامانه اجتماع - برای بحث بیشتر به صفحهی (geek) مراجعه کنید.
اگر شما بتوانید به اندازه کافی روی هک کردن تمرکز کنید در حالیکه به زندگیتان هم برسید، بسیار عالیست. امروزه انجام این کار از ۱۹۷۰ که من تازه کار بودم بسیار ساده تر است؛ جریان غالب فرهنگی با تکنو- نردها بسیار مهربانتر است و تعداد کسانی که می فهمند هکرها عاشقان و همسران بلند مرتبهای هستند هر روز زیادتر می شود.
اگر شما بخاطر نرد بودنتان به هکر بودن علاقهمند شدهاید هم خوب است! حداقل برای متمرکز شدن مشکلی نخواهید داشت. شاید هم در آینده از انزوا درآمدی!
نکاتی در باب طریقت
نکاتی در باب طریقت باز میگویم که شما برای هکر شدن باید ساختار فکری هکری بدست آورید. چیزهایی هست که هنگامیکه کامپیوتر ندارید میتوانید انجام دهید. آنها جایگزین هک کردن نمی شوند (هیچ چیز نمیشود) اما بسیاری از هکرها انجامشان را دوست دارند و احساس می کنند با انجام آنها به نوعی به روح هک کردن نزدیک می شوند.
-بیاموزید که زبان مادریتان را خوب بنویسید. گرچه معروف است که برنامه نویس ها نمیتوانند بنویسند، یک تعداد غافلگیر کنندهای از هکرها (تمام بهترین هکرهایی که من میشناسم) نویسندگان توانایی هستند.
-داستانهای علمی - تخیلی بخوانید. به جلسات داستانهای علمی بروید. (جای خوبی که می توانید هکرها و هکر دوستان را ببینید.)
-ذن تمرین کنید و/ یا به هنرهای رزمی بپردازید (انظباط روحی در جهات بسیاری شبیهاند)
-گوش تان را به موسیقی حساس کنید. بیاموزید که به نوع خاصی از موسیقی را درک کنید. نواختن برخی آلات موسیقی را به خوبی فرابگیرید یا آواز خواندن یاد بگیرید.
-کار با جملات قصار و بازی با کلمات را به خوبی بیاموزید.
هر چه موارد بیشتری را قبلأ انجام داده باشید استعداد بیشتری برای هکر شدن دارید. چرا این موارد خاص مهم هستند واقعا معلوم نیست. ولی ارتباط آنها با مهارتهای نیمکره ی چپ و راست مغز مربوط می شود، هردوی این ها اهمیت فراوانی دارند؛ هکرها همانگونه که به منطق استدلالی نیاز دارند به شهود عرفانی نیز محتاجند تا در لحظه ای خاص از شر منطق ناقص مشکلی خلاص شوند.
به همان میزان که بازی میکنید، کارکنید و همان قدر که کار میکنید، بازی کنید. برای هکرهای واقعی مرزی میان ” بازی“ ، ” فعالیت“ ، ”دانش“ و ”هنر“ وجود ندارد و این با پدیدار شدن سطح بالایی از سرزندگی سازنده همراه خواهد بود. به هیچ وجه به اطلاعات مهارتهای محدود اکتفا نکنید. برخلاف آن که بسیاری از هکرها خود را یک برنامه نویس معرفی می کنند، دارای مهارتهای بسیاری هستند - مدیریت سیستم، طراحی وب و رفع اشکالهای سختافزاری PC یکی از معمول ترین آن هاست. هکری که مدیر سیستم است، اغلب، یک برنامه نویس حرفهای و یک طراح وب است. هکر هرگز کاری را نیمه انجام شده رها نمیکند، اگر به موضوعی بپردازد در رابطه با این موضوع مهارتهایش را به اوج کمال میرساند.
در پایان چیزهایی هستند که نباید انجام دهید:
- از اسامی ابلهانه و بزرگ نما (قلمبه!) استفاده نکنید.
- در آتش افروزیهای گروههای خبری و یا هر بحث بی فایده ی دیگر شرکت نکنید.
- خودتان را "ولگرد سایبر" خطاب نکنید، وقت خود را با چنین افرادی هدر نکنید.
- نامههای الکترونیکی پر از غلط املایی و دستور زبانی نفرستید.
تنها چیزی که از این ها عایدتان می شود شهرت یک دلقک است. هکرها حافظه خوبی دارند - سالها طول می کشد تا دسته گلی که به آب دادهاید فراموش شود و مورد قبول واقع شوید.
بر مشکل نامهای کاربری یا اسامی مستعار باید تاکید کنم. پنهان کردن نام واقعی پشت رموز، کار ابلهانه و بچه گانه کرکر ها(crackers) و warez d00dz ویا دیگر فرمهای پیش پا افتاده ی زندگیست. اگر نام مستعاری دارید آن را دور بیاندازید. در میان هکرها این حقیقتا باعث میشود تا شما را به فراموشی بسپارند. هکران از آنچه که انجام میدهند مغرورند و آن را وابسته به نام حقیقی خود میخواهند.
منابع دیگر
پیتر سیباج (Peter Seebach) برای مدیران سیستمی که نمی دانند چطور با هکرها سر کنند، یک FAQ مکمل نوشته است که Hacker FAQ نام دارد. اگر سایت Peter پاسخ دهی نمیکند، این جستجوی سایت Excite میتواند یک کپی خوب برای شما پیدا کند.
این جا یک سند وجود دارد که How To Be A Programmer (چگونه یک برنامه نویس شویم) نام دارد این یکی از بهترین و کامل ترین هاست. ارزش این مستند فقط مربوط به آموزش کد نویسی نیست، در این سند درباره ی کد نویسی به صورت گروهی و چالشهای یک کد نویسی گروهی صحبت شده است.
من مقاله ای به نام تاریخ اجمالی هکرگری : "A Brief History Of Hackerdom" نیز نوشتهام.
برای آشنایی با فرهنگ لینوکس و بازمتن مقالهای با نام "کلیسای فقید و بازار" یا "The Catedral and the Bazaar" نوشتهام. ادامه ی این مقاله در مقاله ای به نام Homesteading Noosphere آمده است.
Rick Moen، مقالهای به نام How to Run A Linux User Group نوشته است. (یک گروه کاربران لینوکس چطور به کار میافتد؟)
باز هم از Rick Moen و من (اریک ریموند) مقالهای به نام چگونه یک سوال هوشمندانه بپرسیم، How to Ask Smart Questions وجود دارد.
اگر شما به اطلاعات پیشنیاز برای کامپیوترهای شخصی و شبکه ی اینترنت احتیاج دارید، به مقاله ی The Unix and Internet Fundamentals HOWTO (پایههای یونیکس و اینترنت) مراجعه کنید.
اگر شما برنامهای منتشر میکنید و یا وصلهای برای برنامهای می نویسید، به Software Release Practice HOWTO (راهنمای تمرین انتشار برنامهها) سر بزنید.
اگر شما به اشعار ذن علاقه مند هستید، احتمالا باید از این خوشتان بیاید: Rooties Root: The Unix Koans of Master Foo
سؤالاتی که زیاد پرسیده شده اند
س : به من یاد می دهید چطور هک کنم ؟
ج: از اولین روز انتشار این برگ هر هفته (گاهی هر روز) چندین درخواست از مردم بدستم میرسد که: همه چیز هک کردن را به من یاد بدهید! متأسفانه وقت و انرژی کافی برای این کار ندارم. پروژههای هکری من و مسافرتهایم بعنوان مدافع بازمتن روزی ۱۱۰٪ وقتم را میگیرد.
حتی اگر هم میتوانستم؛ هک کردن هنر و منشی است که شما خود باید یاد بگیرید. بعدا متوجه خواهید شد که با آنکه هکرها دوست دارند به شما کمک کنند، اما اگر بخواهید همه چیز را حاضر و آماده در دهان شما بگذارند، تحویلتان نمیگیرند.
اول خودتان چیزهایی یاد بگیرید. نشان دهید که دارید سعی می کنید، که توانایی یاد گرفتن دارید سپس به سراغ هکرها بروید و پرسشهایتان را مطرح کنید.
اگر میخواهید به هکری نامه ی الکترونیکی بفرستید باید از قبل دو چیز را بدانید. اولین چیز این که ما متوجه شدیم که کسانی که در نوشتههایشان بی دقتاند معمولا تنبلتر از آنند که هکرهای خوبی بشوند. بنابراین مواظب غلطهای املایی و انشایی خودتان باشید و گرنه شما را نادیده میگیرند. دوم این که هرگز جواب نامهی الکترونیکی خود را در آدرسی غیر از آدرسی که از آن نامه میفرستید نخواهید. ما میدانیم که کسانی که این کار را می کنند دزدانی اند که از حساب دزدی استفاده می کنند و هیچ علاقه ای به کمک کردن به دزدها نداریم.
س : خوب پس از کجا شروع کنم ؟
ج : بهترین راه برای شروع رفتن به جلسه یک لاگ (گروه کاربران لینوکس"Linux user group LUG" ) است. این گروهها را می توانید در سایت LDP بیابید. به احتمال قوی میتوانید یکی از آنها را در حوالی خود بیابید که احتمالأ وابسته به یک دانشگاه یا مؤسسه است. اعضای لاگ احتمالأ به شما یک نسخه از لینوکس میدهند و حتمأ کمکتان میکنند که آنرا نصب کنید.
س : کی باید شروع کنم ؟ آیا خیلی دیر نشده است ؟
ج : در هر سنی که علاقهمند شدید میتوانید یاد بگیرید. اکثر مردم در سن ۱۵ تا ۲۰ سالگی علاقهمند می شوند؛ من استثناهایی را از هر دو طرف میشناسم.
س : چقدر طول می کشد تا هکر شوم ؟
ج : بستگی به این دارد که چقدر باهوشید و چقدر پشت کار دارید. اگر مصمم باشید معمولأ ظرف ۱۸ تا ۲۴ ماه میتوانید مهارتی قابل ملاحظه بدست آورید. اما کار به اینجا ختم نمیشود. اگر یک هکر واقعی هستید تمام عمرتان را صرف یادگیری و تکمیل هنرتان خواهید کرد.
س : آیا Visual Basic و #C ( سی شارپ ) زبانهای خوبی برای شروع کارند ؟
ج: اگر شما این پرسش را مطرح میکنید یعنی به هک کردن تحت سیستم عامل مایکروسافت ویندوز فکر میکنید. به خودی خود تفکر بدی است. یاد گیری کد نویسی تحت پلتفورم ویندوز مانند یاد گیری رقص است وقتی زره به تن کردهاید، من چندان خوشم نمیآید. به آن جا نروید. آن بخش بینهایت کثیف است و از کثافت باید پرهیز کرد.
زبانهای Visual Basic و #C مشکلات مخصوص خودشان را دارند؛ در اصل اینها غیر قابل انتقال یا not portable هستند. هیچ نسخهی بازمتنی از این زبانها وجود ندارد. استانداردهای اجرایی ECMA چیزی بیش از تعدادی رابط برنامه نویسی را پوشش نمیدهند. در ویندوز بیشتر کتابخانهها از یک سازنده ی تنها (مایکروسافت ) که مالک آن است پشتیبانی میکنند؛ اگر شما بینهایت نسبت به چیزی که استفاده می کنید دقیق نباشید، برای همیشه به پلتفورم مایکروسافت وابسته خواهید شد. برای این که به این باطلاق فرو نروید، کسی که کد نویسی را شروع می کند باید بسیار دقت کند. اگر شما روی یونیکس شروع کنید زبانهای بهتر و کتابخانههای بهتر وجود دارند.
بنابراین به همان سیستم عامل که سازنده زبان انتخاب می کند، میخکوب میشوید، این به مذاق هکرها سازگار نیست.
به خصوص Visual Basic بسیار مضر است. مانند همه بیسیکها Visual Basic هم بسیار بد طراحی شده است، نه از من نخواهید که این موضوع را تشریح کنم؛ این موضوع میتواند یک کتاب را پوشش دهد. یک زبان را که به خوبی طراحی شده است فرا بگیرید.
یکی از عادتهای برنامه نویسی بدی که به شما یاد خواهد آموخت وابستگی به کتابخانه ها، widget ها و ابزار برنامه نویسی یک شرکت خاص است. به طور کل هر زبانی که تحت لینوکس یا یکی از نسخههای BSD پشتیبانی نگردد و/ یا حداقل توسط سه شرکت مختلف پشتیبانی نگردد، ارزش این را ندارد که برای هک کردن یاد بگیریدش.
س : به من یاد می دهید که چطور یک سیستم را بشکنم؟
ج : نه . کسی که بعد از خواندن این مقاله هنوز این سؤال را بپرسد، احمق تر از آن است که یاد بگیرد ، حتی اگر من وقتش را داشته باشم. هر میلی که چنین درخواستی کند نادیده گرفته می شود یا با خشونت تمام پاسخ داده میشود.
س : چطور می توانم رمز عبور شخص دیگری را بدست آورم؟
ج : این شکستن است (crack). گم شو احمق!
س : چطور می توانم پست الکترونیکی شخصی دیگری را بخوانم / واردش شوم / تحت نظر بگیرمش؟
ج : این شکستن است . سریع گم شو ...
س : چطور می توان کانالهای chat را دزدید؟
ج : این شکستن است . مردک احمق!
س : سیستمم را شکستهاند ! کمک میکنید از خودم دفاع کنم؟
ج: نه! هر بار که از من این سؤال را پرسیدهاند از طرف یک کاربر بیچاره ی ویندوز بوده است. امکان ندارد ویندوز را به طور کامل امن کنید. کد و معماری آن پر از ایراد است و سعی در ایمن کردن آن آب در هاون کوبیدن است. تنها راه پیشگیری، رفتن به یک سیستم عامل دیگر مانند لینوکس یا حداقل سیستم عاملی است که توانایی ایمن شدن را داشته باشد.
س : من با ویندوزم مشکل دارم . کمکم می کنید؟
ج : البته! به خط فرمان بروید و بنویسید " :format c "، ظرف چند دقیقه تمام مشکلاتتان حل میشود.
س : کجا می توانم با هکرهای واقعی صحبت کنم؟
ج : بهترین جا لاگهای محلی خودتان است ( لیست شان را می توانید در سایت LDP بیابید.)
(قبلأ در اینجا میگفتم در IRC هیچ هکر واقعی پیدا نمیکنید. ولی وضعیت فرق کرده است. به طور مشخص اجتماعاتی از هکرهای واقعی مربوط به GIMP و Perls کانالهای IRC دارند)
س : چند کتاب مفید در زمینه هکر کردن پیشنهاد کنید؟
ج : لیست خواندنیهای لینوکس ممکن است مفید باشد. Loginntaka هم میتواند جالب باشد. برای پیش در آمدی بر پیتون به اینجا را بر روی سایت پیتون نگاهی بیاندازید.
س : آیا باید در ریاضیات خوب باشم تا بتوانم هکر شوم ؟
ج : نه . البته باید قادر باشید به طور منطقی فکر کنید و رشته درست دلایل را دنبال کنید، هک کردن نیاز بسیار اندکی به ریاضیات رسمی دانشگاهی دارد. به خصوص، شما معمولا به آنالیز و جبر نیاز نخواهید داشت ( این را به مهندسان برق واگذار کنید). داشتن پیش زمینهای در رشتههایی از ریاضیات مانند منطق، تئوری مجموعهها ، نظریه اعداد و.... ممکن است مفید باشد.
آنچه بسیار مهم است : شما باید بتوانید منطقی تفکر کنید و رشته ای از دلایل صحیح را گرد هم بیاورید، کاری که ریاضیدانان انجام میدهند. زمانی که ارتباط با اغلب علوم ریاضی کمکی به شما نکرد، شما به نظم و ذکاوت برای پیش برد آن نیاز خواهید داشت. اگر شما چندان باهوش (با ذکاوت) نیستید، امید چندانی به هکر شدن شما نیست؛ اگر شما نظم فکری نداشته باشید این امید به همان میزان کم خواهد شد.
یک راه خوب برای فهمیدن این موضوع گرفتن و مطالعه یک کپی از کتاب Raymond Smullyan است که اسم آن اکنون یادم نیست. مشابه چیستانهای منطقی و بامزه Smullyan در روح هکرگری خیلی وجود دارد. توانایی در حل آنها علامت خوبی است و لذت در حل کردن آن علامتی بهتر.
س : چه زبانی را باید اول یاد بگیرم ؟
ج : XHTML (آخرین نسخه ی HTML) اگر هنوز آنرا بلد نیستید. کتابهای بد زیادی هستند با توضیحات خسته کننده بلندبالا و چند کتاب خوب چیزی که من بیشتر از همه دوست دارم HTML: The Definitive Guide است.
البته HTML یک زبان کامل برنامه نویسی نیست. وقتی برای یادگیری آماده شدید، پیشنهاد میکنم از پیتون شروع کنید. خیلیها به شما Perl را پیشنهاد میکنند و هنوز محبوبیت بیشتری دارد ولی یاد گرفتن آن سخت است و (به نظر من) به خوبی پیتون نیست.
C واقعا مهم است ولی از Perl و پیتون خیلی سختتر است. سعی نکنید اول C را یاد بگیرید.
کاربران ویندوز، به دام VB نیفتند. عادتهای برنامه نویسی بدی به شما یاد میدهد و قابل انتقال به هیچ سیستم دیگری غیر از ویندوز نیست. بپرهیزید!
س : چه سخت افزاری نیاز دارم ؟
ج : قبلا کامپیوترهای شخصی سرعت و حافظه کمی داشتند که همینها کافی بودند تا روند یاد گیری هکر رامحدود کنند. این مساله مدتهاست که از بین رفته است ، هر کامپیوتری از Intel 486DX50 بالاتر باشد برای برنامه نویسی کافیست، X ، و ارتباطات اینترنتی ، و کوچکترین دیسک سخت به اندازه کافی بزرگ است.
مهمترین مسالهای که در انتخاب سخت افزار وجود دارد این است که آیا با لینوکس همخوانی دارد (یا با BSD همخوانی دارد). البته برای بسیاری از کامپیوترهای جدید این همخوانی وجود دارد مگر در مورد تعدادی از مودمها و چاپگرها که مخصوص ویندوز طراحی شده اند.
یک FAQ درباره ی سازگاری سخت افزار ها وجوددارد؛ آخرین نسخه ی آن اینجاست.
س : باید از مایکرو سافت متنفر باشم ؟
ج : نه! نه اینکه میکروسافت نفرتانگیز نیست؛ مساله این است که فرهنگ هکر مدتها قبل از مایکروسافت وجود داشته است و مدتها بعد از آن هم خواهد بود. انرژیی را که برای نفرت از مایکروسافت صرف میکنید، برای عشق به هنرتان مصرف کنید. اگر برنامهای خوب بنویسید، مشت محکمی است بر دهان مایکروسافت و خونتان را را کثیف نمیکند.
س : ولی بازمتن برنامه نویسها را بیکار نمیکند؟
ج : حقیقتا برعکس این است، تا بحال صنعت بازمتن بیشتر اشتغال زایی کرده است تا از بین بردن آن. اگر داشتن یک برنامه آماده اقتصادی تر از نداشتن آن است، در هر حال یک برنامه نویس حقوقش را می گیرد چه برنامه بازمتن باشد یا نباشد و مهم نیست چقدر نرم افزار" آزاد " هست ، به نظر می رسد همیشه تقاضای بیشتری برای نرم افزارهای جدید یا تطبیق داده شده وجود دارد. من در این باره در ورقهای Open Source بیشتر خواهم نوشت.
س : چطور شروع کنم ؟ از کجا یک یونیکس آزاد پیدا کنم ؟
ج : قبلا راجع به پیدا کردن یونیکسهای معمول آزاد توضیح داده ام. برای هکر شدن به انگیزه خلاقیت و قابلیت خود آموزی نیاز دارید. پس دیگر شروع کنید...
اریک ریموند نسخه ی اصلاحی (Reversion) شماره ی ۱.۲۹
منبع : catb.org
نظرات