نرمافزار آزاد
نرمافزار آزاد (به انگلیسی: Free software) نرمافزاری است که بههمراه کد منبع توزیع شده و با قوانینی منتشر میشود که آزادی استفاده، مطالعه، ویرایش و انتشار مجددِ کاربران را تضمین میکند.[1][2] نرمافزارهای آزاد معمولاً با همکاری برنامهنویسهای داوطلب بهعنوان یک پروژه بهوجود میآیند. ایدهٔ اصلی نرمافزار آزاد این است که کاربران باید مالک دستگاههای دیجیتالی خود باشند، نه سازندگان دستگاهها.
نرمافزارهای آزاد با نرمافزارهای مالکیتی (مانند مایکروسافت ویندوز) که آزادی کاربر در استفاده، مطالعه، ویرایش یا انتشار مجدد را در درجههای مختلف محدود میکنند، متفاوت هستند. این محدودیتها با در نظر گرفتن مجازاتهایی قانونی برای کاربرانی که قوانین آنها را نقض میکنند، بهوجود میآیند. نرمافزارهای مالکیتی عموماً به صورت بستههای اجراپذیر دودویی و بدون دسترسی به کد منبع فروخته میشوند که جلوی ویرایش و وصلهکردن نرمافزار توسط کاربر را میگیرد و او را برای بهروزرسانی و پشتیبانی به شرکت نرمافزاری تولیدکننده وابسته میکنند. نرمافزارهای آزاد از نرمافزاریهای رایگان که برای استفاده، از کاربر پولی دریافت نمیکنند، نیز متفاوتاند. این نوع نرمافزارها نیز معمولاً تمامی حقوق نرمافزار را برای تولیدکنندهٔ آن محفوظ داشته و جلوی مهندسی معکوس، ویرایش یا توزیع مجدد توسط کاربر را میگیرند.[3] بنابراین موضوع اصلی نرمافزار آزاد، موضوع آزادی است و نه قیمت آن: کاربران آزادند که هر چه میخواهند با نرمافزار انجام دهند. این آزادی شامل انتشار مجدد نرمافزار بهصورت رایگان یا با سود نیز میشود.[4] یعنی نرمافزار آزاد میتواند به صورت رایگان یا در ازای دریافت مبلغی پول در اختیار کاربر قرار بگیرد.
ریچارد استالمن در سال ۱۹۸۵ در زمانی که در حال آغاز پروژهٔ گنو و بهوجود آوردن بنیاد نرمافزارهای آزاد بود، برای اولین بار از عبارت «نرمافزار آزاد» استفاده کرد. براساس تعریف بنیاد نرمافزارهای آزاد کاربران یک نرمافزارِ آزاد، آزاد هستند؛ چون به اجازه گرفتن نیازی ندارند؛ آنها در انجام کارهای دلخواهشان (مانند حق نشر و کپیبرداری) محدود نیستند؛ نیازی به موافقت با هیچ توافقنامهای ندارند؛ و در همان ابتدا نیز با نداشتن کد منبع محدود نبودهاند.[5]
تعریف
طبق تعریف نرمافزار آزاد توسط بنیاد نرمافزارهای آزاد، هر نرمافزاری که آزادیهای زیر را برای کاربرانش فراهم کند به عنوان یک نرمافزار آزاد شناخته میشود:[6]
- آزادی صفرم: کاربران باید اجازه داشته باشند که نرمافزار مورد نظر را برای هر قصد و منظوری اجرا کنند.
- آزادی یکم: کاربران باید اجازه داشته باشند نحوه کار نرمافزار را مطالعه کند و بتواند آن را مطابق با نیازهای خود تغییر دهند. برای رسیدن به این هدف، کدهای منبع نرمافزار باید در اختیار کاربران قرار گیرد.
- آزادی دوم: کاربران باید اجازه داشته باشند نرمافزار را مجدداً منتشر کرده و در اختیار دیگران قرار دهند. این کار میتواند به صورت رایگان یا در ازای دریافت مبلغی پول صورت گیرد.
- آزادی سوم: اگر کاربری، نرمافزار را تغییر داد، باید بتواند آن را مجدداً منتشر کرده و در اختیار دیگران قرار دهد. (در مورد نرمافزارهای کپیلفت، لازم است تا کدهای منبع نرمافزار تغییریافته نیز در اختیار کاربران دیگر قرار گیرد)
همچنین مؤسسه پیشگامان متنباز هم تعریف مشابهی از نرمافزار آزاد ارائه دادهاست. طبق تعریف این مؤسسه، نرمافزار بازمتن، تنها به معنی در دسترس ساختن کدمنبع نیست. علاوه بر این مجوز، باید ویژگیهای زیر را هم داشته باشد:[7]
- نرمافزار باید قابل توزیع مجدد باشد (به صورت رایگان، یا در ازای دریافت مبلغی پول)
- نرمافزار باید شامل کد منبع باشد و این کد منبع را باید بتوان تغییر داد و مجدداً منتشر کرد.
- مجوز نباید بین افراد یا گروهها تبعیض قائل شود.
- مجوز نباید کاربر را برای رسیدن به یک هدف خاص محدود کند.
- مجوز نباید مختص به یک محصول خاص باشد.
- مجوز نباید نرمافزارهای دیگری که به همراه نرمافزار مورد نظر عرضه شدهاند را محدود کرده و تحت تأثیر قرار دهد. برای مثال اگر چند نرمافزار بر روی یک دیسک منتشر شدند، مجوز نباید اصراری بر روی متنبازبودن آنها داشته باشد.
- مجوز نباید تکنولوژی خاصی را محدود کند.
تاریخچه
در اوایل، نرمافزارها به صورت آزاد منتشر میشدند و برنامهنویسان و شرکتها آنها را به صورت آزادانه در اختیار یکدیگر قرار میداند. در اوایل، تجارت رایانه بیشتر مبتنی بر سختافزار بود و شرکتها درآمد خود را بیشتر از راه تولید سختافزار کسب میکردند و هر شرکت، سختافزاری ناسازگار با دیگر شرکتها تولید میکرد. مشتریان، که بیشتر مهندسان و دانشمندان بودند، تشویق میشدند که نرمافزارهای ارائه شده توسط سختافزار را بهبود بخشیده و حتی آن را در اختیار دیگران هم قرار دهند. از آنجا که در آن زمانها سختافزارهای تولید شده توسط شرکتهای مختلف با یکدیگر ناسازگار بود و سختافزار استانداردی وجود نداشت، و همینطور از آنجا که در آن زمان مفسرها و کامپایلرها هنوز جا نیفتاده بودند (که این برنامهها را قابل حملتر میکنند)، شانس کمی وجود داشت که نرمافزار مورد نظر بر روی سختافزار شرکت رقیب هم به خوبی اجرا شود.
رفتهرفته که صنعت رایانه پیشرفت کرد و سختافزارها بیشتر استاندارد شدند و همینطور کامپایلرها و مفسرها پیشرفت کردند، زمینه برای رشد نرمافزارهای انحصاری فراهم شد. با چنین پیشرفتهایی، برنامهها راحتتر از سختافزار یک شرکت به سختافزار شرکت رقیب پورت میشدند و راحت میشد یک نرمافزار را بر روی سختافزارهای مختلفی از شرکتهای مختلف اجرا کرد. بدین ترتیب یک نفر میتوانست نرمافزاری بنویسد که مستقل از سختافزار خاصی عمل کند و بر روی طیف وسیعی از آنها اجرا شود. علاوه بر آن، با استاندارد شدن سختافزارها، تفاوتهای ناچیزی که آنها در کارایی داشتند رفته رفته ناپدید شد. تولیدکنندگان به این نتیجه رسیده بودند که باید به نرمافزار هم به چشم یک وسیله فروشی نگاه کنند. شرکتها شروع به فروش نرمافزارهای خود کردند و دست کاربران خود را برای تغییر در نرمافزارها و انتشار مجدد آنها بستند.[8] به گونهای که در سال ۱۹۶۸ شرکتی به نام ایدیآر (به انگلیسی: ADR) اولین نرمافزار دارای مجوز را عرضه کرد. در سال ۱۹۶۹، شرکت آیبیام به خاطر اینکه به همراه سختافزارهای خود، نرمافزارهای آزاد ارائه میکرد، توسط وزارت دادگستری ایالات متحده آمریکا به از بین بردن کسب و کار و ایجاد یک شرایط ضدرقابتی برای دیگر متهم شد. آیبیام دیگر به همراه سختافزارهای خود نرمافزار ارائه نکرد و بدین ترتیب نرمافزارها و سختافزارها از یکدیگر جدا شدند و فاصله گرفتند.[9]
در سال ۱۹۸۳، ریچارد استالمن از آزمایشگاه هوش مصنوعی و علوم رایانه امآیتی، پروژه گنو را بنیان نهاد. او که از تغییر فرهنگ در صنعت رایانه و کاربرانش ناامید شده بود، قصد داشت سیستمعاملی به نام گنو را به صورت یک نرمافزار آزاد توسعه دهد. در ژانویه ۱۹۸۴ توسعه سیستمعامل گنو آغاز گشت و بنیاد نرمافزارهای آزاد در اکتبر ۱۹۸۵ بنیان نهاده شد. در سال ۱۹۸۹، اولین نسخه از اجازهنامه همگانی گنو منشتر شد.[10] البته پروانه عمومی همگانی گنو اولین پروانه نرمافزار آزاد نبود و قبل از آن پروانههای نرمافزار آزاد دیگری مانند پروانه بیاسدی در سال ۱۹۸۸ عرضه شده بودند. تاکنون پروانههای نرمافزار آزاد زیادی توسط افراد و شرکتهای مختلف منتشر شدهاست که از این میان میتوان به پروانه امآیتی، پروانه آپاچی، پروانه آیاسسی، پروانه همگانی موزیلا و ... اشاره کرد.
در سال ۱۹۹۷، اریک ریموند مقالهای با نام کلیسای جامع و بازار را منتشر کرد و در آن به بررسی اصول نرمافزارهای آزاد و مزایای آنها پرداخت. این مقاله به شدت مورد توجه قرار گرفت و یکی از دلایلی بود که شرکت ارتباطات نتاسکیپ، کد منبع مرورگر وب خود را به صورت نرمافزار آزاد منتشر کرد. این کار باعث شد تا شرکتهای دیگری هم به نرمافزارهای آزاد توجه نشان دهند. کدهای منبع نتاسکیپ، بعدها اساس توسعه مرورگر فایرفاکس و برنامه تاندربرد قرار گرفت.[11]
مسئله نامگذاری
در زبان انگلیسی، کلمه Free معانی متفاوتی همچون آزادی، رایگان بودن و … دارد. عدهای بر این عقیده بودند که ممکن است این کلمه باعث کژفهمی شده و باعث شود مردم به نرمافزارهای آزاد، به چشم نرمافزارهای رایگان نگاه کنند. این در حالی است که یک نرمافزار آزاد، لزوماً رایگان نیست. آنها در سال ۱۹۹۸ کمپین دیگری به نام «نرمافزارهای متنباز» (به انگلیسی: Open Source) را تشکیل دادند تا با تأکید بیشتر بر روی مدل توسعه و مسائل تکنیکی، به جای مسائل فلسفی و اخلاقی، مردم و شرکتها را هر چه بیشتر به استفاده از نرمافزار آزاد تشویق کنند. تقریباً هر دو مفهوم، اشاره به یک چیز دارند و یک نرمافزار متنباز، نرمافزار آزاد هم هست (و برعکس)، اما طرفداران ایده نرمافزارهای متنباز، آن را روشی برای توسعه نرمافزارهای بهتر معرفی میکنند و تأکید کمتری بر جنبش اجتماعی و فلسفه پشت این گونه نرمافزارها دارند.[12] طبق گفته مؤسسه پیشگامان متنباز (که توسط طرفداران ایده نرمافزار متنباز به وجود آمده)، عبارت «نرمافزار آزاد» واژهای قدیمیتر است و به گونهای منعکسکننده نام بنیاد نرمافزارهای آزاد است، سازمانی که در سال ۱۹۸۵ برای محافظت و ترویج نرمافزارهای آزاد به وجود آمد؛ با اینکه بنیانگذاران ایده متنباز هم از توسعه و ترویج نرمافزارهای آزاد حمایت میکنند، اما در مورد چگونگی ترویج آنها با بنیاد نرمافزارهای آزاد موافق نیستند و اعتقاد دارند که آزادی نرمافزار در درجه اول یک امر عملی است تا ایدئولوژیکی.[13]
پروانههای نرمافزار آزاد
نرمافزارهای آزاد به همراه پروانههایی عرضه میشوند که این پروانه آزادیهای نام برده شده را برای کاربران تضمین میکند. از جمله پروانههای نرمافزار آزاد میتوان به پروانه نرمافزار پروانه عمومی همگانی گنو، بیاسدی، پروانه امآیتی، پروانه آیاسسی و ... نام برد. این اجازهنامهها تفاوتهایی با یکدیگر دارند و هر کدام توسط افراد و شرکتهای خاصی برای اهداف خاصی منتشر شدهاند. یک دستهبندی کلی برای پروانههای نرمافزار آزاد این است که آیا آنها به صورت کپیلفت هستند یا نه. پروانههایی که کپیلفت هستند، مانند پروانه عمومی همگانی گنو، تأکید دارند که نسخههای مشتق شده از نرمافزار هم باید به صورت نرمافزار آزاد منتشر شوند. مجوزهای غیر کپیلفت تأکیدی بر روی این مسئله ندارند و نسخههای مشتق شده از این گونه نرمافزارها را میتوان آزادانه به هر شکل دلخواهی، چه به صورت نرمافزار آزاد و چه به صورت نرمافزار انحصاری منتشر کرد.[15] چنین مجوزهایی را اصطلاحاً «سهلگیرانه» (به انگلیسی: permissive) مینامند. از جمله رایجترین پروانههای کپیلفت، پروانه پروانه عمومی همگانی گنو و از جمله رایجترین پروانههای غیر کپیلفت، پروانه بیاسدی و پروانه امآیتی است. امروزه هر دو دسته از این پروانهها به صورت گسترده توسط پروژههای مختلف مورد استفاده قرار میگیرند. برای مثال، هسته لینوکس از پروانه پروانه عمومی همگانی گنو[16] و پروژه فریبیاسدی از پروانه بیاسدی استفاده میکنند.[17]
مسئله دیگر در مقایسه پروانههای نرمافزار آزاد، مسئله پیوند دادن کتابخانهها در دیگر نرمافزارهایی است که از یک پروانه غیرمشابه با پروانه کتابخانه استفاده میکنند. برخی از پروانههای نرمافزار آزاد، اجازه نمیدهند که کتابخانههای اشتراکی، توسط نرمافزارهایی که از یک پروانه غیر مشابه استفاده میکنند، پیوند زده شوند و مورد استفاده قرار گیرند. برای مثال، اگر کتابخانهای تحت پروانه پروانه عمومی همگانی گنو منتشر شده باشد، تنها نرمافزارهایی که تحت پروانه عمومی همگانی گنو منتشر شدهاند میتوانند به این کتابخانه پیوند داده شوند و از آن استفاده کنند. این کار مانع میشود تا نرمافزارهای انحصاری یا حتی دیگر نرمافزارهای آزاد (با پروانههای ناسازگار با پروانه عمومی همگانی گنو) از یک کتابخانه با مجوز پروانه عمومی همگانی گنو استفاده کنند. بنیاد نرمافزارهای آزاد برای رفع این محدودیت پروانه عمومی همگانی گنو، پروانه گنو الجیپیال را منتشر کردهاست.[18]
معروفترین پروانههای نرمافزار آزاد عبارتند از:
مدل تجاری
نرمافزارهای آزاد را میتوان مستقیماً به فروش رساند و به این ترتیب از فروش آنها کسب درآمد کرد. اما این مسئله نباید آزادیهای بالا را محدود کند. کاربر پس از خرید یک نرمافزار آزاد، میتواند آن را برای هر منظوری استفاده کرده، تغییر داده، و مجدداً منتشر کند (چه به صورت رایگان و چه به صورت تجاری). علاوه بر فروش مستقیم نرمافزار، میتوان با ارائه خدمات و پشتیبانی از نرمافزارهای آزاد، کسب درآمد کرد. مثلاً یک شرکت میتواند با اضافه کردن یک قابلیت جدید به یک نرمافزار آزاد یا در قبال برطرف کردن یک ایراد امنیتی، مبلغی پول از مشتریانش دریافت کند. یا همچنین یک شرکت میتواند نحوه استفاده از یک برنامه را به کارمندان و کاربران یک شرکت دیگر آموزش دهد و در قبال آن دستمزد دریافت کند. برخی از پروانههای سهلگیر نرمافزار آزاد، به کاربران اجازه میدهند تا نرمافزار را بدون در اختیار قرار دادن کدهای منبع توزیع کنند. (مانند پروانه های بی اس دی) بدین ترتیب دست کاربران تجاری بیشتر باز خواهد بود. برخی از شرکتها، نرمافزارهای خود را با دو مجوز مختلف، هم به صورت آزاد و هم به صورت غیرآزاد عرضه میکنند.
برخی از توسعهدهندگان مستقل نرمافزار آزاد، کمکهای مالی از طرف افراد داوطلب قبول میکنند. به عنوان مثال، سورسفورج امکاناتی دارد که یک کاربر داوطلب میتواند مبلغی پول را به یک پروژه نرمافزار آزاد اهدا کند.
مثالهایی از نرمافزارهای آزاد کاربردی
- لینوکس (هستهٔ توزیع های لینوکس)
- ایکس ان یو (هستهٔ سیستمعاملهای OS X و iOS)
- بیاسدی (هستۀ سیستمعاملهای فریبیاسدی، اپنبیاسدی، نتبیاسدی، دراگونفلیبیاسدی)
- جیسیسی، کتابخانهٔ زبان برنامهنویسی سی، کامپایلر کلنگ
- پایگاهدادههای رابطهای مانند: مایاسکیوال، پستگرس کیوال، برکلی دیبی
- زبانهای برنامهنویسی مانند: تیسیال، روبی، پایتون، پرل و پیاچپی
- مرورگر وب فایرفاکس و کرومیوم و بریو (مرورگر وب)
- مجموعه اداری لیبرهآفیس و اُپن آفیس
- میزکار کیدیای (KDE)، الاکسدیئی (LXDE)، اکسافسیئی (XFCE)، و گنوم (Gnome)
- برنامه های پخش کننده صدا و تصویر ویالسی مدیا پلیر
- برنامههای حروف چینی مانند تک، لاتک، فارسی تک، و زیپرشین
- نرمافزارهای مدیریت محتوا مانند جوملا (!Joomla)، پیاچپی-نیوک (PHP-Nuke)، زیکولا (Zikula)، مامبو (mambo)، وردپرس (wordpress)، دروپال (drupal)
- نرمافزارهای ساخت انجمن (Forum) مانند پیاچپیبیبی (phpbb)، اساماف (smf)، یاب (YaBB) و فروم (phorum)
- ویرایشگرهای متن ویم، ایمکس و نت پد++
- نرم افزارهای افزونه ادبلاک پلاس و اچتیتیپیاس همهجا
جستارهای وابسته
پیوند به بیرون
- تعریف نرمافزار آزاد، بنیاد نرمافزارهای آزاد
- جنبش نرمافزار آزاد، بنیاد نرمافزارهای آزاد
- Free Software Magazine An independently published magazine about free software, which releases all of its contents under a free license (کرییتیو کامنز، GFDL or Verbatim copying only)
- History Free Software
- The Free Software Definition - published by FSF
- FSF's list of free software licenses, including clarifications on often confused non-free licenses
- FSF/UNESCO directory of free software packages
- The GNU philosophy pages
- FSF's comparison of "Open Source" and "Free Software"
- An argument for free software (Charles Stross)
- Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers! — David Wheeler's analysis of the advantages of OSS/FS by an exhaustive review of published studies, analyses, and news reports.
- Directory of free software and open source software at Framasoft's site
- Some Code to Die for. On the Birth of the Free Software Movement in 1887 — Essay by Leo Findeisen, monochrom.
- demosoftware.net — demos and documentation wiki for GNU GPL and GNU LGPL, web-based, Free Software
- South Korea Steps Up Linux Use in Public Sector
- WebOpenSource.com A portal dedicated for open source software community - Includes reviews, latest news, free download and more.
- Why the future of science must be in free software — An essay about the relationship between free software and science by Alessio Damato (in PDF)
- Open Source Initiative
منابع
- «جنبش نرمافزار آزاد». گنو. دریافتشده در ۲۴ فوریه ۲۰۱۴.
- "What is free software and why is it so important for society?". بنیاد نرمافزارهای آزاد. Retrieved 24 February 2014.
- Dixon, Rod (2004). "free+software"+freeware#PPA4,M1 Open Source Software Law. Artech House. p. 4. ISBN 978-1-58053-719-3.
- "Selling Fee Software". گنو. Retrieved 24 February 2014.
- "Initial Announcement". گنو. Retrieved 14 February 2014.
- بنیاد نرمافزارهای آزاد. http://www.gnu.org/philosophy/free-sw.html. دریافتشده در ۶ اوت ۲۰۱۳. پارامتر
|عنوان= یا |title=
ناموجود یا خالی (کمک) - . پیشگامان متنباز http://opensource.org/docs/osd. دریافتشده در ۶ اوت ۲۰۱۳. پارامتر
|عنوان= یا |title=
ناموجود یا خالی (کمک) - . O’Reilly Media http://www.onlamp.com/pub/a/onlamp/2005/09/29/what-is-free-software.html. دریافتشده در ۶ اوت ۲۰۱۳. پارامتر
|عنوان= یا |title=
ناموجود یا خالی (کمک) - . پروژه فریبیاسدی http://www.freebsd.org/doc/en_US.ISO8859-1/articles/bsdl-gpl/history.html. دریافتشده در ۶ اوت ۲۰۱۳. پارامتر
|عنوان= یا |title=
ناموجود یا خالی (کمک) - . بنیاد نرمافزارهای آزاد http://www.gnu.org/licenses/old-licenses/gpl-1.0.txt. دریافتشده در ۶ اوت ۲۰۱۳. پارامتر
|عنوان= یا |title=
ناموجود یا خالی (کمک) - . O’Reilly Media http://oreilly.com/catalog/opensources/book/netrev.html. دریافتشده در ۶ اوت ۲۰۱۳. پارامتر
|عنوان= یا |title=
ناموجود یا خالی (کمک) - . بنیاد نرمافزارهای آزاد http://www.gnu.org/philosophy/open-source-misses-the-point.html. دریافتشده در ۶ اوت ۲۰۱۳. پارامتر
|عنوان= یا |title=
ناموجود یا خالی (کمک) - http://opensource.org/faq#free-software. دریافتشده در ۶ اوت ۲۰۱۳. پارامتر
|عنوان= یا |title=
ناموجود یا خالی (کمک) - Carver, Brian W. (2005-04-05). "Share and Share Alike: Understanding and Enforcing Open Source and Free Software Licenses". Berkeley Technology Law Journal. 20: 39. SSRN 1586574.
- مشارکتکنندگان ویکیپدیا. «». در دانشنامهٔ ویکیپدیای ، بازبینیشده در ۶ اوت ۲۰۱۳.
- https://www.kernel.org/pub/linux/kernel/COPYING. دریافتشده در ۶ اوت ۲۰۱۳. پارامتر
|عنوان= یا |title=
ناموجود یا خالی (کمک) - . پروژه فریبیاسدی http://www.freebsd.org/copyright/freebsd-license.html. دریافتشده در ۶ اوت ۲۰۱۳. پارامتر
|عنوان= یا |title=
ناموجود یا خالی (کمک) - . بنیاد نرمافزارهای آزاد http://www.gnu.org/licenses/why-not-lgpl.html. دریافتشده در ۶ اوت ۲۰۱۳. پارامتر
|عنوان= یا |title=
ناموجود یا خالی (کمک)
مجموعهای از گفتاوردهای مربوط به نرمافزار آزاد در ویکیگفتاورد موجود است. |
در ویکیانبار پروندههایی دربارهٔ نرمافزار آزاد موجود است. |
رده:حق تکثیر ویکیپدیا