اپن سورس چیست و چه کاربرد و اهمیتی دارد؟ – به زبان ساده
شاید تا به حال اصطلاح «اپن سورس» (Open Source)، «متن باز»، «منبع باز» یا «منبع آزاد» را زیاد شنیده باشید و برایتان این سوال پیش آمده باشد که این اصطلاح دقیقاً چه مفهومی دارد؟ وقتی میگویند مثلاً نرم افزاری اوپن سورس است، منظور چیست؟ در این مطلب به بررسی این موضوع میپردازیم که اپن سورس چیست و همچنین کاربرد و اهمیت آن چگونه است، به علاوه، بهترین نرم افزارهای متن بازی که میتوان از آنها استفاده کرد را هم معرفی کردهایم و به سایر مباحث و سوالات مهم پیرامون مفهوم اوپن سورس پرداختهایم.
اپن سورس چیست ؟
«نرم افزار متن باز» (Open Source Software | OSS) نوعی نرم افزار کامپیوتری است که در آن انتشار کد منبع تحت مجوزی انجام میشود که در آن دارندهی حق انتشار، به هر دلیلی به کاربران حق استفاده، نمونهبرداری، اصلاح و توزیع نرم افزار را میدهد.
به بیان دیگر، نرم افزاری مانند X را در نظر بگیریم که امروزه مورد استفاده عموم قرار گرفته است، این نرم افزار دارای کد منبعی است که با اجرای خط به خط آن کد بر روی سرور، به درخواستهای کاربران پاسخ داده میشود و عملکرد آن را مشخص میکند.
حال اگر صاحب چنین نرم افزاری، کد منبع آن را در دسترس عموم قرار دهد تا هر کسی اجازه دسترسی به کدها را داشته باشد و حتی بتواند برای خود، نمونه مشابه آن نرم افزار را بسازد و تغییراتی بر اساس نیازهای خود در آن ایجاد کند، در واقع آن نرم افزار به صورت اپن سورس در دسترس است.
از جمله نمونههایی از مجوزهای نرم افزار آزاد یا مجوزهای اپن سورس که میتوان از آنها استفاده کرد میتوان به مجوز Apache، مجوز BSD، مجوز عام GNU، مجوز MIT، مجوز عمومی Eclipse و مجوز عمومی Mozilla اشاره کرد.
نرم افزار اپن سورس در مقایسه با نرم افزار منبع آزاد
گاهی «نرم افزار منبع آزاد» (Free Source Software) مترادف با نرم افزار اپن سورس استفاده میشود، اما در واقع این دو متفاوت از یکدیگر هستند.
ایده نرم افزار توسط Richard Stallman در سال ۱۹۸۰ میلادی (۱۳۶۰ خورشیدی) ارائه شد. هدف اصلی این ایده به این شکل بود که به همه کاربران اجازه داده شود تا نرم افزار منبع آزاد را اجرا کنند، کپی کنند، تعمیم دهند، اصلاح کنند و توسعه دهند. از سوی دیگر، به عنوان پاسخ به محدودیتهای نرم افزار منبع آزاد در اواخر دهه ۱۹۹۰، نرم افزارهای اپن سورس توسط گروهی از اشخاص راه اندازی شدند.
تفاوت کلیدی این دو، انتقال تمرکز از استقلال به حفاظت بود، البته مزایای واقعبینانه دیگری مانند شفافیت و صرفهجویی در هزینهها نیز در تعریف اپن سورس گنجانده شد. در واقع طبق نظر استالمن و پیروانش، اگر فردی در نرم افزار آزاد تغییراتی را اعمال کند، باید حتماً محصول تغییر یافته را در اختیار دیگران هم بگذارد، اما در اپن سورس این مسئله اجباری نیست.
باید به یاد داشته باشیم که همه نرم افزارهای منبع آزاد میتوانند به عنوان نرم افزار اپن سورس واجد شرایط باشند، با این حال همه نرم افزارهای اوپن سورس نمیتوانند آزاد باشند.
مزایا و معایب استفاده از اپن سورس چیست ؟
استفاده از نرم افزارهای اوپن سورس علاوه بر کاربردها و مزایای فراوان آن، دارای برخی معایب نیز هست که در ادامه مطلب اپن سورس چیست به بررسی آنها میپردازیم.
مزایای اپن سورس چیست ؟
مزایای زیادی در استفاده از فناوریهای اوپن سورس وجود دارد که برخی موارد آن شامل موارد زیر است.
- هزینه اولیه صفر یا ناچیز است. میتوانید با دریافت کد از یک درگاه مطمئن شروع کنید. بسیاری از برنامهنویسان که در حال کار بر روی پروژههای خود هستند، میتوانند با استفاده از پروژههای اپن سورس در هزینه و زمان خود صرفهجویی کنند.
- پروژههای اپن سورس توسط بسیاری از توسعهدهندگان مورد استفاده قرار میگیرند و در نتیجه آنها دائماً در این پروژهها مشارکت میکنند که این امر منجر به پاسخگویی سریع به باگها میشود و باعث خواهد شد پروژههای اوپن سورس بسیار قابل اعتمادتر باشند.
- تکامل مداوم به دلیل دسترسی آزاد، ماندگاری پروژههای اپن سورس را فراهم میکند. نرم افزارهای انحصاری همواره در معرض خطر تعطیلی شرکتهای توسعه دهنده و در نتیجه از دست دادن پشتیبانی و بهروزرسانی هستند. بسیاری از شرکتها بر روی نرم افزارهای اپن سورس کار میکنند. به عنوان مثال شرکتهای Red Hat و IBM با یکدیگر همکاری میکنند تا پروژهای اپن سورس همانند Kubernetes Enterprise به نام Red Hat Open Shift را آماده کنند.
- تحقیقات نشان داده است که پروژههای اپن سورس در مقایسه با نرم افزارهای انحصاری ایمنتر هستند. این امر به دلیل آن است که توسعهدهندگان به طور مداوم بر روی باگهای پیدا شده توسط کاربران کار میکنند، در حالی که همان فرآیند برای نرم افزارهای تجاری میتواند هفتهها یا ماهها به طول بینجامد.
- انعطافپذیری ستون اصلی نرم افزارهای اپن سورس است. توسعهدهندگان میتوانند آزادانه و به راحتی کدها را مطابق با مجوز کد برای پروژه خود اصلاح کنند. نرم افزار انحصاری دارای محدودیتها و توافق نامههای کاربر است که قابل تغییر نیست.
معایب اپن سورس چیست ؟
با وجود مزایای بسیار پروژههای اپن سورس، این نرم افزارها دارای برخی معایب نیز هستند.
- از آنجا که جامعه هدف پروژههای اپن سورس بر روی توسعهدهندگان است، این پروژهها عموماً برای اهداف فنی ساخته و مستند شدهاند. بنابراین، بسیاری از آنها چندان کاربر پسند نیستند و میتوانند برای کار کردن افراد با پیشینههای غیرفنی، دشوارتر باشند.
- بسیاری از توسعهدهندگان در حال کار بر روی پروژههای اپن سورس هستند. البته که همه آنها اهداف شرافتمندانهای ندارند، برخی از آنها، میتوانند با اهدافی خصمانه، این پروژهها را دستکاری کنند، که این امر میتواند منجر به فاجعه برای کاربران شود و کاربران مجبور خواهند بود با مسائلی مانند کدهای ناامن، بدافزار، تروجانها، باگها و سایر موارد دست و پنجه نرم کنند.
- توسعهدهندگان اپن سورس به دلیل عدم پشتیبانی مالی، ممکن است علاقه خود را به یک پروژه از دست بدهند و پروژه متوقف شود.
تاریخچه نرم افزار اپن سورس چیست ؟
خاستگاه اپن سورس، حوزههای نرم افزار و کامپیوتر به حساب میآید. پیشگامان این حوزه، دانشمندان، محققان و افراد دانشگاهی بودند و در حالت کلی میتوان گفت که اپن سورس ریشه در اشتراک رایگان و آزاد دانش و اطلاعات دارد.
یکی از راههایی که برنامهنویسان کدهای خود را به اشتراک میگذاشتند، از طریق کتابهای رشته کامپیوتر و مجلات بود که به منظور بازتولید کامل فرآیند، کد منبع برای کپیبرداری و استفاده خوانندگان در اختیار آنها قرار میگرفت. این امر به ویژه، با ظهور رایانههای خانگی مانند Commodore 64 و ZX Spectrum محبوبیت یافت که خوانندگان آن کتابها میتوانستند برای ایجاد بازیهای رایانهای مقدماتی از آنها استفاده کنند.
با توسعه نرم افزار تجاری و افزایش رقابت در بین توسعهدهندگان، اشتراکگذاری کد اوپن سورس اندکی کاهش پیدا کرد. با وجود این، افراد مجذوب در اپن سورس، سنت توسعه نرم افزار اپن سورس را ادامه دادند، حتی اگر شرکتهای نرم افزاری غولپیکر بر این بخش مسلط شده باشند. با اتصال بیشتر رایانهها به اینترنت، برنامهنویسان شروع به اشتراکگذاری کد خود با یکدیگر به صورت آنلاین کردند.
این امر منجر به افزایش قابل توجه تعداد پروژههای اپن سورس موجود و در نهایت، ایجاد هسته لینوکس توسط Linus Torvalds شد. اصطلاح «اپن سورس» برای اولین بار توسط طرفداران آن در سال ۱۹۸۸ نامگذاری شد. این مفهوم در طی سالهای آینده به طور پیوسته محبوبتر و پختهتر شد. اگرچه نرم افزار اپن سورس پیش از آن به طور عمده با علاقهمندان به محاسبات دشوار و حرفهایهای برنامهنویسی شناخته میشد، اما اکنون سطح گستردهای از اقبال و پذیرش را هم از نظر عموم و هم در جامعه کاربری را به دست آورده است.
تاریخچه Unix و Linux
توسعه «یونیکس» (Unix) در سال ۱۹۶۹ در AT&T Bell Labs به عنوان یک محصول اختصاصی اما دارای مجوز شروع شد. برای ده سال بعد، توسعه یونیکس دارای چندین نسخه از جمله V6 بود که اولین نسخه در دسترس خارج از آزمایشگاه Bell بود. این کد به دلیل ماهیت زبان جدید خیلی زود توجه جامعه دانشگاهی را به خود جلب کرد.
دانشگاه کالیفرنیا در برکلی توسعه یونیکس خود را آغاز کرد و به زودی یک نسخه آکادمیک به نام توزیع نرم افزار برکلی (مجوز BSD) را توسعه داد. به طور همزمان، AT&T نسخه Unix خود را به System V تبدیل کرد.
این دو نسخه در نهایت با هم ادغام شدند تا نسخه یکپارچه یونیکس را ایجاد کنند و سپس به برنامه هایی مانند Sun Solaris, FreeBSD, NetBSD و OpenBSD تبدیل شدند.
در سال ۱۹۸۴ Richard Stallman یک کپی یونیکس رایگان به نام «گنو» (GNU | GNU’s Not Unix) ایجاد کرد. این نسخه برای استفاده آزادانه، اصلاح و درصورت نیاز توزیع مجدد بوجود آمده بود. در سال ۱۹۹۱ Linus Torvalds هسته سیستم عامل معروف به «Linux» یا هسته لینوکس را ایجاد کرد.
لینوکس در ترکیب با اجزای FSF و BSD به یک سیستم عامل کامل تبدیل شد. اکنون بر روی چندین معماری اجرا میشود و توسط فروشندگان خط قدیمی یونیکس پذیرفته یا پشتیبانی شده است.
نحوه استفاده از سیستم عامل Linux
لینوکس یک سیستم عامل رایگان و متن باز بوده که به بزرگترین پروژه نرم افزاری منبع باز در جهان تبدیل شده است. سیستم عامل لینوکس به عنوان یک نسخه جایگزین، رایگان و اپن سورس میتواند جایگزین سیستم عامل ویندوز یا MacOS استفاده شود. از آنجایی که لینوکس تحت مجوز اوپن سورس منتشر شده است که از محدودیت در استفاده از نرم افزار جلوگیری میکند، هر کسی میتواند کد منبع را اجرا، مطالعه، اصلاح و توزیع مجدد کند، یا حتی کپیهایی از کد اصلاح شده خود را به فروش برساند.
کار کردن با سیستم عامل لینوکس به راحتی سایر سیستم عاملها نیست، اما برای افرادی که شخصیت کنجکاوی دارند و تمایل دارند تا بفهمند عملکرد یک سیستم عامل به چه شکل است، بسیار گزینه مناسبی به حساب میآید. برای درک کارکرد لینوکس، در صورتی که شخصی بخواهد کنترل و فرمان مدیریت سیستم کامپیوتری خود را به دست گیرد، باید نحوه کار با صفحه «ترمینال» (Terminal) لینوکس و «دستورات» (Commands) آن را فرا گیرد.
حال که به مفهوم و چیستی اپن سورس و مزایا و معایب آن پی بردیم، همچنین متوجه نقش حیاتی اپن سورس در سیستم عامل لینوکس شدیم، در ادامه مسیر به سراغ معرفی آموزشهای لینوکس به منظور یادگیری آن میرویم.