مهیار کرمانی
مدرس، برنامه نویس، علاقه مند به امنیت اطلاعات، سرباز

فلسفه آزادی نرم افزار ( متن باز | Open Source ) چیست؟

نرم افزار متن باز یا open source چیست | فلسفه آزادی نرم افزار ( متن باز | Open Source ) چیست؟ |  تفاوت بین نرم افزارهای آزاد و تجاری چیست | داستان، فلسفه و تاریخچه تمامی این سوالات از جمله مباحثی هست که قصد داریم در این مقاله درباره اونها صحبت کنیم.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران


فلسفه آزادی نرم افزار ( متن باز | Open Source ) چیست؟


انگیزه طراحی نرم افزارهای رایگان و متن باز

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

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

از طرفی هم ایده بعضی از افراد این هست که اگه من یک برنامه ای رو نوشتم پس انحصار این برنامه هم باید در اختیار خودم باشه. من میتونم این برنامه رو به افرادی که میخوام بفروشم و بقیه هم فقط میتونند انتقادات و پیشنهاد های خودشون رو درباره برنامه بهم بگن و اگه اون هارو مناسب دونستم روی نرم افزارم اعمالشون میکنم. کد این برنامه فقط در دسترس من و تیمم هست و فقط ما میتونیم قابلیت های مختلفی رو برای استفاده کاربران ارائه بدیم و بقیه افراد برای استفاده از نرم افزار، باید قوانین تعیین شده مارو بپذیرند.


نرم افزار متن باز در مقابل نرم افزار متن بسته


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


فلسفه آزادی نرم افزار

فلسفه آزادی نرم افزار ( متن باز | Open Source ) چیست؟ نرم افزار آزاد، نرم افزاری هست که آزادانه و بدون محدودیت خاصی، به هر منظوری و برای هر کاری استفاده میشه و همچنین همه افراد میتوانند کد نرم افزار را در اختیار داشته باشند، اون رو بررسی کنند و تغییر بدند، و کپی کردن یا توزیع و پخش مجدد اون با تغییرات انجام شده، آزاد هست و فقط تنها با کمی محدودیت (مثلا مجوزهایی که تعیین میکنند کاربرهای بعدی هم باید این آزادی هارو داشته باشند) هست.

کد نرم افزار به همراه مجوز و تائیدیه ای که آزادی های ذکر شده رو برای کاربر فراهم میکنه، منتشر میشه و به اون مجوز یا اجازه نامه نرم افزار آزاد گفته میشود. همچنین نرم افزاری که آزادی های زیر را برای کابران فراهم میکند، نرم افزار آزاد یا متن باز نامیده می شود:

  1. آزادی اجرای برنامه برای هر کاری
  2. آزادی مطالعه چگونگی کار برنامه و تغییر اون ( که پیش نیاز این کار، در اختیار داشتن کدهای نرم افزار هست)
  3. آزادی کپی و توزیع برنامه برای عموم مردم
  4. آزادی تقویت و برطرف کردن مشکلات برنامه و توزیع آن برای همگان


هر کاربری که از یک نرم افزار با این شرایط استفاده می کنه، و قصد تغییر و یا انتشار دوباره برنامه رو داره، باید به بقیه کاربرها هم تمامی این آزادی هارو بده و مطابق با این استانداردها یک برنامه تا اخرین نسخه به صورت رایگان در دسترس عموم خواهد بود.

نرم افزار آزاد (Free Software) یک ایده در سطح بین المللی هست و به دلیل ابهام و مشکلاتی که در لفظ آزاد و یا  Free وجود داره، این برنامه ها به نرم افزارهایی رایگان و بی ارزش نسبت داده میشدند و به همین دلیل نام این ایده به متن باز (Open Source) تغییر پیدا کرد، زیرا در نرم افزار آزاد بحث بخاطر قیمت نیست و شما می توانید توزیع خود را حتی به فروش برسانید و فقط آزادی های همراه نرم افزار ملاک است.

اما آزادی نرم افزار یک ایده کلی بود و برای پیاده سازی اون و تبئیت کردن اجتماع از این قوانین، نیاز به یک مجوز قانونی و استاندارد بود که این آزادی هارو تضمین کنه.


فلسفه مجوز گنو

 

مجوز نرم افزارهای آزاد یا متن باز

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

یکی از ضمانت ها و مجوزهایی که آزادی نرم افزار را تأمین میکند، اجازه نامه عمومی همگانی (General Public License)  است و مطابق با مجوز GPL هر کاربری می تواند متن نرم افزار را در اختیار داشته باشه و با تغییر اون یک توزیع مجددی رو بسازه و متن برنامه نباید به حالت محدود شده ای در بیاد (مگر با نظر همه نویسندگان آن برنامه که در این صورت دیگه جرو نرم افزارهای آزاد نیست).

در زمان های قدیم (۱۹۸۰ میلادی) که نرم افزارهای انحصاری رواج پیدا کرده بود، بعضی از توسعه دهندگان و برنامه نویس ها شروع به نوشتن نرم افزارهای آزادی کردند تا بتوانند با سرمایه گرایی و انحصار نرم افزارها رقابت کنند و این افراد معتقد هستند محدودیت هایی که سرمایه گرایی برای استفاده از نرم افزارها به صورت تجاری اعمال میکنند مانع از اصلاح و پیشرفت این برنامه ها میشه و با این نوع از محدودیت ها مخالف هستند. در دوره آموزش لینوکس اسنشیالز و قسمت مفاهیم لایسنس در لینوکس به بررسی فلسفه متن باز و آزاد متن می پردازیم. در زیر شما می تونید نرم افزارهای مختلف و محبوبی که این روزها زیاد استفاده میشه و از قوانین کپی لفت و آزادی نرم افزار پیروی می کنند، مشاهده کنید:

  1. هسته لینوکس، بی اس دی، داروین (هسته‌ی مک)
  2. کامپایلر جی سی سی،‌ کتابخانه سی
  3. پایگاه های داده مثل mysql
  4. زبان های برنامه نویسی مانند پی اچ پی، پایتون، روبیو ..
  5. مرورگر وب فایرفاکس
  6. اپن آفیس ( شبیه ماکروسافت افیس)
  7. میزکار کی دی ای و گنوم
  8. نرم افزار های مدیریت محتوا مانند جوملا


وضعیت انتشار نرم افزار های متن باز

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

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

سخت افزار شرکت های مختلف باهمدیگه سازگاری نداشتند و ساخت و طریقه کارکرد اون ها هم متفاوت بود و هیچ استاندارد خاصی برای تولید تجهیزات رایانه‌ای وجود نداشت.

در آن زمان مفسر و کامپایلرها (وظیفه اجرای نرم افزارهای مختلف بر روی سخت افزارهای مختلف رو به عهده دارند) هنوز سطح پایداری نداشتند و بین برنامه نویس‌ها محبوب نبودند و به همین دلایل نرم افزاری که روی سخت افزار یک شرکت کار میکرد، روی سخت افزار شرکت دیگری، کار نمیکرد و هر نرم افزار فقط برای یک سخت افزار خاص شخصی سازی و ساخته شده بود.


نرم‌افزار آزاد در مقابل نرم افزار تجاری


نرم افزار های آزاد در مقابل نرم افزار های تجاری

با مرور زمان، صنعت رایانه پیشرفت کرد و استاندارهای مختلفی برای ساخت سخت افزارها و تجهیزات رایانه ای ارائه شد و کامپایلرها و مفسرها پیشرفت کردند و باعث شد تا برنامه ها وابسته به یک سخت افزار خاص نباشند و قابلیت انتقال و اجرا شدن برنامه روی سخت افزار شرکت‌های مختلف فراهم شد.

با این پیشرفت‌ها، تولیدکنندگان و برنامه نویس ها، به این نتیجه رسیده بودند که باید برنامه های موجود را به فروش برسانند. بنابرین دسترسی به کدهای برنامه رو برای عموم مردم مسدود کردند و دسترسی تغییر در نرم افزار را از اونها گرفتند.

در سال ۱۹۶۹ میلادی، شرکتی به نام ای‌دی‌ار (ADR) اولین نرم افزار تجاری دارای مجوز خودش رو منتشر کرد و شرکت آی‌بی‌ام (IBM) نیز به خاطر اینکه به همراه سخت افزار های خودش، نرم افزار آزاد ارائه میکرد، به از بین بردن کسب و کارها و ایجاد شرایطی که باعث رقابت نکردن و بهبود نیافتن برنامه ها میشد، متهم گردید و ای‌بی‌ام نیز دیگر به همراه سخت افزار های خود، نرم افزار آزاد ارائه نکرد و به این صورت نرم افزار ها و سخت افزار ها کم کم از همدیگه جدا شدند و تجارت مبتنی بر نرم افزار شکل گرفت.


بنیاد نرم افزار آزاد


بنیاد نرم افزار های آزاد

بعد از همه این اختلافات، بالاخره در سال ۱۹۸۳ میلادی، ریچالد استالمن، از آزمایشگاه ام‌آی‌تی (MIT) آمریکا، که از تغییر فرهنگ در صنعت رایانه و کاربران اون نا امید شده بود، تصمیم گرفت تا سیستم عاملی رو به نام گنو، به صورت یک نرم افزار آزاد بسازه و اون رو توسعه بده. سال ۱۹۸۴ توسعه سیستم عامل گنو شروع شده بود و در سال بعد اون، ریچالد استالمن، بنیاد نرم افزارهای آزاد رو برای حمایت و جذب برنامه نویس ها و مهندسان کامپیوتر تاسیس کرد تا از پروژه گنو حمایت و نرم افزارهای آزاد و مختلفی رو طراحی و ارائه کنند.

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


جمع بندی

در این مطالب به معرفی انگیزه و دلایلی پرداختیم که باعث میشه برنامه نویس ها و طراحان، نرم افزارهای خودشون رو تحت قوانین نرم افزار آزاد منتشر کنند. همچنین درباره موضوع فلسفه آزادی نرم افزار ( متن باز | Open Source ) چیست؟ به بحث و گفت و گو پرداختیم و درباره تاریخچه و فلسفه به وجود اومدن این آزادی ها صحبت کردیم. در آخر هم اگه علاقه مند بودید تا درباره این مسائل عمیق تر بشید، می تونید به بخش بیشتر بخوانید مراجعه کنید.


  • نرم افزار آزاد به معنی نرم افزار رایگان است؟

    خیر. نرم افزارهای آزاد می تونند به فروش برسند و مهم ترین نکته ای که مد نظر هست، دسترسی کاربر به سورس کدهای اون برنامه و آزادی هایی مثل تغییر و انتشار مجدد برنامه هست.
  • راه های کسب درآمد از نرم افزارهای آزاد چیست؟

    نرم افزارهای آزاد رو میشه به فروش رسوند و آزادی های نام برده شده مد نظر هست. مهم ترین و محبوب ترین راه کسب درآمد از نرم افزارهای آزاد، ارائه خدمات و پشتیبانی از اون ها هست. آموزش دادن، فروش نرم افزارهای مختلف، نصب و راه اندازی سرویس ها و خدمات مختلف دیگه از جمله روش های کسب درآمد به شمار میره.
  • ابهامات موجود درباره نرم افزارهای آزاد

    همانطور که گفتیم، نرم افزارهای آزاد رو میشه به فروش رسوند و فقط آزادی های اون مد نظر هست. بنابرین اگه من یک نرم افزار آزاد رو خریداری کنم و سپس سورس کد اون رو تغییر و به صورت رایگان برای عموم منتشر کنم! دیگه فروش اون نرم افزار توسط شرکت چه معنی داره؟ وقتی همه افراد می تونند اون برنامه رو به صورت رایگان پیدا و دانلود کنند؟ مهمترین مبحث پشتیبانی از اون برنامه هست. من با خرید اون نرم افزار میتونم از یک تیم متخصص کمک بگیرم، سرویس های مختلفی رو به راحتی راه اندازی کنم و آپدیت های جدید اون نرم افزار رو دریافت کنم. نکته بعدی هم این هست که نرم افزارهای آزاد (Free Software) به معنی نرم افزار رایگان نیست، و به خاطر ابهام در تلفظ اون، به نرم افزارهای متن باز تغییر نام داده شده است. همچنین مجوز کپی لفت و آزادی نرم افزار، صرفا به مباحث کامپیوتری مربوط نمیشه و برای ارائه آثار هنری، اختراعات، سینما و زمینه های دیگه ای هم استفاده میشه.

مهیار کرمانی
مهیار کرمانی

مدرس، برنامه نویس، علاقه مند به امنیت اطلاعات، سرباز

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

نظرات