در واقع لینوکس (Linux) یک هسته است که بطور باز متن (Open Source) توسعه داده شده و با پروانه نرمافزار آزاد GPLv2 منتشر میشود. اما بیشتر اوقات وقتی کسی میگوید لینوکس منظورش سیستمعاملی است که با این هسته یا کرنل و به همراه مجموعه نرمافزارهای آزاد دیگری که جزئی از پروژه گنو (GNU) هستند یا نیستند منتشر شده است. به چنین سیستم عاملی GNU/Linux یا GNU + Linux هم میگویند.
باز متن یا Open Source یک روش توسعه نرمافزار است که در آن امکان دسترسی به متن کد نرمافزار فراهم شده است.
نرمافزار آزاد نرمافزاری است که انتشار آن چهار شرط زیر را داشته باشد:
ملاحظه میفرمایید که در این چهار شرط، صحبتی از قیمت به میان نیامده است. بنابراین نرمافزار آزاد ممکن است رایگان باشد یا نباشد. هر چند نرمافزارهای آزاد رایگان فراوانی در دسترس هستند.
پروانه یا مجوز GNU General Public License پروانهای است که توسط بنیاد نرم افزار آزاد طراحی شده تا چهار شرط نرمافزار آزاد را در انتشار آن دسته از نرمافزارهایی که با این پروانه منتشر میشوند تضمین کند. منظور از GPLv3 نسخه سوم پروانه GPL است. از آنجا که این پروانه نسخههای گوناگونی دارد ممکن است نرمافزارهای مختلف با نسخههای متفاوتی از این پروانه منتشر شده باشند.
پروژه گنو در سال ۱۹۸۴ با هدف ایجاد سیستم عاملی کامل و آزاد شبیه به یونیکس بهوسیله ریچارد استالمن پایه گذاری شد. GNU مخفف «GNU’s Not Unix» است. امروزه رایجترین سیستم عامل گنو، گنو/لینوکس است که از هسته مرکزی لینوکس استفاده میکند. تلفظ صحیح این واژه به صورت guh-noo است، تقریبا مثل canoe.
ممکن است باشند یا نباشند. مساله مهم این است که بتوان این نرمافزارها را از نظر فنی و حقوقی با هم در یک توزیع یا Distribution جمع کرد و منتشر نمود. از آنجا که قوانین کشورهای مختلف متفاوت است گاهی پیچیدگیها و موانع حقوقی انتشار این نرمافزارها از مشکلات فنی آنها بیشتر است.
توزیعهای لینوکس توسط افراد، گروههای نه چندان متشکل و سازمانهای حرفهای گوناگون ایجاد میشوند. این توزیعها شامل تعدادی نرم افزار سیستم و برنامههای کاربردی به همراه روالی مشخص برای نصب آنها بر رایانه هستند. توزیعها معمولاً برای منظورهای مختلفی از جمله محلی سازی، پشتیبانی از یک معماری خاص، کاربردهای بلادرنگ (real-time applications) و سامانههای توکار (embedded systems) به وجود میآیند و بعضی از آنها آگاهانه تنها از نرم افزارهای آزاد استفاده میکنند. یک توزیع همه-منظورهی معمولی شامل هستهی لینوکس، کتابخانهها و ابزارهای گنو، پوستههای خط فرمان و انبوهی از نرم افزارهای کاربردی از مجموعههای اداری و سیستم پنجرهای اِکس گرفته تا مفسرها، ویرایشگرهای متن و ابزارهای علمی است. از آنجایی که ابزارهای گنو که بخش عمدهٔ توزیعهای لینوکس را تشکیل میدهند از پروژه سیستم عامل آزاد گنو (که بسیار سابقهدارتر از هستهی لینوکس است) ریشه گرفتهاند، ریچارد استالمن و بنیاد نرمافزار آزاد درخواست کردهاند که سیستم ترکیب شده (از هستهی لینوکس و ابزارهای گنو) بدون توجه به نام توزیعاش، گنو/لینوکس خوانده شود. علیرغم این که بعضی از توزیعها، گنو/لینوکس دبیان به طور خاص، از این نام استفاده میکنند بسیاری تنها به گفتن لینوکس اکتفا میکنند. تفاوت بین هستهی تروالدز و سیستمی که شامل این هستهاست، همیشه باعث سردرگمی ست و نامگذاری همچنان بحثانگیز باقی ماندهاست. لینوکس تقریباً همیشه یکی از اجزاء یک توزیع لینوکس (Distro) است. همانطور که میدانید، سیستمعامل گنو/لینوکس به خودی خود یک سیستمعامل آزاد و رایگان است. گنو/لینوکس را هر کس میتواند جمعآوری کرده و به نام خودش به رایگان عرضه کرده و به فروش برساند. علت چیست؟ سیستمعامل گنو/لینوکس از بخشهای بسیار زیادی تشکیل شده که هر بخش آن توسط عدهای خاص توسعه مییابد که هر یک در یک سمت جهان قرار دارند. معروف است که میگویند گنو/لینوکس مانند هواپیمایی است که هر قسمت آن را در یک کشور ساختهاند. البته این نکته نقطه قوت آن به شمار میرود. در صورتی که شما به عنوان یک کاربر بخواهید یک گنو/لینوکس داشته باشید، باید تمام این قطعات را جداگانه جمعآوری کرده و پس از کامپایل استفاده نمایید. درصد کمی از مردم این امکان و توانایی را دارند. بنابراین افراد و شرکتهایی اقدام به جمعآوری این قطعات مجزا و قرار دادن آنها کنار هم کردهاند و علاوه بر آن برای این مجموعه برنامههای نصب و مدیریت نوشتهاند تا کار نصب و مدیریت سیستم را برای کاربران آسان کنند. به این مجموعهها که توسط افراد و شرکتها گرداوری شده است، توزیع یا Distribution گنو/لینوکس میگویند.
شما وارد دنیای تازهای شدهاید.هیچ انتظار نداشته باشید که همه چیز کاملا مطابق با آنچه باشد که قبلا انجام میدادید یا انتظار داشتید. اینجا روح دیگری حاکم است. روح آزادی، روح کمک به دیگران و روح تشریک مساعی در کارها. اینجا با دنیایی که تاکنون در آن سیر میکردید تفاوت دارد. بسیاری از کارها را جور دیگری باید انجام دهید و باید زمان زیادی را صرف کنید تا به این دنیا عادت کنید. دور از انتظار نیست که در ابتدا سر خورده شوید که: “این دیگر چه سیستمی است؟”. ولی اگر واقعا بفهمید چه گنجینهای نصیب شما شده است، ادامه خواهید داد. اینجا دنیای کوچکی نیست. نتیجه ۳۰ سال کار و تلاش هکرهای سراسر دنیا در اینجا اندوخته شده است (مفهوم صحیح هکر از آنچه که تاکنون خوانده یا شنیدهاید، متفاوت است. برای درک صحیح آن به قسمت معنای متفاوتی از هکر همین مقاله مراجعه کنید). انتظار نداشته باشید بعد از صرف یکی دوسال همه چیز را یاد گرفته باشید. اگر بخواهید واقعا یک حرفهای شوید، چهار سال زمان کنار بگذارید و بعد از چهار سال هم هنوز چیزهای بسیار زیادی وجود خواهند داشت که میتوانید یاد بگیرید. اگر واقعا طالب علم باشید، هیچگاه از این دنیا سیر نخواهید شد.
یکی از سوالاتی که معمولا توسط کاربرانی که مایل به مهاجرت به سیستمعامل گنو/لینوکس هستند مطرح میشود، انتخاب توزیع است. چرا انواع مختلفی از گنو/لینوکس وجود دارد؟ کدامیک مناسبتر است؟ در این مقاله به معرفی اصول و مفاهیم توزیعهای گنو/لینوکس و معرفی برخی از آنها میپردازیم و به مقایسه توزیعهای مختلف نخواهیم پرداخت و این مقوله را در مقاله جداگانهای بررسی خواهیم کرد.
هر یک از توزیعهای گنو/لینوکس دارای ویژگیهای خاصی است که آنرا از توزیع دیگر متمایز میکند. مثلا ممکن است برنامههای نصب آنها با هم تفاوت داشته باشند (البته اصول نصب همه گنو/لینوکسها یکسان است) و یا ابزارهای مدیریتی گرافیکی تهیه شده با هم متفاوت باشند و یا نسخه برنامههایی که با یک توزیع خاص ارائه میشوند جدیدتر یا قدیمیتر باشند، محل فایلهای پیکربندی آنها متفاوت باشد، و یا ممکن است توزیعهایی مخصوص امور خاص طراحی شده باشند. مثلا مخصوص سرویسدهندهها، مخصوص ایستگاههای کاری، مخصوص کامپیوترهای قدیمی، مخصوص مدیریت شبکه، مخصوص چند رسانهای، مخصوص بازی و به همین ترتیب. بنابراین هر فرد یا گروه خلاقی میتواند توزیع مخصوص خود را ارائه نماید. مثلا برخی از توزیعها برای نصب و پیکربندی آسان بهینه سازی شدهاند. توزیعها به دو صورت تجاری و رایگان ارائه میشوند. یعنی در ازای دریافت یا استفاده از خدمات پشتیبانی برخی از آنها باید پول پرداخت شود و برخی از آنها رایگان هستند. البته به هر حال شما در اکثر موارد قادرید تا یک توزیع گنو/لینوکس را چه رایگان و چه تجاری به تعداد نامحدود کپی و توزیع نمایید، مگر آنکه تولید کننده شما را محدود کرده باشد. اکثر توزیعهای غیر تجاری و برخی از توزیعهای تجاری بصورت رایگان از سایتهای مربوطه قابل دانلود هستند. در صورتی که گنو/لینوکس را یاد بگیرید، مهم نیست از چه توزیعی استفاده کنید. چون همه آنها ذاتا شبیه هم هستند و تمام اموری که در یک توزیع انجام میدهید، در توزیع دیگر نیز قابل انجام خواهد بود (شاید به نحو دیگر و با اندکی تفاوت). برخی از توزیعها از ایجاد تغییرات و بهینهسازیهایی در توزیعهای دیگر ایجاد شدهاند که آنها را توزیعهای مبتنی بر یک توزیع مینامند. مثلا توزیع Ubuntu یک توزیع مبتنی بر دبیان است. یا مثلا توزیع فارسی پارسیکس یک توزیع مبتنی بر KANOTIX است.
بله در صورتی که گنو/لینوکس را کاملا فرا گرفته باشید و مقداری خلاقیت و برنامه نویسی بلد باشید، قادر خواهید بود تا توزیع خودتان را ایجاد کنید. راهنماهای بسیاری در مورد ایجاد یک توزیع گنو/لینوکس منتشر شده است که یکی از بهترین این راهنماها، کتاب LFS یا Linux From Scratch نام دارد که آنرا میتوانید از اینجا مطالعه یا دانلود نمایید.
همانطوری که در بالا اشاره کردیم، هر یک از توزیعها دارای ویژگیهای خاص خود هستند. مثلا برنامه نصب یک توزیع بسیار راحت است و یک توزیع دیگر ممکن است از نظر پایداری و امنیت مطرح باشد و به همین ترتیب. انتخاب توزیع بستگی به شرایط زیر دارد:
اکنون به بررسی یکایک این شرایط میپردازیم.
کاربرانی که دارای آشنایی کمتری با گنو/لینوکس هستند، جذب توزیعهایی میشوند که دارای ابزارهای پیکربندی گرافیکی هستند و آنها را قادر میسازند تا راحتتر سیستمشان را اداره و نصب نمایند. همچنین دارای نرمافزارهای جدیدی باشند که به آنها حداکثر قابلیتها را ارائه نمایند. از توزیعهایی که برای کاربران تازه کار مناسبتر هستند، میتوان اوبونتو (Ubuntu)، زوزه (SuSE)، فدورا (Fedora)، مندریوا (Mandriva)، لیندوز (Lindows)، لیکوریس (Lycoris)، مپیس (Mepis) و XandarOS را نام برد. کاربرانی که پیشرفتهتر هستند و ابزارهای پیکربندی گرافیکی برایشان مهم نبوده، کیفیت و سرعت سیستم برایشان مهمتر است جذب توزیعهای حرفهایتر مانند دبیان (Debian)، جنتو (Gentoo) و اسلکور (Slackware) میشوند. ممکن است نصب و راهاندازی این توزیعها برای کاربران تازهکار دشوار باشد، ولی در عوض هر سه آنها بسیار باکیفیت و پایدار هستند.
برخی از توزیعها مخصوص نیازهای خاصی طراحی شدهاند. مثلا امروزه از اصلیترین نیازها میتوان به سرویسدهندهها و ایستگاههای کاری اشاره نمود. البته برخی از توزیعها این امکان را به شما میدهند که هنگام نصب، نوع مصرف آنها را تعیین کنید و با توجه به انتخاب شما، نرمافزارهای مربوط به آن مصرف خاص نصب خواهند شد. مثلا اوبونتو، فدورا و دبیان این امکان را دارا هستند. برخی از توزیعها تنها مخصوص یک نیاز طراحی شدهاند و دارای ابزارهای مربوط به آن نیاز میباشند. مثلا گنو/لینوکس کناپیکس (Knoppix) که یک توزیع روی میزی است، تنها دارای ابزارهایی است که برای کاربران روی میزی کاربرد دارد، و یا گنو/لینوکس SOL تنها به درد وظایف یک سرویسدهنده میخورد.
برخی اوقات یک توزیع دارای ویژگیهای خاصی است که آنرا برای استفاده قابل انتخاب میسازد. مثلا گنو/لینوکس اورالوکس (Oralux) دارای امکانات مخصوص نابینایان میباشد. امکاناتی نظیر شناسایی صفحه نمایشهای بریل و یا مرور صوتی وب و پست الکترونیک. و یا یک گنو/لینوکس ممکن است سختافزارهای خاصی را به خوبی پشتیبانی نماید. و یا ممکن است سرعت و کیفیت یک توزیع یا آسانی استفاده از آن ملاک انتخاب قرار گیرد.
ممکن است موجود بودن یک توزیع در بازار و یا نبود آن ملاک انتخاب باشد. مثلا در ایران فراوانترین توزیع گنو/لینوکس، توزیع فدورا و ردهت است. اصلا برخی افراد و موسسات گنو/لینوکس را به نام ردهت میشناسند. بالاخره کدام را انتخاب کنیم؟ خوب، در بازار ایران در مورد انتخاب توزیع محدودیتهای فراوانی وجود دارد. با توجه به توزیعهای موجود در بازار، برای مصارف زیر توزیعهای مقابل آن توصیه میشوند: مصرف میزکار(Desktop)/ایستگاهکاری – کاربران تازهکار: اوبونتو (Ubuntu)، زوزه (SuSE)، پارسیکس (Parsix)، مپیس (MEPIS)، فدورا (Fedora)، مصرف میزکار(Desktop)/ایستگاهکاری – کاربران حرفهای: دبیان (Debian)، اسلکور (Slackware)، جنتو (Gentoo) مصرف سرویسدهنده: دبیان (Debian)، اسلکور (Slackware)، فدورا (Fedora) دیسکهای زنده: کناپیکس (Knoppix)، پارسیکس (Parsix)، کانوتیکس (Kanotix). توضیح اینکه دیسکهای زنده گنو/لینوکسهایی هستند که کاملا از روی CD اجرا میشوند و نیازی به نصب آنها روی سیستم نیست. این دیسکها برای مصارف آموزشی، عیب زدایی و نمایشی مناسب میباشند.
پرونده اصطلاحات(Jargon File) شامل تعاریفیاز’ هکر’ است که عموما در ارتباط با تعریف تکنیکیآن همراه با وصف سرخوشیحل مشکلات و مرتفع کردن محدودیت هاست. اگر شما میخواهید بدانید چگونه هکر شوید تنها دو تعریف به دردتان میخورد. یک اجتماع و یک فرهنگ مشترک از برنامه نویسان خبره و جادوگران شبکه که پیشینه آن از میان دهه ها به مینیکامپیوترهایاشتراک زمانی (time-sharing) و اولین تجریه های ARPAnet میرسد. اعضای این فرهنگ اصطلاح ’ هکر’ را ساختند . هکرها اینترنت را ایجاد کردند. آنان سیستم عامل Unix را آنچنان که امروز هست ایجاد کردند. هکرها usenet را اجرا کردند. آنان باعث شدند شبکه جهانی (World Wide Web) کار کند. اگر شما دارای این فرهنگ هستید و دیگران میدانند که شما چه کسیهستید و هکر مینامندتان؛ پس شما هکر هستید! نگرش هکر محدود به ‘هکرنرمافزار’ نمیشود. مردمانی هستند که منش هکر را به سایر زمینه ها مانند الکترونیک یا موسیقیسرایت میدهند. در حقیقت شما میتوانید این فرهنگ را در بالاترین سطوح هر علم و هنری بیابید. هکرهای نرمافزار این هم روحان را در هر جا میشناسند، آنان را ‘هکر ’ مینامند و برخیمعتقدند که طبیعت هکر واقعا مستقل از زمینه ایست که او در آن کار میکند. اما در تمام این مقاله ما بطور خاص بر مهارت ها و منش هایهکر نرمافزار و فرهنگ های مشترکی که واژه ی ‘هکر’ را بوجود آورد تمرکز خواهیم کرد. گروه دیگریاز مردم هستند که متکبرانه خود را هکر مینامند اما نیستند! این مردمان (که بیشتر نرهای نابالغند) کسانیهستند که سیستمهایکامپیوتری و مخابراتی را ‘تخریب’ میکنند. هکرهای واقعیاینان را ‘شکننده (Cracker) ’ مینامند و هیچ کاریبه آنان ندارند. هکرهای واقعی اعتقاد دارند که اینان تنبل، بیمسئولیت و نه چندان باهوشند و میدانند که توانایی نفوذ به سیستمهای امنیتیشما را هکر نمیکند. همانگونه که دزدان اتومبیل را هیچگاه نمیتوان مکانیک نامید. متأسفانه بسیاری از روزنامه نگاران و نویسندگان ناآگاهانه واژه ی’ هکر ’ را برایتوصیف شکننده ها (Crackers) بکار میبرند و هکرها را تا سرحد مرگ عصبانی میکنند. تفاوت اصلی این است: هکرها میسازند اما شکنندهها ویران میکنند. اگر میخواهید هکر باشید (همواره) مطالعه کنید. اما اگر میخواهید شکننده شوید گروه خبری alt.2600 را بخوانید و آماده باشید که ۵ تا ۱۰ سال را در زندان بگذرانید، پس از اینکه فهمیدید به اندازهای که فکر میکردید زرنگ نیستید. این تمام چیزی است که درباره یشکننده ها (Crackers) خواهیم گفت. (به قلم اریک استیون ریموند)
راه بخصوص و یا نسخه آماده برای تجویزی در این مورد وجود ندارد هر چند شاید زیباترین و تاثیرگذار ترین نوشته در این مورد مقالهی اریک ریموند با عنوان ‘‘‘چگونه هکر شویم’’’ باشد. ترجمه این مقاله را مینوانید در وبلاگ کیبرد آزاد واقع در آدرس زیر بیابید:
چگونه هکر شویم به قلم اریک ریموند
لاگ گروهی است که توسط کاربران خود اداره شده و وابسته به هیچ شرکت یا دولتی نمی باشد. برای آشنایی با طرز فکر لاگ و آشنایی بیشتر با آن اینجا کلیک کنید.
نوعی از چت بلادرنگ اینترنتی است که در اصل برای برقراری ارتباط گروهی (many-to-many) طراحی شده اما ارتباط فرد به فرد هم در آن امکانپذیر است. IRC کوتاه شده Internet Relay Chat (گپ-رله اینترنتی) می باشد. IRC توسط آقای Jarkko Oikarinen در اواخر ماه اوت سال ۱۹۸۸ برای جایگزین شدن با نرمافزار MUT یا Multiuser Talk طراحی شد. IRC یک پروتوکل باز است (Open Protocol) که بر روی پروتوکل TCP سوار میشود و به صورت اختیاری میتواند از SSL بهره ببرد.
هر سرور IRC می تواند به تعدادی سرور IRC دیگر متصل شود تا در مجموع تشکیل یک شبکه IRC بزرگتر را امکانپذیر کند. هر کاربر میتواند با اتصال به یک سرور IRC به شبکه IRC دسترسی پیدا کند.
معمولا برای اتصال به یک سرور IRC نیاز به Login کردن با یک نام کاربری و کلمه عبور نیست اما باید یک اسم برای ورود به شبکه، برای خود انتخاب کنید. برخی از client ها یک یا چند nickname اضافی (alternative nicknames) هم دریافت می کنند تا در صورتی که nickname اصلی قبلا توسط کسی استفاده شده بود از nickname اضافی برای اتصال به سرور استفاده کنند.
تمام دستورهای IRC با یک خط مورب یا Slash (/) شروع میشوند. با توجه به دستور، برخی از دستورها مستقیما به سرور ارسال میشوند (معمولا آنهایی که توسط client تشخیص داده نمی شوند)، برخی پس از اعمال تغییرات به سرور ارسال می شوند و برخی تنها بر روی client عمل می کنند.
وقتی که به یک سرور IRC متصل می شوید برای مکاتبه با بقیه کاربران ابتدا باید وارد یک کانال IRC شوید. هر کانال IRC با یک # شروع میشود. به عنوان مثال کانال tehlug#. توجه کنید که تمام کانالها با # شروع نمی شوند، برخی از کانالهای محلی با & شروع می شوند و گاهی از کاراکتر های غیر استاندارد به عنوان پیشوند کانال استفاده می شود. برای اتصال به یک کانال می توان از دستور join/ استفاده کرد.
کاربرانی که در کانال از حقوق دسترسی بالاتری نسبت به بقیه کاربران برخوردارند را channel operator یا op میگویند.