خلاصه وبینار: آشنایی با لینوکس؛ از مبانی تا فرصتهای شغلی با حمید سلطانی
این پست وبلاگ خلاصهای از وبینار اخیر “لینوکس و فلسفه متن باز” است که با ارائه حمید سلطانی برگزار شد. در این وبینار به مفاهیم بنیادین لینوکس، فلسفههای زیربنایی آن و فرصتهای شغلی موجود برای متخصصان لینوکس پرداخته شد.
مفاهیم کلیدی مطرح شده:
پروانه یا مجوز نرمافزار: آقای سلطانی با توضیح مجوزهای نرمافزار که قوانین استفاده، ویرایش و توزیع کد نرمافزار را مشخص میکنند، صحبت خود را آغاز کرد. پذیرش این شرایط توسط کاربر اجباری است. نمونههایی از پروانههای متنباز معرفی شد.
فلسفه نرمافزار متنباز (Open Source Software): این فلسفه بیان میکند که هر کسی میتواند کد نرمافزار را ببیند، تغییر دهد و به اشتراک بگذارد. این رویکرد منجر به همکاری بهتر و شفافیت بیشتر میشود و عمدتاً بر جنبههای فنی و علمی تمرکز دارد. شفافیت به معنای عدم پنهانکاری است و به کاربران اجازه میدهد امنیت و قابل اعتماد بودن نرمافزار را تأیید کنند. متنباز میتواند هزینهها را کاهش دهد زیرا توسعهدهندگان میتوانند از کدهای متنباز موجود استفاده مجدد کنند. امنیت نیز با امکان بررسی کد توسط متخصصان برای یافتن و رفع مشکلات افزایش مییابد. خود لینوکس در اکثر توزیعها هزینه لایسنس ندارد. از نرمافزارهای معروف متنباز میتوان به فایرفاکس و مونگودیبی اشاره کرد. البته مونگودیبی برای استفاده تجاری شرایط خاصی دارد و ممکن است نیاز به قرارداد تجاری داشته باشد. متنباز یک فرهنگ توصیف شد که در آن داوطلبان ایدهها و دانش خود را به اشتراک میگذارند تا همه از آن بهره ببرند.
فلسفه نرمافزار آزاد (Free Software): نرمافزار آزاد بر آزادی تمرکز دارد، نه لزوماً رایگان بودن (در مفهوم هزینه). یک نرمافزار آزاد ممکن است پولی هم باشد، اما چهار آزادی اساسی را به کاربر میدهد:
آزادی استفاده از نرمافزار برای هر منظوری (تجاری، غیرتجاری، آموزشی، پژوهشی و غیره).
آزادی مطالعه نحوه کار نرمافزار از طریق بررسی کد آن.
آزادی ویرایش کد برای افزودن یا حذف امکانات دلخواه.
آزادی توزیع (و حتی فروش) کد ویرایش شده یا اصلی. این آزادیها به معنای آن است که کاربر فقط مصرفکننده نیست، بلکه صاحب واقعی نرمافزار است. لیبرهآفیس به عنوان نمونهای از نرمافزار آزاد معرفی شد. نرمافزارهای دیگری مانند بلندر (نرمافزار طراحی سهبعدی و انیمیشن) و بستههای نرمافزاری VFX نیز مثال زده شدند که با آنها میتوان کارهایی مشابه نرمافزارهای گرانقیمت انجام داد.
تفاوت کلیدی بین متنباز و آزاد: تفاوت اصلی در تمرکز است. متنباز تأکید کمتری بر فلسفه اخلاقی دارد و تمرکزش بر در دسترس بودن کد برای توسعه سریعتر و باکیفیتتر است، در حالی که نرمافزار آزاد یک جنبش اجتماعی است که بر حقوق و آزادیهای کاربر تأکید دارد. ممکن است نرمافزاری متنباز باشد اما تمام آزادیهای نرمافزار آزاد را نداشته باشد (مانند مثال مونگودیبی).
کرنل لینوکس (Linux Kernel): کرنل قلب هر سیستم عامل است. مجموعهای از کدهاست که سختافزار و نرمافزار را به هم مرتبط میکند و منابعی مانند CPU، RAM، دیسک، اینترفیس شبکه و دستگاههای ورودی/خروجی را مدیریت میکند. بدون کرنل، سیستم عامل عملاً کار نمیکند. کرنل لینوکس متنباز است، به این معنی که هر کسی میتواند کد آن را ببیند، تغییر دهد و بهبود بخشد.
لینوکس به عنوان یک سیستم عامل: لینوکس یک سیستم عامل متنباز و آزاد است که بر پایه کرنل لینوکس ساخته شده. برخلاف ویندوز یا مکاواس، کد آن برای همه باز است و کاربران آزادی کامل دارند. لینوکس بسیار انعطافپذیر است و روی انواع دستگاهها از مودم خانگی و لپتاپ گرفته تا سرورهای قدرتمند و سوپرکامپیوترها اجرا میشود. هزینه لایسنس سنگینی ندارد و در اکثر توزیعها رایگان است. امنیت آن به دلیل جامعه بزرگ توسعهدهندگان و محققانی که کد را بررسی و باگها را رفع میکنند، بسیار بالاست. پایداری بسیار خوبی دارد و سرورهای لینوکسی میتوانند ماهها یا سالها بدون نیاز به خاموشی کار کنند. لینوکس کنترل کاملی به کاربر میدهد و هم برای دسکتاپهای ساده و هم زیرساختهای پیچیده مناسب است. برای تازهکاران نیز خیلی سخت نیست و رابط کاربری سادهای دارد.
توزیعهای لینوکس (Distros): اینها سیستم عاملهای مختلفی هستند که بر پایه کرنل لینوکس ساخته شدهاند و کرنل را با نرمافزارها و رابطهای کاربری ترکیب میکنند. هر کدام اغلب برای کار خاصی طراحی شدهاند. نمونههای پرکاربرد شامل:
اوبونتو (Ubuntu): بسیار کاربرپسند و ساده، مناسب برای تازهکاران، رابط گرافیکی زیبا، نصب آسان، مخازن نرمافزاری بزرگ. برای دسکتاپ، لپتاپ و سرور استفاده میشود. هر ۶ ماه یک بار نسخه جدید ارائه میدهد و نسخههای LTS (پشتیبانی بلند مدت) ۵ ساله دارد. جامعه کاربری فعالی دارد.
دبین (Debian): بسیار پایدار و قابل اعتماد، اغلب برای سرورها استفاده میشود. در بسیاری موارد میتوان کرنل را بدون ریبوت کردن آپدیت کرد. بسیار تست شده و باگ کمی دارد. نصب آن کمی از اوبونتو سختتر است اما جامعه کاربری بزرگ و پویایی دارد.
فدورا (Fedora): محبوب شخصی مدرس برای دسکتاپ، همیشه بهروز و نوآور، مناسب برای توسعهدهندگانی که میخواهند زودتر تکنولوژیها و نرمافزارهای جدید را امتحان کنند.
لینوکس مینت (Linux Mint): در برخی موارد شبیه ویندوز است، برای کسانی که از ویندوز مهاجرت میکنند بسیار راحت است، رابط کاربری سادهای دارد. برای استفاده خانگی یا دفتری خوب است و نرمافزارهای پیشفرضش نیازهای عمومی را پوشش میدهد.
کالی (Kali): سیستم عاملی اختصاصی برای تست امنیت و هک قانونی، شامل ابزارهای امنیتی زیادی مانند وایرشارک و متاسپلویت است. ابزاری مانند ‘Wifiite’ برای تست نفوذ وایفای به صورت خودکار دارد. استفاده از آن فقط در موارد قانونی پیشنهاد میشود و برای استفاده روزمره مناسب نیست.
آرچ لینوکس (Arch Linux): مورد استفاده حرفهایها، بسیار قابل سفارشیسازی. نصب آن نیاز به دانش بیشتری دارد. کنترل بسیار خوبی به کاربر میدهد.
کاربردهای لینوکس: لینوکس در طیف گستردهای از کاربردها استفاده میشود:
سرورها: به طور گسترده برای سرورهای تحت شبکه و وب. اکثر وبسایتها روی سرورهای مبتنی بر لینوکس میزبانی میشوند.
رایانش ابری (Cloud Computing): کاربرد قابل توجه در زیرساختهای ابری.
سیستمهای نهفته (Embedded Systems): در دستگاههایی مانند روترها و مودمهای DSL ساده.
گوشیهای هوشمند: اندروید کاملاً بر اساس لینوکس ساخته شده است.
تست امنیت سایبری: برای تست امنیت و نفوذ (ابزارهای خاص را میتوان روی هر سیستم عامل لینوکسی نصب کرد). اکثر ابزارهای این حوزه تحت لینوکس اجرا میشوند.
توسعه نرمافزار: کاربرد قدیمی و پرکاربرد. مزیت آن امکان تست سرویس روی همان دستگاه توسعه است.
اینترنت اشیا (IoT): اکثر دستگاههای IoT از لینوکس استفاده میکنند.
کامپیوترهای شخصی: میتوان به عنوان سیستم عامل دسکتاپ استفاده کرد.
سرورهای پایگاه داده: بسیار کارآمد برای عملیات سنگین مدیریت داده.
آموزش و پژوهش: استفاده زیاد، مخصوصاً در پردازش اطلاعات عظیم (بیگ دیتا).
ماشینهای CNC: توزیع خاصی به نام لینوکس CNC برای ماشینهای کنترل عددی کامپیوتری (مانند دستگاه برش لیزری، پرینترهای سهبعدی بزرگ و رباتهای کارخانه) استفاده میشود تا حرکات دقیق را کنترل کند. آقای سلطانی تجربه خود را در ساخت ماشینهای CNC و پرینترهای سهبعدی بزرگ با استفاده از لینوکس CNC روی کامپیوترهای معمولی و ارزان به جای کنترلرهای گرانقیمت تجاری به اشتراک گذاشت. لینوکس انعطافپذیری عظیمی دارد و کاربر میتواند تقریباً هر کاری با آن انجام دهد.
فرصتهای شغلی در لینوکس: لینوکس در فناوری بسیار محبوب است و شغلهای زیادی برای متخصصان آن وجود دارد. نقشهای بالقوه شامل:
مدیریت سیستم (System Administration – Sysadmin): مدیریت سرورهای لینوکسی در دیتاسنترها یا دفاتر شرکتها، تنظیم شبکه، بهروزرسانی سیستمها، اطمینان از پایداری و در دسترس بودن سرویسها (مانند سرورهای وب یا ایمیل).
مهندسی دواپس (DevOps Engineering): خودکارسازی فرآیندهای توسعه و اجرای نرمافزارها. این نقش در ایران و جهان بسیار پرتقاضا است. نیاز به مهارتهای اسکریپتنویسی (بش Bash) و ترجیحاً دانش پایتون دارد.
امنیت سایبری: حوزهای پیچیده که به تست نفوذ و جلوگیری از حملات سایبری تقسیم میشود. نیاز به دانش شبکه، توسعه و ساختار وب برای هک قانونی دارد.
رایانش ابری (Cloud Computing): مدیریت زیرساختهای ابری شرکتها. این حوزه حقوق نسبتاً خوبی دارد و تقاضا برای آن بالا است.
پشتیبانی فنی (Technical Support): حل مشکلات لینوکسی برای کاربران و شرکتها. هرچند تقاضا برای این شغل وجود دارد، اما ممکن است درآمد خیلی بالایی نداشته باشد.
یادگیری و منابع:
آقای سلطانی کارهای اولیهای را روی یک سرور لینوکسی دمو کرد، از جمله راهاندازی یک ماشین مجازی (VM) و نصب یک وب سرور (Nginx) با استفاده از خط فرمان (CLI). او همچنین نشان داد که چگونه میتوان وظایف را با استفاده از پلیبوکهای Ansible خودکارسازی کرد و تاکید کرد که Ansible چگونه میتواند چندین سرور را بدون دخالت دستی مدیریت کند.
برای شروع، استفاده از نرمافزارهای مجازیسازی مانند VMware یا VirtualBox روی ویندوز/مکاواس برای آزمایش توزیعهای لینوکس قبل از نصب بومی توصیه شد. استفاده از نسخههای Live USB توزیعها نیز برای تست پیشنهاد شد.
برای تازهکاران، اوبونتو برای شروع توصیه شد. فدورا برای توسعهدهندگان یا کسانی که تکنولوژیهای جدیدتر میخواهند پیشنهاد شد.
منابع یادگیری مانند وبسایت Linux Professional Institute (LPI) (lpi.org) سرفصلهای استاندارد و مسیرهای گواهینامه (Essentials, LPIC-1, 2, 3) ارائه میدهند. در حالی که گواهینامهها برای مهاجرت مفید هستند، بر یادگیری محتوا از طریق منابع رایگان مانند آموزشهای یوتیوب (اشاره به جواد ساعدی – “جادی”) و وبسایتهایی مانند Linux Journey و TechMint تأکید شد. منابع پولی مانند دورههای CBT Nuggets نیز ذکر شدند.
مهارتهای جستجوی مؤثر به عنوان امری حیاتی در این زمینه برجسته شد. ابزارهای هوش مصنوعی مانند ChatGPT نیز برای نوشتن کد و خودکارسازی وظایف بسیار مفید توصیف شدند.
برای نصب درایورهای سختافزاری خاص، مانند کارت گرافیک انویدیا روی فدورا، جستجو در منابع آنلاین مانند TechMint یا راهنماهای تخصصی توصیه شد.
در مورد مشاوره شغلی، ابتدا تخصص در یک زمینه قبل از گسترش به زمینههای دیگر پیشنهاد شد. تقاضا برای متخصصان لینوکس بالاست، حتی برای کسانی که تجربه محدودی دارند، و اقدام برای موقعیتهای کارآموزی راه خوبی برای شروع است. فرصتهای مهاجرت برای متخصصان باتجربه در این حوزه به راحتی در دسترس است.
2 دیدگاه برای لینوکس و فلسفه متن باز
Sajad –
دوس دارم
آریانا الهدینی –
هنوز شرکت نکردم