كدباز تنها به معنی دسترسی به كد منبع نیس ت . مراحل تهیه نرم افزار كد باز باید تابع ضوابطی باشه كه درموردشون توضیح میدیم : توزیع رایگان و متوالی : مجوز هیچ وقت نباید تو فروش نرم افزار یا ارائه مجانی اون به عنوان جزئی از یه مج...
بازدید :
زمان تقریبی مطالعه :
تاریخ : شنبه 1383/01/15
آشنایی با مفهوم Open Source
كدباز تنها به معنی دسترسی به كد منبع نیس ت . مراحل تهیه نرم افزار كد باز باید تابع ضوابطی باشه كه درموردشون توضیح میدیم :
توزیع رایگان و متوالی
: مجوز هیچ وقت نباید تو فروش نرم افزار یا ارائه مجانی اون به عنوان جزئی از یه مجموعه نرم افزاری كه شامل برنامه هایی از منابع مختلفه ، محدودیت ایجاد كنه . به علاوه این مجوز فروش ، نباید به كسب امتیاز یا دستمزد نیاز داشته باشه .استدلال :
با محدود كردن مجوز به خاطر توزیع مجانی و مجدد ، وسوسه از دست دادن سود طولانی رو با انجام یه فروش كوتاه مدت از بین می بریم . اگه این كار رو انجام ندیم ، مشكلات و فشار عصبی كه به همكاران وارد می شه اونقدر زیاد می شه كه اونا رو وادار به ترك این كار می كنه .كد منبع( Source Code ) كه :
یه برنامه باید دارای كد منبع باشه و علاوه بر شكل كامپایل شده اون ، بشه این كد رو كپی كرد . تو جایی كه بعضی از بخشهای برنامه همراه با كد منبع اون توزیع نمی شه ، باید روشهایی برای دسترسی به كد منبع با قیمت ارزون یا حتی دریافت از اینترنت به طور مجانی وجود داشته باشه . كد منبع باید به صورتی باشه كه برنامه نویس بتونه اون كد رو اصلاح كنه . معمولا ، یه كد منبع نامشخص و گیجكننده ، پذیرفته نمی شه . كدهایی تو سطح متوسط همچون خروجی پیش پردازنده و یا مترجم هم قابل قبول نیستن .استدلال :
ما نیازمند دستیابی به یه كد مشخص هستیم چون بدون تغییر اون ، قادر به تكمیل برنامه مربوطه نخواهیم بود . از اونجا كه هدف ما ایجاد سهولت تو روند تكامل برنامس ، بنابراین اصلاح اون باید به سادگی صورت بگیره .استنتاج :
مجوز برنامه بایدامكان اصلاحات و استنتاج و همچنین امكان تكثیر كد رو تحت همون اسم مجوز اصلی نرم افزار ، فراهم كنه .استدلال:
تنها توانایی خوندن كد برای یه بازنگری جداگانه و تكمیل سریع برنامه كافی نیست . برای اینكه عمل تغییر و تكمیل برنامه سریع اتفاق بیفته ، برنامه نویسها باید بتونن تغییرات رو آزمایش كرده و برنامه رو با اصلاحات انجام شده دوباره توزیع كنن .انسجام با كد اصلی :
این امكان وجود داره كه مجوز ، توزیع كد اصلاح شده رو محدود كنه و این تنها زمانی اتفاق می افته كه مجوز ، امكان توزیع فایلهای ترمیمی ( Patch Files ) رو با كد ، به منظور اصلاح برنامه فراهم كرده باشه . مجوز باید صراحتا امكان توزیع نرمافزار اصلاح شده رو فراهم كنه از طرف دیگه این احتمال هم هست كه مجوز برای كسب یك اسم یا شماره نسخه ای متفاوت با نرم افزار اصلی به تجزیه و تحلیل نیاز داشته باشه .استدلال:
پیشرفتهای امیدبخش، برای ایجاد اطمینان كاربرها بسیار مفیده اما اونا هم حق دارن بدونن مسئولیت نرم افزار مورد استفاده اونا ، با چه كسانیه . مولفها و برنامه نویسها هم برای دفاع و حمایت از وجهه خود حق دارند بدونن از چه نظر و در چه مواردی تحت سوال قرار می گیرن .در نتیجه ، یه مجوز كد باز باید تضمین كنه كه كد منبع به سادگی تو دسترس متقاضی قرار می گیره ، اما ممكنه لازم باشه كه كد به صورت یك كد پایه و اصلی به همراه جزئیات به شكل فایل ترمیمی توزیع بشه . در این صورت ، تغییرات غیررسمی تو دسترس قرار می گیره ولی از كد اصلی به سادگی قابل تشخیص هستند .
عدم تبعیض میان مردم و گروهها
: یه مجوز نباید میون مردم تفاوتی قائل بشه.استدلال:
به منظور كسب حداكثر سود از ساخت یه برنامه ، باید مردم و گروههای كاملا متفاوتی ، با شرایط یه جور برای ساخت كدهای باز اقدام كنن . بنابراین مانع ایجاد مجوزهایی خواهیم شد كه از همكاری افراد خارج از پروژه جلوگیری می كنه . البته بعضی از كشورها آمریكا، برای انواع خاصی از نرم افزارها ، محدودیتهای صادراتی دارن .عدم تبعیض میان زمینه های فعالیتی :
یه مجوز نباید هیچ فردی رو تو بهره گیری از یه برنامه تو زمینه خاصی محدود كنه . مثالا : مجوز نباید به كارگیری برنامه رو فقط در زمینه های تجارت یا تحقیقات ژنتیكی محدود كنه .استدلال:
هدف اصلی ، جلوگیری از اعمال ترفندهاییه كه با استفاده از مجوز ، مانع به كارگیری كد باز در زمینه های تجاری می شن .توزیع مجوز
: قوانین یه برنامه ، باید برای تمام كسایی كه برنامه براشون توزیع مجدد شده ، به كار گرفته شه ، بدون اینكه نیاز به دریافت مجوز دیگه ای داشته باشن .استدلال:
منظور از این بند ، جلوگیری از نیاز نرم افزار به مفاهیم نادرستی مثل توافقنامه غیر آشكاره .مستقل بودن مجوز :
قوانین یه برنامه نباید به بخشی از توزیع یه نرم افزار خاص وابسته باشه .در صورتی كه یه برنامه مجددا توزیع بشه ، تموم كسایی كه مجوز برنامه رو دارن باید از همون حقوق نسخه اصلی نرم افزار ، برخوردار باشن .استدلال:
اینجوری از سوء استفاده های دیگه از مجوز جلوگیری می شه .عدم محدودیت برای سایر نرم افزارها :
مجوز نباید تو سایر نرم افزارهایی كه همراه با نرم افزار كد باز توزیع می شن ، ایجاد محدودیت كنه . مثالا یه مجوز نباید بر این نكته تاكید داشته باشه كه تموم برنامه های توزیع شده تو سطح مشابه ، نرم افزار كد باز باشن .استدلال: توزیع كننده های نرم افزار كد باز تو تهیه نرم افزارهاشون حق انتخاب دارن .
عدم وابستگی به فناوری خاص
: مجوز ، باید به گونه ای باشه كه به نوع رابط یا فناوری خاصی وابسته نباشه .استدلال:
تهیه مجوز تنها به معنی موافقت و بستن قرارداد میان صادر كننده جواز و دارنده اونه . ضوابط تهیه و ساخت نرم افزار كد باز كه اصطلاحا click-wrap گفته می شه ، ممكنه با ترتیب و روند اصلی توزیع نرم افزار از قبیل قوانین CD-ROM ها و نحوه دریافت اطلاعات از FTP و غیره ناسازگار باشه چنین مواردی ممكنه مانع استفاده مجدد از كد بشه . مجوزهای سازگار باید امكاناتی رو فراهم كنند كه:1- توزیع مجدد یه نرم افزار از طریق كانالهای غیر وب صورت بگیره كه این كانالها از ضوابط click-wrap پشتیبانی نمی كنن .
2- كد داخلی و یا بخشی از اون كد كه مجددا مورد استفاده قرار گرفته ممكنه تو محیطی بدون رابط گرافیكی ( non-GUI ) اجرا بشه كه طبعا نمی تونه از پنجره های باز شوی محاوره ای پشتیبانی كنه بنابراین باید كه به رابط گرافیكی وابسته نباشه .