آشنایی با نرمافزارهای آزاد و متنباز
ریچارد استالمن پایهگذار جنبش نرمافزار آزاد و موسس بنیاد نرمافزارهای آزاد دربارهی نرمافزارهای آزاد میگوید:
«در نرمافزارهای آزاد، مسئلهی مهم اختیار است نه بها.»
بهگونهای روشن، باید نشان دهیم که چه مواردی در مورد یک نرمافزار ویژه
باید صدق کند تا به عنوان یک نرمافزار آزاد شناخته شود. قبلاً گفتیم که
در نرمافزار آزاد موضوع آزادی است، نه قیمت. برای درک بهتر باید معنای
واژهی «free» را در نظر بگیرید. بحث کلی نرمافزار آزاد، در مورد آزادی
کاربران برای اجرا، نسخهبرداری، توزیع، بررسی، تغییر و بهبود دادن
نرمافزار میباشد. بهگونهی دقیقتر نرمافزار آزاد، به چهار گونه آزادی
برای کاربران یک نرمافزار اشاره میکند:
آزادی صفرم: آزادانه بتوان نرمافزار را برای هر هدفی اجرا و استفاده نمود.
آزادی یکم: آزادانه بتوان نحوهی کار نرمافزار را بررسی کرد و آن را
ویرایش نمود. دسترسی به کد منبع یک پیششرط برای این آزادی میباشد.
آزادی دوم: آزادانه بتوان از آن نسخهبرداری نمود.
آزادی سوم: آزادانه بتوان آن را بهبود بخشید و نسخهی بهبود یافته را منتشر کرد، به نحوی که دیگران از آن بهره ببرند.
روشن است این آزادیها، نرمافزارهای آزاد را از دیگر نرمافزارها تفکیک میکند.
هنگامی
برنامهای یک نرمافزار آزاد به شمار میآید که کاربرانِ آن همهی این
آزادیها را داشته باشند. بنابراین باید برای توزیع مجدد نسخههایی از آن،
خواه با اصلاحات و تغییرات و خواه بدون آن، خواه رایگان و خواه در ازای
دریافت وجهی، برای هر شخصی و در هر مکانی، آزاد باشید. آزاد بودن برای
انجام این کارها به این معنی است که شما مجبور به درخواست و پرداخت هزینه
برای مجوز نیستید.
باید این آزادی را نیز داشته باشید تا در برنامه
تغییراتی ایجاد کنید و حتی بدون اشاره به وجود آنها، از آنها بهگونهی
خصوصی و برای کار خود استفاده کنید. اگر هم تغییرات خود را منتشر کردید،
نباید ملزم به اعلام آن به شخص خاص و یا به شیوهای ویژه باشید.
آزادی
برای استفاده از برنامه، به معنای آزادی هر شخص و یا سازمانی برای استفاده
از آن برنامه بر روی هر سیستم رایانهای، برای هر کاری، و بدون نیاز به هر
گونه ارتباط بعدی با توسعهدهنده و یا هر نهاد خاصی است.
آزادی برای
توزیع مجدد نسخههایی از برنامه باید علاوه بر کد منبع، شامل شکل دودویی و
اجرایی برنامه برای هر دو نسخهی تغییر یافته و تغییر نیافته باشد. انتشار
برنامهها درقالب اجرایی، برای سیستمعاملهای آزادی مانند لینوکس، که به
راحتی نصب میشوند، ضروری است. اگر هیچ روشی برای تولید شکل دودویی و
اجرایی برای برنامهی ویژهای وجود نداشته باشد، نگران نباشید. زیرا بعضی
از زبانهای برنامهنویسی مانند پرل (Perl) از آن ویژگی پشتیبانی
نمیکنند. اما باید این آزادی را داشته باشید تا اگر روشی برای ارائهی
شکل دودویی و اجرایی برنامه پیدا کردید، آن برنامه رادوباره به این دو
قالب منتشر کنید.
روشن است بهمنظور داشتن آزادی برای ایجاد تغییر و
انتشار نسخههای بهبود یافته، باید به کدهای منبع نرمافزار دسترسی داشته
باشید. بنابراین دسترسی به کد منبع یک شرط ضروری برای نرمافزار آزاد است.
برای واقعی بودن، عملی و اجرایی شدنِ این آزادیها، آنها باید
مادامیکه هیچ کار اشتباه و برخلاف این آزادیها انجام ندادهاید، غیر
قابل فسخ و قطعی بمانند. اگر توسعهدهندهی نرمافزار قادر باشد مجوز
نرمافزار بدون این که شما سبب این کار شوید، باطل کند، این یک نرمافزار
آزاد نیست.
با این حال برخی قوانین ویژه دربارهی نحوهی انتشار
نرمافزار آزاد، هنگامی که با آزادیهای پایه در تضاد نباشند، قابل قبول
هستند. برای نمونه کپیلفت (copyleft) به بیان ساده و غیر رسمی قانونی است
که به موجب آن شما به هنگام نشر مجدد نرمافزار، نمیتوانید محدودیتهایی
به آن اضافه کنید تا آزادیهای پایه را برای افراد دیگر نادیده بگیرید.
این قانون نه تنها با آزادیهای پایه در تضاد نیست بلکه از آنها پاسداری
نیز میکند.
بنابراین ممکن است با پرداخت هزینه و یا بدون پرداخت آن،
نسخههایی از نرمافزاری آزاد را بدست آورده باشید. اما صرفنظر از اینکه
چگونه نسخهها را بدست آوردهاید، همیشه این آزادی را دارید تا نرمافزار
را نسخهبرداری کنید، تغییر دهید و یا حتی نسخههایی از آن را بفروشید.
نرمافزار
آزاد به معنای غیر تجاری بودن آن نیست. یک برنامهی آزاد باید برای
استفادهی تجاری، توسعهی تجاری و انتشار تجاری در دسترس باشد. توسعهی
تجاری نرمافزار آزاد دیگر غیر معمول نیست، بلکه برخی از چنین
نرمافزارهای آزاد تجاری، بسیار مهم نیز هستند.
قوانین مربوط به
نحوهی بستهبندی یک بستهی تغییر یافته نیز در صورتیکه بهگونهی موثر
آزادی شما برای انتشار نسخهی تغییر یافته را منع نکنند، قابل قبول هستند.
قوانینی مانند «اگر برنامه را به این روش در دسترس قرار دادید، باید
بستهی تغییریافته را نیز به همان روش در دسترس قرار دهید»، با همان شرایط
قبلی میتوانند قابل قبول باشند. به یاد داشته باشید که چنین قانونی آزادی
شما برای تصمیمگیری برای انتشار و یا عدم انتشار برنامه باقی میگذارد.
همچنین برای اجازهنامه قابل قبول است تا لازم بدارد که اگر شما یک نسخهی
تغییر یافته از برنامه را منتشر کردید و توسعهدهندهی قبلی نسخهای از آن
را درخواست نمود، باید آن را در اختیار او قرار دهید.
در پروژهی گنو،
از «کپیلفت» برای حفاظت قانونی از این آزادیها برای هر شخصی استفاده
میشود. اما نرمافزارهای آزاد غیر کپیلفتی نیز وجود دارند. معتقدیم که
دلایل مهمی برای اینکه چرا مناسب است از کپیلفت استفاده شود، وجود
دارند، اما اگر برنامهی شما نرمافزار آزاد غیر کپیلفتی باشد، همچنان
میتوان از آن استفاده کرد.
گاهی اوقات مقررات نظارتی صادرات و مصوبات
تجاری دولت آزادی شما برای توزیع بینالمللی نسخههای برنامه را تحت تاثیر
قرار خواهند داد. توسعهدهندگان نرمافزار این قدرت را ندارند تا این
محدودیتها را حذف کنند و یا زیر پا بگذارند، اما کاری که میتوانند و
باید انجام دهند این است که از تحمیل این محدودیتها به عنوان شرایط
استفاده از برنامه سر باز زنند. به این ترتیب، این محدودیتها بر
فعالیتها و اشخاص خارج از حوزهی قضائی این دولتها تاثیری نخواهد داشت.
اغلب
اجازهنامههای نرمافزار آزاد بر اساس کپیرایت میباشند، ولی برای آن
دسته از الزاماتی که بواسطهی کپیرایت میتوانند تحمیل شوند،
محدودیتهایی وجود دارد. اگر یک اجازهنامهی مبتنی بر کپیرایت آزادی را
به روشهایی که در بالا توضیح داده شد محترم بشمارد، بعید به نظر میرسد
که مشکلات دیگری که هرگز پیشبینی نمیکنیم بهوجود بیاید، گرچه گهگاه این
اتفاق میافتد. اما بعضی از اجازهنامههای نرمافزار آزاد بر اساس
قراردادها میباشند، و قراردادها میتوانند شمار بیشتری از محدودیتهای
ممکن را تحمیل کنند. این بدان معناست که راههای بیشماری وجود دارند تا
باعث شود چنین اجازهنامهای به طرز غیر قابل قبولی محدودکننده و غیر آزاد
باشد.
نمیتوانیم همهی محدودیتهای «قراردادها» که غیر قابل قبول
هستند فهرست کنیم. اگر یک اجازهنامهی مبتنی بر قرارداد، کاربر را به یک
روش غیر معمول محدود کند و آن محدودیت به عنوان یک عمل قانونی ذکر نشده
باشد، ممکن است آن را نرمافزاری غیر آزاد تشخیص دهیم.
هنگامیکه
دربارهی نرمافزار آزاد صحبت میشود بهتر است تا از به کار بردن عباراتی
مانند «هدیه دادن» و یا «بطور رایگان» خودداری شود، زیرا این عبارات این
مفهوم را میرسانند که موضوع در مورد بها استو نه آزادی. بعضی عبارات
معمول مانند «نسخهبرداری غیر قانونی» مفاهیمی در بردارند که امیدواریم
شما بر آنها صحه نگذارید. برای بحث در مورد این عبارات بخش «کلمات و
عبارات گیجکننده که اجتناب از آنها با ارزش است» را در صفحهی گنو ببینید. در این وبگاه ترجمهای از مجوزنامهی نرمافزارهای آزاد به زبانهای مختلف وجود دارد.
در
نهایت به یاد داشته باشید که معیارها و ضوابطی مانند آنها که در تعریف
نرمافزار آزاد ذکر شدهاند، برای تفسیر به تفکری دقیق نیاز دارند. برای
تصمیمگیری در مورد اینکه آیا اجازهنامهی نرمافزار خاصی صلاحیت
اجازهنامهی نرمافزار آزاد بودن را دارد، آنرا بر مبنای همین ضوابط در
نظر میگیریم تا تصمیم بگیریم که آیا معنی و مفهوم آن به خوبی کلمات و
عبارات در آن، مناسب هست. اگر اجازهنامهای شامل موارد نامعقول باشد، آن
را رد میکنیم، حتی اگر آن مورد را در این معیارها پیشبینی نکرده باشیم.
بعضی اوقات درخواستهای یک اجازهنامه پیآمدی پیش میآورد که قبل از
اینکه تصمیم بگیریم آیا این درخواستها قابل قبول هستند، تفکر بسیاری شامل
بحث و مذاکره با یک وکیل را مطالبه میکند. هنگامیکه دربارهی یک موضوع
جدید به نتیجه میرسیم، غالباً این معیارها را بهروز میکنیم تا راحتتر
ببینید که چرا اجازهنامههای ویژه صلاحیت دارند و یا نه.
اگر در نظر
دارید تا یک اجازهنامهی جدید بنویسید، با آدرس بنیاد نرمافزار آزاد
تماس بگیرید. انبوهی اجازهنامههای مختلف نرمافزار آزاد، به معنی کارهای
زیاد انجام شده برای کاربران در جهت درک اجازهنامهها میباشد. ممکن است
ما بتوانیم به شما کمک کنیم تا اجازهنامهی نرمافزار آزادی را پیدا کنید
که نیازهای شما را برآورده میکند. اگر این روش ممکن نبود و به یک
اجازهنامهی جدید نیاز داشتید، با کمک بنیاد نرمافزارهای آزاد میتوانید
مطمئن باشید که اجازهنامهتان، واقعا یک اجازهنامهی نرمافزار آزاد هست
و از مشکلات عملی گوناگون اجتناب کنید.
گروه دیگری استفاده از عبارت
«متنباز» را برای رساندن مفهومی نزدیک به نرمافزار آزاد، شروع کردهاند.
ما عبارت نرمافزار آزاد را ترجیح میدهیم، زیرا به محض شنیدن آزادی را به
ذهن متبادر میکند و نه بها را