GNU چیست؟ تاریخچه، اهداف و تاثیر آن بر جهان نرمافزار

پروژه گنو (GNU) که مخفف بازگشتی «GNU's Not Unix» (گنو یونیکس نیست) است، یکی از مهمترین و تاثیرگذارترین جنبشهای فنی و اجتماعی در تاریخ علوم کامپیوتر و نرمافزار آزاد به شمار میرود. این پروژه که توسط ریچارد استالمن در سال ۱۹۸۳ در آزمایشگاه هوش مصنوعی امآیتی آغاز شد، با هدف ساخت یک سیستم عامل کامل و شبیه یونیکس (Unix) شکل گرفت که کاملا از نرمافزار آزاد تشکیل شده باشد و تضمینکننده چهار آزادی اساسی برای کاربرانش باشد.
انقلاب نرمافزار آزاد و چهار آزادی بنیانگذار
فلسفه اصلی پروژه گنو، تضمین آزادی کاربران رایانه است. استالمن استدلال کرد که نرمافزار انحصاری، کاربران را از توانایی مطالعه، تغییر و به اشتراکگذاری ابزارهای خود محروم میکند و این نقض اخلاقی است. مفهوم نرمافزار آزاد (Free Software) که توسط گنو ترویج میشود، بر چهار اصل اساسی آزادی بنا شده است:
آزادی صفر (آزادی استفاده)
آزادی در اجرای برنامه برای هر منظوری که کاربر در نظر دارد، بدون هیچ گونه محدودیتی.
آزادی یک (آزادی مطالعه و تغییر)
آزادی در مطالعه نحوه کارکرد برنامه و تغییر آن برای انجام محاسبات دلخواه. این آزادی مستلزم دسترسی به کد منبع (Source Code) نرمافزار است.
آزادی دو (آزادی توزیع نسخههای اصلی)
آزادی در توزیع مجدد و کپی کردن نسخههای اصلی نرمافزار تا بتوان به دیگران کمک کرد.
آزادی سه (آزادی توزیع نسخههای تغییریافته)
آزادی در توزیع نسخههای تغییر یافتهای که توسط خود کاربر بهبود یافتهاند. این کار به کل جامعه اجازه میدهد تا از اصلاحات شما بهرهمند شوند.
مولفههای نرمافزاری کلیدی پروژه GNU
پروژه گنو برای ساختن یک سیستم عامل کامل، مجموعهای گسترده از ابزارها و برنامهها را توسعه داده است که امروزه ستون فقرات بسیاری از سیستمهای عامل هستند:
مجموعه کامپایلرهای گنو (GCC)
GCC (GNU Compiler Collection) مهمترین کامپایلر پروژه گنو است. این ابزار قادر است کدهای نوشته شده به زبانهای برنامهنویسی مختلف (مثل C، C++، جاوا و…) را به کدهای قابل اجرا توسط رایانه تبدیل کند. کیفیت بالا و پشتیبانی گسترده GCC آن را به یک استاندارد صنعتی در توسعه نرمافزار تبدیل کرده است.
ابزارهای اصلی و شل (Core Utilities and Shell)
پروژه گنو ابزارهای اصلی و استاندارد یونیکس را در قالبی آزاد بازنویسی کرده است. این ابزارها شامل دستورات پرکاربردی مانند ls، cp، mv، grep، awk و… هستند. همچنین، Bash (Bourne Again SHell)، پوسته خط فرمان استاندارد در بسیاری از سیستمهای گنو/لینوکس، توسط این پروژه توسعه یافته است.
دیباگر گنو (GDB)
GDB (GNU Debugger) ابزار قدرتمندی است که به برنامهنویسان اجازه میدهد تا برنامههای خود را خط به خط بررسی کرده، اشکالات آن را پیدا و اصلاح کنند. این ابزار برای توسعهدهندگان نرمافزارهای پیچیده حیاتی است.
تولد گنو/لینوکس: همگرایی و موفقیت عملی
با وجود توسعه موفقیتآمیز تمامی ابزارهای فوق، پروژه گنو در دهه ۱۹۹۰ هنوز نتوانسته بود کرنل (هسته) سیستم عامل خود یعنی گنو هرد (GNU Hurd) را به پایداری لازم برساند.
در سال ۱۹۹۱، لینوس توروالدز، دانشجوی فنلاندی، کرنل لینوکس را منتشر کرد. این کرنل بر خلاف هرد که دارای معماری میکرونرنلی پیچیدهای بود، به سرعت توسعه یافت و کامل شد. کرنل لینوکس یک جزء مفقوده برای تبدیل ابزارهای گنو به یک سیستم عامل کاملا کاربردی بود.
ترکیب سیستم عامل گنو (ابزارها، کتابخانهها، کامپایلرها) با کرنل لینوکس، سیستم عامل مشهوری را ایجاد کرد که امروزه عموما به نام لینوکس شناخته میشود. بنیاد نرمافزار آزاد برای تاکید بر نقش حیاتی ابزارهای خود، اصرار دارد که از نام گنو/لینوکس استفاده شود. امروزه، این سیستم عامل در زیرساخت اینترنت، سرورها، رایانش ابری و دستگاههای هوشمند (مانند اندروید) غلبه دارد.
مجوز عمومی همگانی گنو (GPL) و کپیلفت
برای محافظت از چهار آزادی کاربران در برابر تبدیل شدن نرمافزار آزاد به نرمافزار انحصاری، پروژه گنو مجوز عمومی همگانی گنو (GNU GPL) را ایجاد کرد. GPL که اکنون یکی از مهمترین اسناد قانونی در دنیای نرمافزار است، از مفهوم کپیلفت (Copyleft) استفاده میکند.
کپیلفت یک بازی با کلمه حق تکثیر (Copyright) است. بر اساس کپیلفت، هر نرمافزاری که تحت مجوز GPL منتشر شود، اگر تغییر داده شده و توزیع مجدد شود، باید نسخه جدید نیز تحت همان مجوز (GPL) منتشر شود. به این ترتیب، آزادیهای کاربر همواره حفظ شده و در طول زنجیره توزیع به ارث میرسد. این مکانیزم تضمین میکند که هیچ کس نمیتواند کد منبع آزاد گنو را برداشته و آن را به یک محصول کاملا انحصاری تبدیل کند.
بنیاد نرمافزار آزاد (FSF) و نقش حمایتی
در سال ۱۹۸۵، ریچارد استالمن بنیاد نرمافزار آزاد (Free Software Foundation یا FSF) را تاسیس کرد. FSF یک سازمان غیرانتفاعی است که وظایف زیر را بر عهده دارد:
- حمایت مالی: جمعآوری بودجه برای توسعه و نگهداری نرمافزارهای گنو.
- حمایت حقوقی: دفاع از مجوز GPL و آزادیهای نرمافزار آزاد در دادگاهها و مجامع قانونی.
- ترویج فلسفه: آموزش عمومی درباره جنبههای اخلاقی و اجتماعی نرمافزار آزاد و تفاوت آن با جنبش متن باز.
تفاوتهای فلسفی گنو با متن باز (Open Source)
جنبش متن باز (Open Source) در سال ۱۹۹۸ شکل گرفت. گرچه تقریبا تمام نرمافزارهای گنو از نظر فنی متن باز هستند (یعنی کد منبع آنها در دسترس است)، اما تفاوت فلسفی مهمی بین این دو جنبش وجود دارد:
- هدف GNU: تاکید اصلی گنو بر اخلاقیات، آزادیهای کاربر و حقوق اجتماعی است. هدف اصلی آزادی است.
- هدف Open Source: تاکید اصلی متن باز بر مزایای عملی و روششناختی در توسعه نرمافزار است؛ یعنی تولید نرمافزارهای با کیفیتتر، ایمنتر و با باگهای کمتر. هدف اصلی کارایی و توسعهپذیری است.
استالمن معتقد است که اصطلاح «متن باز» اصل آزادی را پنهان میکند و به همین دلیل بر استفاده از اصطلاح «نرمافزار آزاد» اصرار دارد.
جمعبندی و اهمیت امروزی
پروژه گنو صرفا مجموعهای از کدها و برنامهها نیست، بلکه یک جنبش فکری و اجتماعی است که بر کنترل کاربر بر فناوری خود تاکید دارد. این پروژه با ابداع مفهوم نرمافزار آزاد، توسعه ابزارهای بنیادین و ایجاد مجوز GPL، چارچوبی را فراهم کرد که منجر به ظهور سیستمهای عاملی شد که امروزه قدرت محاسباتی جهان را تامین میکنند. میراث گنو، تضمین میکند که دانش و ابزارهای دیجیتال، به جای آنکه ابزاری برای محدودیت باشند، وسیلهای برای آزادی و همکاری باقی بمانند.
سوالات متداول
GNU یک پروژه توسعه نرمافزار است که در سال ۱۹۸۳ توسط ریچارد استالمن آغاز شد. هدف اصلی آن ساخت یک سیستم عامل کامل و شبیه یونیکس بود که کاملا از نرمافزار آزاد تشکیل شده باشد. GNU مخفف بازگشتی «GNU’s Not Unix» (گنو یونیکس نیست) است.
نرمافزار آزاد به معنای رایگان بودن از نظر هزینه نیست، بلکه به معنای آزادی کاربر است. این آزادیها شامل چهار اصل اساسی هستند: آزادی استفاده، آزادی مطالعه کد منبع، آزادی توزیع مجدد نسخههای اصلی و آزادی توزیع نسخههای تغییریافته.
- آزادی صفر: آزادی اجرای برنامه برای هر منظوری.
- آزادی یک: آزادی مطالعه و تغییر برنامه (نیاز به کد منبع).
- آزادی دو: آزادی توزیع نسخههای اصلی.
- آزادی سه: آزادی توزیع نسخههای تغییریافته.
گنو سیستم عامل است که شامل ابزارها، کامپایلرها و کتابخانههای نرمافزاری است، اما فاقد یک کرنل (هسته) کامل بود. لینوکس کرنل توسعه داده شده توسط لینوس توروالدز است. ترکیب ابزارهای گنو با کرنل لینوکس منجر به ایجاد سیستم عامل کامل گنو/لینوکس شد که امروزه به نام لینوکس معروف است.
GPL مخفف مجوز عمومی همگانی گنو (GNU General Public License) است. این مجوز به عنوان یک ابزار کپیلفت عمل میکند و تضمین میدهد که هر کسی نرمافزار تحت GPL را تغییر یا توزیع کند، باید نسخههای جدید را نیز تحت همان مجوز منتشر کند. این کار آزادی نرمافزار را برای همیشه حفظ میکند.
کپیلفت تضمین میکند که آزادیهای چهارگانه کاربران در طول زنجیره توزیع به ارث برسد. این مجوز از تبدیل شدن نرمافزار آزاد (که کد منبع آن در دسترس است) به نرمافزار انحصاری جلوگیری میکند.
تفاوت اصلی فلسفی است. گنو (و بنیاد نرمافزار آزاد) بر آزادیهای اخلاقی کاربران تاکید دارد، در حالی که جنبش متن باز بر مزایای عملی روش توسعه (کیفیت و کارایی کد) تمرکز دارد. هرچند از نظر فنی نرمافزارهای گنو، متن باز نیز محسوب میشوند.



























شما میتوانید دیدگاه خود را در مورد این مطلب با ما با اشتراک بگذارید.