تجربه مهاجرت از ویندوز به لینوکس و مقایسه توزیع های اوبونتو ، فدورا و کالی لینوکس
سلام به همه مخاطبین عزیز کالی یوزر خصوصا اون دوستی که فرمودند :
اولین بار که لینوکس رو دیدم تو کتاب مبانی کامپیوتر سال سوم دبیرستان بود (یه عکس از دسکتاپ Redhat Linux بود)...
از اون به بعد هر وقت ویندوز با ارور ها و هنگ کردن هاش اذیتم میکرد یاد اون عکس از لینوکس می افتادم. مثلا وقتی میگفت "Access Denied" میرفتم تو اینترنت درباره لینوکس تحقیق میکردم تا خیالم از این بابت راحت شه که یه جایی یه سیستم عاملی هست که اینجور به شعور کاربرش توهین نکنه و وقتی دسترسی به یه فایل رو محدود میکنه لااقل دلیلش رو بگه یا یه دری واسه حرفه ای ها باز بزاره.
یه روز از یکی از دوستام یکی از این بسته های نرم افزاری(KING 37) رو گرفتم تا نرم افزار هام رو بروز کنم. 16 تا دی وی دی بود که بیشترشون بوتیبل(Bootable) بودن مثلا یکی بوتیبل ویندوز سون بود که میشد باهاش ویندوز سون رو رو سیستم نصب کرد .
یکی از دی وی دی ها سیستم عامل لینوکس اوبونتو(Ubuntu 14) رو بوتیبل کرده بودن، یعنی میتونستم باهاش همونطوری که ویندوز نصب میکردم سیستم عامل لینوکس رو نصب کنم( چه شود! ).
و سریعا رفتم تو اینترنت زدم " آموزش نصب لینوکس در کنار ویندوز " :)
و همون شب ابونتو رو نصب کردم. با اینکه هنوز هیچی از لینوکس نمیدونستم (حتی عوض کردن دسکتاپ!) از اینکه از شر ویندوز خلاص شده بودم و مثل هکر ها پشت یه سیستم عامل لینوکس نشسته بودم خیلی خوشحال بودم. اینم اسکرین از اوبونتو (با میز کار Unity) :
چند تا پی دی اف آموزش اوبونتو پیدا کردم و شروع کردم به یاد گرفتن کار های ابتدایی تو اوبونتو .
یه فرق اساسی که لینوکس با ویندوز داره اینه که تو لینوکس خیلی از کارها توسط ابزاری به نام ترمینال (شبیه CMD ویندوز اما به مراتب قدرتمندتر و کارامدتر از اون) انجام میشه.
اوایل فکر میکردم تو ترمینال باید برنامه نویسی بکنم، مثلا واسه انجام دادن یه کار معمولی مثل نصب نرم افزار(مثلا مدیاپلیر vlc) وقتی تو ترمینال مینوشتم :
sudo apt-get install vlc
احساس میکردم که دارم برنامه نویسی میکنم اما در حقیقت اینطور نیست. این کلمه ها خیلی پر تکرار هستن و یه جورایی مثل سویچ هستن مثلا هر جا که کلمه sudo رو مینویسین یعنی کاربر ریشه(همه کاره سیستم) یا سوپریوزر(su) داره این کار رو انجام میده(do). و apt-get اسم ابزاری هست که یکی از کارهایی که میتونه بکنه نصب (install) کردن نرم افزار های(مثلا VLC player ) موجود در مخازن نرم افزاری اون توزیع(مثلا اوبونتو) هست.
یادمه دستور apt-get install (دستور نصب نرم افزار های موجود در مخازن نرم افزاری اوبونتو توسط ابزار apt-get که در ویندوز معادلی برای آن وجود ندارد چرا که نرم افزار های ویندوز به صورت پکیج های کامپایل شده به شکل X.exe هستند که توسط Windows Installer نصب میشوند که معادل لینوکسی این نرم افزار، ابزار dpkg میباشد که پکیج های کامپایل شده مخصوص توزیع خاص رو نصب می کنه) رو خیلی تو اوبونتو استفاده میکردم.
خب اوبونتو هم مثل ویندوز یه سیستم عامل خام هست و برای اینکه بتونید باهاش کارای روزمره تون رو انجام بدید باید توش یه سری نرم افزار ها نصب کنید.
مثلا من وقتی ویندوز نصب میکنم حتما باید یه مدیاپلیر قوی مثل KMplayer و آفیس و مرورگر و دیکشنری و آنتی ویروس و دانلود منیجر و وینرار رو نصب کنم تا بتونم کار های عادی رو انجام بدم.
تو لینوکس علاوه بر نرم افزار هایی که به صورت پکیج نصبی(به شکل X.exe برای ویندوز) مخصوص اون توزیع (مثلا X.deb برای اوبونتو یا کالی و کلا فرزند های دبیان و یا پکیج هایی به شکل X.rpm برای فدورا و ردهت و فرزندان این دو) یه تعریف تحت عنوان "مخازن نرم افزاری" (Repositories) داریم که ویندوز تو خوابشم نمیتونه چنین چیزی رو ببینه چون بیشتر نرم افزار هایی که تو این مخازن هستند رو خود کاربر ها و مردمی مثل من و شما برنامه نویسی کردن و کاملا رایگان و اوپن سورس هستند (open source) یعنی میتونید کد برنامه نویسی نرم افزار رو ببینید و در صورت تمایل به گسترش اون کمک کنید و عیب هاش رو به گروه سازنده اون اطلاع بدین.
اما عرض شود که :
ألا یا أیها السّاقی! أدر کأساً وناوِلها! که عشق آسان نمود اول، ولی افتاد مشکلها
مشکل از اونجا شروع شد که اون نسخه از اوبونتو (LTS 14.04) سخت افزار لپ تاپم (از جمله کارت گرافیک) رو نشناخته بود و اینگونه بود که وقتی دستور شات دان (Shutdown) رو میدادم لپ تاپم به درستی خاموش نمیشد و مجبور بودم دکمه پاور رو نگه دارم تا خاموش شه.
و مشکل دیگه این بود که نور صفحه لپ تاپم همیشه در بالاترین حد ممکن(High Contrast) بود طوریکه شبا موقع کار کردن باهاش از چشام اشک میومد :)
بعد ها پس از نصب کردن انواع ورژن های اوبونتو پی بردم که بعضی از ورژن ها با بعضی از لپ تاپ ها خوب مچ(match) نمیشن و اینکه اوبونتو نسخه 15.05 رو که بعد ها نصب کردم سخت افزار من رو به خوبی و به طور کامل شناسایی کرد.
خلاصه مدتی به این شکل با اوبونتو ور رفتم و کم کم داشتم از اوبونتو زده میشدم چون سخت افزارم رو اصلا خوب ساپورت نمیکرد و برای اینکه از شر اوبونتو خلاص بشم با توزیع های دیگه لینوکس آشنا شدم. البته آشنایی در حد دیدن اسکرین شات هاشون تو اینترنت :)
این شد که یه روز لینوکس فدورا (Fedora 19) با میز کار گنوم(Gnome) رو دانلود کردم و نصب کردم(روند نصب تقریبا شبیه اوبونتو بود).
فدورا خیلی قشنگ بود با داشتن میز کار گنوم یکم حرفه ای تر از اوبونتو (با میز کار Unity) به نظر میومد. بالا اومدن سیستم عامل فدورا بی نظیره (از نظر زیبایی) و ظاهرش رسمی تر از اوبونتو بود و بزرگترین مزیتش برای من این بود که سخت افزارم رو بهتر از اوبونتو شناخته بود و به خوبی شات دان و اسلیپ (البته تو لینوکس بهش میگن Suspend) رو میشناخت. اما مشکل نور صفحه همچنان باقی بود و من نمیتونستم نور صفحه رو کم و زیاد کنم.
مدتی فدورا رو استفاده کردم ولی چیز زیادی ازش یاد نگرفتم. یادمه دستور yum install رو توش زیاد استفاده میکردم چون فدورا خیلی خام بود و وقتی نصبش میکردین توش چیز زیادی از قبل نصب نشده بود.
فرق اساسی که من بین اوبونتو و فدورا احساس میکردم همین بود که ابزار نصب نرم افزار تو اوبونتو apt-get بود ولی تو فدورا yum (اخیرا dmf شده) بود.
تا اینجای کار من یه چند تا کار رو تو لینوکس یاد گرفته بودم اما اصلا از مفهوم لینوکس چیزی نمیدونستم و یه دید کلی نسبت بهش نداشتم و خودم هم اینو میدونستم، چون واسه انجام هر کاری باید قبلش تو اینترنت سرچ میکردم تا ببینم دستورش چیه. اما میدونید حقیقت چیه ؟ حقیقت اینه که بعد از مدت ها سرج کردن دستور ها و دستور العمل ها متوجه شباهت ها و تفاوت هاشون شدم(شما هم اگه ادامه بدید متوجه خواهید شد) و فهمیدم که دستور هایی که مینویسیم یه سری قواعد مشخصی داره مثلا اگه من به عنوان یه حرفه ای بیام به یه تازه وارد بگم واسه نصب یه نرم افزار مثل تلگرام باید تو ترمینال بنویسی :
sudo add-apt-repository ppa:atareao/telegram
sudo apt-get update
sudo apt-get install telegram
طرف وحشت میکنه از دیدن سه خط کد بی معنی.
در حالی که من میدونم تو خط اول با گفتن sudo طرف میخواد کاری رو بکنه که نیاز به اجازه ادمین داره (همونطوری که تو ویندوز بعضی از نرم افزار ها رو باید run as administrator کنید) و با دستور add-apt-repository داره یه مخزن رو که از قبل تو مخازن اوبونتو نبوده رو به مخازن اضافه میکنه و ppa:atareao/telegram آدرس اون مخزنیه که نرمافزاری که میخوام نصب کنم(اینجا Telegram) اونجا قرار داره.
خط دوم داره لیست مخازن موجود توی سیستم من رو آپدیت میکنه چون یه تغییراتی توش ایجاد کردم(اضافه شدن یه مخزن جدید) و میخوام تغییرات اعمال بشه.
و با زدن خط سوم نرم افزار Telegram رو توسط نصاب apt-get نصب میکنم.
راستی این نوع کد زدن تو لینوکس با زبان خاصی تحت عنوان بش اسکریپت (Bash Script) شناخته میشه و اگه میخواید با قواعد این نوع کد زنی آشنا بشید میتونید عناوین "اسکریپت نویسی در لینوکس" یا "دستورات خط فرمان لینوکس" رو تو اینترنت سرچ کنید.
بله داستانمون اونجایی بود که من مدتی با فدورا ور رفتم و بیشتر از اوبونتو یی که خاموش نمیشد ازش راضی بودم البته هیچ کار خاصی با فدورا نمیکردم فقط تازه یاد گرفته بودم باهاش فیلم با زیرنویس فارسی نگاه کنم و فهمیده بودم که Nautilus اسم فایل منیجره اوبونتو و فدوراست که معادل explorer.exe تو ویندوزه.
بعد ها با فایل منیجر های دیگه ای آشنا شدم که خیلی در دست یابی به فهم عمیق مفاهیم لینوکس کمکم کردن.
اما همچنان مشکل نور صفحه اذیتم میکرد :)
مزیتی که اوبونتو و فدورا نسبت به کالی دارند سرعت بالا آمدن آنهاست.
بعد ها توزیع های دیگری مثل CentOS رو هم در کنار ویندوز نصب کردم که اینکار یک اشتباه بزرگ بود. به یاد داشته باشید که CentOS به تنهایی یک سیستم عامل بسیار عالی (خصوصا برای سرور ها) است اما نه برای اینکه اون رو کنار ویندوز روی سیستمتون نصب کنید.
گذشت و گذشت ...
هر دفعه پس از نصب ویندوز، آقای ویندوز زحمت میکشید و گراب لینوکس رو پاک میکرد و کاری میکرد فقط خودش بالا بیاد (Blame Microsoft)
و من چون راه حلی برای برگردوندن گراب بلد نبودم مجبور بودم دوباره لینوکس رو نصب کنم.
مدتی پس از نصب ویندوز 8 از لینوکس فاصله گرفته بودم و سمتش نمیرفتم.
گذشت و گذشت تا اینکه یه روز یکی از دوستام گفت تو باید با لینوکس بک ترک "Backtrack 5" آشنا بشی و من چون از اون دوستم خیلی حساب میبردم و حرفاش رو قبول داشتم رفتم تو اینترنت جستجو کردم و متوجه شدم که به تازگی (اون موقع ها) دیگه بک ترک توسط تیم توسعه دهنده اش حمایت نمیشه و توزیع جدید و نوپایی به نام کالی لینوکس (Kali 1.1.0a) قراره جایگزین اون بشه :)
یادمه اون اوایل کسی میل نداشت کالی رو نصب کنه و تا مدتی همه همون بک ترک رو استفاده میکردن چون همه آموزش های هکینگ و تست نفوذ موجود در اینترنت تو محیط بک ترک بودن و برای کالی هیچ آموزشی نبود و خود بنده از اولین یوزر های نسخه های اولیه انتشار یافته کالی بودم چون خیلی به کار هایی که میشد باهاش انجام داد علاقه داشتم و همه ی تعریف و تمجید هایی که از بک ترک شده بود رو در کالی میدیدم.
این شد که نسخه 1.1.0a کالی لینوکس رو دانلود کردم و بلادرنگ نصبش کردم.
اوه مای گاد!... کالی به زیبایی هرچه تمام تر کاملا سخت افزار لپ تاپم رو شناخته بود; نور صفحه به خوبی کم و زیاد میشد (دقیق تر از ویندوز) و دستور های شات دان و اسلیپ به خوبی کار میکردن و وایرلس و بلوتوس و کارت صدا هم که اوکی بود.
یکی از مزیت های عمده(دلیل اصلی خود من برای استفاده از کالی به عنوان یک کاربر دسکتاپ (و نه سرور که در اون مشخصا فدورا در اولویت است) به جای اوبونتو(که البته برای صفر کیلومتری ها اوبونتو خیلی مناسبه به شرط اینکه سخت افزارشون رو بشناسه) یا فدورا)
برای اولین بار یه توزیع لینوکس رضایت خاطر من رو جلب کرد. توزیعی که برای استفاده کردنش دلایل قانع کننده زیادی داشتم. بر خلاف اوبونتو و فدورا که با وجود نرم افزار های کرک شده و ویندوز قفل شکسته و نبود قانون کپی رایت تو کشورمون من به عنوان یه کاربر عادی که از نسخه دسکتاپ (و نه سرور) استفاده میکردم، انگیزه خاصی برای استفاده کردن از اون ها نداشتم.
کالی ابزاری رو در خودش داشت که ابدا ویندوز نمیتونست اون ها رو تو خودش داشته باشه(به خاطر محدودیت های قانونی که خود ویندوز هم ازشون حمایت میکنه).
اولش حس فوق العاده ای داشتم و احساس هکر بودن بهم دست داده بود :) در حالی که حقیقت این بود که من فقط ابزار هک رو در اختیار داشتم و از علم اون هیچ بهرهای نداشتم.
کالی 1 بر خلاف کالی 2 و کالی رولینگ که به لطف ورژن جدید میز کار گنوم خیلی خوشگل موشگل و خوشدست شدن ، محیط بسیار خشک و کسل کننده ای نسبت به توزیع های دیگه که قبلا دیده بودم داشت و تنها انگیزه ای که داشتم به خاطر قابلیت ها و قدرت کالی بود.
کالی باعث شد که من بر خلاف گذشته که بیشتر به زیبایی های ظاهری لینوکس توجه میکردم این بار به دیگر جاهای سیستم عامل توجه کردم و هسته لینوکس و نرم افزار های پر استفاده برای کار های روزمره یک کاربر دسکتاپ و دستورات خط فرمان و اسکریپت نویسی و برنامه نویسی به انواع زبان های اسکریپتی مثل پایتون و پرل و روبی و ... و زبان های کامپایلری مثل سی و سی پلاس پلاس و کلی مفاهیم دیگه رو از لینوکس یاد گرفتم.
و تا خود امروز همچنان این روند ادامه پیدا کرده اما من هنوز خودم رو یه حرفه ای لینوکس نمیدونم و خیلی راه دارم هنوز...
یه چند تا توزیع دیگه رو هم امتحان کردم اما فکر کنم لزومی نداشت که اینجا راجع بهشون صحبت کنم.
البته من همیشه ویندوز و لینوکس رو در کنار هم داشتم و به هیچ وجه قدرت ویندوز رو دست کم نمیگیرم. خصوصا برای ما ایرانی ها که به نرم افزار هایی که قیمت چندین میلیونی دارند هم در ویندوز به طور رایگان دسترسی داریم.
امیدوارم تجربیات بنده برای شما سودمند واقع شود.
_____________________________________________________________________________________________
با آرزوی بهترین ها برای شما. کالی یوزر|kaliuser