نرم‌افزار آزاد چیست؟

بسم رب الشهدا

جنبش آزادی نرم‌افزار(FOSSM) برای اولین بار توسط آقای ریچارد استالمن(Richard Stallman) در سال ۱۹۸۳ با راه اندازی پروژهٔ گنو(GNU) آغاز شد.

فلسفهٔ اصلی این جنبش این است که استفاده از رایانه‌ها نباید مانع از همکاری مردم با یکدیگر شود. این جنبش بر این باور است که نرم‌افزار‌های غیر‌آزاد (proprietary یا nonfree) کاربران را از یکدیگر جدا می‌کنند و آن هارا بدون کمک رها می‌کنند.

جدا کردن به این طریق اتفاق می‌افتد که کاربران نمی‌توانند نرم‌افزاری را که استفاده می‌کنند با دیگران به اشتراک بگذارند و هر کاربر مجبور است نرم‌افزار دلخواه خود را مستقیما از تولید کننده آن دریافت کند. و بدون کمک رها کردن به این معنی که کاربر نمی‌تواند طرز کار نرم‌افزار را بفهمد و یا آن را با توجه به نیاز خود تغییر دهد و یا حتی از تغییرات مفیدی که دیگران (برنامه‌نویسان دیگر) می توانند اعمال کنند استفاده کند.

برای این که نرم‌افزاری یک نرم‌افزار آزاد حساب شود باید چهار آزادی را برای کاربر تضمین کند:

  • آزادی برای اجرای برنامه برای هر منظوری (آزادی ۰)
  • آزادی برای مطالعه و بررسی چگونگی عملکرد برنامه و تغییر آن برای نیاز خود (آزادی ۱)
  • آزادی برای توزیع مجدد کپی‌هایی از آن، بنابراین شما می‌توانید به همسایگان خود کمک کنید (آزادی ۲)
  • آزادی برای بهبود برنامه و انتشار این تغییرات برای عموم، بنابراین تمام جامعه از آن بهره می‌برند (آزادی ۳)

در دنیای کامپیوتر‌ها برنامه‌نویسان برای تولید یک نرم‌افزار ابتدا با استفاده از یک یا چند زبان برنامه‌نویسی مثل پایتون، C یا هر زبان دیگری که قابل فهم توسط انسان‌ها است نرم‌افزار مورد نظر خود را می‌نویسند. این شکل از یک نرم‌افزار که افراد قادراند به راحتی آن را خوانده و طرز کار آن را دریابند منبع نرم‌افزار یا source code نامیده می‌شود. رایانه‌ها مستقیماً نمی‌توانند منبع یک نرم‌افزار را اجرا کنند و لازم است ابتدا منبع توسط یک نرم‌افزار واسط به زبان کامپیوتر ترجمه شود تا بتواند اجرا شود. این شکل ترجمه شدهٔ نرم‌افزار که به زبان ماشین (صفر و یک) و فهم آن برای انسان‌ها بسیار مشکل است شکل قابل اجرا (executable) نامیده می‌شود.

حال اگر تولید کنندهٔ یک نرم‌افزار اجازه دسترسی به کد منبع نرم‌افزار را به هر فرد علاقه‌مند بدهد این نرم‌افزار منبع باز یا open source نامیده می‌شود. منیع باز بودن پیش‌شرط اساسی آزاد بودن یک نرم‌افزار است.

یکی دیگر از مزایای نرم‌افزار‌های آزاد محافظت از اطلاعات و حریم خصوصی افراد است که ارزش بسیاری در این دنیای وابسته به اطلاعات دارد. نرم‌افزار های ازاد نمی‌توانند اطلاعاتی را که از کاربر دارند را بدون اطلاع افراد به جای دیگری بفرستند چون نحوهٔ کار این نرم‌افزار ها دقیقاً توسط عدهٔ زیادی از برنامه‌نویسان غیر وابسته کنترل می‌شود ولی در نرم‌افزار های غیر آزاد این امکان وجود ندارد.

لوگوی پروژه گنو

gnu-logo