مقدمه
FOSS یا Free/Open Source Software یعنی نرم افزارهای آزاد و نرم افزارهای کد باز. به عبارتی FOSS نمایانگر دو نوع نرم افزار میباشد یکی نرم افزارهای آزاد (Free) و دیگری نرم افزارهای کد باز (Open Source).
نرم افزارهای آزاد
در مقابل نرم افزارهای آزاد (Free)، نرم افزارهای Proprietary قرار دارند. نرم افزارهای Proprietary آن گونه که در ممالک متمدن رایج است بر اساس اجازهنامههای (License) خاصی منتشر میشوند که این اجازهنامهها کاربر را از هر گونه تغییر در نرم افزار و یا استفاده از آن در مقاصدی به غیر از مقاصد تعریف شده در اجازهنامه آن منع کرده است. مثلا ویندوز ویستا یک نرم افزار Proprietary است. در نتیجه مطابق اجازهنامه ویندوز ویستا حق ندارید بعضی dllهای خاص آن را دستکاری کنید. علاوه بر این حق استفاده از ویندوز ویستا را مثلا در سرور شبکهای با بیش از ۱۰ کاربر ندارید. از طرفی دیگر، نرم افزارهای آزاد را هر طور که دلتان خواست میتوانید دستکاری کرده و به هر منظوری که خواستید میتوانید استفاده کنید. نرم افزارهای آزاد هم میتوانند همچون نرم افزارهای Proprietary پولی باشند. در واقع تنها تفاوت نرم افزار آزاد و نرم افزار Proprietary در آزادی نحوه استفاده از آن است و الا هر دو میتوانند پولی بوده و لزومی ندارد که هیچ کدام از این دو کد باز (Open Source) هم باشند. مثلا مایکروسافت میتواند MS Office را یک نرم افزار آزاد اعلام کرده ولی همچنان در قبال هر نسخه از آن همان پولی قبلی را دریافت کرده، کاربران را از توزیع مجدد آن منع و کد منبع (Source Code) آن را هم به هیچ کسی ندهد. معادل واژه آزاد در انگلیسی یعنی Free واژهای با دو معنا است که یک معنی آن آزاد و آزادی و معنی دیگر آن رایگان است. که البته در اصطلاح Free Software از معنای اول آن یعنی آزادی استفاده شده است. خوشبختانه واژه آزادی در فارسی فقط یک معنی و آن هم معنی درست آن را میرساند.
نرم افزارهای کد باز
نرم افزارهای کد باز یا Open Source همان طور که از اسمشان معلوم است نرم افزارهایی هستند که کاربر به کد منبع آن دسترسی داشته و میتواند کد آن را مشاهده کند. کد باز بودن به معنی رایگان بودن یا آزاد بودن (نرم افزار آزاد بودن) نیست. مثلا ممکن است نرم افزار کد بازی وجود داشته باشد که برای استفاده از آن یا دیدن کد منبعش باید کلی پول بپردازید یا این که ممکن است نرم افزاری وجود داشته باشد که به کد منبع آن دسترسی دارید ولی حق تغییر آن یا استفاده از آن به جز در مقاصد از پیش تعیین شده را نداشته باشید.
تصورات مردم
در مورد مفهوم FOSS آنچه که در ذهن خیلی از کاربران وجود دارد این است که یک نرم افزار FOSS هم رایگان است، هم قانونا مجاز به دستکاری آن هستند، هم میتوانند کپیهای آن را به هر کسی که خواستند بدهند و هم میتوانند آن را به هر قصدی که میخواهند استفاده کنند. با این که این تصورات چندان هم دور از واقعیت نیستند ولی لزومی ندارد که هر نرم افزار کد باز یا آزادی دارای چنین خصوصیاتی باشد. اگر قصد چنین استفادههایی از یک نرم افزار آزاد/کدباز دارید حتما به اجازهنامه (License) آن توجه کافی کنید. خلاصه این که اگر اسم FOSS را شنیدید فورا فکر نکنید که هم اجازه استفاده از کد منبع را دارید، هم پول نمیدهید و هم هر کار که دلتان خواست میتوانید با آن نرم افزار بکنید.
FOSS در ایران
بعضی از بحثهای FOSS در ایران قابل فهم نیستند مثل آن قسمت مربوط به نرم افزارهای Proprietary که راجع به منع کاربران از دستکاری نرم افزار یا منع استفاده از نرم افزار در مقاصد از پیش گفته نشده است. این موضوع به این دلیل است که چنین قوانین سفت و سختی در ایران وجود ندارد و همین معدود قوانین مربوط به نرم افزار و حق تالیف هم با اما و اگرهای فراوان اجرا میشود.
خیلی از قوانین مصروحه در اجازهنامههای نرم افزارهای FOSS مثل GPL به علت عدم رعایت قوانین بین المللی در ایران هیچ محلی از اعراب ندارند. هیچ کس توجهی به این قوانین ندارد و متاسفانه صحبت در این باره برای خیلی از افراد خندهدار است. مثلا بعضی شرکتهای محترم ایرانی یک نرم افزار FOSS را که تحت یک اجازهنامه کپیلفت قرار دارد را پیدا کرده و پس از اعمال تغییراتی به صورت کد بسته (بدون دادن کد منبع آن به بقیه) و با حذف نام تولید کننده اصلی آن به نام خودشان میفروشند! یکی از قوانین مهمی که در مورد تعداد خیلی زیادی از نرم افزارهای آزاد/کدباز وجود دارد این است که شما حق دستکاری و توزیع مجدد یک نرم افزار و کد منبع آن را دارید و حتی میتوانید نسخه تغییر یافته را به فروش برسانید ولی حق ندارید اجازهنامه آن را عوض کنید. یعنی قانونا مجبور هستید نرم افزار خودتان را هم که در واقع تغییر یافته همان نرم افزار قبلی است را تحت همان اجازهنامه و به صورت کد باز منتشر کرده و به دیگران هم اجازه بدهید نرم افزار شما را دستکاری کرده و یا مجددا به صورت آزادانه توزیع نمایند.
پ. ن.: این نوشته حاوی برداشتهای کلی من از FOSS است و همان طور که پیداست متن چندان دقیقی نیست به خصوص در مورد آزادی کپی کردن نرم افزار، توزیع مجدد آن و رابطه آن با اجازهنامههای کپیلفت. سازمانهای زیادی در حوزه FOSS و گسترش آن فعالیت میکنند که پیشنهاد میکنم برای کسب اطلاعات بیشتر و دقیقتر به آنها مراجعه کنید. یکی از این سازمانها IOSN است که به عنوان یکی از زیرمجموعههای سازمان ملل روی مقوله FOSS متمرکز است. ضمنا از همه درخواست میکنم که اگر در این نوشته اشتباهی رخ داده یا جایی از آن را میتوان تکمیلتر کرد به بنده کمک کنند خصوصا در مورد مثالهایی که هر قسمت نیاز دارد.
منابع
Comments
در قسمت نرم افزارهای کدباز نوشته بودی که یک نرم افزار می تواند کدباز باشد ولی رایگان نباشد و یا استفاده کنندگان اجازه دستبرد در کد!!!!! و انتشار مجدد آن را نداشته باشند.
سوال اول. اگر مطالبی که برداشت کردم صحیح است پس چه لزومیبه انتشار کد هست.
پرسش دوم. چطور می شود یک برنامه با چنین سطح دسترسی نوشت که کد باز باشد ، سایرین بتوانند آنرا گسترشدهند و مجبور شوند کد گسترش یافته را با نام اصلی مجددا منتشر کنند. و همچنین آیا می شود برنامه را به روشی منتشر کردکه بندهای اختصاصی به آن اضافه کرد ( مثلا اینکه همه موارد gpl را داشته بشد به علاوه چند بند دیگر )
ممنون از مطلب مفيدی که منتشر کرديد
ممنون جالب بود.
البته در وضيت فعلي بازار نرمافزار ايران، هيچ قانوني محلي از اعراب ندارد..!
جناب حاجلو،
سوال اول: به دلایل خیلی زیادی از جمله اینکه خریدار میخواهد بداند برنامهای که خریده چطور کار میکند. آیا به طور مخفی از اطلاعات خاصی استفاده میکند؟ آیا مسائل امنیتی را رعایت میکند؟ آیا امکانات خاصی در آن موجود است که وی خبر ندارد؟ آیا نویسنده نرم افزار آن طور که میگفته از فلان روش و متودولوژی برای تولید نرم افزار استفاده کرده است؟ و…
سوال دوم، بخش اول: قانون حامی این عمل است. همان قانونی که اگر دزدی خدای نکرده به منزل شما دستبرد زد (و دستگیر شد) او را به زندان خواهد انداخت. البته بعد از قانون، این فرهنگ و اخلاق است که حامی شماست. مثلا چون دزدی در اخلاق، فرهنگ و مذهب نکوهش شده پس لازم نیست همه را به چشم دزد دیده و در گاوصندوق زندگی کنید. البته قانونشکنی همیشه وجود دارد.
سوال دوم، بخش دوم: برنامههای GPL و نوشتههای GFDL را نمیشود با اجازهنامهای غیر از اجازهنامه اصلی منتشر کرد. مگر اینکه شما اجازهنامه GPL را آن طور که دلتان میخواهد ویرایش کرده و برنامههای خودتان را با آن منتشر کنید. البته فقط برنامه خودتان را که اولین بار است منتشر میشود نه برنامههایی که از قبل تحت اجازهنامههای مثل GPL قرار دارند. راه دیگر هم استفاده از برنامههایی هستند که تحت اجازهنامه BSD قرار دارند. اجازهنامه BSD طوری تنظیم شده که شما میتوانید نرم افزارهای تحت آن را تغییر داده و با هر مجوزی که دلتان میخواهد منتشر کنید. حتی میتوانید آن را با یک اجازهنامه کاملا تجاری و به صورت کدبسته منتشر کنید!
در انجمن برنامه نویس بحث خیلی کامل و مفیدی راجع به Open Source، مدل تجاری، GPL و غیره شده:
http://www.barnamenevis.org/forum/showthread.php?t=44316
FOSS is stand for Free and Open Source Software not Free/Open Source Software
جناب ناشناس،
کاش راجع به این موضوع کمی بیشتر توضیح بدهید تا همه ما را از اشتباهات احتمالی در بیاورید.
تا جایی که من میدونم نرمافزار آزاد شامل چهار آزادی الف) استفاده برای کاربردی ب) به اشتراک گذاشتن (توزیع) با افراد دیگر ج) تغییر برنامه و د) توزیع برنامهی تغییریافته میشه که شما فقط به اولی اشاره کردید.
ممنون از تذکر شما راجع به چهار نوع آزادی. چون اطلاعات من در همین حد بود، این طوری نوشتم.