طبقهبندی نرمافزارهای آزاد و غیرآزاد(2089 مجموع کلمات موجود در متن) (5609 بار مطالعه شده است) تعاریفی از طبقهبندی نرمافزارهایی که غالباً با مباحث مربوط به نرمافزارهای آزاد تداخل پیدا میکنند، خواهیم داشت. عکس زیر توضیح میدهد که کدام طبقهبندی با دیگری تداخل دارد یا جزیی از طبقهبندی دیگر است.
نرمافزار آزاد
نرمافزار آزاد، نرمافزاری است که به هر فردی اجازهی استفاده، کپی، توزیع، خواه لفظبهلفظ و خواه با اعمال تغییرات و نیز رایگان یا با پرداخت هزینه را میدهد. درواقع، همهی این امکانات مستلزم دسترسی به کد منبع است. تولیدکنندگان و افراد علاقهمند در این حوزه معتقدند که: "اگر کد منبع نرمافزاری در دسترس نباشد، نرمافزار نیست". این یک تعریف ساده از این نرم افزارها بود. اگر برنامهای آزاد باشد، بطور بالقوه میتواند در زمرهی سیستمهای عملیاتی آزاد، نظیر گنو یا نگارش آزاد سیستم گنو/لینوکس قرار گیرد.
راههای مختلفی برای "آزاد" کردن یک برنامه وجود دارد. در ادامه برخی از این راهها توضیح داده شدهاند. آزادی در مقولهی نرمافزار آزاد به معنای Freedom و نه به معنای رایگان و بدون هزینه میباشد.
هنگامی که یک شرکت نرمافزاری اعلام میکند که محصولش یک نرمافزار آزاد است، همیشه شروط توزیع اصلی آن را چک کنید تا مطمئن شوید که کاربران، واقعا، به تمامی آزادیهایی که دلالت بر آزاد بودن نرمافزار دارد، دسترسی دارند.
بسیاری از زبانها دو کلمهی متمایز از هم برای "free" به معنای "آزادی" و "free" به معنای هزینهی صفر دارند. مثلاً، فرانسویها از دو کلمهی "libre" و "gratuit" استفاده میکنند. انگلیسیها از کلمهی "gratis" که به معنای رایگان است، استفاده میکنند، اما این کلمه، صفت متعارفی برای تعریف "آزادی" نیست. نرمافزارهای آزاد، اغلب قابل اطمینانتر از نرمافزارهای غیرآزاد هستند.
نرمافزار بازمتن
اصطلاح بازمتن (Open Source) توسط بعضی افراد به همان معنای نرمافزار آزاد، با اندکی تفاوت، به کار میرود. به هر جهت، این نرمافزارها مجوزهایی را میپذیرند که محدودیتهایی روی آنها ایجاد میکند. برخی ترجیح میدهند که اصطلاح "نرمافزار آزاد" را بکار برند، چون به آزادی دلالت دارد؛ چیزی که "بازمتن" ندارد.
نرمافزارPublic Domain
نرمافزار Public domain نرمافزاری است که copyrightشده نیست. اگر کد منبع در دسترس نباشد، حالت خاصی از نرمافزارهای آزاد غیر copyleft پیش میآید؛ به این معنی که ممکن است برخی از نسخهها یا نگارشهای تغییریافتهی آن، به هیچوجه، آزاد نباشند.
در برخی حالات، یک برنامهی قابل اجرا میتواند در زمزهی نرمافزارهای Public domain باشد ولی کد منبع آن در دسترس نباشد. در این حالت، نرمافزار آزاد نیست، چون لازمهی آزاد بودن نرمافزار دسترسی به کد منبع است. درضمن، اغلب نرمافزارهای آزاد جزء public domainها نیستند. کپیرایت هم ندارد؛ در حالیکه دارندگان کپیرایت به طورقانونی، با استفاده از مجوز نرمافزار آزاد، به هر فردی امکان استفاده از نرمافزار را میدهند.
نرمافزار Copylefted
نرمافزار Copylefted نرمافزار آزادی است که شرایط توزیع آن بهگونهای است که افرادی که بخواهند آنرا مجدداً توزیع نمایند، نمیتوانند هیچگونه محدودیت جدیدی، هنگام توزیع مجدد و یا تغییر نرمافزار روی آن اعمال کنند؛ به این معنی که هر نسخهی نرمافزار، حتی اگر تغییر یافته، باید آزاد باشد.
در پروژهی GNU، ما تمامی نرمافزارهایی را که نوشتیم، copyleft کردیم؛ چون هدفمان این بود که به هر کاربر آزادیهایی را که "نرمافزار آزاد" بر آن دلالت دارد، داده باشیم.
Copyleft یک مفهوم عام است؛ برای اینکه یک برنامه، واقعاً، کپیلفت شود، باید از یک مجموعه شرایط خاص توزیع استفاده کنید. راههای ممکن زیادی برای نوشتن شرایط توزیع copyleft وجود دارد، بنابراین، طبق این گفته، مجوزهای زیادی در حیطهی نرمافزار آزاد copyleft میتواند وجود داشته باشد. به هرجهت، در عمل، تقریباً، کلیهی نرمافزارهای copylefted از مجوز عمومی گنو (GNU General Public License) استفاده میکنند. وجود دو گونهی متفاوت مجوز Copyleft، معمولاً، غیر قابل استعمال با یکدیگر است؛ به عبارت دیگر، تلفیق یک کد با یک مجوز و کد دیگری با مجوز دیگر غیرقانونی است؛ بنابراین بهتر است که افراد، برای مجموعهی این گونه نرمافزارها از یک مجوز copyleft واحد استفاده کنند.
نرمافزار Non-copylefted
نرمافزار آزاد non-copylefted، بر خلاف copylefted، اجازهی توزیع مجدد، تغییر و نیز اضافهکردن محدودیتهای جدید را به کاربر میدهد.
اگر برنامهای آزاد باشد اما copylefted نباشد، ممکن است برخی از نسخهها یا نگارشهای تغییریافتهی آن به هیچوجه آزاد نباشند. یک شرکت نرمافزاری میتواند برنامهای را، با یا بدون تغییرات، کامپایل کند و فایل قابل اجرای آن را به عنوان یک محصول نرمافزاری اختصاصی توزیع نماید.
X Window System نمونهای از این برنامهها است. کنسرسیوم X، X11 را با شرایطی توزیع نموده که درحال حاضر، نرمافزار آزاد non-copylefted میباشد. اگر بخواهید، میتوانید یک نسخه از آن را که همان شرایط توزیع را دارد، به صورت آزاد دریافت کنید. البته نگارشهای غیرآزادی نیز دارد که ایستگاههای کاری عمومی و بوردهای گرافیکی PC، صرفاً با نگارشهای غیرآزاد آن، درست، کار میکنند. اگر از این سختافزارها استفاده میکنید، X11 نرمافزار آزادی برای شما نمیباشد. تولیدکنندگان X11 تا مدتها این برنامه را غیرآزاد کرده بودند.
نرمافزار GPL-covered
GNU GPL یکی از مجموعه مجوزها، برای یک برنامهی copyleft، با شرایط توزیع خاص میباشد. پروژهی GNU از این مجوز، به عنوان تبیین شرایط توزیع، برای اغلب نرمافزارهای GNU میباشد.
سیستم گنو
GNU System یک سیستم عملیاتی کاملاً آزاد شبه یونیکس میباشد. یک سیستم عملیاتی شبه یونیکس از چندین برنامه تشکیل شده است. سیستم گنو شامل همهی نرمافزارهای گنو میباشد؛ درست مشابه بسیاری از پکیجهای دیگر مثل سیستم X Windows و TeX که، اصولاً، نرمافزار گنو نیز نیستند.
ما از سال 1984 مؤلفههای سیستم گنو را طراحی و جمع"آوری نمودهایم؛ اولین نسخهی آزمایشی تحت عنوان "سیستم گنوی کامل" در 1996 بیرون آمد. در سال 2001 سیستم گنوی Hurd با قابلیت اطمینان بالایی شروع به کار کرد. به مرور زمان، سیستم گنو/لینوکس، یکی از شاخههای نورستهی سیستم گنو که از لینوکس به عنوان کرنل استفاده میکرد، یکی از سیستمهای موفق در دههی 90 شد.
از آنجاییکه هدف گنو آزاد بودن است، هر مؤلفهی واحدی در سیستم گنو باید آزاد باشد. هر یک از این مؤلفهها میتواند آزاد نباشد. به هر حال از نرمافزارهای آزاد non-copylefted، مثل سیستم X Windows میتوانیم و استفاده هم میکنیم.
برنامههای گنو
“GNU programs” یا همان برنامههای گنو را میتوان با “GNU software” یا نرمافزار گنو معادل دانست. به یک برنامه، برنامهی گنو گوییم، هرگاه یک نرمافزار گنو باشد. همچنین میتوانیم به آن “GNU package” یا پکیج گنو گوییم.
نرمافزار گنو
“GNU software” یا نرمافزار گنو، نرمافزاری است که تحت حمایت "پروژهی گنو" منتشر شدهاست. اگر برنامهای "نرمافزار گنو" باشد، به آن "برنامهی گنو" یا "پکیج گنو" نیز گوییم. فایل README یا راهنمای هر پکیج گنو باید این موضوع را خاطرنشان کرده باشد.
اغلب پروژههای گنو، و نه همهی آنها، copyleft میباشند؛ به هرحال همهی نرمافزارهای گنو باید "نرمافزار آزاد" باشند.
برخی از نرمافزارهای گنو، توسط کارمندان بنیاد نرمافزار آزاد نوشته میشوند، اما اکثر آنها با مشارکت داوطلبان و علاقهمندان انجام میگیرند. به برخی از این نرمافزارهای مشارکتی، توسط همین بنیاد، و برخی دیگر نیز توسط مشارکتکنندگانی که این برنامهها را نوشتهاند، کپیرایت داده میشود.
نرمافزار نیمهآزاد (Semi free)
نرمافزار نیمهآزاد نرمافزاری است که آزاد نیست، اما همراه با اجازهها و دسترسیهای خاص، جهت استفاده، نسخهبرداری، توزیع و تغییر (شامل توزیع نگارشهای تغییریافته)، با اهداف غیرانتفاعی، بیرون میآید. PGP یکی ار نمونههای این نرمافزارها میباشد.
نرمافزارهای نیمهآزاد، انصافاً، از نرمافزارهای اختصاصی، که در ادامه در مورد آن نیز صحبت خواهیم نمود، بهتر هستند، اما همچنان مشکلات و محدودیتهایی را به دوش میکشند که باعث میشود نتوانیم از آنها در یک سیستم عملیاتی آزاد استفاده کنیم.
محدودیتهای کپیلفت به این علت طراحی شدهاند که از آزادیهای اساسی و پایهی کاربران حمایت کنند. برای ما، تنها توجیه وجود هر محدودیت در استفاده از یک برنامه جلوگیری از افزودن محدودیتهای بیشتر، توسط دیگر افراد، در برنامه میباشد. برنامههای نیمهآزاد این محدودیتهای اضافی را برای اهداف کاملاً خودخواهانهی خود(!) دارند.
به حساب آوردن این گونه نرمافزارها در یک سیستم عملیاتی آزاد امری غیرممکن است؛ چون شرایط توزیع یک سیستم عملیاتی با شرایط توزیع همهی برنامههایی که در آن سیستم قرار دارند، ارتباط مستقیم دارد. اضافه کردن یک برنامهی نیمهآزاد در این سیستم همهی سیستم را نیمهآزاد خواهد ساخت. به دو دلیل نمیخواهیم این موضوع رخ دهد:
۱. ما باور داریم که نرمافزار آزاد باید برای همه، شامل مرکز کسب و کار و نه صرفاً برای علاقهمندان و مراکز آموزشی، آزاد باشد. مثلاً میخواهیم از یک مرکز کسب و کار دعوت به عمل آوریم که به طور کامل سیستم گنو را به کار برد؛ در اینجا ما دیگر نمیتوانیم سیستمی را که حتی یک برنامهی نیمهآزاد دارد، برای این منظور پیشنهاد دهیم.
۲. توزیع تجاری سیستمهای عملیاتی آزاد، شامل سیستم گنو/لینوکس، از اهمیت زیادی برخوردارند و کاربرن از تسهیلات توزیع CD-ROMهای تجاری استقبال و تقدیر زیادی به عمل میآورند. وجود یک برنامهی نیمهآزاد در این سیستمها باعث از دست دادن این جایگاه خواهد شد.
بنیاد نرمافزار آزاد، شخصاً، غیرتجاری است، و از این رو ما باید اجازهی استفاده از یک برنامهی نیمهآزاد را، به طور داخلی، بدهیم. اما ما این کار را نمیکنیم، چون در آن صورت تلاشهایمان برای فراهمآوردن و به شمار آوردن یک برنامه در مجموعهی گنو به نتیجهای نخواهد رسید.
اگر کاری وجود دارد که در انجام آن نیاز به نرمافزار حس میشود، و تا وقتیکه یک برنامهی آزاد برای انجام آن موجود میباشد، گنو رخنهای دارد. ما باید به علاقهمندان خاطرنشان کنیم که "ما هنوز ،در گنو، برنامهای برای انجام این کار نداشتهایم، بنابراین امیدواریم که شما نمونهای از آن بنویسید". اگر ما خودمان از یک برنامهی نیمهآزاد برای انجام این کار استفاده کنیم، آنچه که تاکنون گفتهایم زیر سؤال میرود؛ عملی شدن نوشتن یک برنامهی آزاد و جایگزین، مستلزم عزم و تلاش ما، و دیگر افرادی که نقطهنظرات ما را میشنوند، میباشد.
نرمافزار خصوصی (Private)
نرمافزار خصوصی یا سفارشی برای یک کاربر خاص (عموماً یک مؤسسه یا شرکت) تولید میشوند. آن کاربر آنرا برای شخص خود نگه میدارد، از آن نیز استفاده مینماید، و آن را، به طور عمومی، خواه با کد منبع و خواه به فرم باینری، منتشر نمیکند.
از یک جهت میتوان گفت که یک برنامهی خصوصی، یک نرمافزار آزاد است و آن، هنگامی است که به کاربر منحصر بفرد خودش تمامی حقوق و دسترسی ها را بدهد. به هرحال، در حالت کلی این قاعده صدق نمیکند.
به طور کلی، اینکه یک برنامه تولید شود ولی به طور عمومی منتشر نشود، کار اشتباهی نیست. برخی اوقات، وقتی که یک برنامه خیلی مفید و کاربردی است، مضایقه از انتشار آن، انصافاً، کار انسانپسندانهای نیست؛ هرچند که، اغلب برنامهها چندان عجیب و حیرتآور نیستند و این مضایقه، عملاً آسیبرسان نیست. بنابراین، هیچ تناقضی بین تولید نرمافزار خصوصی یا سفارشی و اصول جنبش نرمافزار آزاد وجود ندارد. تقریباً همهی استخدامهای برنامهنویسان برای تولید نرمافزار سفارشی است؛ از این رو غالب کارهای برنامهنویسی میتوانند به روشی انجام گیرند که با جنبش نرمافزار آزاد سازگار باشد.
نرمافزار اختصاصی (Propietary)
نرمافزار اختصاصی نرمافزاری است که نه آزاد است نه نیمهآزاد. استفاده از آن، توزیع مجدد آن یا تغییر آن ممنوع میباشد، یا به کسب اجازه نیاز دارد و یا محدودیتهای اعمالی روی آن، آنقدر زیاد است که عملاً نمیتوان، آزادانه، با آن کاری انجام داد. بنیاد نرمافزار آزاد از این قانون متابعت میکند که ما نمیتوانیم هیچ برنامهی اختصاصی را روی کامپیوترمان نصب نماییم؛ البته به جز برنامههای موقتی که با اهداف خاصی، به عنوان جایگزینی برای یک برنامهی آزاد، نوشته میشوند. گذشته از این بحثها، کاملاً محسوس است که هیچ توجیه قابل قبولی برای عدم نصب یک برنامهی اختصاصی وجود ندارد.
Freeware
اصطلاح freeware تعریف روشن و قابل قبولی ندارد، اما، به طور معمول، برای پکیجهایی است که اجازهی توزیع مجدد، اما بدون اعمال تغییرات، را میدهند. در ضمن کد منبع آنها نیز در دسترس نمیباشد. این پکیجها نرمافزار آزاد نیستند، در نتیجه لطفاً، اصطلاح “freeware” را به جای “free software” به کار نبرید.
Shareware
Shareware نرمافزاری است که به افراد امکان توزیع مجدد نسخهها را میدهد، اما اظهار دارد که اگر فردی بخواهد به استفاده از نسخهها ادامه دهد لازم است هزینهای به عنوان حق مجوز بپردازد. Shareware نرمافزار آزاد نیست، حتی نیمهآزاد هم نیست. دو دلیل برای توضیح این نکته داریم:
۱. در اغلب sharewareها، کد منبع در دسترس نیست؛ از این رو، به هیچ وجه، نمیتوانید برنامه را تغییر دهید.
۲. sharewareها امکان ایجاد یک نسخه و نصب آن را، بدون پرداخت حق مجوز، به کاربر، و حتی به افراد سفارشدهنده در فعالیتهای غیرانتفاعی، نمیدهند. (در عمل، اغلب افراد این شرط توزیع را نادیده میگیرند، اما این شرایط اجازهی این کار را نمیدهد.)
نرمافزار تجاری (Commercial)
نرمافزار تجاری، نرمافزاری است که توسط یک مرکز تجاری (کسب و کار)، با هدف کسب پول از فروش و استفادهی نرمافزار، تولید میشود. “Commercial” و “Propietary” یک چیز نیستند! اغلب نرمافزارهای تجاری "اختصاصی" نیز هستند، اما نرمافزارهای آزاد تجاری و نرمافزارهای غیرآزاد غیرتجاری نیز وجود دارند.
به عنوان مثال، GNU Ada همیشه تحت مجوز GNU GPL توزیع میشود، و هر نسخه از آن نرمافزار آزاد میباشد؛ اما تولیدکنندگان آن قراردادهای پشتیبانی را میفروشند. هنگامیکه فروشندگان آنها با مشتریان آینده صحبت میکنند، گهگاه مشتریها اضهار میکنند: "ما با یک کامپایلر تجاری اطمینان بیشتری داریم". فروشندگان پاسخ میدهند: "GNU Ada یک کامپایلر تجاری است و نرمافزاری آزاد میباشد.
شما نیز میتوانید سطح آگاهی افراد را با بیان این موضوع که نرمافزار آزاد تجاری نیز امکانپذیر است، بالاتر ببرید. این کار نیز مسلماً مستلزم تلاشهایی است، نه اینکه بگویید "Commercial" در حالیکه منظورواقعیتان “Proprietary” است.
منبع:
http://www.gnu.org/philosophy/categories.html
ترجمه: زهرا احمدی
Email: zahmadi@gmailcom
|