تبليغاتX
خیال روی تو در هر طریق همره من است ...

آشنایی با مفهوم Open Source

كدباز تنها به معنی دسترسی به كد منبع نیست . مراحل تهیه نرم افزار كد باز باید تابع ضوابطی باشه كه درموردشون توضیح میدیم :

توزیع رایگان و متوالی :

مجوز هیچ وقت نباید تو فروش نرم افزار یا ارائه مجانی اون به عنوان جزئی از یه مجموعه نرم افزاری كه شامل برنامه هایی از منابع مختلفه ، محدودیت ایجاد كنه . به علاوه این مجوز فروش ، نباید به كسب امتیاز یا دستمزد نیاز داشته باشه .

استدلال :

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

كد منبع( Source Code ) :

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

استدلال :

ما نیازمند دستیابی به یه كد مشخص هستیم چون بدون تغییر اون ، قادر به تكمیل برنامه مربوطه نخواهیم بود . از اونجا كه هدف ما ایجاد سهولت تو روند تكامل برنامس ، بنابراین اصلاح اون باید به سادگی صورت بگیره .

استنتاج :

مجوز برنامه بایدامكان اصلاحات و استنتاج و همچنین امكان تكثیر كد رو تحت همون اسم مجوز اصلی نرم افزار ، فراهم كنه .

استدلال:

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

انسجام با كد اصلی :

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

استدلال:

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

در نتیجه ، یه مجوز كد باز باید تضمین كنه كه كد منبع به سادگی تو دسترس متقاضی قرار می گیره ، اما ممكنه لازم باشه كه كد به صورت یك كد پایه و اصلی به همراه جزئیات به شكل فایل ترمیمی توزیع بشه . در این صورت ، تغییرات غیررسمی تو دسترس قرار می گیره ولی از كد اصلی به سادگی قابل تشخیص هستند .

عدم تبعیض میان مردم و گروه ها :

یه مجوز نباید میون مردم تفاوتی قائل بشه.

استدلال:

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

عدم تبعیض میان زمینه های فعالیتی :

یه مجوز نباید هیچ فردی رو تو بهره گیری از یه برنامه تو زمینه خاصی محدود كنه . مثالا : مجوز نباید به كارگیری برنامه رو فقط در زمینه های تجارت یا تحقیقات ژنتیكی محدود كنه .

استدلال:

هدف اصلی ، جلوگیری از اعمال ترفندهاییه كه با استفاده از مجوز ، مانع به كارگیری كد باز در زمینه های تجاری می شن .

توزیع مجوز :

قوانین یه برنامه ، باید برای تمام كسایی كه برنامه براشون توزیع مجدد شده ، به كار گرفته شه ، بدون اینكه نیاز به دریافت مجوز دیگه ای داشته باشن .

استدلال:

منظور از این بند ، جلوگیری از نیاز نرم افزار به مفاهیم نادرستی مثل توافقنامه غیر آشكاره .

مستقل بودن مجوز :

قوانین یه برنامه نباید به بخشی از توزیع یه نرم افزار خاص وابسته باشه .در صورتی كه یه برنامه مجددا توزیع بشه ، تموم كسایی كه مجوز برنامه رو دارن باید از همون حقوق نسخه اصلی نرم افزار ، برخوردار باشن .

استدلال:

اینجوری از سوء استفاده های دیگه از مجوز جلوگیری می شه .

عدم محدودیت برای سایر نرم افزارها :

مجوز نباید تو سایر نرم افزارهایی كه همراه با نرم افزار كد باز توزیع می شن ، ایجاد محدودیت كنه . مثالا یه مجوز نباید بر این نكته تاكید داشته باشه كه تموم برنامه های توزیع شده تو سطح مشابه ، نرم افزار كد باز باشن .

استدلال:

توزیع كننده های نرم افزار كد باز تو تهیه نرم افزارهاشون حق انتخاب دارن .

عدم وابستگی به فناوری خاص :

مجوز ، باید به گونه ای باشه كه به نوع رابط یا فناوری خاصی وابسته نباشه .

استدلال:

تهیه مجوز تنها به معنی موافقت و بستن قرارداد میان صادر كننده جواز و دارنده اونه . ضوابط تهیه و ساخت نرم افزار كد باز كه اصطلاحا click-wrap گفته می شه ، ممكنه با ترتیب و روند اصلی توزیع نرم افزار از قبیل قوانین CD-ROM ها و نحوه دریافت اطلاعات از FTP و غیره ناسازگار باشه چنین مواردی ممكنه مانع استفاده مجدد از كد بشه . مجوزهای سازگار باید امكاناتی رو فراهم كنند كه:

1- توزیع مجدد یه نرم افزار از طریق كانالهای غیر وب صورت بگیره كه این كانالها از ضوابط click-wrap پشتیبانی نمی كنن .

2- كد داخلی و یا بخشی از اون كد كه مجددا مورد استفاده قرار گرفته ممكنه تو محیطی بدون رابط گرافیكی ( non-GUI ) اجرا بشه كه طبعا نمی تونه از پنجره های باز شوی محاوره ای پشتیبانی كنه بنابراین باید كه به رابط گرافیكی وابسته نباشه .

به نقل از saed2002.persianblog.com
+ نوشته شده در  یکشنبه سی و یکم شهریور 1387ساعت 6:57 بعد از ظهر  توسط سید مهرداد سیدین  | 

 

اصول نرم افزار های متن باز

بسیاری از کاربران تصور می‌کنند که استفاده از نرم‌افزار متن‌باز(open source)، به معنی استفاده کامل و آزاد از کدهای منبع آن نرم‌افزار است، در حالی که باید توجه داشت یک نرم‌افزار متن‌باز الزاما همه کدهای منبع خود را عرضه نمی‌کند. عرضه یک نرم‌افزار متن‌باز باید شامل موارد زیر شود:

 1. عرضه رایگان:

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

 2. کدهای منبع:

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

 3. فعالیت‌های قابل استنتاج:

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

 4. راستی و درستی کدهای منبع:

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

5. عدم ایجاد مشکل برای اشخاص و گروه‌ها:

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

 6. عدم ایجاد مانع برای فعالیت‌های دیگر شرکت‌ها:

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

 7. انتشار مجوز استفاده از نرم‌افزار متن‌باز:

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

 8. مجوز نرم‌افزار متن‌باز نباید به یک محصول ویژه اختصاص داشته باشد:

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

 9. مجوز نرم‌افزار متن‌باز نباید دیگر نرم‌افزارها را محدود کند:

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

 10. هویت مجوز نرم‌افزار متن‌باز باید بر پایه فناور‌ی‌های روز باشد:

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

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

 

منبع: بزرگراه فناوری

+ نوشته شده در  سه شنبه بیست و ششم شهریور 1387ساعت 11:16 قبل از ظهر  توسط سید مهرداد سیدین  |