..

تفاوت نرم افزار آزاد و متن باز چیست ؟

در چندین گفت و گوی اخیری که در مورد مقاله ام داشتم با استادان موضوعی که خیلی بحث میشد اصولاً تفاوت بین open source و freesoftware بود . اینجا در این مقاله با توجه به منابع معتبری که وجود داره سعی میکنم مرز باریک بین نرم‌افزار آزاد و متن باز رو مشخص کنم

ابتدا از تعاریف شروع میکنیم :

نرم‌افزار آزاد چیست ؟

تعریف بنیاد نرم‌افزارهای آزاد FSF و به طور خاص ریچارد استالمن بنیان گذار پروژه GNU به این صورت میباشد ( مستندات به زبان فارسی هم ترجمه شده و روی سایت gnu.org موجود میباشند )

“Free software” means software that respects users’ freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software. Thus, “free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer”. We sometimes call it “libre software” to show we do not mean it is gratis.(http://www.gnu.org/philosophy/free-sw.en.html)

نرم‌افزار آزاد به این معنی است که به جامعه و آزادی کاربران احترام میگذارد . تقریباً به این معنی که که کاربران آزاد به اجرا و کپی و انتشار و مطالعه و تغییر و بهبود نرم‌افزار هستند . نرم‌افزار آزاد به آزادی اهمیت میدهد نه قیمت ( به دلیل ماهیت تفسیر کلمه free در زبان انگلیسی ) . برای درک این مفهوم باید به آزادی همانند آزادی بیان فکر کنید نه آبجوی مجانی . ما بعضی اوقات آن را libre software مینامیم تا نشان دهیم منظورمان رایگان بودن نیست

و چهار شرطی که باعث میشه یک نرم‌افزار آزاد باشه :

The freedom to run the program as you wish, for any purpose (freedom 0)

The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.

The freedom to redistribute copies so you can help your neighbor (freedom 2)

The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

  • آزادی برای اجرای برنامه برای هر منظوری (آزادی ۰)
  • آزادی برای مطالعه و بررسی چگونگی عملکرد برنامه و تغییر آن برای نیاز خود (آزادی ۱). +دسترسی به کد منبع یک پیش‌شرط برای این آزادی می‌باشد.
  • آزادی برای توزیع مجدد کپی‌هایی از آن، بنابراین شما می‌توانید به همسایگان خود کمک کنید (آزادی ۲).
  • آزادی برای بهبود برنامه و انتشار این تغییرات برای عموم، بنابراین تمام جامعه از آن بهره +می‌برند (آزادی ۳). دسترسی به کد منبع یک پیش‌شرط برای این آزادی می‌باشد.

و تعریف نرم‌افزار متن باز بر اساس تعریف بنیاد نرم‌افزار های متن باز به این صورت میباشد ( متن انگلیسی به صورت کامل در منبع موجود میباشد https://opensource.org/osd-annotated )

نرم‌افزار متن باز چیست ؟

نرم‌افزار متن باز نه فقط به معنای دسترسی به کد منبع بلکه باید شرایط توزیع نرم‌افزار را به صورت زیر داشته باشد

۱- آزادی در بازنشر لایسنس ( مجوز ) نباید از فروش یا قرض دادن نرم‌افزار به عنوان جزی از یک توزیع نرم افزاری مجتمع از چندین منبع جلوگیری نماید .

۲ -کد منبع

برنامه باید شامل کد منبع همانند کدی که از روی آن کامپایل شده باشد

۳- کارهای مشتق شده

مجوز (لایسنس) باید اجازه تغییرات و مشتق شدن را بدهد و همچنین اجازه نشر آن را بر اساس لایسنس نرم افزاری اصلی را بدهد .

منطق : صرف توانایی خواندن کد منبع کافی نیست تا از از تکامل و بازخورد نرم‌افزار حمایت کند

۴- یکپارچگی کد منبع و نویسنده مجوز میتواند از انتشار فرم تغییرشکل یافته برنامه جلوگیری نماید تنها زمانی که فایل‌های الصاقی ( patch files ) و کد منبع برای اهدافی در زمان ساخته شدن تغییر نمایند .

۴ – بدون تبعیض علیه افراد یا گروه‌ها مجوز نباید در مقابل هر فرد یا گروهی از افراد تبعیض قائل شود.

۵- بدون هیچ تبعیضی علیه زمینه‌هایی از تلاش

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

۷- توزیع مجوز

حقوقی که به برنامه الصاق شده باید برای همه اجرا بشود

۸ – مجوز نباید به صورت اختصاصی برای یک محصول باشد

نتیجه‌گیری : فرق اساسی ما بین نرم‌افزار آزاد و اوپن سورس وجود نداره تا زمانی که هردو یک هدف رو دنبال میکنن . تفاوت‌ها در اهمیت و نوع نگاه به زندگی . سادگی در تفسیر اوپن سورس و قوانین سفت و سخت در نرم‌افزار آزاد و همچنین لفظ آزادی که برداشت‌های متفاوتی داره باعث شده جامعه متخصصین به مفهوم اوپن سورس علاقه بیشتری داشته باشن هرچند با نگاهی عمیق‌تر میشه فهمید قوانین چهار گانه نرم‌افزار آزاد تضمینی هستش که باعث میشه فرهنگ اشتراک گذاری دانش و علم در مقابل ثبت پتنت و کپی رایت زنده بمونه و فارغ از مسایل تجاری برای ساختن دنیایی بهتر استفاده بشه

ماشین ها انسان هارو کنترل میکنن و کد ها ماشین‌ها رو . چه کسی کد ها رو کنترل میکنه ؟ -ریچارد استالمن