نرم افزار آزاد

ویکی‎کتاب، کتابخانهٔ آزاد

درس اول- نرم‌افزار آزاد

شعاری در دنیای لینوکس هست که می‌گوید لینوکس یک سیستم عامل نیست، لینوکس یک فرهنگ است: فرهنگ آزادی.

این آزادی برمی گردد به ایده‌های فردی به نام ریچارد استالمن که در ۱۹۸۳ با راه انداختن جنبشی به نام جنبش نرم‌افزار آزاد آن را شروع کرد و بعد در سال ۱۹۸۵ با تاسیس بنیادی به نام بنیاد نرم‌افزار آزاد، پایه‌های آن را مستحکم ساخت. نماد این بنیاد گوزن آمریکای شمالی است که گنو نام دارد. این مفهوم در انگلیسی به نام Free Software شناخته می‌شود و از آنجایی که کلمه Free در زبان انگلیسی هم به معنای «رایگان» استفاده می‌شود و هم به معنای «آزاد»، تذکر این نکته همیشه مهم است که آزادی در دنیای نرم‌افزار چیزی بیشتر از رایگان بودن یک برنامه است.

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

آزادی در مقابل بازمتن بودن مفهوم مرتبط با مفهوم نرم‌افزار آزاد، نرم‌افزار بازمتن (Open Source) است. نرم‌افزار بازمتن نرم‌افزاری است که متن آن در اختیار مردم قرار دارد. ممکن است یک شرکت اینکار را به خاطر جذب توسعه دهنده‌های جدید انجام دهد یا برای امن تر کردن برنامه‌های خود از طریق تشویق مردم به کشف و گزارش حفره‌های امنیتی یا حتی به عنوان یک حرکت تبلیغاتی. اما هر انگیزه‌ای که پشت «بازمتن» شدن یک برنامه باشد نباید ما را از این نکته غافل کند که نرم‌افزار آزاد چیزی بیشتر از دسترسی به سورس است. همانطور که در بالا گفتم، تنها با داشتن این چهار اصل (اصل صفرم تا سوم) و حفظ آنها از طریق مجوزی مانند GPL است که یک برنامه می‌تواند آزاد نامیده شود: • آزادی اجرای برنامه برای هر کاری (آزادی صفرم) • آزادی مطالعه چگونگی کار برنامه و تغییر آن (پیش نیاز: متن برنامه) (آزادی یکم) • آزادی تکثیر و کپی برنامه (آزادی دوم) • آزادی تقویت و بهتر کردن برنامه و توزیع آن برای همگان (پیش نیاز: متن برنامه) (آزادی سوم) پس حتی اگر کسی به متن یک برنامه هم دسترسی داشته باشد اما اجازه تغییر، بازنشر و کپی آن را نداشته باشد، این برنامه فقط و فقط بازمتن است و نه آزاد. کاملا مشخص است که مفهوم آزادی مفهومی بسیار وسیعتر از مفهوم بازمتن بودن است و در حالی که هر برنامه آزاد باید بازمتن هم باشد، برعکس آن صحیح نیست.

آزادی در مقابل رایگان بودن همانطور که در ابتدای این درس هم به آن اشاره شد، کلمه Free در زبان انگلیسی هم به معنی آزاد است و هم به معنی رایگان. این باعث شده تا بسیاری به اشتباه بین برنامه مجانی و برنامه آزاد تفاوت قائل نشوند. مطمئن هستم که سه اصل بالا را به یاد دارید و می‌دانید که هر برنامه رایگانی نمی‌تواند آزاد باشد. مثلا برنامه پرنده‌های خشمگین روی اندروید یا مرورگر اپرا برنامه‌های رایگانی هستند که آزاد نیستند چون نه فقط شما اجازه ندارید آنها را تغییر دهید که حتی اجازه ندارید به سورس آنها هم نگاه کنید (نقض آزادی یک و سه). اما آیا اینجا هم مثل مورد بازمتن، نرم‌افزار آزاد چیزی فراتر از نرم‌افزار رایگان است؟ اکثرا به این سوال جواب مثبت می‌دهند و فکر می‌کنند که نرم‌افزار آزاد حتما باید مجانی باشد اما این تصور اشتباه است. به چهار قانون قبلی نگاه کنید! هیچ جا صحبت از پول نیست. درست است که شما حق دارید نرم‌افزار آزاد را به رایگان از دوست خود کپی کنید یا از اینترنت دریافت کنید اما اگر کسی هم تصمیم بگیرد آن را به شما بفروشد کار خلافی نکرده و این تصمیم شما است که انتخاب می‌کنید آن را به رایگان دریافت کنید یا بخرید. این حرف در وهله اول عجیب است اما با نگاه به شرکت‌های عظیمی مانند ردهت که فروشنده یک سیستم عامل لینوکس است یا رفتن به سراغ مدیر محتواهایی مانند دروپال یا وردپرس می‌بینیم که موارد بسیار وجود دارد که یک سیستم یا شخص تصمیم می‌گیرد به جای اینه خودش چیزی را دانلود کند، آن را از کس دیگری بخرد. در جلسات آینده در این مورد بیشتر خواهید خواهند. حالا که دیدید که مجانی بودن هیچ ربطی به آزاد بودن ندارد و یک برنامه آزاد می‌تواند به فروش هم برسد (علی رغم اینکه طبق آزادی یک و دو همه باید بتوانند آن را به رایگان هم تهیه کنند) و یک برنامه مجانی هم می‌تواند آزاد نباشد (مثلا از طریق در دست نبودن سورسش)، این را هم اضافه کنیم که این روزها بعضی‌ها برای کم کردن این ابهام، به جای اصطلاح انگلیسی Free که می‌تواند به معنی مجانی هم بکار رود، از اصطلاح Libre استفاده می‌کنند که به روشنی معنی «آزادی» می‌دهد. به عنوان مثال مجموعه آفیس آزادی که در ابتدا Open Office نامیده می‌شد، حالا با تاکید بیشتر بر روی آزادی به نام Libre Office در حال توسعه است.

جمع‌بندی نرم‌افزاری آزاد است که چهار شرط اصلی آزادی را داشته باشد: • آزادی اجرای برنامه برای هر کاری (آزادی صفرم) • آزادی مطالعه چگونگی کار برنامه و تغییر آن (پیش نیاز: متن برنامه) (آزادی یکم) • آزادی تکثیر و کپی برنامه (آزادی دوم) • آزادی تقویت و بهتر کردن برنامه و توزیع آن برای همگان (پیش نیاز: متن برنامه) (آزادی سوم) نرم‌افزار آزاد تحت مجوزهای آزاد منتشر می‌شود تا قانون موظف باشد آزادی‌های آن را تضمین کند. نرم‌افزار آزاد با نرم‌افزار بازمتن و نرم‌افزار مجانی تفاوت دارد. ________________________________________ منابع: - ویکی‌پدیا: نرم‌افزار آزاد - ویکی‌پدیا: ریچارد استالمن - وب‌سایت رسمی سیستم عامل گنو