Mehrab Mohammad Hosseini
Mehrab Mohammad Hosseini
خواندن ۱۵ دقیقه·۲ ماه پیش

تجربه 4 سال کار با لینوکس

سلام امروز میخوام در مورد مهاجرت تدریجیم از سیستم عامل ویندوز به گنو-لینوکس برای محیط کاری و تحصیلی و کارهای روزمره بگم. این که چطور و چرا شروع شد و این روزها از چی استفاده میکنم و هر کدوم از توزیع های مختلف برام چه چیزهایی رو به ارمغان آوردن. دقت کنید که چون تجربه شخصی هست قابل بسط دادن نیست و یه کم ممکنه یه سری جاها سلیقه ای باشه! اینا رو قبل از خوندن این متن در نظر بگیرید. لینوکس فلسفه و تاریخچه جالبی داره که اینجا منبع خوبی برای مطالعه کامل هست.



آیا ویندوز کابوس است؟

در یک کلام: خیر!

برعکس خیلی از افراد گیک لینوکسی و دنیای نرم افزار آزاد که از سیاست های ویندوز در قبال مایکروسافت مینالن، بنظرم وقتی یک چیزی بیش از 20 ساله که جایگاه اول رو در بین عامه مردم داره اونم توی دنیای بروز تکنولوژی، قطعا چیز ضعیفی نیست. همیشه میگم که رابط کاربری و سادگی کار با ویندوز واقعا عالیه! برای یک کاربر عادی برای تماشای فیلم، کار با آفیس و وبگردی خیلی خوبه. حتی برای کارهای فوق تخصصی، چون نرم افزارها خیلی اوقات فقط ورژن ویندوزی دارن چاره ای ندارید غیر از استفاده از ویندوز. در پاراگراف های بعدی بیشتر در مورد این آخری صحبت میکنم.

پس چرا به سراغ لینوکس برویم؟

راستش شروع این مسیر به شخصه برای من صرف یک کنجکاوی بود. اگر اشتباه نکنم 4 سال پیش اولین بار با کمک جادی و نرم افزار virtualbox موفق شدم یک VM از کالی لینوکس رو داخل ویندوزم بالا بیارم. اولین نکته ای که احتمالا توجه همه رو جلب میکنه ظاهر ساده و مینیمال این سیستم عامل هست و این نکته که برخلاف ویندوز، قرار نیست با shell غریبه باشید و عملا terminal جزء جدایی ناپذیری از هر آدمی هست که روی محیط لینوکس کار میکنه.

جلوتر که رفتم با سایر مزایای قوی لینوکس نسبت به ویندوز آشنا شدم که منو در این مسیر مصمم تر کرد و موجب ادامه دادن شد:

  • اکثر توزیع های لینوکسی محیطی با کمترین ابزار رو براتون فراهم میکنن و هر چیزی که بخواید رو معمولا به سادگی با ران کردن یک کامند میتونید داشته باشید. برعکس ویندوز که پر از ابزارهای رو مخی هست که به صورت پیش فرض نصب داره و حتی یک سریاشو نمیشه حذف کرد و مایه عذابه. بنابراین به طور کلی با استفاده از پوسته زیبایی که داره بهتر کنترل تک تک چیزهای ممکن در سیستم عامل رو در دست دارید.
  • معمولا از لحاظ مصرف منابع سخت افزاری به شدت بهینه تر از ویندوز عمل میکنن. ویندوز 10 به راحتی چند گیگ رم رو حین بالا بودن سیستم عامل همیشه در دست داره اما برای توزیع های لینوکسی این عدد کمتره. حتی برای یک سری توزیع های light میتونه به 1 گیگابایت یا پایینتر هم برسه.(نمونه) چند بار افرادی رو دیدم که فقط با همین یک انگیزه به لینوکس کوچ کردن چون مثلا سخت‌افزار قدیمی‌شون توان ویندوز رو نداشت و حالا به شدت راضی هستن.
  • اگر برنامه نویس هستید برای توسعه نرم افزار لینوکس گزینه به شدت بهتری نسبت به ویندوز هست. تمام ابزارها و dependency ها با پکیج منیجرهای قدرتمند مدیریت میشن و اصولا غیر از زبان های خود مایکروسافت مثل c# و فریمورک های مرتبط، در عمل اکثر آدمای این حرفه که باهاشون در تعامل بودم از لینوکس یا سیستم های unix-based مثل مک استفاده میکردن. کما اینکه اکثر سرورهای دنیا هم روی لینوکس مشغول کار هستن و سازگاری با این محیط یکی از دلایلشه.
  • در لینوکس دیگه نگران ویروس و امنیت نیستید. این open source بودن kernel باعث رفع باگ‌ها و مشکلات امنیتی در اسرع وقت میشه و اصولا بدافزارها و سایر خرابکاری ها برای کاربر هدف محیط ویندوز ساخته میشن. بنابر این به صورت بالقوه کاربران لینوکس کمتر درگیر این قضیه هستند.
  • تغییرپذیری بالا: اگر حوصله داشته باشید میتونید یک محیط دسکتاپ به مراتب خوشگل تر از ویندوز هم بسازید. اگر مینیمالیست هستید cinnamon و اگه محیط مشابه ویندوز ولی زیباتر میخواید KDE رو پیشنهاد میکنم.
در لینوکس قابلیت شخصی سازی بیشتری دارید و همه چیز (حتی خود سیستم عامل) رو میتونید پاک کنید یا تغییر بدید.
در لینوکس قابلیت شخصی سازی بیشتری دارید و همه چیز (حتی خود سیستم عامل) رو میتونید پاک کنید یا تغییر بدید.


  • تفاوت های فنی زیادی هم وجود داره. مثلا فایل سیستم ویندوز عموما NTFS هست ولی فایل سیستم های مختلف لینوکس جور دیگه ای با فایل ها برخورد میکنن. ساختار درختی که همه چیز از root شروع میشه هم جذابه و کار باهاشون توی ترمینال رو راحت میکنه.
  • اگه از آپدیت های خودکار گاه و بیگاه ویندوز خسته شدید یه سیستم عامل منتظر شماست که هرچند توزیع های مختلفش سیاست های مختلفی برای تاریخ و اعمال بروزرسانی دارن؛ ولی حداقلش اینه که یکهویی بی خبر شما رو رها نمیکنن و اینجا هم کنترل دست خودتونه. معمولاَ نسخه‌های Long-time-support یا همون LTS براتون بدون مشکل میتونن مدت ها کار کنن.
  • آخری اما نه کم‌اهمیت‌ترین! اینه که لینوکس رایگانه. این دنیای آزاد با روی باز بهتون خوشامد میگه و منتظر ورودتون هست.




گشت و گذار میان توزیع های مختلف

خب بریم که سیر تغییر سیستم عامل‌هایی که استفاده کردم طی این مدت رو ببینیم. میدونیم که هسته یا همون کرنل مرکزی لینوکس و رابط کاربری گنو میتونن با interface , utility های مختلفی کار کنن که منجر به ساخت توزیع های مختلفی از لینوکس شده که به طور کلی به چند خانواده مختلف تقسیم میشن که از حوصله بحث فعلی خارجه و خیلیاشون کاربردهای تخصصی در embedded system ها و server ها دارن. فقط لازمه بدونیم که خانواده های Arch, Debian,Red-hat از مشهورترین ها هستن. اینجا فقط میخوام تجربه چندخطی ام رو از کار با هر کدوم شرح بدم.

کالی لینوکس: تجربه ای نه چندان خوب

اگر دروغ نگم حتی یک روز هم با این توزیع کار نکردم بنابر این شاید صلاحیت اظهار نظر رو نداشته باشم اما واقعا نمیفهمم چرا همه به واسطه کالی با لینوکس آشنا میشن؟! احتمالا صرفا به این دلیل که مشهور شده هکرها با این توزیع کار میکنن. راستش کالی لینوکس کلی ابزار پیش فرض برای انجام کارهای امنیتی و غیره نصب داره که همه اونا رو میتونید روی بقیه توزیع ها هم خودتون نصب کنید. تجربه ای که دیگران هم ازش دارن اینه که اصلا توزیع stable ای نیست و مشکلات crash کردن و موارد مشابه رو زیاد داره. به طور کلی اصلا برای شروع پیشنهاد نمیکنم و یک گزینه ای مثل pop!os و mint و کلی توزیع دیگه که برای beginner ها ساخته شدن گزینه های بهتری هستن.

اوبونتو: یک گزینه همیشه مطمئن

وقتی که داشتم سیستمم رو dual boot میکردم برای اولین بار با استفاده از یه سری منتور و راهنمای متنی و غیره، اولین توزیعی که نصب کردم این سیستم عامل بود. از دسکتاپ gnome که پیش فرض بود استفاده کردم و اگه اشتباه نکنم نسخه 2018 LTS رو نصب کردم. بعد از mount کردن یک volume و تخصیص اون به سیستم عامل اگر اشتباه عمل نکنید معمولا بقیه مراحل کار سختی نیست و میتونید از روی راهنما گام به گام پیش برید. اوبونتو خوبیش اینه که شرکت canonical پشتشه و اصولا پرکاربردترین و شناخته شده ترین (اگه نگیم محبوب ترین) بین لینوکس بازهاست. توزیع های مشابهش مثل kubuntu که همون ubuntu روی پوسته KDE هست رو هم ازشون تعاریف زیادی شنیدم. به طور کلی پکیج منیجر apt کارو همیشه راه میندازه و فایل های با پسوند deb که از این توزیع debian-based نشات میگیرن به خوبی اکثر نیازهاتونو پوشش میدن. میتونم ادعا کنم که چیز روزمره ای نیست توی ویندوز که مشابهش رو اینور پیدا نکنید. از فتوشاپ گرفته تا متلب یا آفیس، به نحوی یا خودشون یا مورد مشابهش (که راستشو بخواید کیفیتشون متاسفانه از همتای ویندوزی‌شون معمولا پایینتره) میتونید نصب کنید تا کارتون راه بیفته. ولی خب یادتون نره که اینجا همه چیز رایگانه و نرم افزارهایی که توسط افرادی در خیلی اوقات بدون هیچ انگیزه مالی ساخته شدن قابل رقابت با غول هایی مثل مایکروسافت و اپل نیستند. اوبونتو یک کامیونیتی به شدت کاملی داره. برای مثال احتمال نه چندان کم، بعد از نصب اوبونتو میبینید که عه! درایور وای فای نداره لپ تاپتون و نمیتونید با این سیستم عامل به اینترنت وصل بشید. من به این مشکل خوردم و به شدت از این سیستم زده شدم ولی با سرچ حدودا یک روزه مشکلم رو با نصب درایور درست برطرف کردم ( اگه خوش شانس باشید نیازی به نصب دستی نیست و خود اوبونتو میتونه براتون کاندیداهای مناسب رو پیدا کنه) براتون شادی وصف ناشدنی بعد از درست‌کردن مشکل سیستم‌عامل توسط خودتون رو آرزو میکنم!

همچنین یک نکته منفی که توی اوبونتو و باقی توزیع ها دیده میشه اینه که شرکت nvidia معمولا رابطه خوبی با لینوکسی ها نداره ( میتونید به واکنش معروف لینوس توروالدز خالق لینوکس نسبت به این قضیه رجوع کنید! ) این باعث میشه که خیلی اوقات اونایی که کارت گرافیک های انویدیا روی کامپیوترشون دارن هم برای نصب درایور و کارکرد صیح صفحه نمایش با مشکل روبرو بشن که این هم میتونید توی محیط اوبونتو با یه کمی بازی و گشت و گذار حل کنید - شاید به همین دلیل که ملت باید این کارا رو اولش بکنن و این سختیا رو حین نصب تحمل بکنن هست که بعد این همه سال و این همه ذکر مزایا، لینوکس بین عام مردم شناخته شده نیست و ترجیحشون استفاده از ویندوزه و برام کاملا قابل درکه و حق میدم:)

توزیع Endeavour OS : یک محیط underrated

راستش دقیق یادم نیست که چجوری با این توزیع آشنا شدم اما با همون چند سرچ اول جذبش شدم. داستان نصبش هم این بود که برای لپتاپم رفته بودم هارد ssd خریده بودم و اوبونتو قبلی روی hdd بود. حالا که میخواستم در کنار اون دوتا این هم نصب کنم و یک جورایی triple boot عمل کنم روی این هارد جدید که سرعت بالایی هم داشت خواستم تنوع بدم و سیستم جدیدی رو تست کنم.

نصب این توزیع به طرز اعجاب آوری راحت بود. راحت‌تر از اوبونتو!بدون حتی یک مشکل از جنس درایور. شما میتونستی حتی در یکی از مراحل نصب دسکتاپ دلخواهت رو انتخاب کنی و پیش بری. لازم به ذکره که این توزیع Arch-based بود و برخلاف اوبونتو از دبیان نشات نگرفته بود و نسخه راحت تری از خود توزیع arch رو در اختیار میذاشت (بقیه خیلی منو از نصب خود آرچ ترسوندن و میگفتن فقط برا حرفه ای هاست و باهاش مشکل زیاد میخوری) البته همین توزیع هم حداقل سه چهاربار نصب/حذف کردم چون هر بار یه سری مسئله مطابق میلم پیش نمیرفت و چون پرفکت نبود دچار این گرفتاری شده بودم. مثلا یک بار با اشتباهم دسکتاپشو پروندم و صفحه سفید شد، یک بار چیز اشتباهی رو نصب یا پاک کردم و غیره. اینو لازمه بگم که این سیستم عامل نسبت به بقیه توزیع های بیان شده واقعا stable نیست ولی دستخوش به سازنده هاش چون ایده جالبی پشتش هست و حس خوبی هنگام استفاده ازش داشتم و چیزیه که روز به روز مشغول بهتر شدنه. شاید روزی که شما این مقاله رو میخونید محبوبتر شده باشه!

دومین موردی که شگفت آور بود ظاهر به شدّت جذابش بود. برای اولین بار داشتم با KDE کار میکردم و چیزی ساختم که از نظر خودم از ویندوز هم خوشگل تر شد. همچنین برای شروع، community forum جالبی داشت و میتونستی FAQ ها رو راحت مشاهده و رصد کنی و همچنان مشکلات با سرچ قابل حل بودن. توی این محیط شما برخلاف اوبونتو دیگه apt ندارید و برای نصب پکیج های معمول از Pacman که رسمی هست و برای نصب برنامه های پیچیده تر و خاص تر از Yay که AUR package ها رو هندل میکنه باید استفاده کنید.

اونجایی دیگه برام شکی توی این سیستم نموند که این پکیج منیجرها محشر بودن! برای اپدیت سیستم یک ` sudo pacman -Syu` کفایت میکرد و از اون خفن تر، کل فرآیند نصب داکر با یک کامند `sudo pacman -S docker` انجام شد. اونایی که اوبونتو دارن میدونن برای نصب داکر یک فرآیند چند مرحله ای بعد از نصب apt هم نیازه.

و اما ای دل غافل! همه چیز داشت خوب پیش میرفت تا اینکه یک بار حین اجرای دستور آپدیت که این سری مشغول kernel update هم بود و حجم زیادی دانلود شده بود، سیستم عامل پرید! یک مشکلی برای پکیج های نصب شده گویا وجود داشت و باعث شد سیستم خراب بشه و نه تنها خودش بالا نیاد بلکه دیگه از هیچ سیستم عاملی توی لپتاپم نتونم استفاده کنم. برای درست کردنش از یک فلش bootable استفاده کردم و به صورت لایو یک ایمیج لینوکس رو بالا اوردم. تا جایی که یادمه یک سری کامندهایی مخصوص grub رو اجرا کردم یا ورژن یک چیزهایی رو به عقب برگردوندم تا خلاصه تونستم صفحه boot loading لپتاپ بعد روشن شدن(اونجا که انتخاب میکنی با کدوم سیستم عامل پیش بری) رو درست کردم اما خود توزیع دیگه درست نشد:)

مانجارو: ایده آل یک برنامه نویس

بعد از خراب شدن سیستم قبلی همچنان دلم پیش arch گیر کرده بود و از طرفی میدونستم محبوبیت مانجارو بین تمام توزیع های برپایه اون از همه بیشتره. راستش مانجارو کلا یه کم کاستوم تره و با آرچ نسبتا زیاد فاصله داره اما همچنان پکیج منیجرها همونن و چیزای اختصاصی‌تری مثل manac هم داره.

اولین مواجهه جالبی که با مانجارو داشتم تغییر صفحه grub menu (همون انتخاب سیستم عامل بعد از power on ) بود که محیط گرافیکی جذاب تری پیدا کرد. یه جورایی حافظه دار هم شده بود ینی شما اگر دفه اخر روی ویندوز لاگین کرده بودی و لپتاپ خاموش و مجددا روشن میشد نیاز نبود از منو مجددا ویندوز رو پیدا کنی و cursor خودش همونجا قرار داشت و بعد از 5 ثانیه اتوماتیک روی همون گزینه تیک میخوره.

دومین مورد، ظاهر تر و تمیز این سیستم عامل هست. یک store خیلی کامل از نرم افزارهای مورد نیازتون توی سایتش هم داره و کلا احساس غریبی نمیکنید و اون تم سبز آغازینش محیط خاص و جذابی رو براتون رقم میزنه. به طور کلی لینوکس ها یه سری زبان ها مثل پایتون رو در دل خودشون نصب دارن ولی یادمه مانجارو از این لحاظ ها خیلی خوب بود: یا چیزایی که میخواستم رو داشت یا به راحتی و بدون دردسر نصب میکردم.

به طور کلی اگه بخوام برای کارای برنامه نویسی و حتی استفاده روزمره شخصی یک سیستم عامل نصب کنم که هم playground باشه و هم از کار باهاش لذت ببرم مانجارو همچنان گزینه اولم در آینده ست. حدود دو سال شد که از این سیستم عامل استفاده کردم و هرچند مشکلات typical لینوکسی در این هم وجود داره ولی به مشکل specific خاصی با این توزیع نخوردم و کارا خیلی smooth و با سرعت خوب پیش میره. شاید تنها مسئله اینه که یکی دو بار بهش برخوردم که یک سری نرم افزارها وقتی نسخه لینوکسی میدن فقط فایل .deb رو قرار میدن با این فرض که روی اوبونتو میخواید اجرا کنید و این باعث میشه اینجاها گیر بیفتید یا لازم باشه بیشتر بگردید ولی این اتفاق نادره.

اما انتقادی که هم از مانجارو و هم توزیع قبلی دارم اینه که خیلی زود به زود آپدیت میدن. متاسفانه دوباره قربانی همین قضیه شدم و موقع یکی از آپدیت ها کلا سیستم عامل کرش کرد و دیگه روشن نشد. فقط تونستم از دیتاها بکاپ بگیرم و چون سرم توی این بازه زمانی شلوغ بود به سراغ repair کردنش نرفتم.

و باز هم اوبونتو!

در طی این مدتی که از اوبونتو به توزیع های جدید برای لپتاپ شخصی کوچ کرده بودم برای محیط کاری همچنان از توزیع اوبونتو استفاده میکردم. تنها توزیعی هست که نسخه LTS 2020 اش برام تا به حال دوام آورده و بعد از هیچ آپدیتی هم به مشکل نخورده! به طور کلی به شدت stable هست و اگر حوصله سر و کله زدن با سیستم عامل رو ندارید و ترجیح میدید روی کارتون focused بمونید پیشنهادم استفاده از همین گزینۀ سرراست همیشگیه. به طور کلی ندیدم کسی با اوبونتو به مشکل عجیبی بخوره.

این روزها از چی استفاده میکنم؟

این روزها همچنان برای محیط کار از سیستم عامل اوبونتو استفاده میکنم. به طور دوال بوت ویندوزم هم حفظ کردم چون چاره دیگه ای نداشتم! یک سری نرم افزارها مثل مدل‌سیم و متلب رو با زحمت تونستم روی لینوکس بیارم ولی هم یه سری رفتارهای عجیب غریب نشون میدادن و انگار یه جاهایی عملکرد متفاوتی نسبت به همون کد توی محیط ویندوز داشتن؛ هم اینکه کلا یک سری دیگه نرم‌افزارهای تخصصی مهندسی برق مثل synopsis hspice روی هیچ محیطی به غیر از ویندوز پیدا نمیشه! این ایده که ویندوز رو به صورت ماشین مجازی روی لینوکس بیارم بالا هم عملی نبود چون لپتاپم ریسورس کافی برای ساپورت این موضوع نداره. همچنین روزهای اخیر دارم سیستم عامل macos رو تست میکنم که در یک نوشتار دیگه‌ای در آینده در مورد این سیستم عامل جذاب و عجیب هم صحبت خواهم کرد.



نتیجه گیری

اگه کار مرتبط با حوزه های تکنولوژی دارید که خواه یا ناخواه روزی سر و کارتون به لینوکس خواهد افتاد. اما در غیر این صورت به عنوان یک آدم کنجکاو یا هر چیز دیگه میتونید به این دنیا سرک بکشید. هم داخلش آدمها و هم مفاهیم جالبی رو پیدا میکنید و هرچه بیاید جلوتر بیشتر به فلسفه open source و مزایا و البته معایبش نسبت به مک ، ویندوز و سایر سیستم عامل های بسته پی میبرید.

واقعیت اینه که ویندوز چون فراگیرترین سیستم عامل هست خیلی نرم افزارها برای اون بهینه شدن. بنابر این خیلی اوقات نسخه های لینوکسی برای حوزه هایی مثل نرم افزارهای تخصصی یک رشته خاص یا گیمینگ بهینه نیستن و من به شخصه هنگام اینجور استفاده ها ویندوز رو ترجیح میدم(البته یه سری توزیع‌ها مثل فدورا ادعاهایی میکنن که مثلا در گیمینگ فریم‌ریت بهتری از ویندوز میتونن ارائه بدن!) پس نباید موضوع رو یه طرفه دید و انتخاب بین لینوکس و ویندوز به عوامل مختلفی بستگی داره. اما در کل حداقل نصب ماشین مجازی - یا اگر دوال بوت که چه بهتر - میتونه بهتون دید بهتری بده. لینوکس learning curve سختی نداره معمولا. هرچند در حد Lpic یاد گرفتن سخت و زمانبره ولی وقتی همون 10 تا کامند اولی که توی ترمینال میتونید بزنید هم یاد بگیرید به قدرتش پی میبرید و ممکنه شیفته ش بشید. خلاصه که اگه تا الان امتحان نکردید، بد نیست یه شانسی بهش بدید.

سیستم عامللینوکسویندوزگنو لینوکس
شاید از این پست‌ها خوشتان بیاید