در پاسخ به این پرسش که «گنو چیست»، میتوان گفت که «گِنو» (GNU)، سیستم عاملی آزاد است که شباهت زیادی به سیستم عامل «یونیکس» (Unix) دارد. بدون اینکه در ساخت آن، از کدهای یونیکس استفادهای شده باشد. GNU مخفف «GNU’s Not Unix» است و آقای ریچارد استالمن، نخستین بار در سال ۱۳۶۲ (۱۹۸۳ میلادی)، زمانیکه در MIT مشغول به کار بود از پروژهای با این نام خبر داد. البته GNU چیزی بیش از تنها یک سیستم عامل است و در واقع یک خط فکری و رویه محسوب میشود. هدف از گنو، ارائه نرمافزاری «آزاد» (Free) و احترام به حقوق کاربران است. منظور، نرمافزاری است که آزادی کافی در اجرا، بررسی، کپی، تغییر و توزیع مجدد آن را داشته باشیم. حال اینکه، نرمافزارهای آزاد، ممکن است بهطور رایگان یا در قبال پرداخت هزینهای اغلب بابت پشتیبانی، به کاربران ارائه شوند.
پروژه گنو چیست ؟
«پروژه گنو»، عنوانِ طرحی است که بر روی توسعه سیستم عامل GNU متمرکز است. این پروژه در سال ۱۳۶۲ (۱۹۸۳ میلادی) به عنوان راهی برای بازگرداندن روحیه مشارکتیِ حاکم بر جامعه کامپیوتری، خلق شد، همانند آنچه که در گذشته نیز وجود داشت. تا از این طریق، موانعی از سر راه برداشته شوند که توسط صاحبان نرمافزارهای انحصاری یا «اختصاصی» (Proprietary) در مورد مشارکت و همیاری کاربران به آنها، تحمیل شده بودند.
با وجود این پروژه، کاربران میتوانند دست به تولید نرمافزارهای غیر انحصاری بزنند یا این گونه نرمافزارها را دانلود، اصلاح و مجددا توزیع کنند. در سال ۱۳۵۰ (۱۹۷۱ میلادی)، زمانیکه ریچارد استالمن کار خود را در آزمایشگاه هوش مصنوعی موسسه MIT آغاز کرد، در گروهی مشغول به کار شد که تنها از نرمافزار آزاد استفاده میکرد. حتی شرکتهای کامپیوتری هم در آن زمان، اغلب، نرمافزارهایی «آزاد» را توزیع میکردند. در آن هنگام، برنامهنویسها آزاد بودند تا در این مورد با یکدیگر مشارکت داشته باشند و این کار در بین آنها امری عادی و رایج محسوب میشد.
در دهه ۶۰ (سالهای ۱۹۸۰ میلادی)، تقریباً تمامی نرمافزارها انحصاری شدند، به این معنی که صاحبان آنها، مشارکت کاربران را ممنوع و از این امر جلوگیری میکردند. در این وضعیت، ضرورت وجود پروژه GNU بیش از پیش احساس میشد.
هر کاربری که بخواهد از کامپیوتر استفاده کند، اول از همه به یک سیستم عامل نیاز دارد. به بیان دیگر، بدون وجود سیستم عاملی آزاد، از همان آغاز نمیتوان استفاده از کامپیوتر را، بدون به کار بردن نرمافزاری انحصاری، انجام داد. بنابراین، اولین موردی که در دستور کار پروژه نرمافزار آزاد قرار گرفت، ایجاد سیستم عاملی «آزاد» بود.
تصمیمی که برای پیشبرد این طرح گرفته شد، این بود که سیستم عامل آزاد با یونیکس (سیستم عامل رایج در آن زمان) سازگار باشد، زیرا طراحی کلی یونیکس قبلاً اثبات شده و امتحان خود را پس داده بود. علاوه بر این، قابل حمل هم بود. همچنین «سازگاری» (Compatibility) سیستم عامل جدید با یونیکس باعث میشد تا کاربرانِ یونیکس بتوانند به راحتی به سیستم «گنو» کوچ کنند.
هدف این بود که سیستم عاملی کاملا آزاد به وجود بیاید. استالمن میخواست کاربران کامپیوتر، آزاد باشند تا بتوانند سورس کد نرمافزارهای مورد استفاده را کند و کاو کنند، نرمافزار را با همکاران و بهطور کلی افراد دیگر به اشتراک بگذارند، رفتار نرمافزار را به شیوهای دلخواه اصلاح و نسخههای نرمافزاری تغییر یافته را منتشر کنند. این فلسفه به عنوان «مانیفست گنو» (خط فکری گنو) در ۱۳۶۴ (مارس ۱۹۸۵) منتشر شد.
«گنو»، قرار بود سیستم عاملی شِبه یونیکس، شامل «هسته» (Kernel)، «کامپایلرها» (Compilers)، ویرایشگرها، قالبدهنده متن، نرمافزار ایمیل، رابطهای گرافیکی، کتابخانهها، بازیها و بسیاری موارد دیگر باشد. بنابراین، نوشتن سیستم عاملی در این ابعاد، کار بسیار بزرگی محسوب میشد. در اواخر سال ۱۳۶۲ (ژانویه ۱۹۸۴ میلادی) کار روی این پروژه شروع و «بنیاد نرمافزار آزاد» (Free Software Foundation | FSF) در مهر ۱۳۶۴ (اکتبر ۱۹۸۵) تاسیس شد. هدف ابتدایی این بنیاد، جمعآوری سرمایه و بودجه مورد نیاز برای کمک به توسعه گنو بود.
بسیاری از نرمافزارهای مورد نیاز باید از ابتدا نوشته میشدند، اما مواردی از نرمافزارهای آزادِ سازگار که توسط شخص ثالث ایجاد شده بودند، مانند سیستم حروفچینی TeX، سیستم «پنجره ایکس» (X Window) و میکروکرنل «ماخ» (Mach)، به همان شکل، مورد استفاده قرار گرفتند. به غیر از این موارد، بیشتر مولفههای گنو توسط برنامهنویسان داوطلب نوشته شدهاند.
برخی از این نرمافزارها توسط برنامهنویسان و در اوقات فراغت نوشته میشدند و تهیه برخی دیگر توسط شرکتها، موسسات آموزشی و سایر سازمانهای غیرانتفاعی صورت میگرفت. استالمن در اواخر دهه ۷۰ (سالهای ۱۹۹۰ میلادی)، برنامهنویسانی را برای نوشتن نرمافزارهای مورد نیاز برای GNU استخدام کرد.
دلایل نام گذاری GNU چیست ؟
دلیل اینکه واژه «GNU» برای این طرح انتخاب شد، این بود که مخفف بازگشتیِ عبارت «GNU’s Not Unix» محسوب میشد (یعنی حرف اول این مخفف، خودِ واژه GNU است) و همچنین با توجه به شباهت میان گنو و یونیکس، این نکته را بهطور غیرمستقیم بیان میکرد که گنو از کدهای یونیکس استفاده نکرده است. همچنین تلفظ واژه GNU علاوه بر مناسب بودن از نظر آوایی، کلمهای معنادار محسوب میشود که به گونهای به گوزنهای یالدار اشاره دارد.
سیستم عامل گنو چیست ؟
در پاسخ به این پرسش که سیستم GNU چیست، میتوان گفت که سیستم عامل «گِنو»، سیستم عاملی کامل و آزاد است که با یونیکس «سازگاری رو به بالایی» (Upward-Compatible) دارد. یعنی، علاوه بر انجام کارهایی که پیش از این قابل انجام بودند، عملکرد و قابلیتهای بیشتری را نیز ارائه میدهد.
آقای ریچارد استالمن، نخستین بار در سال ۱۳۶۲ (سپتامبر ۱۹۸۳ میلادی) بهطور عمومی، از پروژهای بهنام GNU خبر داد که نسخه طولانیتر این اطلاعیه بهنام «مانیفست گنو»، در سال ۱۳۶۴ (مارس ۱۹۸۵ میلادی) منتشر و به چندین زبان ترجمه شده است. توسعه نرمافزار GNU اواخر سال ۱۳۶۲ (۱۹۸۴ میلادی) آغاز شد، در این زمان استالمن کار خود را در آزمایشگاه ترک کرد تا آنها نتوانند ادعای مالکیت یا دخالتی در توزیع و توسعه اجزای گنو (به عنوان نرمافزاری آزاد) داشته باشند.
معنای آزادی در گنو چیست؟
کلمه «آزاد» (Free) در عبارت «نرمافزار آزاد» (Free Software)، به «آزادی» در آن اشاره دارد و ربطی به قیمت آن و رایگان بودن ندارد. یعنی تهیه و دریافت نرمافزار گِنو هم ممکن است بهصورت رایگان باشد و هم اینکه شاید در برخی موارد لازم باشد هزینهای در قبالِ دریافت آن بپردازیم. در هر صورت، فارغ از اینکه نرمافزار GNU را رایگان یا در ازای پرداخت هزینهای، دریافت کردیم، با در اختیار داشتن آن (در هنگام استفاده از آن)، مشمول چهار مورد آزادی مشخص میشویم.
موارد مربوط به آزادی در گنو چیست ؟
در ادامه هر یک از مَنِشهای آزادی در گنو فهرست شدهاند:
- آزادیم تا برنامه را همانطوری که مایلیم اجرا کنیم
- میتوانیم برنامه را کپی کنیم و آن را به دوستان و همکارانمان بدهیم
- دسترسی کامل به سورس کد آن داریم و میتوانیم برنامه را به هر نحوی که بخواهیم تغییر دهیم
- همچنین آزادیم تا نسخه بهبودیافته آن را توزیع کنیم که این امر، به ساختن «اجتماع» (Community) آن نرمافزار کمک میکند.
به یاد داشته باشید اگر نرمافزار گنو را مجدداً توزیع کنید، میتوانید به منظور عمل فیزیکی صورت گرفته برای انتقال کپی، هزینهای را دریافت کنید، یا اینکه کپیها را به رایگان در اختیار افرادی قرار دهید.
سیستم گنو چه زمانی عرضه شد؟
تا سال ۱۳۶۹ (۱۹۹۰ میلادی)، همه اجزای اصلی سیستم عامل به جز یک مورد یعنی «هسته» (کرنل) آن نوشته شده بود. در نهایت، در سال ۱۳۷۰ (۱۹۹۱ میلادی)، سیستم عامل «لینوکس» (Linux) با هستهای شبیه به یونیکس، توسط آقای «لینوس توروالدز» (Linus Torvalds) توسعه یافت و در سال ۱۳۷۱ (۱۹۹۲ میلادی) به عنوان «نرمافزاری آزاد» مورد استفاده قرار گرفت.
ترکیب لینوکس با برنامههای توسعه داده شده برای GNU منجر به ظهور سیستم عامل کاملی بهنام «گنو/لینوکس» (GNU/Linux) شد. پیشبینیها نشان میدهد که در حال حاضر، دهها میلیون نفر از سیستمهای گنو/لینوکس، (غالبا بهوسیله توزیعهای آن) استفاده میکنند.
البته آقای توروالدز نام تجاری لینوکس را به نام خود ثبت کرده است و با به کار بردن نام GNU/Linux مخالفت دارد. بیشتر آقای استالمن تاکید دارد که از عبارت GNU/Linux برای خطاب قرار دادن سیستم عامل لینوکس استفاده شود. برای کسب اطلاعات دقیقتر پیرامون این مسائل، مشاهده فیلم مستند «انقلاب سیستم عامل» (Revolution OS) به علاقهمندان پیشنهاد میشود.
توزیع های گنو لینوکس چیست؟
توزیعهای رایگان سیستم عامل گنو/لینوکس فقط شامل نرمافزارهای آزاد میشوند و تنها این نوع نرمافزارها را پیشنهاد میکنند. اپلیکیشنها، پلتفرمهای برنامهنویسی، درایورها و «ثابتافزار» (Firmware) غیرآزاد، «Blob» و به طور کلی هر نرمافزار و مستنداتی که آزاد نباشند را رد میکنند. اگر احیانا مشخص شود که برخی از این نرمافزارهای غیر آزاد به اشتباه وارد جریان نرمافزارهای آزاد شدهاند، کنار گذاشته میشوند. لازم به ذکر است که ثابتافزار، برنامهای معمولا ثابت و کوچک است که درون سخت افزار انواع دستگاههای الکترونیکی (مثل مودم) قرار میگیرد.
نسخه اصلی لینوکس در حال حاضر حاوی ثابتافزار «Blobs» غیررایگان است. فعالان «نرمافزار آزاد» اکنون نسخهای آزاد و اصلاح شده از لینوکس به نام «Linux-libre» (هستهای آزاد از لینوکس) را نگهداری میکنند. لازم به ذکر است که «حباب» (Blob) در لینوکس قطعه کدی است که در سختافزار مرتبط با درایور اجرا میشود. ایده این است که از دیدگاه درایور، سختافزاری که حبابی روی آن بارگذاری شده است، همچنان به عنوان سخت افزار تلقی میشود.
توزیع های آزاد گنو لینوکس کدامند؟
در ادامه «مطلب GNU چیست»، توصیه میکنیم از توزیع رایگان سیستم گنو/لینوکس استفاده کنید، توزیعی که هیچگونه نرمافزار اختصاصی را شامل نمیشود. به این ترتیب میتوانید مطمئن شوید که هیچ برنامه غیر آزادی را نصب نمیکنید. در ادامه برخی از این نوع توزیعها را مرور میکنیم.
- Dragora: توزیعی مستقل از «گنو/لینوکس» که بر مبنای مفاهیم «سادگی» شکل گرفته است.
- Dyne:bolic: این توزیع با تمرکز بر روی ویرایش صوت و تصویر ایجاد شده است و بهصورت «زنده» (Live) و با سیدی مربوطه اجرا میشود.
- Guix System: توزیعی پیشرفته از گنو/لینوکس به حساب میآید و به عنوان «مدیر بستهای» کاملا کاربردی، برای سیستم GNU عمل میکند.
- PureOS: این توزیع مبتنی بر Debian است و روی موضوع حریم شخصی، امنیت و راحتی در استفاده، تمرکز دارد.
منظور از توزیع های آزاد غیر گنو چیست ؟
این نوع توزیعها، «آزاد»، اما کاملاً متفاوت از گنو هستند و استفاده از آنها به استفاده از گنو/لینوکس، شباهتی ندارد. با این حال، آنها همان معیارهای اخلاقی را برآورده میکنند که برای توزیعهای گنو/لینوکس اعمال شدهاند. یکی از این نوع توزیعها، توزیع «Replicant» است.
نسخهای رایگان از اندروید که توسعهدهندگانِ آن بسیاری از کتابخانههای «غیر آزاد» را برای مدلهای خاص تلفن همراه، با نمونه آزاد آن جایگزین کردهاند. البته به استثنای برنامههایی غیر آزاد، که مطمئناً نمیخواهیم و قرار نیست از آنها استفاده کنیم.
منظور از کمک به توسعه گنو چیست ؟
همه توزیعهایی که بیان شدند، از کمکی که منجر به توسعه بیشتر آنها شود، استقبال میکنند. بنابراین، اگر میخواهید سهم مؤثری در توزیعهای رایگان گنو/لینوکس داشته باشید، پیشنهاد میکنیم به جای شروعی جدید با توزیعی آزاد، به توسعه توزیع آزادی که موجود است بپیوندید.
شرح برخی از مفاهیم مرتبط با گنو
همانطور که پیشتر بیان شد، GNU مجموعهای گسترده از نرمافزارهای آزاد است که میتواند به عنوان سیستمعامل یا در بخشهایی همراه با سیستم عاملهای دیگر استفاده شود.
همچنین، لازم است بدانیم پروژه گنو به سیستم عامل محدود نمیشود. هدف آن ارائه طیف کاملی از نرمافزارهای آزاد است، هر آنچه که کاربران نیاز دارند و میخواهند داشته باشند. این مفهوم، مواردی همچون نرمافزارهای کاربردی، ابزارهای اینترنتی، آفیس، چندرسانهای، پایگاهداده، بازیها و غیره را شامل میشود. در این بخش برخی از مولفههای GNU معرفی شدهاند.
منظور از اجزای GNU چیست ؟
از مولفههای تشکیل دهنده GNU، میتوان به مواردی اشاره کرد که در ادامه فهرست شدهاند.
- مجموعه کامپایلر گنو (GCC)
- کتابخانه گنو سی (glibc)
- دیباگر گنو (GDB)
- ابزارهای هسته گنو (coreutils)
- ابزارهای باینری گنو (binutils)
- پوسته Bash گنو
- محیط دسکتاپ گِنوم (Gnome)
توسعهدهندگان گنو به «منتقل کردن» (Port کردن) برنامهها و ابزارهای GNU کمک زیادی کردهاند، که منجر به استفاده از این برنامهها در سیستمعاملهای دیگر مانند انواع BSD ،Solaris و macOS شده است. باید اشاره کرد که مفهوم «Port» به اجرای برنامه کاربردی مربوط به یک سیستم، در سیستم عاملی دیگر اشاره دارد. برای این منظور، بخشهایی از برنامه که به ماشین وابسته هستند باید مجددا بازنویسی شوند.
بسیاری از برنامههای گنو به سیستم عاملهای دیگر، از جمله پلتفرمهای اختصاصی مانند مایکروسافت ویندوز، macOS و غیره منتقل شدهاند و این نشان میدهد که برنامههای گنو نسبت به همتایان انحصاری (اختصاصی) خود در یونیکس، قابل اعتمادتر هستند. همچنین گاهی اوقات به عنوان جایگزینی برای ابزارهای انحصاری، بر روی سیستمهای یونیکس نصب میشوند.
پوسته گنوم در GNU چیست ؟
برای کاربرانی که تخصص زیادی در کامپیوتر و کار با خط فرمان گنو ندارند، نرمافزارهایی مانند میزکار گرافیکی یا همان رابط کاربری گرافیکی به نام «گِنوم» (Gnome) ایجاد شده است که به مبتدیان در استفاده از سیستم گنو کمک میکند.
«گِنوم» (GNOME) محیطی «رومیزی» (Desktop)، «آزاد» و «اپن سورس» برای لینوکس و دیگر سیستم عاملهای شِبهیونیکس به حساب میآید. واژه GNOME در اصل مخفف GNU Network Object Model Environment است. بسیاری از توزیعهای اصلی لینوکس، از جمله Debian ،Endless OS ،Fedora Linux ،Red Hat Enterprise Linux ،SUSE Linux Enterprise ،Ubuntu و Tails، گِنوم را به عنوان محیط رومیزی پیشفرض خود ارائه میکنند.
محیط گنوم بهوسیله پروژه GNOME توسعه داده شده است. این گروه که از بزرگترین مشارکت کنندهگان تحت حمایت شرکت Red Hat هستند، افراد داوطلب و همچنین کسانی که مزد دریافت میکنند را شامل میشود. هدف این پروژه، کمک به ایجاد چارچوبهایی برای توسعه نرمافزار، برنامهنویسی اپلیکیشنهای کاربردیِ برای کاربر نهایی بر اساس این چارچوبها، و تلاشهایی برای هماهنگی بهمنظور بینالمللیسازی، بومیسازی و در دسترس بودن آن نرمافزار است.
مجوز گنو GPL در GNU چیست ؟
«مجوز جامع عمومی گنو» (GNU General Public License | GNU GPL)، یکی از مجوزهای بسیار رایج در نرمافزارهای آزاد محسوب میشود که حقوقی همچون آزادی در اجرا، بررسی، به اشتراکگذاری و تغییر دادن نرمافزار را برای کاربر نهایی تضمین میکند. از معروفترین سیستم عاملها و نرمافزارهای تحت مجوز گنو میتوان به سیستمعاملهای گنو/لینوکس و بستههای نرمافزاری گنو اشاره کرد.
گنو GPL اولین نسخه «کپیلفت» (Copyleft) برای استفاده عمومی است که توسط بنیانگذار «بنیاد نرمافزار آزاد»، ریچارد استالمن برای پروژه گنو نوشته شده است. این مجوز برای دارندگان برنامه کامپیوتری، حقوق موجود در «تعریف نرمافزار آزاد» را به ارمغان میآورد.
تدوین «لایسنس GPL، اولین بار توسط ریچارد استالمن در سال ۱۳۶۸ (۱۹۸۹ میلادی) انجام شد. این مجوز بهوسیله برنامهنویسان و سازمانها برای پرهیز از اختصاصی شدن نرمافزارها مورد استفاده قرار میگیرد. GPL، در حقیقت از تجمیع مجوزهای مشابهی که در آن زمان وجود داشت تشکیل شد، اما در درجه اول، فلسفه بنیاد نرمافزار آزاد و همچنین مفهوم «کپیلفت» استالمن (برای توسعه و توزیع نرمافزار) در اجرای آن مورد توجه قرار گرفت.
با پایبندی به «مجوز GPL» (به اختصار GPL)، کاربر میتواند بهطور آزادانه از نرمافزار، استفاده کند. همچنین تغییرات مورد نظر را روی آن اِعمال یا بدون هیچ محدودیتی توزیع کند. یکی از محبوبترین نرمافزارهایی که از GPL استفاده میکند «وردپرس» (WordPress) است، به این معنی که هر کسی میتواند سورس کد آن را به نحو دلخواه استفاده کند، یا اینکه آن را تغییر یا گسترش دهد. در مورد پروژه وردپرس، GPL منشور حقوق نرمافزاری محسوب میشود.
مجوزهایی که اپن سورس به ما (به عنوان کاربر)، اعطا میکند شامل مواردی است در ادامه بیان میشود.
- از حق دانلود و اجرای آزادانه نرمافزار برخورداریم.
- حق داریم تا نرمافزار به هر صورتیکه مایل تغییر بدهیم.
- این حق را داریم تا نسخههای نرمافزار را مجدداً توزیع کنیم.
- حق تغییر و توزیع کپی نسخههای جدید نرمافزار نیز در اختیار داریم.
GPL با بکارگیری مفهوم کپی لفت به این اهداف دست پیدا میکند. برنامهنویسان میتوانند با در نظر گرفتن آزادی کپی رایت در مجوز نرمافزار، اطمینان حاصل کنند که هیچ یک از نرمافزارهای آنها با اصلاح یا گسترش توسط کاربر دیگر، «اختصاصی» نمیشود.
نسخه های مختلف GPL کدامند؟
در این قسمت نسخههای مختلفی از مجوز GPL را مرور میکنیم که تاکنون منتشر شدهاند.
جی پی ال نسخه ۱
«گِنو جیپیاِل نسخه یک» (GPLv1) در ۶ اسفند ۱۳۶۷ (۱۹۸۹ میلادی) منتشر شد. این مجوز، با برخی از روشهای مورد استفاده توزیعکنندگان نرمافزار مقابله میکرد. منظور روشهایی هستند که اِعمال آنها، باعث محدود شدن «آزادیهای تعریف شده در نرمافزار آزاد» میشد. اولین مشکل این بود که توزیعکنندگان گاهی اوقات فقط فایلهای باینری نرمافزار را منتشر میکردند. یعنی فایلی که قابل اجرا است، اما انسانها نمیتوانند آن را بخوانند یا تغییر دهند. برای حل این مشکل، در GPL نسخه ۱، بیان شد که کپی و توزیع نرمافزار یا هر بخشی از برنامه، باید بهنحوی باشد که سورس کد آن تحت شرایط همان مجوز و بهصورتی در دسترس قرار گیرد که توسط انسان نیز قابل خواندن باشد.
مشکل بعدی این بود که امکان داشت توزیعکنندگان محدودیتهایی را به مجوز فعلی اضافه کنند یا نرمافزار موردنظر را با سایر نرمافزارهایی ترکیب کنند که محدودیتهای اضافه دیگری در توزیع داشتند. اجتماع این ۲ نرمافزار منجر به این میشد که نرمافزار نهایی، محدودیتهای غیرقابل قبولی را به همراه داشته باشد. برای جلوگیری از این مشکل، در GPL نسخه ۱ بیان شد که نسخههای اصلاحشده، در حالت کلی باید تحت شرایط موجود در GPL نسخه ۱ توزیع شوند.
بنابراین، نرمافزار توزیع شده تحت شرایط GPL نسخه ۱ میتواند با نرمافزاری تحت شرایط انعطافپذیر (با محدودیت کمتر) ترکیب شود، زیرا این کار، شرایطی که نرمافزار با آن توزیع میشود را تغییر نمیدهد. با این حال، نرمافزار توزیعشده تحت GPL نسخه ۱ را نمیتوان با نرمافزار توزیعشده تحت مجوز محدودتر (و سختگیرانهنر) ترکیب کرد، زیرا این کار با الزاماتی در تضاد است که کل آن تحت شرایط GPL نسخه ۱ قابل توزیع باشد.
GPLv2 چیست ؟
عمده تغییری که در GPL نسخه ۲ صورت گرفت، با توجه به اظهارات ریچارد استالمن، اضافه شدن بند جدیدی با عنوان «آزادی یا مرگ» (Liberty or Death) در این مجوز بود. بخش مربوطه بیانگر این موضوع است که دارندگان مجوز، «فقط» در صورتی میتوانند یک اثر تحت پوشش GPL را توزیع کنند که بتوانند همه تعهدات آن را برآورده کنند و این علیرغم هر گونه تعهد قانونی دیگری خواهد بود که ممکن است داشته باشند.
به زبان ساده، تعارضهایی که در تعهدات وجود دارند، نمیتوانند تعهدات مجوز را باطل کنند. این ماده باعث میشد هرکدام از طرفین که قصد استفاده از ادعای «نقض حق انحصاری» یا سایر دعواهای قضایی را دارند و منجر به خدشهدار شدن آزادی کاربران تحت مجوز میشود را منصرف کند.
در سال ۱۳۶۹ (۱۹۹۰ میلادی)، مشخص شد که به لحاظ راهبردی، وجود مجوزی انعطافپذیرتر برای کتابخانه C و همچنین کتابخانههای نرمافزاری که اساساً وظیفه کتابخانههای اختصاصی موجود را انجام میدهند، مفید خواهد بود. در سال ۱۳۷۰ (ژوئن ۱۹۹۱)، نسخه دوم از GPL منتشر شد و در همان زمان با معرفی مجوز دوم یعنی «مجوز جامع عمومی کتابخانه گنو» (the GNU Library General Public License) و انتخاب شماره ۲ برای نسخه آن، نشان داد که هر دو مکمل یکدیگر هستند.
شماره نسخهها در سال ۱۳۷۸ (۱۹۹۹ میلادی) با انتشار نسخه 2.1 LGPL، از هم جدا شدند و نام آن به «مجوز جامع عمومی خفیفتر GNU» یا (GNU Lesser General Public License) تغییر یافت. GPL نسخه ۲ نیز برای اشاره به نام جدید LGPL اصلاح شد، اما شماره نسخه آن ثابت ماند.
جی پی ال نسخه ۳
در سال ۱۳۸۴ (اواخر ۲۰۰۵ میلادی)، بنیاد نرمافزار آزاد، شروع به ایجاد نسخه سوم از GPL یا GPLv3 کرد و در دی ماه ۱۳۸۴ (۱۶ ژانویه ۲۰۰۶)، اولین پیشنویس GPLv3 منتشر و مذاکرههای عمومی در این باره شروع شد.
برنامهریزی شده بود که رایزنی عمومی بین ۹ تا ۱۵ ماه به درازا بیانجامد، اما در نهایت ۱۸ ماه طول کشید و طی آن ۴ پیشنویس در دسترس عموم قرار گرفت. در تیر ماه ۱۳۸۴ (۲۹ ژوئن ۲۰۰۷)، بنیاد نرمافزار آزاد، «نسخه سوم از جیپیاِل» (GPLv3) را بهطور رسمی منتشر کرد. GPLv3 توسط ریچارد استالمن با کمک حقوقی «ایبن موگلِن» و «ریچارد فونتانا» از «مرکز حقوقی آزادی نرمافزار» نوشته شد.
با توجه به گفتههای استالمن، مهمترین تغییراتی که در این نسخه شاهد آن بودیم شامل مواردی است که در ادامه فهرست شدهاند.
- موارد مربوط به «حقِ امتیاز» (Patent) نرمافزاری. منظور از حق امتیاز، حقی انحصاری است که روی نرمافزارها، از جمله برنامه کامپیوتری، کتابخانهها، رابط کاربری یا الگوریتم، اِعمال میشود.
- سازگاری با «مجوز نرمافزار آزاد» و لایسنس نرمافزار آزاد. مجوز نرمافزار آزاد به دریافتکننده یک نرمافزار حقوق گستردهای برای اصلاح و توزیع مجدد آن نرمافزار میدهد.
- تعریف «سورس کد»
- محدودیتهای سختافزاری و تغییرات نرمافزاری، مانند «Tivoization». منظور از «Tivoization»، عملی در طراحی سختافزار است که نرمافزار را تحت شرایط مجوز نرمافزار کپیلفت مانند مجوز جامع عمومی گنو در بر میگیرد، اما از محدودیتهای سختافزاری یا «مدیریت حقوق دیجیتال» برای جلوگیری از اجرای نسخههای اصلاحشده نرمافزار بر روی آن سختافزار استفاده میکند.
از دیگر تغییرات صورت گرفته در این نسخه میتوان به مواردی همچون «بینالمللیسازی» (Internationalization)، نحوه رسیدگی به نقض مجوزها و نحوه اعطای مجوزهای اضافی توسط دارنده حقکپی، اشاره کرد. مفهوم «انتشار نرمافزار» (Software Propagation) نیز به عنوان اصطلاحی برای کپی و تکثیر نرمافزار، به روشنی تعریف شد.
تفاوت GPLv2 و GPLv3 در گنو چیست ؟
در این قسمت اشارهای به تفاوتهای موجود بین نسخههای ۲ و ۳ از مجوز GPL (متعلق یه بنیاد نرمافزار آزاد)، خواهیم داشت.
اولین سوالی که مطرح میشود این است که «ضرورت این بهروزرسانی چه بود». در اوایل دهه ۸۰ (سالهای ۲۰۰۰ میلادی)، شرکت آمریکایی «TiVo» بهوسیله «جامعه نرمافزار آزاد» برای محصول محبوب «ضبطکننده ویدیوی دیجیتال» (DVR) مورد انتقاد قرار گرفت. انتقاد ریچارد استالمن، فعالِ حوزه نرمافزار آزاد این بود که چگونه TiVo با اِعمال محدودیتهای نرمافزاری روی محصولات سختافزاری خود، مفهوم نرمافزار آزاد را نقض میکند.
پروژههای TiVo متکی بر پلتفرم محبوب لینوکس منبع آزاد بودند. از آنجایی که لینوکس از مجوز جامع عمومی گنو نسخه 2 (GPLv2) استفاده میکرد، TiVo ملزم به توزیع سورس کد برای هر کسی بود که نرمافزار را دریافت میکرد. استالمن ادعا کرد که TiVo با ممانعت از اجرای «نرمافزار اصلاحشده» بر روی سختافزار خود، این هدف را دور میزند. زیرا محصولات TiVo فقط برنامههایی را اجرا میکنند که امضای دیجیتال (Digital Signature) آنها با موارد مورد تایید TiVo، مطابقت دارد.
این خلأ قانونی، بسیار بحث برانگیز بود. در سال ۱۳۸۵ (۲۰۰۶ میلادی)، بنیاد نرمافزار آزاد با یک نسخه جدید از مجوز عمومی گنو (نسخه ۳) به این قضیه واکنش نشان داد. این مجوز شامل مواردی بود که از شکاف قانونی مذکور جلوگیری میکرد، موردی که به عنوان «Tivoization» شناخته میشود. نسخه سوم از GPL بهطور مناسبی مورد استقبال عموم افراد قرار گرفت. هر چند انتقاداتی در مورد این بهروزرسانی و محدودیتهای آن نیز وجود دارد.
مجوز لینوس توروالد و لینوکس در گنو چیست ؟
در یکی از بزرگترین پروژههای تحت مجوز GPL نسخه ۲، یعنی «لینوکس»، ترجیح داده شد مجوز به نسخه ۳ ارتقا داده نشود. «لینوس توروالدز»، توسعهدهنده اصلی لینوکس، ادعا میکند که نسخه ۳ از GPL نسبت به GPL نسخه ۲ برای او به عنوان یک توسعهدهنده نرمافزار، دارای معنای متفاوتی است.
برخی از فعالان آزادی نرمافزار همچون آقای «بردلی کوهن» از «حفاظت آزادی نرمافزار» (Software Freedom Conservancy)، نیز بر این باور بود که GPL نسخه ۳، در واقع، مشکل و خلا «Tivoization» را رفع نکرده است و به چالشهایی اشاره میکند که در GPL نسخه ۳ وجود دارد. به گفته وی، تلاش برای رفع مسئله «Tivoization» عمدتاً روی اولین پیشنویس GPL نسخه ۳ بود، اما هیچ کس هرگز این موضوع را مطرح نکرد که «اسکریپتهایی که برای نصب استفاده میشوند» همه مواردی که «اطلاعات نصب» GPL نیاز دارد را شامل نمیشوند.
اگر به پیشنویس اول از GPL نسخه ۳ نگاه کنید، میبینید که «اطلاعات نصب» بهطور قابل ملاحضهای تعریف گستردهتری دارند. بنابراین، سوالی که در پایان فرآیند GPL نسخه ۳، هنگام بررسی پیشنویس نهایی وجود دارد، این است که «آیا چیزی در نسخه سوم از GPL، در تعریف «اطلاعات نصب» وجود دارد که برای تولید به عنوان «اسکریپت مورد استفاده برای کنترل نصب، مورد نیاز نباشد». این پرسش، هنوز تعریف مشخصی ندارد و افرادی هستند که قانع نشدهاند. از دیگر تفاوتهای نسخه ۲ و۳ جیپیال، میتوان به مواردی اشاره کرد که در ادامه آمده است.
- «قانون ضد دور زدن» (Anti-Circumvention Law)
- قوانین محصولِ کاربر
- دوره بهبودی و تعهد همکاری GPL
- ادبیات مبهم (Legalese)
مفهوم کپی لفت در GNU چیست ؟
«کپیلفت» (Copyleft) روشی قانونی برای اعطای آزادیهای معین پیرامون نسخههای آثار دارای حق نشر است و استفادهکنندگان را ملزم میکند تا تمامی نسخههای مشتق شده یا گسترش یافته از آنها را نیز بهصورت آزاد منتشر کنند. در اینجا، «آزادی»، استفاده از اثر برای هر هدفی و امکان تغییر، کپی، اشتراکگذاری و توزیع مجدد اثر، با یا بدون هزینه را شامل میشود.
مجوزهایی که از قانون کپیلفت دنبالهروی میکنند، میتوانند برای حفظ شرایط «حق نشر» (Copyright) برای آثاری از قبیل نرمافزار کامپیوتری و سایر موارد، مورد استفاده قرار گیرند.
مزایا و معایب GNU کدامند؟
در این قسمت از مطلب «GNU چیست»، به توضیح برخی از مزایا و معایب گنو پرداخته شده است که در ادامه هر یک را با هم مرور میکنیم.
مزایای گنو چیست ؟
GNU مزایای زیادی دارد که برخی از آنها در ادامه فهرست شدهاند.
- کمهزینه بودن
- بستههای نرمافزاری اپن سورس
- پایداری
- کارایی
- قابلیت چند وظیفهای
- امنیت
- سازگاری و قابل پیکربندی بودن
- بهبود، بدون تحمیل هزینه به کاربر
معایب گنو چیست ؟
برخی از مواردی که میتوان بهعنوان معایب گنو نام برد، در ادامه فهرست شده است.
- برای افرادی که تا پیش از این، تنها تحت تاثیر مایکروسافت ویندوز بودهاند، GNU منحنی یادگیری ناهموارتری دارد.
- از آنجاییکه GNU از ابتدا بهوسیله برنامهنویسان و همچنین برای استفاده آنها ایجاد شد، درک آن برای کاربران عادی شاید کمی دشوار بهنظر برسد.
- «مدیریت» (Administration) سیستمهای لینوکسی برای مبتدیان سخت است.
نرم افزار آزاد چیست؟
در این قسمت، مفهوم نرمافزار آزاد مورد بررسی قرار گرفته است.
نرم افزار آزاد در گنو چیست ؟
«نرمافزار آزاد» (Free Software)، نرمافزاری است که به آزادی کاربر و جامعه احترام میگذارد. به بیان دیگر، کاربران در نحوه اجرا، کپی کردن، توزیع، بررسی، تغییر و بهبود آن نرمافزار، آزاد هستند. بنابراین نکته قابل توجه در مورد آزاد بودن نرمافزار، در اصل چنین نوعی از آزادی است، نه اینکه فقط قیمت آن رایگان باشد. برای درک این مفهوم، باید کلمه «آزاد» را مثلاً در اصطلاح «آزادی بیان» در نظر بگیرید (نه به معنای جنس رایگان). گاهی اوقات نیز آن را «Libre Software» مینامند و از کلمه فرانسوی یا اسپانیایی برای رساندن معنای صحیح «آزادی» استفاده میکنند.
ممکن است برای دریافت کپی از برنامه آزاد، هزینهای پرداخت کرده باشید یا اینکه آن نرمافزار آزاد بهصورت رایگان تهیه شده باشد. صرفنظر از این موضوع، همیشه این آزادی را دارید که نرمافزار را کپی کنید و تغییر دهید، حتی نسخههای آن را به فروش برسانید. با این نوع از آزادیها، کاربران (چه به صورت فردی و چه جمعی) به کنترل برنامه و آنچه میپردازند که برنامه برای آنها انجام میدهد. در صورتی که نتوان برنامهای را کنترل کرد، آن برنامه را «غیر آزاد» یا انحصاری مینامیم. به بیان دیگر، برنامه غیر آزاد، کاربر را کنترل میکند و توسعهدهنده، برنامه را به کنترل خود در میآورد. اینگونه است که برنامه به «ابزار قدرتی ناعادلانه» تبدیل میشود.
تعریف نرم افزار آزاد در گنو چیست ؟
«تعریف نرمافزار آزاد» بیانگر معیارهایی است که مشخص میکنند آیا برنامه نرمافزاری خاصی به عنوان «نرمافزار آزاد» واجد شرایط هست یا خیر. هر از چندگاهی این تعریف، اصلاح و در آن تجدید نظرهایی صورت میگیرد تا پاسخگوی سوالاتی راجع به مسائل ریز و همچنین تصریح آن باشد.
چهار نوع آزادی موجود در مفهوم نرم افزار آزاد در گنو چیست ؟
برنامهای، نرمافزار آزاد تلقی میشود که کاربران، دارای ۴ نوع آزادی در هنگام استفاده از آن باشند، این موارد در ادامه فهرست شدهاند.
- آزادی در اجرای برنامه، با هر قصدی و به هر نحوی که مایل باشیم.
- آزادی در مطالعه، بررسی کدها، نحوه عملکرد و کارکرد برنامه و همچنین تغییر آن به گونهای که محاسباتمان را همانطور که مایلیم انجام دهد. لازم به ذکر است که دسترسی داشتن به سورس کد پیش شرط این امر است.
- آزادی توزیع مجدد نسخهها یا کپیهای برنامه، تا از این طریق به دیگران و به جامعه نرمافزارهای آزاد کمک کنیم.
- آزادی توزیع کپی از نسخههای اصلاح شده خود به دیگران؛ با انجام این کار میتوانیم به همگان و کل جامعه فرصتی دهیم تا از تغییراتی که ایجاد کردهایم بهرهمند شوند. برای این مورد هم دسترسی داشتن به سورس کد پیششرط محسوب میشود.
یک برنامه در صورتی نرمافزار آزاد محسوب میشود که تمام این آزادیها را به اندازه کافی و بهطور مناسب در اختیار کاربران قرار دهد. در غیر این صورت، برنامهای «غیر آزاد» تلقی خواهد شد. هر چند میتوانیم طرحهای توزیع «غیر آزاد» مختلف را از نظر اینکه چقدر از آزاد بودن فاصله دارند، متمایز کنیم، اما همه آنها از منظر آزادی نرمافزار به یک اندازه غیراخلاقی شمرده میشوند.
در هر سناریو، این آزادیها را باید برای هر کدی اعمال کرد که قصد استفاده از آن را داریم یا دیگران را به استفاده از آن سوق میدهیم. به عنوان مثال، برنامه A را در نظر بگیرید که به طور خودکار برنامه B را برای رسیدگی به برخی موارد اجرا میکند. اگر میخواهیم برنامه A را همانطور که هست توزیع کنیم، کاربران به B نیاز خواهند داشت، بنابراین باید تشخیص دهیم که آیا A و B هر دو آزاد هستند یا خیر. با این حال، اگر قصد داریم برنامه A را طوری تغییر دهیم که از B استفاده نکند، فقط برنامه A نیاز به «آزاد» بودن دارد و برنامه B مشمول این مورد نمیشود.
مفهوم اپن سورس در گنو چیست ؟
اپن سورس در مقابل نرمافزار آزاد، مفهوم متفاوتی را ابراز میکند. یعنی فلسفه متفاوتی دارد که بر مبنای ارزشهای مختلفی استوار است. اما میتوان گفت که تقریباً همه برنامههای اپن سورس، در واقع به نوعی برنامهای «آزاد» هستند.
منظور از نرمافزار اُپِن سورس، نرمافزاری است که میتوانید آن را بر مبنای نیازهای خود تغییر دهید و بدون اینکه مجوزی را نقض کنید آن را با دیگران به اشتراک بگذارید. وقتی میگوییم نرمافزاری «اپن سورس» است، یعنی سورس کد آن نرمافزار بهصورت عمومی و با مجوزهای اپن سورس همچون گِنو (GPL) در دسترس است که امکان ویرایش سورس آن را برای ما را فراهم میکند. با مطالعه این مجوزها متوجه میشویم که هدف تمام آنها کمک به ما است.
- این اصطلاح بهوسیله برنامهنویسانی که بهطور آنلاین با هم مشارکت دارند تا نرمافزاری را توسعه دهند، ابداع شده است.
- بعدها توسط «پیشگامان اپن سورس» (Open Source Initiative | OSI) سازماندهی شد.
- ارزشهای اخلاقی که مستقیماً با توسعه نرمافزار مرتبط است را به صراحت بیان نمیکند.
مزیت های نرم افزار آزاد چیست؟
در ادامه برخی از مزایا نرمافزارهای آزاد بیان شده است.
- نرمافزار اپن سورس را معمولاً بهطور رایگان میتوان استفاده نمود، تغییر داد یا توزیع کرد.
- سورس کد نرمافزارهای اپن سورس، در دسترس همگان قرار دارد و این امکان برای کاربران فراهم میشود تا آن را مطابق با نیازهای خود تغییر دهند و سفارشی کنند.
- نرمافزار اپن سورس اغلب دارای جامعه بزرگی از برنامهنویسان و کاربران است که در توسعه و پشتیبانی آن مشارکت دارند.
- سورس کد نرمافزار اپن سورس را همه میتوانند ببینند. به همین دلیل فرایند شناسایی و رفع اشکالات و آسیبپذیریها آسانتر میشود.
- نرمافزار اپن سورس را میتوان روی طیف گستردهای از پلتفرمها و دستگاهها استفاده کرد.
معایب نرم افزار آزاد چیست؟
تعدادی از معایب نرمافزارهای آزاد را در ادامه شرح دادهایم.
- با اینکه نرمافزارهای اپن سورس جامعه بزرگی از توسعهدهندگان و کاربران را شامل میشود، ممکن است همیشه سطح یکسانی از پشتیبانی حرفهای، مانند نرمافزارهای تجاری را نداشته باشد.
- نرمافزار اپن سورس ممکن است گاهی اوقات با سایر برنامههای نرمافزاری و دستگاههای سختافزاری، سازگار نباشد.
- از آنجاییکه سورس کد نرمافزار اپن سورس در دسترس همه قرار دارد، ممکن است برای عوامل مخرب، شناسایی و سوء استفاده از آسیبپذیریها آسانتر باشد.
- استفاده از نرمافزار اپن سورس میتواند پیچیدگی و دشواری بیشتری نسبت به نرمافزارهای تجاری (بهویژه برای کاربران غیر فنی) داشته باشد.
- نرمافزارهای اپن سورس ممکن است همیشه به اندازه نرمافزارهای تجاری، اسناد و راهنمای کاربری نداشته باشند.
شباهت های نرم افزار آزاد و نرم افزاز اپن سورس کدام اند؟
نرمافزارهای اوپن سورس و نرمافزارهای آزاد دارای ویژگیهای مشترکی هستند که در ادامه با هم مرور میکنیم.
- دسترسی به سورس کد در هر ۲ نوع این نرمافزارها وجود دارد و کاربران اجازه تغییر و بهبود نرمافزار را دارند.
- معمولاً به جامعهای از کاربران و برنامهنویسان، بهمنظور پشتیبانی و مشارکت در توسعه نرمافزار، متکیاند.
- اغلب تحت «مجوزهای باز» توزیع میشوند و امکان اصلاح، توزیع و استفاده بدون محدودیت را برای کاربران فراهم میکنند.
تفاوت نرم افزار آزاد در مقابل نرم افزار اوپن سورس چیست؟
نرمافزار آزاد و نرمافزار اپن سورس، مفاهیمی مجزا هستند که هر کدام نقاط قوت و ضعف خاص خود را دارند. نرمافزار آزاد با هدف ارتقای آزادی و دادن کنترل کامل نرمافزار به کاربران توسعه یافته است. نرمافزار اپن سورس با هدف تولید نرمافزاری باکیفیت و قابل استفاده برای هر شخص، صرفنظر از تواناییهای فنی، توسعه داده شده است.
در نهایت، انتخاب بین نرمافزار آزاد و نرمافزار اپن سورس به نیازهای کاربر و مسايل خاصی بستگی دارد که در تلاش برای حل آنها هستیم. در ادامه، برخی از ویژگیهای موجود در فلسفه نرمافزارهای اوپن سورس و نرمافزارهای آزاد را با یکدیگر مرور خواهیم کرد.
فلسفه نرمافزار آزاد | فلسفه نرمافزار اپن سورس |
در دهه ۶۰ (سالهای ۱۹۸۰ میلادی) توسط بنیاد نرمافزار آزاد ابداع شد. | در پاسخ به محدودیتهای نرمافزاری ایجاد شد. |
نرمافزار بخش مهمی از زندگی مردم است. | نرمافزار فقط نرمافزار است و هیچ ملاحضات اخلاقی وجود ندارد که مستقیماً با آن مرتبط باشد. |
«آزادی» نرمافزار به معنای آزادی اجتماعی است. | اصول اخلاقی مربوط به افراد است و ربطی به نرمافزارها ندارد. |
«آزادی»، ارزشی است که از هر مزیت اقتصادی دیگر اهمیت بیشتری دارد. | «آزادی» مفهوم مطلقی نیست. مفهومی است که باید مُجاز باشد نه اینکه تحمیل شود. |
هر نرمافزار «آزاد»ی، اپن سورس محسوب میشود. | هر نرمافزار اپن سورس، لزوماً نرمافزاری آزاد نیست. |
فاقد مشکلاتی است که در نرمافزار اپن سورس وجود دارد. | مجوزهای متعددی برای نرمافزار متنباز وجود دارد و برخی از آنها کاملاً محدود کنندهاند. در نتیجه نرمافزار متنبازی به وجود میآید که آزاد نیست. |
هیچ محدودیتی روی نرمافزار آزاد اعمال نمیشود. | نرمافزار اپن سورس گاهی اوقات محدودیتهایی را به کاربران تحمیل میکنند. |
دایرکتوری نرمافزار آزاد پایگاه دادهای بزرگ از بستههای نرمافزاری آزاد را نگهداری میکند. از معروفترینِ این نرمافزارها میتوان مواردی مانند هسته لینوکس، سیستمعاملهای BSD و لینوکس، مجموعه کامپایلر گنو و کتابخانه C، پایگاه داده رابطهای MySQL، وب سرور «آپاچی» (Apache) و برنامه ارسال پست الکترونیکی «Sendmail» را نام برد.
از محصولات مهم اپن سورس هم میتوان به مواردی همچون سرور HTTP آپاچی، پلتفرم تجارت الکترونیکی اپن سورس، مرورگرهای اینترنتی موزیلا فایرفاکس و کرومیوم (پروژهای که اکثریت قریب به اتفاق توسعه نرمافزار آزاد گوگل کروم در آن انجام میشود) و مجموعه آفیس LibreOffice، اشاره کرد.
چه زمانی از برنامه های اختصاصی استفاده می کنیم؟
«نرمافزار اختصاصی» (Proprietary)، نام دیگری برای نرمافزار «غیرآزاد» است. در گذشته نرمافزار غیرآزاد را به دسته دیگری بهنام «نرمافزار نیمهآزاد» (Semi-Free Software) نیز تقسیم میکردند که میتوانستیم آن را بر خلاف نرمافزار اختصاصی، برای مقاصد غیرتجاری تغییر دهیم و دوباره توزیع کنیم. اما امروزه این تقسیمبندی کنار گذاشته شده است و در حال حاضر از «نرمافزار اختصاصی» بهعنوان مترادفی برای نرمافزار غیرآزاد استفاده میشود.
بنیاد نرمافزار آزاد، از قانونی با این شرح که «ما نمیتوانیم هیچ برنامه اختصاصی را روی رایانههای خود نصب کنیم، مگر به طور موقت و با هدف نوشتن جایگزینی رایگان برای همان برنامه»، پیروی میکند. هرچند، به نظر میآید که عموماً هیچ بهانهای برای نصب برنامهای اختصاصی پذیرفته نیست.
به عنوان مثال، در دهه ۶۰ (سالهای ۱۹۸۰ میلادی)، توسعهدهنگان گنو برای نصب سیستم عامل یونیکس بر روی رایانه خود توجیه و دلیلی منطقی داشتند، زیرا داشتند از یونیکس برای نوشتن سیستم عاملی آزاد (جایگزین یونیکس) استفاده میکردند. اما امروزه، با توجه به اینکه، سیستم عاملهای رایگان در دسترس هستند، چنین بهانهای دیگر وجود ندارد. بنابراین پیروان خط مشی آزادی نرمافزار از هیچ سیستم عامل غیر آزادی استفاده نمیکنند و هر کامپیوتر جدیدی که قرار است راهاندازی شود، ضروری است تا سیستم عاملی کاملا آزاد را اجرا کند.
لازم به ذکر است که اصراری وجود ندارد مبنی بر اینکه کاربران گنو، یا مشارکتکنندگان در این پروژه، باید بر اساس این قانون زندگی کنند. این قانونی است که از ابتدا در ذهن توسعهدهنگان نرمافزار آزاد وجود داشت. اما امیدواریم که همگان بهخاطر آزادی خود از آن پیروی کنند.
مفهوم لوگوی GNU چیست ؟
لوگویی که برای GNU طراحی شده است، سرِ گَوَزنی یالدار را نشان میدهد که نسخه اولیه آن بهوسیله «اتین سواسا» طراحی شده بود. البته امروزه نسخه ساده و شکیلتر ایجاد شده توسط «اوریلو هِکِرت» ترجیح داده میشود و به نمادی برای نرمافزار گنو تبدیل شده است.
نشانی که در اسناد چاپی و الکترونیکی پروژه گنو ظاهر میشود و در مطالب بنیاد نرمافزار آزاد نیز مورد استفاده قرار میگیرد. همچنین نسخهای اصلاحشده از لوگوی رسمی آن وجود دارد که توسط بنیاد نرمافزار آزاد در سال ۱۳۹۲ (سپتامبر ۲۰۱۳) بهمنظور بزرگداشت سیاُمین سالگرد ایجاد پروژه گنو ساخته شده است.
اکنون در بخش انتهایی مطلب گنو چیست به برخی از پرسشهای متداول در این زمینه پاسخ میدهیم.
سوالات پر تکرار
در این قسمت، برخی از پرسشهای رایج در مورد اینکه «GNU چیست» و همچنین ماهیت آن را با هم مرور میکنیم.
اهمیت پروژه GNU چیست ؟
پروژه گنو، طرحی نوآورانه از «مشارکت جمعی» برای توسعه نرمافزار آزاد به حساب میآید. ریچارد استالمن این پروژه را در سال ۱۳۵۷ (۱۹۷۸ میلادی) در آزمایشگاه موسسه هوش مصنوعی MIT پایهگذاری کرد. هدف اولیه پروژه گنو ایجاد سیستم عاملی آزاد بود. لازم به ذکر است که در این مفهوم، «آزادی» لزوماً به معنای رایگان بودن نیست.
علت نامگذاری GNU چیست ؟
دلیل انتخاب اصطلاح «GNU» این است که مخفف بازگشتی عبارت «GNU’s Not Unix» بهشمار میرود و علیرغم شبیه بودن به یونیکس، از کدهای آن استفاده نکرده است. همچنین، واژهای است معنیدار و خوش آهنگ که به نوعی گوزن یالدار اشاره دارد.
اهداف اصلی پروژه GNU چیست ؟
هدف این پروژه، آزاد گذاشتن کاربران کامپیوتر و دستگاههای محاسباتی، از طریق توسعه و انتشار نرمافزاری آزاد است که به همگان حق اجرای آزادانه نرمافزار، کپی، توزیع، بررسی و تغییر آن را میدهد. نرمافزار گنو این حقوق را در مجوز خود اعطا میکند.
گنو از چه بخش هایی تشکیل شده است؟
گنو سیستم عاملی شِبه یونیکس است و مجموعهای از تعداد زیادی برنامه، مانند اپلیکیشنها، کتابخانهها، ابزارهای مربوط به توسعه و حتی بازیها را شامل میشود.
مالک نرم افزار GPL چه کسی است؟
متن GPL به خودی خود دارای کپیرایت و این حق متعلق به بنیاد نرمافزار آزاد است. این بنیاد به افراد اجازه میدهد تا مجوزهای جدیدی را بر مبنای GPL ایجاد کنند. البته این تا زمانی است که بدون اجازه از مقدمه آن استفاده نکنند.
تفاوت بین نسخههای ۲ و ۳ از GPL گنو چیست ؟
نسخه ۳ از GPL علاوه بر حفظ هدف اصلی GPL نسخه ۲، حفاظتهای کپیلفت سختگیرانهتری دارد. باتوجه به کلام GPL نسخه ۳، بهطور جامعتری به تغییرات فنی و قانونی رسیدگی میشود. در این مورد میتوان به مواردی از جمله بندهای «تبادل مجوز بینالمللی» اشاره کرد.چهار بند جدید اصلی موجود در GPL نسخه ۳ شامل آییننامه سازگاری، مدیریت قوانین دیجیتال، مجوز صریح حق امتیاز و معافیت سورس کد برای ASP، هستند.
جمع بندی
امیدواریم که این مطلب با شرح اینکه GNU چیست، برای شما مفید بوده باشد. همانطور که بیان شد، GNU پروژهای است که مفهوم نرمافزار آزاد، از آن سرچشمه گرفته شده است. ریچارد استالمن، بنیانگذار این پروژه، گنو را به عنوان وسیلهای برای رسیدن به هدفی اجتماعی میداند. در همین راستا، استالمن در کتابِ «نرمافزار آزاد، جامعه آزاد»، درباره جنبههای اجتماعی نرمافزار و اینکه نرمافزار آزاد چگونه میتواند عدالت اجتماعی را در جامعه ایجاد کند، توضیح داده است.
گنو طرحی شبیه به یونیکس دارد، اما برخلاف آن، بهصورت آزاد در دسترس است. همچنین حاوی هیچ کدی از یونیکس نیست. GNU، مجموعهای از برنامههای کاربردی، کتابخانهها، ابزارهای توسعهدهنده، بازیها و برنامهای برای تخصیص منابع و ارتباط با سخت افزار یا هسته را شامل میشود. با به شهرت رسیدن GNU، کسب و کارهای علاقهمند به این موضوع، شروع به مشارکت در توسعه و فروش نرمافزار آزاد یا پشتیبانی فنی GNU کردند.
کاربران گنو/لینوکس میتوانند نرمافزار یا سیستم عامل خود را به شیوهای دلخواه شخصیسازی کنند. اما اگر این سوال برای شما بهوجود آمده باشد که «نرمافزار آزاد تا کجا میتواند پیش برود»، در پاسخ میتوان گفت که محدودیتی وجود ندارد، مگر زمانیکه قوانینی مانند سیستم ثبت اختراع، نرمافزار آزاد را ممنوع کند. هدف نهایی از ارائه «آزادی نرمافزار» ، آزاد گذاشتن کاربران در انجام تمام کارهایی است که تمایل به انجام آن دارند. تا از این طریق، نرمافزارهای انحصاری به تاریخ سپرده شوند.