نرم افزار متن باز یا اصطلاحاً منبع آزاد به انگلیسی Open Source به نرم افزاری گفته میشه که مردم می تونن اونو تغییر بدن و به اشتراک بذارن چرا که طراحی اون در دسترس عموم و آزاده.
این اصطلاح در چارچوب توسعه نرم افزار برای تعیین یک رویکرد خاص برای ایجاد برنامه های رایانه ای گرفته شده. امروز متن باز یا اوپن سورس مجموعه وسیع تری از ارزش ها رو تعیین میکنه، چیزی که بهش میگیم «راه منبع باز».
پروژه ها، محصولات یا ابتکارات متن باز ، اصول مبادله آزاد، مشارکت جمعی، نمونه سازی سریع، شفافیت، شایسته سالاری، و توسعه محور جامعه رو برای جامعه به همراه دارن.
نرم افزار متن باز یا اوپن سورس چیست؟
نرم افزار متن باز یا نرم افزار منبع باز نرم افزاری با کد منبع هست که هر کس میتونه اون رو بازرسی، اصلاح یا بهبود بده.
کد منبع به بخشی از نرم افزار اطلاق میشه که اکثر کاربرا هرگز اون رو نمی بینن. این کد رو برنامه نویس می تونه برای تغییر نحوه کار یک قطعه از نرم افزار که بهش برنامه کامپیوتری میگیم دست کاری کنه یا تغییر بده.
برنامه نویس ها که به کد منبع برنامه رایانه ای دسترسی دارن می تونن با افزودن ویژگیهایی به اون یا رفع بخشهایی که همیشه درست کار نمیکنن، اون برنامه رو بهبود بدن.
ظهور نرم افزار منبع آزاد
جنبش نرم افزار منبع باز از جنبش نرم افزار آزاد به وجود اومد اما به صورت جداگانه رشد کرد.
در سال 1983 ، ریچارد استالمن Richard Stallman ، زمانی که یک برنامه نویس در آزمایشگاه هوش مصنوعی MIT بود ، گفت که یک جایگزین رایگان برای سیستم عامل یونیکس که اون زمان متعلق به AT&T بود ایجاد میکنه.
استالمن به این جایگزین خودش لقب گنو GNU رو داد که نام اختصاری بازگشتی برای GNU’s Not Unix هست.
تفاوت بین نرم افزار متن آزاد و انواع دیگر نرم افزار چیست؟
بعضی از نرم افزارها دارای کد منبع به انگلیسی Source Code هستند که فقط شخص، تیم یا سازمانی که اون رو ایجاد کرده – و کنترل انحصاری بر روی اون رو در اختیار داره – می تونن تغییرش بدن. مردم به این نوع نرم افزارها نرم افزار اختصاصی یا منبع بسته به انگلیسی Closed Source میگن.
فقط نویسندگان اصلی نرم افزار اختصاصی می تونن به طور قانونی اون نرم افزار رو کپی کنن یا بازرسی و تغییر بدن. برای استفاده از نرم افزار اختصاصی ، کاربران باید موافقت کنند (معمولاً با امضای مجوز نرم افزار به انگلیسی Software License برای اولین بار که نرم افزار رو اجرا میکنن) که هیچ کاری که نویسندگان این نرم افزار صراحتاً اجاره ندادن، انجام نخواهند داد.
برای مثال نرم افزارهای Microsoft Office و Adobe Photoshop نمونه هایی از نرم افزار اختصاصی هستن که سی دی اش رو ما ایرانی ها از انقلاب به قیمت ۱۰۰۰ تومن تهیه و با اجرای فایل کرک به انگلیسی Crack قفل اون رو میشکونیم و اصلاحا بهش میگن نرم افزار قفل شکسته .
تفاوت نرم افزار متن باز با نرم افزار اختصاصی
نرم افزار متن باز یا نرم افزار اوپن سورس که بهش نرم افزار منبع باز هم میگن متفاوته. نویسندگان اون، کد منبع نرم افزار خودشون رو در دسترس کسانی که مایلن متن کد رو ببینن، کپی اش کنن، تغییرش بدن یا به اشتراک بذارن، قرار میدن.
برای مثال نرم افزار LibreOffice و برنامه ویرایش تصویر GNU نمونه هایی از نرم افزار متن باز هستن.
درست مثل نرم افزار اختصاصی ، اینجا هم کاربران هنگام استفاده از نرم افزار اوپن سورس باید شرایط مجوز نرم افزار یا همون Software License Agreement رو بپذیرن، اما شرایط قانونی مجوزهای متن باز به طرز چشمگیری متفاوت از مجوزهای اختصاصی دیده میشه.
مجوزهای نرم افزار متن باز و اوپن سورس
مجوزهای نرم افزار اوپن سورس یا Open Source License بر نحوه استفاده، مطالعه، اصلاح و توزیع نرم افزار افراد تأثیر می ذارن.
به طور کلی ، مجوزهای نرم افزار متن باز اجازه استفاده از نرم افزار منبع باز رو برای هر هدفی که کاربران بخوان، بهشون میده. برخی از مجوزهای منبع آزاد ، که بعضی در مقابل CopyRight بهش مجوزهای CopyLeft میگن، تصریح می کنه که هرکسی که یک برنامه منبع باز اصلاح شده رو منتشر میکنه، باید کد منبع اون برنامه رو هم در کنارش منتشر کنه.
علاوه بر این، برخی مجوزهای منبع باز تصریح می کنن که هرکس برنامه رو تغییر داده و با دیگران به اشتراک بذاره، باید کد منبع اون برنامه رو هم بدون دریافت پول و به صورت رایگان به همراهش به اشتراک بذاره.
مجوزهای نرم افزار متن باز طراحی شدن تا همکاری و اشتراک رو ارتقا بدن، چون به افراد دیگه این اجازه رو میدن که کد منبع نرم افزار اوپن سورس رو تغییر بدن و اون تغییرات رو در پروژه های خودشون بگنجونن.
این مجوزها، برنامه نویسان رو ترغیب میکنن که تا زمانی که به دیگران اجازه دسترسی و اشتراک روی کدهاشون رو میدن، همین کار رو هر زمان که دوست داشته باشن، روی دیگر نرم افزار متن باز انجام بدن.
آیا نرم افزار اوپن سورس فقط برای برنامه نویس ها مهمه؟
قطعا نه! تکنولوژی منبع باز و تفکر منبع باز هم برای برنامه نویس ها و هم برای غیر برنامه نویسان سودآوره.
از اونجا که مخترعین اولیه قسمتهای عظیمی از اینترنت رو بر روی فن آوری های منبع باز ساختن (مثل سیستم عامل لینوکس به انگلیسی Linux Operating System و یا برنامه وب سرور آپاچی به انگلیسی Apache Web Server) هر کسی که امروز از اینترنت استفاده میکنه، از نرم افزار متن باز بهره میبره.
هر بار که کاربران صفحات وب رو مشاهده میکنن، ایمیل شون رو چک میکنن، با دوستاشون چت میکنن، یا به صورت آنلاین موزیک گوش میکنن یا حتی بازی های ویدیویی چند نفره رو پخش میکنن، کامپیوترهاشون، تلفنهای همراه یا کنسولهای بازی شون با استفاده از نرم افزار اوپن سورس به یک شبکه جهانی کامپیوتری متصل میشن.
مردم حین انجام کارهایی که ممکنه در موبایل یا دسکتاپ شون انجام بدن، به کامپیوترهای راه دور متکی هستن. برای مثال، ممکنه از پردازش کلمه آنلاین ، مدیریت ایمیل و نرم افزار ویرایش تصویر استفاده کنن که در رایانه های شخصیشون نصب و اجرا نمیکنن. بلکه با استفاده از یک مرورگر وب به انگلیسی Web Browser یا برنامه تلفن همراه، به راحتی به این برنامهها در رایانه های از راه دور دسترسی پیدا میکنن. وقتی این کار رو انجام میدن، مشغول انجام محاسبات از راه دور یا به انگلیسی Remote Computing هستن.
برخی افراد به محاسبات از راه دور واژه رایانش ابری اطلاق میکنن، چون این فعالیتها (مانند ذخیره فایل ها، به اشتراک گذاری عکس یا تماشای فیلم) شامل نه تنها دستگاه های محلی بلکه شبکه جهانی رایانه های از راه دور هم هست.
رایانش ابری جنبه ای مهم از زندگی روزمره با دستگاه های متصل به اینترنت محسوب میشه. بعضی از برنامه های محاسبات ابری ، مانند Google Apps ، اختصاصی هستن و با مجوز نرم افزار اختصاصی توسعه داده شدن. بعضی دیگه مانند ownCloud و Nextcloud ، نرم افزار متن باز یا اوپن سورس هستن.
چرا مردم استفاده از نرم افزار متن باز رو ترجیح میدن؟
مردم به دلایل مختلف، نرم افزار اوپن سورس رو به نرم افزار اختصاصی ترجیح میدن، از جمله:
کنترل بیشتر بر روی نرم افزار متن باز
خیلی از افراد نرم افزار متن باز رو ترجیح میدن چون کنترل بیشتری روی این نوع نرم افزارها دارن. اونا میتونن کد رو بررسی کنن تا مطمئن بشن که کاری رو که نمیخوان انجام بدن، انجام نمیده و میتونن بخشهایی از اون رو که دوست ندارن تغییر بدن.
کاربرانی که برنامه نویسی نمیکنن هم از نرم افزار اوپن سورس بهره مند میشن، چون میتونن از این نوع نرم افزار برای هر منظوری که دلشون بخواد استفاده کنن. نه فقط به روشی که توسعه دهنده دلش میخواد.
آموزش و فراگیری بهتر با نرم افزار اوپن سورس
خیلیا نرم افزار اوپن سورس رو دوست دارن چون بهشون کمک میکنه تا برنامه نویس بهتری باشن. از اونجا که کد منبع آزاد در دسترس عموم هست، دانش آموزها میتونن به راحتی یاد بگیرن که چطوری نرم افزار بهتری توسعه بدن.
همچنین دانش آموزها میتونن کارهای خودشون رو با دیگران به اشتراک بذارن، چون مهارتهای خودشون را اینطوری توسعه میدن و از نظرات و انتقادات بقیه استفاده میکنن.
وقتی که افراد در کد منبع برنامه ها اشکال و باگ به انگلیسی Bug کشف میکنن، میتونن این اشتباهات رو با دیگران در میون بذارن و در جلوگیری از تکرار اشتباهات همکاری کنن.
امنیت بالای نرم افزار متن باز
بعضیها نرم افزار منبع باز رو ترجیح میدن چون اونها رو ایمن تر و با ثبات تر از نرم افزار اختصاصی میدونن.
از اونجا که هر کسی میتونه نرم افزار متن باز رو مشاهده و اصلاح کنه، ممکنه کسی خطاها یا نواقصی رو که نویسندگان اصلی برنامه ندیدن، تشخیص بده و اصلاح کنه.
و از اونجا که خیلی از برنامه نویس ها میتونن روی یک قطعه از نرم افزار منبع باز بدون درخواست مجوز از نویسندگان اصلی کار کنن، میتونن با سرعت بیشتری نسبت به نرم افزار اختصاصی ، نرم افزار متن باز رو اصلاح و به روز کنن.
ثبات و پایداری بالای نرم افزار اوپن سورس
خیلی از کاربران نرم افزار منبع باز را برای پروژه های مهم و بلند مدت تر به نرم افزار اختصاصی ترجیح می دن.
از اونجا که برنامه نویس ها به طور عمومی کد منبع رو برای نرم افزار منبع باز توزیع میکنن، کاربران با اتکا به اون نرم افزار برای کارهای مهم میتونن اطمینان حاصل کنن که اگر سازندگان اصلی کار توسعه رو ادامه ندن، ابزار آنها ناپدید یا دچار اختلال نمیشه.
علاوه بر این، نرم افزار منبع باز مطابق با استانداردهای باز یا به انگلیسی Open Standards کار میکنه و این یک نقطه قوت اساسیه.
انجمن گسترده و بزرگ نرم افزار متن آزاد
نرم افزار منبع باز اغلب به جامعه ای از کاربران و توسعه دهندگان الهام میده تا شکل بگیرن.
البته این منحصر به منبع باز نیست و بسیاری از برنامه های محبوب موضوع ملاقات ها و گروه های کاربران میشه.
اما در مورد نرم افزار منبع آزاد ، این جامعه فقط یک عده علاقمند نیستن. بلکه اینها افرادی هستن که نرم افزاری رو که دوستش دارن، توسعه میدن، آزمایش میکنن، ازش استفاده میکنن، تبلیغ و در نهایت تکثیرش میکنن.