مهیار کرمانی
دانشجو و علاقه مند به یادگیری و اشتراک گذاری

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

نرم افزار متن باز یا open source چیست؟ فرق بین نرم افزارهای آزاد و تجاری چیست؟ داستان، فلسفه و تاریخچه اون ها چیست ؟ در این مطالب درباره فلسفه آزادی نرم افزار و ماجراهای اون صحبت می کنیم.

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


آزادی نرم افزار و مثالی از نرم افزار های آزاد


اصلا چرا وقتی یک تیم یا شخصی، نرم افزاری رو مینویسه،‌ کد برنامه و آزادی هایی رو همراه اون برنامه انتشار میده ؟

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


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


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


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


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

کد نرم افزار به همراه یادداشت و تاییده‌ای که آزادی هایی رو برای کاربر فراهم میکنه منتشر میشود که به آن مجوز یا اجازه نامه نرم افزار آزاد گفته میشود.

نرم افزاری که آزادی های زیر را برای کابران فراهم میکند، نرم افزار آزاد هست:

  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) آمریکا، که از تغییر فرهنگ در صنعت رایانه و کاربران آن ناامید شده بود، تصمیم گرفت سیستم عاملی رو به نام گنو، به صورت یک نرم افزار آزاد بسازه و اونو توسعه بده.

سال ۱۹۸۴ توسعه سیستم عامل گنو شروع شده بود و در سال بعد اون، ریچالد استالمن، بنیاد نرم افزارهای آزاد رو برای حمایت و جذب برنامه نویسان برای نوشتن نرم افزارهای آزاد و پروژه گنو تاسیس کرد.

  1. نرم افزار های آزاد را می‌توان به فروش رساند ولی نباید آزادی های کاربران مانند داشتن کد برنامه و تغییر و انتشار مجدد آن حتی به صورت رایگان را نیز محدود کرد.
  2. با ارائه خدمات و پشتیبانی در یک نرم افزار ازاد میتوان کسب درامد کرد.
  3. کمک های مالی افراد داوطلب به پروژه نرم افزارهای آزاد


در آخر هم براتون چند تا منابع میزارم که اگه خواستید توی این مباحث بیشتر عمیق بشید می تونید اون هارو هم مطالعه کنید:


و خوب در آخر هم امیدوارم که ازین مقاله لذت برده باشین و خوشحال میشم حرف ها و نظرات شما دوستان رو هم درباره آزادی نرم افزار و اتفاقات پیرامون اونارو بدونم، کنجکاو باشید :)


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

دانشجو و علاقه مند به یادگیری و اشتراک گذاری

مهیار عاشق زندگی کردنه ❤ اون خودشو رشد میده و کمک میکنه که دنیا جای بهتری برای زندگی کردن باشه 😍 مهیار عاشق تاریخچه همه چیزه و دوست داره چیزهای زیادی بدونه 😎 اون دوست داره که بنویسه و هرچیزی که یاد داره رو به بقیه هم یاد بده‌ 😋 عاشق طبیعت و گردشه 🌳🍃 اون حیوون هارو دوست داره و بهشون احترام میزاره 🐕 مهیار یک شعار توی زندگیش داره که میگه: برای پیشرفت، باید پیش رفت 💪

17 خرداد 1400 این مطلب را ارسال کرده

نظرات