نرم‌افزار آزاد
نرم‌افزار آزاد نرم‌افزاری است که به‌همراه کد منبع توزیع شده و با قوانینی منتشر می‌شود که آزادی استفاده، مطالعه، ویرایش و انتشار مجددِ کاربران را تضمین می‌کند. نرم‌افزارهای آزاد معمولاً با همکاری برنامه‌نویس‌های داوطلب به‌عنوان یک پروژه به‌وجود می‌آیند. ایدهٔ اصلی نرم‌افزار آزاد این است که کاربران باید مالک دستگاه‌های دیجیتالی خود باشند، نه سازندگان دستگاه‌ها.
نرم‌افزارهای آزاد با نرم‌افزارهای مالکیتی (مانند مایکروسافت ویندوز) که آزادی کاربر در استفاده، مطالعه، ویرایش یا انتشار مجدد را در درجه‌های مختلف محدود می‌کنند، متفاوت هستند. این محدودیت‌ها با در نظر گرفتن مجازات‌هایی قانونی برای کاربرانی که قوانین آن‌ها را نقض می‌کنند، به‌وجود می‌آیند. نرم‌افزارهای مالکیتی عموماً به صورت بسته‌های اجراپذیر دودویی و بدون دسترسی به کد منبع فروخته می‌شوند که جلوی ویرایش و وصله‌کردن نرم‌افزار توسط کاربر را می‌گیرد و او را برای به‌روزرسانی و پشتیبانی به شرکت نرم‌افزاری تولیدکننده وابسته می‌کنند. نرم‌افزارهای آزاد از نرم‌افزاری‌های رایگان که برای استفاده، از کاربر پولی دریافت نمی‌کنند، نیز متفاوت‌اند. این نوع نرم‌افزارها نیز معمولاً تمامی حقوق نرم‌افزار را برای تولیدکنندهٔ آن محفوظ داشته و جلوی مهندسی معکوس، ویرایش یا توزیع مجدد توسط کاربر را می‌گیرند. بنابراین موضوع اصلی نرم‌افزار آزاد، موضوع آزادی است و نه قیمت آن: "کاربران آزادند که هر چه می‌خواهند با نرم‌افزار انجام دهند". این آزادی شامل انتشار مجدد نرم‌افزار به‌صورت رایگان یا با سود نیز می‌شود. یعنی نرم‌افزار آزاد می‌تواند به صورت رایگان یا در ازای دریافت مبلغی پول در اختیار کاربر قرار بگیرد.
ریچارد استالمن در سال ۱۹۸۵ در زمانی که در حال آغاز پروژهٔ گنو و به‌وجود آوردن بنیاد نرم‌افزارهای آزاد بود، برای اولین بار از عبارت «نرم‌افزار آزاد» استفاده کرد. براساس تعریف بنیاد نرم‌افزارهای آزاد کاربران یک نرم‌افزارِ آزاد، آزاد هستند؛ چون به اجازه گرفتن نیازی ندارند؛ آن‌ها در انجام کارهای دل‌خواهشان (مانند حق نشر و کپی‌برداری) محدود نیستند؛ نیازی به موافقت با هیچ توافق‌نامه‌ای ندارند؛ و در همان ابتدا نیز با نداشتن کد منبع محدود نبوده‌اند.
طبق تعریف نرم‌افزار آزاد توسط بنیاد نرم‌افزارهای آزاد، هر نرم‌افزاری که آزادی‌های زیر را برای کاربرانش فراهم کند به عنوان یک نرم‌افزار آزاد شناخته می‌شود: در ابتدا فقط سه آزادی وجود داشت که از آزادی یکم شروع می‌شد و به آزادی سوم ختم می‌شد اما بعدها این مسئله مهم شد که بدون اجازه اجرای نرم‌افزار عملاً رسیدن به آزادی‌های دیگر ممکن نیست، پس آزادی صفرم یا آزادی اجرا به این شرایط اضافه شد.
همچنین مؤسسه پیشگامان متن‌باز هم تعریف مشابهی از نرم‌افزار آزاد ارائه داده‌است. طبق تعریف این مؤسسه، نرم‌افزار بازمتن، تنها به معنی در دسترس ساختن کدمنبع نیست. علاوه بر این مجوز، باید ویژگی‌های زیر را هم داشته باشد:
در اوایل، نرم‌افزارها به صورت آزاد منتشر می‌شدند و برنامه‌نویسان و شرکت‌ها آن‌ها را به صورت آزادانه در اختیار یکدیگر قرار می‌داند. در اوایل، تجارت رایانه بیشتر مبتنی بر سخت‌افزار بود و شرکت‌ها درآمد خود را بیشتر از راه تولید سخت‌افزار کسب می‌کردند و هر شرکت، سخت‌افزاری ناسازگار با دیگر شرکت‌ها تولید می‌کرد. مشتریان، که بیشتر مهندسان و دانشمندان بودند، تشویق می‌شدند که نرم‌افزارهای ارائه شده توسط سخت‌افزار را بهبود بخشیده و حتی آن را در اختیار دیگران هم قرار دهند. از آنجا که در آن زمان‌ها سخت‌افزارهای تولید شده توسط شرکت‌های مختلف با یکدیگر ناسازگار بود و سخت‌افزار استانداردی وجود نداشت، و همین‌طور از آنجا که در آن زمان مفسرها و کامپایلرها هنوز جا نیفتاده بودند (که این برنامه‌ها را قابل حمل‌تر می‌کنند)، شانس کمی وجود داشت که نرم‌افزار مورد نظر بر روی سخت‌افزار شرکت رقیب هم به خوبی اجرا شود.
رفته‌رفته که صنعت رایانه پیشرفت کرد و سخت‌افزارها بیشتر استاندارد شدند و همین‌طور کامپایلرها و مفسرها پیشرفت کردند، زمینه برای رشد نرم‌افزارهای انحصاری فراهم شد. با چنین پیشرفت‌هایی، برنامه‌ها راحت‌تر از سخت‌افزار یک شرکت به سخت‌افزار شرکت رقیب پورت می‌شدند و راحت می‌شد یک نرم‌افزار را بر روی سخت‌افزارهای مختلفی از شرکت‌های مختلف اجرا کرد. بدین ترتیب یک نفر می‌توانست نرم‌افزاری بنویسد که مستقل از سخت‌افزار خاصی عمل کند و بر روی طیف وسیعی از آن‌ها اجرا شود. علاوه بر آن، با استاندارد شدن سخت‌افزارها، تفاوت‌های ناچیزی که آن‌ها در کارایی داشتند رفته رفته ناپدید شد. تولیدکنندگان به این نتیجه رسیده بودند که باید به نرم‌افزار هم به چشم یک وسیله فروشی نگاه کنند. شرکت‌ها شروع به فروش نرم‌افزارهای خود کردند و دست کاربران خود را برای تغییر در نرم‌افزارها و انتشار مجدد آن‌ها بستند. به گونه‌ای که در سال ۱۹۶۸ شرکتی به نام ای‌دی‌آر اولین نرم‌افزار دارای مجوز را عرضه کرد. در سال ۱۹۶۹، شرکت آی‌بی‌ام به خاطر اینکه به همراه سخت‌افزارهای خود، نرم‌افزارهای آزاد ارائه می‌کرد، توسط وزارت دادگستری ایالات متحده آمریکا به از بین بردن کسب و کار و ایجاد یک شرایط ضدرقابتی برای دیگر متهم شد. آی‌بی‌ام دیگر به همراه سخت‌افزارهای خود نرم‌افزار ارائه نکرد و بدین ترتیب نرم‌افزارها و سخت‌افزارها از یکدیگر جدا شدند و فاصله گرفتند.
در سال ۱۹۸۳، ریچارد استالمن از آزمایشگاه هوش مصنوعی و علوم رایانه ام‌آی‌تی، پروژه گنو را بنیان نهاد. او که از تغییر فرهنگ در صنعت رایانه و کاربرانش ناامید شده بود، قصد داشت سیستم‌عاملی به نام گنو را به صورت یک نرم‌افزار آزاد توسعه دهد. در ژانویه ۱۹۸۴ توسعه سیستم‌عامل گنو آغاز گشت و بنیاد نرم‌افزارهای آزاد در اکتبر ۱۹۸۵ بنیان نهاده شد. در سال ۱۹۸۹، اولین نسخه از اجازه‌نامه همگانی گنو منشتر شد. البته پروانه عمومی همگانی گنو اولین پروانه نرم‌افزار آزاد نبود و قبل از آن پروانه‌های نرم‌افزار آزاد دیگری مانند پروانه بی‌اس‌دی در سال ۱۹۸۸ عرضه شده بودند. تاکنون پروانه‌های نرم‌افزار آزاد زیادی توسط افراد و شرکت‌های مختلف منتشر شده‌است که از این میان می‌توان به پروانه ام‌آی‌تی، پروانه آپاچی، پروانه آی‌اس‌سی، پروانه همگانی موزیلا و ... اشاره کرد.
در سال ۱۹۹۷، اریک ریموند مقاله‌ای با نام کلیسای جامع و بازار را منتشر کرد و در آن به بررسی اصول نرم‌افزارهای آزاد و مزایای آن‌ها پرداخت. این مقاله به شدت مورد توجه قرار گرفت و یکی از دلایلی بود که شرکت ارتباطات نت‌اسکیپ، کد منبع مرورگر وب خود را به صورت نرم‌افزار آزاد منتشر کرد. این کار باعث شد تا شرکت‌های دیگری هم به نرم‌افزارهای آزاد توجه نشان دهند. کدهای منبع نت‌اسکیپ، بعدها اساس توسعه مرورگر فایرفاکس و برنامه تاندربرد قرار گرفت.
در زبان انگلیسی، کلمه Free معانی متفاوتی همچون آزادی، رایگان بودن و … دارد. عده‌ای بر این عقیده بودند که ممکن است این کلمه باعث کژفهمی شده و باعث شود مردم به "نرم‌افزارهای آزاد"، به چشم "نرم‌افزارهای رایگان" نگاه کنند. این در حالی است که یک نرم‌افزار آزاد، لزوماً رایگان نیست. آن‌ها در سال ۱۹۹۸ کمپین دیگری به نام «نرم‌افزارهای متن‌باز» را تشکیل دادند تا با تأکید بیشتر بر روی مدل توسعه و مسائل تکنیکی، به جای مسائل فلسفی و اخلاقی، مردم و شرکت‌ها را هر چه بیشتر به استفاده از نرم‌افزار آزاد تشویق کنند. تقریباً هر دو مفهوم، اشاره به یک چیز دارند و یک نرم‌افزار متن‌باز، نرم‌افزار آزاد هم هست (و برعکس)، اما طرفداران ایده نرم‌افزارهای متن‌باز، آن را روشی برای توسعه نرم‌افزارهای بهتر معرفی می‌کنند و تأکید کمتری بر جنبش اجتماعی و فلسفه پشت این گونه نرم‌افزارها دارند. طبق گفته مؤسسه پیشگامان متن‌باز (که توسط طرفداران ایده نرم‌افزار متن‌باز به وجود آمده)، عبارت «نرم‌افزار آزاد» واژه‌ای قدیمی‌تر است و به گونه‌ای منعکس‌کننده نام بنیاد نرم‌افزارهای آزاد است، سازمانی که در سال ۱۹۸۵ برای محافظت و ترویج نرم‌افزارهای آزاد به وجود آمد؛ با اینکه بنیان‌گذاران ایده متن‌باز هم از توسعه و ترویج نرم‌افزارهای آزاد حمایت می‌کنند، اما در مورد چگونگی ترویج آن‌ها با بنیاد نرم‌افزارهای آزاد موافق نیستند و اعتقاد دارند که آزادی نرم‌افزار در درجه اول یک امر عملی است تا ایدئولوژیکی.
نرم‌افزارهای آزاد به همراه پروانه‌هایی عرضه می‌شوند که این پروانه آزادی‌های نام برده شده را برای کاربران تضمین می‌کند. از جمله پروانه‌های نرم‌افزار آزاد می‌توان به پروانه نرم‌افزار پروانه عمومی همگانی گنو، بی‌اس‌دی، پروانه ام‌آی‌تی، پروانه آی‌اس‌سی و ... نام برد. این اجازه‌نامه‌ها تفاوت‌هایی با یکدیگر دارند و هر کدام توسط افراد و شرکت‌های خاصی برای اهداف خاصی منتشر شده‌اند. یک دسته‌بندی کلی برای پروانه‌های نرم‌افزار آزاد این است که آیا آن‌ها به صورت کپی‌لفت هستند یا نه. پروانه‌هایی که کپی‌لفت هستند، مانند پروانه عمومی همگانی گنو، تأکید دارند که نسخه‌های مشتق شده از نرم‌افزار هم باید به صورت نرم‌افزار آزاد منتشر شوند. مجوزهای غیر کپی‌لفت تأکیدی بر روی این مسئله ندارند و نسخه‌های مشتق شده از این گونه نرم‌افزارها را می‌توان آزادانه به هر شکل دلخواهی، چه به صورت نرم‌افزار آزاد و چه به صورت نرم‌افزار انحصاری منتشر کرد. چنین مجوزهایی را اصطلاحاً «سهل‌گیرانه» می‌نامند. از جمله رایج‌ترین پروانه‌های کپی‌لفت، پروانه پروانه عمومی همگانی گنو و از جمله رایج‌ترین پروانه‌های غیر کپی‌لفت، پروانه بی‌اس‌دی و پروانه ام‌آی‌تی است. امروزه هر دو دسته از این پروانه‌ها به صورت گسترده توسط پروژه‌های مختلف مورد استفاده قرار می‌گیرند. برای مثال، هسته لینوکس از پروانه پروانه عمومی همگانی گنو و پروژه فری‌بی‌اس‌دی از پروانه بی‌اس‌دی استفاده می‌کنند.
مسئله دیگر در مقایسه پروانه‌های نرم‌افزار آزاد، مسئله پیوند دادن کتابخانه‌ها در دیگر نرم‌افزارهایی است که از یک پروانه غیرمشابه با پروانه کتابخانه استفاده می‌کنند. برخی از پروانه‌های نرم‌افزار آزاد، اجازه نمی‌دهند که کتابخانه‌های اشتراکی، توسط نرم‌افزارهایی که از یک پروانه غیر مشابه استفاده می‌کنند، پیوند زده شوند و مورد استفاده قرار گیرند. برای مثال، اگر کتابخانه‌ای تحت پروانه پروانه عمومی همگانی گنو منتشر شده باشد، تنها نرم‌افزارهایی که تحت پروانه عمومی همگانی گنو منتشر شده‌اند می‌توانند به این کتابخانه پیوند داده شوند و از آن استفاده کنند. این کار مانع می‌شود تا نرم‌افزارهای انحصاری یا حتی دیگر نرم‌افزارهای آزاد (با پروانه‌های ناسازگار با پروانه عمومی همگانی گنو) از یک کتابخانه با مجوز پروانه عمومی همگانی گنو استفاده کنند. بنیاد نرم‌افزارهای آزاد برای رفع این محدودیت پروانه عمومی همگانی گنو، پروانه گنو ال‌جی‌پی‌ال را منتشر کرده‌است.
معروف‌ترین پروانه‌های نرم‌افزار آزاد عبارتند از:نرم‌افزارهای آزاد را می‌توان مستقیماً به فروش رساند و به این ترتیب از فروش آن‌ها کسب درآمد کرد. اما این مسئله نباید آزادی‌های بالا را محدود کند. کاربر پس از خرید یک نرم‌افزار آزاد، می‌تواند آن را برای هر منظوری استفاده کرده، تغییر داده، و مجدداً منتشر کند (چه به صورت رایگان و چه به صورت تجاری). علاوه بر فروش مستقیم نرم‌افزار، می‌توان با ارائه خدمات و پشتیبانی از نرم‌افزارهای آزاد، کسب درآمد کرد؛ مثلاً یک شرکت می‌تواند با اضافه کردن یک قابلیت جدید به یک نرم‌افزار آزاد یا در قبال برطرف کردن یک ایراد امنیتی، مبلغی پول از مشتریانش دریافت کند. یا همچنین یک شرکت می‌تواند نحوه استفاده از یک برنامه را به کارمندان و کاربران یک شرکت دیگر آموزش دهد و در قبال آن دستمزد دریافت کند. برخی از پروانه‌های سهل‌گیر نرم‌افزار آزاد، به کاربران اجازه می‌دهند تا نرم‌افزار را بدون در اختیار قرار دادن کدهای منبع توزیع کنند. (مانند پروانه‌های بی اس دی) بدین ترتیب دست کاربران تجاری بیشتر باز خواهد بود. برخی از شرکت‌ها، نرم‌افزارهای خود را با دو مجوز مختلف، هم به صورت آزاد و هم به صورت غیرآزاد عرضه می‌کنند.
برخی از توسعه‌دهندگان مستقل نرم‌افزار آزاد، کمک‌های مالی از طرف افراد داوطلب قبول می‌کنند. به عنوان مثال، سورس‌فورج امکاناتی دارد که یک کاربر داوطلب می‌تواند مبلغی پول را به یک پروژه نرم‌افزار آزاد اهدا کند.