شاید تا به حال اصطلاح «اپن سورس» (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) آن را فرا گیرد.
حال که به مفهوم و چیستی اپن سورس و مزایا و معایب آن پی بردیم، همچنین متوجه نقش حیاتی اپن سورس در سیستم عامل لینوکس شدیم، در ادامه مسیر به سراغ معرفی آموزشهای لینوکس به منظور یادگیری آن میرویم.
معرفی فیلم های آموزش لینوکس اوپن سورس
در این بخش از مطلب «اپن سورس چیست» به معرفی مجموعه دورههای آموزش لینوکس تم آف میپردازیم. این مجموعه جامع در زمان نگارش این نوشته دارای نزدیک به ۲۰ دوره آموزشی گوناگون است که در مجموع شامل بیش از ۷۰ ساعت محتوای آموزش ویدیویی میشود. دورههای کاربردی مرتبط با لینوکس از سطوح مقدماتی تا پیشرفته در این مجموعه گنجانده شدهاند.
پلتفرم تم آف شامل دورههایی همچون، آموزش سیستم عامل لینوکس مقدماتی، آموزش لینوکس تکمیلی، آموزش مقدماتی مدیریت سرور لینوکس CentOS، آموزش مقدماتی مهندسی لینوکس LPIC1 و LPIC2، آموزش لینوکس فدورا، نصب و تنظیمات اولیه آن، آموزش زبان برنامه نویسی AWK در لینوکس و آموزشهای دیگری است که میتوان برای درک عملکرد این سیستم عامل و کار با آن از این دورهها استفاده کرد.
یادگیری نحوه کار با ترمینال و سیستم عامل لینوکس میتواند بسیار مفید باشد، چراکه شما را تبدیل به یک مکانیک برای ماشین کامپیوتری خود میکند و میتوانید پس از مدت کمی به درک عمیقی از کارکرد سیستمهای کامپیوتری برسید.
- برای مشاهده همه فیلم های آموزش لینوکس تم آف و ورود به صفحه این مجموعه + اینجا کلیک کنید.
چه تفاوتی بین نرم افزار اپن سورس با دیگر نرم افزارها وجود دارد ؟
برخلاف نرم افزارهای اوپن سورس، برخی از نرمافزارها دارای کد منبعی هستند که تنها شخص، تیم یا سازمانی که آن را ایجاد کرده و انحصاراً از آن نگهداری میکند، میتواند در آن تغییر ایجاد کند. این نوع نرم افزار را «نرم افزار انحصاری» یا «منبع بسته» مینامند.
فقط توسعهدهندگان اصلی نرم افزار انحصاری میتوانند آن را به طور قانونی، کپی یا بررسی کرده و تغییر دهند. برای استفاده از نرم افزار انحصاری، کاربران میبایست موافقت کنند (معمولاً با امضای مجوز نمایش داده شده هنگام اولین اجرای این نرم افزار) که کاری با نرم افزاری که توسعهدهندگان آن صریحاً مجاز نمیدانند را انجام ندهید. مایکروسافت آفیس و ادوبی فوتوشاپ نمونههایی از نرم افزار انحصاری هستند.
با این حال، نرم افزار اپن سورس متفاوت است. توسعهدهندگان آن، کد منبع خود را در دسترس افرادی که مایل به مشاهده، کپی کردن، تغییر دادن، اشتراکگذاری یا یادگیری از آن هستند، قرار میدهند. «لیبرآفیس» (LibreOffice) و «گیمپ» (Gimp) نمونههایی از نرم افزار اپن سورس محسوب میشوند. مانند نرم افزارهای انحصاری، کاربران میبایست هنگام استفاده از نرم افزار اپن سورس، شرایط مجوز آن را بپذیرند.
اما شرایط قانونی مجوزهای اپن سورس به طور چشمگیری با مجوزهای انحصاری متفاوت است. مجوزهای اپن سورس بر نحوه استفاده، مطالعه، ویرایش و توزیع نرم افزار تأثیر میگذارند. به طور کلی، مجوزهای اپن سورس به کاربران رایانه اجازه میدهند تا از نرم افزار اوپن سورس برای هرگونه منظور مورد نظر خود استفاده کنند. برخی از مجوزهای اپن سورس که آنها را مشمول بر «کپی لِفت» (Copy Left) نیز مینامند، تصریح میکنند که هر کسی که یک نسخه ویرایش شده از برنامه اپن سورس را منتشر میکند، باید کد منبع را نیز برای آن، در کنار برنامه منتشر کند.
علاوه بر این، برخی از مجوزهای اپن سورس تصریح میکنند که هرکس که یک برنامه را تغییر دهد و آن را با دیگران به اشتراک بگذارد، میبایست کد منبع آن را نیز، بدون پرداخت هزینه صدور مجوز (هزینه صدور مجوز، مبلغی است که برای یک حق خاص به نهاد دیگری پرداخت میشود)، همراه با آن به اشتراک بگذارد.
به طور تعمدی، مجوزهای نرم افزار اپن سورس همکاری و به اشتراکگذاری را ترویج میکنند زیرا به افراد دیگر اجازه میدهند تا در کد منبع اصلاحاتی ایجاد کنند و آن تغییرات را در پروژههای خود اعمال کنند. آنها برنامهنویسان را ترغیب میکنند تا هر زمان که بخواهند، مادامی که به دیگران نیز همین اجازه را بدهند، به کدها دسترسی داشته و آن را ویرایش کنند.
10 پروژه اوپن سورس جاوا اسکریپت برتر در گیت هاب — فهرست کاربردی
آيا اینترنت اپن سورس است ؟
کارکردهای اصلی اینترنت طبق فناوریهای اوپن سورس ساخته شدهاند. سیستم عامل لینوکس عملکرد وبسرورها را تنظیم میکند و برنامه وب سرور آپاچی در مورد انتقال اطلاعات بین زیرساخت سرورهای جهانی و سیستمهای شخصی تبادل نظر میکند. همچنین برنامههای اینترنتی بسیاری اوپن سورس هستند.
حتی شرکتهای اینترنتی بزرگی مثل فیسبوک و گوگل، برخی از نوآوریهای اختصاصی خود را در دسترس جامعه اپن سورس قرار دادهند. انتشار این فناوری برای همه کاربران با ایجاد کارایی و سادهتر کردن کل اینترنت، تجربه را برای همه کاربران بهبود میبخشد. صدور مجوز اپن سورس فناوری را به همکاری افراد به یکدیگر تشویق میکند.
بدون آن، بسیاری از فناوریهایی که امروزه بدیهی میدانیم، هرگز توسعه پیدا نمیکردند یا پشت قوانین ثبت اختراع محبوس میشدند. جنبش اوپن سورس دلیلی است که فناوری در چند دهه گذشته با چنین سرعت سرسامآوری توسعه پیدا کرده است.
ساخت پروژه متن باز پایتون — راهنمای کاربردی
چگونه با یک نرم افزار اپن سورس باید کار کنیم ؟
یک نرم افزار اپن سورس در یک مخزن عمومی مثل گیتهاب به اشتراک گذاشته میشود و در دسترس هر کسی قرار داده میشود که میخواهد روی کد منبع کار کند. با این حال، نرم افزار اپن سورس عموماً با یک مجوز توزیع منتشر میشود که این امر چگونگی تعامل، ویرایش و به اشتراکگذاری آن را تعیین میکند.
هنگامی که تغییراتی در کد منبع ایجاد شود، یک نرم افزار اوپن سورس باید نحوه اعمال آن تغییرات را تعیین کند. همچنین، بسته به مجوز، یک نرم افزار اوپن سورس ممکن است الزاماً رایگان باشد یا نباشد. با این حال، بیشتر نرم افزارهای اوپن سورس رایگان هستند اما برخی از آنها، به هزینههای پرداخت اولیه یا هزینه اشتراک نیاز دارند.
چگونه شرکت ها از نرم افزار اپن سورس کسب درآمد می کنند؟
با توجه به اینکه محصول اپن سورس رایگان در دسترس است، ممکن است تعجب کنید که چگونه شرکتهایی مانند Red Hat و Canonical از آن کسب درآمد میکنند.
سازمانهایی که به طور تخصصی در زمینه اپن سورس فعالیت دارند، عمدتاً از فروش خود نرم افزار کسب درآمد نمیکنند، بسیاری از آنها نسخه تکمیلیافته از محصول خود را ارائه میدهند که شرکتها میتوانند از آنها استفاده کنند.
همانطور که Red Hat Enterprise Linux (RHEL) نیز با چنین سیاستی توسعه داده میشود. این محصولات تکمیلیافته معمولاً شامل انعطافپذیری و ویژگیهای بیشتر، امکانات مدیریتی و نگهداری سادهتر و به طور کلی قابلیت تعاملپذیری بهتر با طیف وسیعی از پلتفرمها و خدمات دیگر میشوند.
روش دیگری که توسط اغلب فروشندگان نرم افزارهای اپن سورس استفاده میشود، ارائه رایگان ولی بدون پشتیبانی رسمی و سایر خدمات اضافی نرم افزار به شرکتهایی است که قرارداد تجاری عقد نکردهاند. از آنجا که کسبوکارها متکی بر به حداقل رساندن مدت از کار افتادگی سیستم هستند، پشتیبانی قوی ضروری است و این امر، این روش را بسیار مؤثر خواهد کرد.
10 گام تکمیلی ایجاد پروژه متن باز پایتون — راهنمای کاربردی
چرا در پروژه های اپن سورس مشارکت کنیم؟
دلایل زیادی وجود دارند در خصوص اینکه چرا باید در پروژههای اپن سورس مشارکت کرد. یکی از بارزترین آنها ایجاد روحیه و حس سخاوت در جامعه کاربری است. بسیاری از توسعهدهندگان میخواهند به ساخت چیزهای جالب کمک کنند یا در پروژههایی که از نظرشان مفید و ارزشمند هستند، مشارکت داشته باشند.
برخی از برنامهنویسان، طی روند استفاده از این ابزارها، مفید واقع میشوند. به عنوان مثال، اگر توسعهدهندهای از یک ابزار اپن سورس در یک پروژه خاص استفاده کند، اغلب در طول کارهای خود آن را تغییر یا بهبود خواهد داد.
سپس این پیشرفتها به بقیه توسعهدهندگان و کاربران نرم افزار منتقل میشود و در نتیجه پیشرفتهای تدریجی به وجود خواهد آمد.
این امر همچنین در مورد شرکتهایی که از ابزارهای اپن سورس استفاده میکنند نیز صدق می کند. این شرکتها اغلب به عنوان محصول جانبی چرخههای توسعه داخلی خود، حجم زیادی از کدها را در پروژههای اپن سورس توسعه میدهند.
همچنین برخی از شرکت ها، از روی همنوعدوستی، به توسعهدهندگان خود وظیفه مشارکت در پروژههای اپن سورس موجود را میدهند، اما در حالت کلی این امر، به طور قابل توجهی نادرتر است.
همچنین از مشارکتهای رایج دیگر، اهدای ابزارهای داخلی شرکتها به جامعه اپن سورس است. بخشی از دلایل این امر، تلاشی کاملاً کاربردی برای برون سپاری توسعه و ادامه توسعه این ابزارها توسط جامعه کاربری است. همچنین به عنوان قدردانی نیز، یک نرم افزار سطح بالا و توسعه یافته در اختیار جامعه کاربری قرار داده میشود.
نکات مهم تعریف اوپن سورس
از تعریف اپن سورس نکاتی استخراج میشود که در ادامه به آنها اشاره شده است.
- مجوز نرم افزار اپن سورس آزاد است و انتشار مجدد آن را برای هر کسی، بدون محدودیت مجاز میداند.
- کد منبع باید در دسترس باشد تا طرف مقابل بتواند آن را بهبود داده یا ویرایش کند.
- این مجوز ملزم میکند که نسخههای بهبودیافته نرم افزار، میبایست نام یا نسخهای متفاوت از نرم افزار اصلی داشته باشد.
- این نرم افزار میتواند به یک سیستم عامل جدید منتقل شود.
ابزارهای یادگیری ماشین متن باز — راهنمای کاربردی
چند نمونه از مجوز های نرم افزار اپن سورس
مهمترین مجوزهای نرم افزار مطابق با تعریف اپن سورس در سالهای اخیر عبارتند از:
- مجوز آپاچی (Apache License)
- مجوز نرم افزار توزیع برکلی (BSD)
- مجوز جامع همگانی گنو (GPL GNU)
- مجوز امآیتی (MIT)
- مجوز همگانی موزیلا (Mozilla Public License)
استفاده آگاهانه از نرم افزار های اپن سورس
پروژههای اپن سورس بسیاری در زیستبوم حرفهای برنامهنویسان در دسترس آنها قرار دارد و با توجه به آزادی در استفاده از این پروژهها و بسیاری از مزایای دیگری که پیشتر به آنها اشاره شد، لازم است با نحوه بهرهمندی و استفاده آگاهانه در دنیای اپن سورس آشنایی داشته باشیم. بنابراین، در این بخش خواهیم دید که چگونه در جهان آزاد آگاهانه رفتار کنیم.
۶ مهارت نرم (Soft Skill) که هر توسعهدهنده نرمافزار باید بداند.
- کورکورانه کپیبرداری نکنید. فناوری به طور مستمر بهروز میشود. با این تغییرات مداوم، کدهای کپیشده بین پروژهها میتوانند از منظر پیگیری و بهروزرسانی مشکلساز شوند. این امر منجر به بروز اشکالاتی ناخواسته و از دست رفتن زمان در رفع این اشکالات خواهد شد.
- از پروژههای قابل اعتماد استفاده کنید. برخی از پروژهها نسبت به سایرین محبوبیت بیشتری دارند. این امر میتواند دلایلی از قبیل پشتیبانی توسط یک شرکت بزرگ، تعداد زیاد مشارکت کنندگان یا کیفیت بالا و کاربردهای زیاد این پروژه داشته باشد.
- مجوز را با دقت بررسی و تأیید کنید. بسیاری از توسعهدهندگان هنگام مشارکت در پروژههای اوپن سورس یا بهرهبرداری از آنها با مشکل مواجه میشوند، زیرا به دلیل عدم توجه به جزئیات مجوز، با عواقب قانونی روبرو میشوند.
- به طور مداوم بهروزرسانی کنید. همانطور که در بالا ذکر شد، پروژههای اپن سورس به طور مکرر بهروزرسانی میشوند. به منظور حفظ عملکرد مورد انتظار، میبایست مؤلفههای اپن سورس را در پروژه بهروز نگه داریم.
۱۰ نمونه برتر نرم افزار اپن سورس چیست ؟
اگر هنوز برایتان جای سوال است که نرم افزار اپن سورس چیست و کجا از آن استفاده میشود، بهتر است چند نمونه از آنها را بررسی کنیم. برنامههای اپن سورس زیادی وجود دارند که شاید نام بسیاری از آنها تا به حال به گوشتان خورده باشد. در ادامه به برخی از برترین نرم افزارهای اپن سورس اشاره میکنیم.
لینوکس Linux
لینوکس یکی از محبوبترین «هستههای سیستم عامل» (OS Kernel) موجود است که کاملاً اپن سورس هم هست. این کرنل بیشتر در دستگاههای اندرویدی، دسکتاپ و سرور مورد استفاده قرار میگیرد. البته کرنل لینوکس به همراه امکانات و ابزارهایی دیگر، یک «توزیع لینوکس» (Linux Distribution) را تشکیل میدهند و توزیعهای بسیار زیادی برای لینوکس وجود دارد. برخی از توزیعهای لینوکس مثل Ubuntu بسیار محبوبتر هستند. برخی از توزیعها بیشتر برای دسکتاپ و برخی دیگر مخصوص استفاده در سرورها هستند.
به طور کلی هر توزیع معمولاً برای اجرای اهدافی خاص منتشر میشود. مثلاً «کالی لینوکس» (Kali) توزیعی مختص فعالان حوزه امنیت است و بسیاری از ابزارها و نرم افزارهای مورد نیاز در حوزه تست نفوذ و امنیت در آن به صورت پیشفرض تعبیه شدهاند. به دلیل ماهیت اوپن سورس بودن لینوکس، این سیستم عامل در بین توسعهدهندگان حرفهای شهرت بیشتری دارد، امنیت بیشتری هم داشته و میتواند از رایانههای قدیمیتر پشتیبانی کند، بسیار مناسب برای برنامه نویسی است و اکثر توزیعهای آن بهروزرسانیهای نرم افزاری منظمی دارند.
لینوکس چیست ؟ | معرفی جامع و راهنمای کامل — از صفر تا صد
نرم افزار LibreOffice
لیبرآفیس مجموعهای کامل برای دسترسی و مدیریت ارائهها، اسناد، جداول و پایگاه دادهها به حساب میآید و بسیار مشابه نرم افزار تجاری آفیس مایکروسافت است. بر خلاف مایکروسافت آفیس که به دلیل مدل قیمتگذاری آن، برای همه، به راحتی در دسترس نیست، لیبرآفیس کاملاً رایگان است. LibreOffice برای ویندوز، مک و لینوکس ارائه شده است و همچنین امکانات چت زنده و تشکیل انجمن را برای کمک فراهم میکند. در واقع این برنامه جایگزین واقعی اپن سورس برای مایکروسافت آفیس محسوب میشود.
سیستم مدیریت نسخه Git
گیت یک سیستم کنترل نسخه آزاد و اپن سورس است که همه چیز را با سرعت و عملکرد بالا، از پروژههای کوچک تا بسیار بزرگ مدیریت میکند. گیت پروژه اپن سورس بالغ و فعالی به حساب میآید که ابتدا، در سال ۲۰۰۵ توسط «Linus Torvalds»، خالق معروف کرنل سیستم عامل لینوکس ساخته شده است.
سیستم مدیریت پایگاه داده MYSQL
به بیان ساده، MySQL محبوبترین سیستم مدیریت پایگاهداده SQL اپن سورس به حساب میآید. MySQL یکی از بهترین «سیستمهای مدیریت پایگاهداده رابطهای» (RDBMS) است که برای توسعه برنامههای مختلف نرم افزاری مبتنی بر وب مورد استفاده قرار میگیرد.
نام MYSQL ترکیبی از “My”، نام دختر Michael Widenius، همبنیانگذار MySQL و SQL، مخفف «Structured Query Language» به معنی «زبان پرسمان ساخت یافته» است. یک پایگاه داده رابطهای، دادهها را در یک یا چند جدول داده سازماندهی میکند که در آن ممکن است انواع دادهها به یکدیگر مربوط شوند. این روابط به ساختار دادهها کمک خواهد کرد.
زبان برنامه نویسی پایتون
پایتون یک زبان برنامه نویسی مفسری، سطح بالا و عمومی است که توسط بنیاد نرم افزار پایتون تهیه شده است. بنابر دادههای IEEE، این زبان جزء محبوبترین و سادهترین زبانهای برنامهنویسی است. کاربران بیشتری به دلیل زمینه رشد سریع در حوزه یادگیری ماشین، جذب این زبان میشوند.
به طور کلی اما پایتون زبانی تقریباً همهمنظوره به حساب میآید و در بسیاری از حوزههای دیگر از جمله توسعه وب، «خودکارسازی» (اتوماسیون | Automation) و رباتیک کاربرد دارد. یکی از محبوبترین دورههای آموزشی تم آف برای یادگیری پایتون در ادامه معرفی شده است که میتوانید برای شروع از آن استفاده کنید.
نرم افزار گیمپ GIMP
گیمپ یک ویرایشگر تصویر گرافیکی آزاد و اپن سورس است که برای دستکاری و ویرایش تصاویر، نقاشی بدون محدودیت و چارچوب، تبدیل بین فرمتهای مختلف تصویری و کارهای تخصصیتر قابل استفاده است. GIMP تحت مجوز +GPLv3 منتشر میشود و برای سیستم عاملهای لینوکس، مک و ویندوز در دسترس است. چندین افزونه شخص ثالث و گزینههای سفارشی سازی در GIMP وجود دارد و از سیستم عاملهایی مانند ویندوز، مک و لینوکس پشتیبانی میکند.
ویرایش تصویر با گیمپ (GIMP) — از معرفی نرمافزار تا امکانات جدیدترین نسخه
مرورگر موزیلا فایرفاکس Mozilla Firefox
موزیلا فایرفاکس مرورگر وب اپن سورس و آزادی است که هزاران افزونه را در اختیار ما قرار میدهد. این افزونهها تنها با یک کلیک در دسترس هستند. Mozilla Firefox مزایای بیشتری از جمله سفارشیسازی آسان، افزونه کتابخانههای غنی و امنیت بالا و سایر موارد را ارائه میدهد.
نرم افزار بلندر Blender
یکی از بهترین نرم افزارهای اپن سورس، «Blender» است. این نرم افزار ابزاری گرافیکی و انیمیشن سهبُعدی برای نظارت، شبیهسازی، پویانمایی، ویرایش ویدیو، رندر، مدلسازی و موارد دیگر است. همچنین تعدادی از روشها و ویژگیهای مدلسازی، از جمله نماهای واقعی، چند وضوحی و پشتیبانی از «Planar Tracking» (دنبال کردن صفحه) و Tripod solvers را ارائه میدهد. از Tripod Motion میتوان برای فیلمهایی استفاده کرد که دوربین حرکت نمیکند و فقط میچرخد.
برنامه مدیریت ایمیل تاندربرد ThunderBird
تاندربرد پروژهای اپن سورس به حساب میآید، به این معنی که هر کسی میتواند در زمینههای ایده، طرح، کد و زمانی مشارکت کند. ThunderBird برنامه مدیریت ایمیل رایگانی است که قابلیتّای آسانی در استفاده، تنظیم و سفارشیسازی را همانند سرویس جیمیل، فراهم میکند. تاندربرد توسط بنیاد موزیلا (سازنده فایرفاکس) ساخته شده است.
کد ادیتور اتم Atom
اتم یک ویرایشگر متن آزاد و اپن سورس برای مک، لینوکس و ویندوز با پشتیبانی از افزونههای نوشته شده در جاوا اسکریپت و کنترل نسخه تعبیه شده گیت است که توسط گیتهاب تهیه شده. اتم یک برنامه دسکتاپ است که با استفاده از فناوریهای وب ساخته شده است.
ویژوال استودیو کد یا Atom، کدام برای شما مناسب است؟
در ادامه مطلب اپن سورس چیست به این موضوع میپردازیم که چرا متن باز بهتر است.
چرا برنامه نویسان اوپن سورس را ترجیح می دهند؟
در ادامه مطلب اپن سورس چیست میخواهیم به این بپردازیم که چرا توسعهدهندگان علاقهمند به استفاده از نرم افزارهای اپن سورس هستند. در این بخش به شرح دلایل مهمی پرداخته شده است که برنامهنویسان را کاملاُ مجاب میکند تا منش اوپن سورس را در پی بگیرند و در این فضا فعالیت داشته باشند.
ابتدا هر یک از دلایل را در ادامه فهرست کردهایم و سپس در زیربخشهایی بیشتر به هر یک میپردازیم.
- امنیت بالای پروژه های اوپن سورس
- پشتیبانی بهتر و وجود انجمنهای بسیار
- ثبات و پایداری بیشتر
- امکان استفاده رایگان
- قابلیت ارتقا بیشتر
امنیت بالای پروژه های اوپن سورس
برخی از توسعهدهندگان مایل به استفاده از نرم افزارهای اوپن سورس هستند، زیرا به جای اختصاصی بودن، ایمن و پایدارند. از آنجایی که هر کسی میتواند به نرم افزارهای اپن سورس دسترسی داشته باشد و تغییراتی داخل آنها ایجاد کند، میتوان از این قابلیت زمانی استفاده کرد که توسعهدهندگان اصلی یک برنامه، آن را در معرض عموم قرار میدهند و پس از آن نیاز به بررسی اشکالات برنامه خواهیم داشت.
حال پس از ارائه محصول میتوان به بررسی و برطرف کردن باگهای آن پرداخت. از آنجایی که بسیاری از برنامهنویسان میتوانند بدون اجازه توسعهدهندگان اصلی از نرم افزارهای اپن سورس استفاده کنند، بنابراین اصلاح، بهروزرسانی و بهبود نرم افزار اوپن سورس بسیار آسانتر از نرم افزارهای اختصاصی است.
پشتیبانی بهتر و وجود انجمنهای بسیار
نرم افزارهای اپن سورس الهامبخش جامعهای از کاربران و توسعهدهندگان هستند. برنامههای اوپن سورس منحصر به فرد نیستند، زیرا اکثر نرم افزارهای رایج توسط گردهماییها و جلساتی که میان گروههای کاربری آنها تشکیل میشوند، مورد حفاظت قرار میگیرند. اگرچه این انجمنها نه تنها پایگاه طرفداران یک گروه کاربری در مورد اپن سورس است، بلکه اشخاصی هستند که نرم افزاری را ایجاد، آزمایش، استفاده، تشویق میکنند و در نهایت بر نرم افزاری که از آن لذت میبرند تاثیر میگذارند.
در ادامه این بخش از مطلب اپن سورس چیست به سایر دلایل جذب برنامهنویسان به تفکر و فلسفه اوپن سورس پرداخته شده است.
ثبات و پایداری بیشتر
برای پروژههای حیاتی و طولانی مدت، بسیاری از کاربران نرم افزار اوپن سورس را به نرم افزار اختصاصی ترجیح میدهند. وقتی برنامهنویسان نرم افزار اوپن سورس را آزادانه به اشتراک میگذارند، مصرف کنندگانی که برای کارهای ضروری به نرم افزار تکیه میکنند، مطمئن میشوند که اگر از همکاری با توسعهدهندگان اصلی اجتناب کنند، منابع آنها از بین نمیرود یا محو نمیشود. علاوه بر این، نرم افزار اپن سورس با هدف ادغام و عملکرد مطابق با استاندردهای باز است.
امکان استفاده رایگان
اکثر نرم افزارهای اپن سورس به صورت رایگان و آزاد در اینترنت قرار دارند و میتوان از آنها استفاده کرد. همین در دسترس عموم قرار گرفتن این برنامهها در رشد سریع آنها بسیار تاثیر گذار بوده و این سوال را در ذهنها ایجاد کرده است که اپن سورس چیست. زیرا تمامی توسعهدهندگان فقط لازم است به اینترنت دسترسی داشته باشند و دانش استفاده و ارتقای نرم افزارهای اپن سورس را داشته باشند، در این صورت میتوانند به راحتی از کاربردهای آنها بهرهمند شوند.
قابلیت ارتقا بیشتر
نسخههای جامعه نرم افزار اپن سورس برای شرکتها آزادانه در دسترس هستند. این انتخاب برای شرکتهای کوچکی که به دنبال راه حل نرم افزاری با بودجه خود هستند عالی است. این کسب و کارها میتوانند بسته به اهداف تجاری خود چندین مدل را انتخاب و برای آن برنامهریزی کنند. به غیر از نرم افزار اپن سورس، سازمانها و پلتفرمهای رایگان و اوپن سورس زیادی برای جامعه وجود دارد.
در ادامه شرح خواهیم داده که اهمیت اپن سورس چیست .
آیا اپن سورس تنها برای برنامه نویسان کامپیوتر اهمیت دارد؟
خیر. فناوری و تفکر اپن سورس هم برای برنامهنویسان و هم برای غیربرنامهنویسان سودمند خواهد بود. از آنجا که بخش اعظمی از اینترنت، مبتنی بر فناوریهای اپن سورس مانند سیستم عامل لینوکس یا وبسرور آپاچی و سایر موارد است، امروزه، هر کس در استفاده از اینترنت، از نرم افزارهای اپن سورس بهره میبرد.
هر بار که کاربران صفحات وب را مشاهده میکنند، ایمیل ارسال میکنند، با دوستان خود گفتگوی آنلاین دارند، موسیقی آنلاین گوش میدهند یا بازیهای ویدیویی چند نفره انجام میدهند، رایانهها، تلفنهای همراه یا کنسولهای بازی آنها، با استفاده از نرم افزارهای اپن سورس به یک شبکه جهانی از رایانهها متصل میشوند تا مسیریابی و انتقال دادههای آنها به دستگاههای «محلی» انجام شود که با آنها در ارتباط هستند.
رایانههایی که تمام این کارهای مهم را انجام میدهند، معمولاً در مکانهایی دوردست قرار دارند و کاربران به آنها دسترسی فیزیکی ندارند. به همین دلیل، این رایانهها را «رایانههای از راه دور» نیز مینامند.
علاوه بر آن، کاربران هنگام انجام کارهایی که در دستگاههای محلی خود انجام میدهند نیز ممکن است به رایانههای از راه دور متکی باشند. به عنوان مثال، آنها ممکن است از نرم افزار پردازش آنلاین، مدیریت ایمیل و ویرایش تصویر استفاده کنند که آنها قابل نصب و اجرا بر روی رایانههای شخصی نیستند. بلکه این برنامهها با استفاده از مرورگر وب یا برنامههای تلفن همراه در رایانههای از راه دور اجرا میشوند. به انجام چنین کارهایی، «محاسبات از راه دور» گفته میشود.
برخی، محاسبات از راه دور را «محاسبات ابری» نیز مینامند، زیرا این محاسبات، تنها شامل فعالیتهای محلی (مانند ذخیره پروندهها، به اشتراک گذاری عکسها یا تماشای فیلمها) نیست بلکه یک شبکه جهانی از رایانههای از راه دور را شامل میشود که ترکیب آنها شبیه به ابری بزرگ در آسمان است. محاسبات ابری جنبهای مهم از زندگی روزمره با دستگاههای متصل به اینترنت به حساب میآید. برخی از برنامههای محاسباتی ابری، مانند Google Cloud، انحصاری هستند و برخی دیگر مانند OwnCloud و NextCloud، اپن سورس به حساب میآیند.
برنامههای محاسبات ابری بر روی نرم افزارهای دیگری اجرا میشوند که به آنها کمک میکند تا به طور پایدارتر و کارآمدتر کار کنند، بنابراین اغلب، به نرم افزارهایی که به عنوان بستر برنامههای محاسبات ابری اجرا میشوند، «پلتفرم» اجرای آن برنامهها، گفته میشود. سیستم عاملهای محاسبات ابری میتوانند اپن سورس یا منبع بسته باشند. Open Stack نمونهای از یک بستر محاسبات ابری اپن سورس است.
آموزش رایانش ابری (Cloud Computing) — از صفر تا صد
سازمان های اپن سورس کدامند ؟
در ادامه سازمانهای مرتبط با مسلک اوپن سورس فهرست شدهاند.
- «بنیاد نرم افزار آزاد» (Free Software Foundations)
- «بنیاد اپن سورس» (Open Source Initiative)
- موسسه Creative Commons
- «جنبش نرم افزار های آزاد» (Free Software Movement)
- Open Invention Network
جمع بندی
در مطلب اپن سورس چیست ، شرح داده شد که اپن سورس نوعی نرم افزار کامپیوتری است که کد منبع آنها توسط صاحب نرم افزار برای در دسترس قرار گرفتن عموم منتشر میشود. فلسفه اپن سورس از آزادی نرم افزار نشأت میگیرد. به همین خاطر کاربران حق استفاده، نمونه برداری، اصلاح و توزیع نرم افزار را دارند و حتی میتوانند با تغییرات منحصر به فردی که روی نرم افزار اعمال کردهاند، نسخه جدیدی از آن نرم افزار را تولید و منتشر کنند.
تعدادی از نرم افزارهای اپن سورس را نام بردیم و دیدیم یکی از مهمترین آنها سیستم عامل لینوکس است که کاربردهای فراوانی دارد. همچنین با مزایا و معایب این نرم افزارها آشنا شدیم و دانستیم ادامه یافتن این روند نیازمند مشارکت توسعهدهندگان در همه زمینهها است. در این سالها، تفکر اپن سورس باعث کمک به پیشرفت و توسعه نرم افزارها و دانش و فناوری شده است. به امید اینکه ما هم قدمی در مسیر این توسعه علمی داشته باشیم.