هذه الترجمة قد لا تعكس التغييرات التي تم إدخالها منذ 2017-09-04 على النسخة الإنجليزية اﻷصلية.
من المستحسن أن تلقي نظرة على هذه التغييرات. من فضلك، راجع تعليمات الترجمة للحصول على المعلومات المتعلقة بتسليم وتنسيق ترجمات هذه المقالة.
لينكس ونظام غنو
بقلم ريتشارد ستولمن
لمزيد من المعلومات راجع أيضًا أسئلة جنو/لينكس الشائعة، ولماذا جنو/لينكس؟
الكثير من مستخدمي الحاسوب يشغلون إصدارًا معدلًا من نظام جنو كل يوم، بدون أن يعرفوه؛ وعبر سلسلة من الأحداث المميزة تسمّى نسخة جنو المستخدمة على نطاق واسع عادة ”لينكس“، والكثير من مستخدميها غير مدركين أنه نظام جنو أصلا، الذي طوّره مشروع جنو.
يوجد بالفعل لينكس، وهؤلاء الأشخاص يستخدمونه، لكنه جزء فقط من النظام الذي يستخدمونه. لينكس هو النواة: برنامج النظام الذي يوزع موارد الآلة على البرامج الأخرى التي تقوم أنت بتشغيها. النواة جزء جوهري من نظام التشغيل، لكنها غير مفيدة بحد ذاتها ويمكن أن تؤدي مهمتها فقط في إطار نظام تشغيل كامل. لينكس مُستَخدَم عادة بجمعه مع نظام التشغيل جنو: النظام الكامل هو أساسًا جنو مع إضافة لينكس إليه، أو جنو/لينكس. كل التوزيعات المسماة ”لينكس“ هي في الحقيقة توزيعات جنو/لينكس.
الكثير من المستخدمين لا يفهمون الفرق بين النواة، التي هي لينكس، وكامل النظام، الذي يسمونه ”لينكس“. الاستخدام الغامض للاسم لا يساعد الناس على الفهم. هؤلاء المستخدمين يعتقدون عادة أن لينوس تورفالدس طوّر كامل النظام في عام 1991 بمساعدة ضئيلة.
المبرمجون عادة يعرفون أن لينكس هو النواة. لكن ولأنهم سمعوا أن كامل النظام يسمى ”لينكس“ فهم يتصورون تاريخًا يبرر تسمية النظام الكامل على النواة. على سبيل المثال، يعتقد الكثيرون أنه لحظة انتهاء لينوس تورفالدس من كتابة لينكس -النواة- بحث مستخدموها عن برمجيات حرة أخرى لتتماشى معها، ووجدوا (بدون سبب معين) أن معظم الأشياء الضرورية لإنشاء نظام شبيه بيونكس كانت متوفرة بالفعل.
ما وجدوه لم يكن مصادفةً—بل كان نظام جنو شبه المكتمل. أضيفت البرمجيات الحرة المتوفرة لإكمال النظام لأن مشروع جنو عمل منذ عام 1984 على إنشاء نظام التشغيل. في بيان جنو حدّدنا الهدف الأساسي وهو تطوير نظام شبيه يونكس حر، سميناه جنو. الإعلان الابتدائي لمشروع جنو يؤطر بعض الخطط الأصلية لنظام جنو. في الوقت الذي بدأ فيه لينكس، كان جنو شبه مكتمل.
لمعظم مشاريع البرمجيات الحرة هدف تطوير برنامج محدد لمهمة محددة. على سبيل المثال، بدأ لينوس تورفالدس كتابة نواة شبيهة بيونكس (لينكس)؛ وبدأ دونال كنوث كتابة منسق نصوص (تخ)؛ وبدأ بوب سكيفلر تطوير نظام نوفذة (نظام النوفذة إكس). من الطبيعي قياس مساهمة هذا النوع من المشاريع بالبرامج التي تأتي منه.
لكن إذا حاولنا قياس مساهمة مشروع جنو بهذه الطريقة فماذا سنحسب؟ وجد أحد بائعي الاسطوانات في ”توزيعته للينكس“ أن برمجيات جنو كانت أكبر منفرد معدود، بقرابة 28% من مجموع الكود المصدري، بما فيها بعض الأجزاء الأساسية الجوهرية التي لولاها لما وُجد النظام. لينكس لوحده 3% (النسبتان في 2008 قريبتان في المستودع ”Main“ لجينيوسنس، لينكس 1.5% وحزم جنو 15%.) لذا إذا كنت بصدد إطلاق اسم للنظام مبني على الذين كتبوا البرامج فيه، فإن أكثر اسم ملائمة هو ”جنو“.
لكن هذا ليس السبيل الأعمق لفهم القضية. لم يكن مشروع جنو -ولن يكون- مشروعًا لتطوير حزم برمجيات محددة. لم يكن مشروعًا لتطوير مترجم سي، على الرغم من أننا قمنا بذلك؛ ولم يكن مشروعا لتطوير محرر نصوص، على الرغم من أننا طورنا محرّرًا. بدأ مشروع جنو في تطوير نظام شبيه بيونكس حر كاملهو نظام التشغيل جنو.
قدّم الكثير من الناس مساهمات جوهرية للبرمجيات الحرة في النظام، وكلهم يستحقون الإشادة على برمجياتهم. لكن سبب وجود النظام الكامل —وليس مجموعة من البرامج المفيدة فحسب— هو بدء مشروع جنو في إنشائه. أعددنا قائمةً بالبرامج المطلوبة لإنشاء نظام حر كامل، ونظمنا إيجاد أو كتابة أو إيجاد أشخاص لكتابة كل شيء في القائمة. كتبنا مكوناتٍ جوهريةً مملةً(1) لأنك لا تستطيع امتلاك نظام تشغيل بدونها. أصبحت بعض مكونات نظامنا -ولاسيما أدوات البرمجة- مشهورة في وسط المبرمجين، لكننا كتبنا الكثير من الأجزاء التي ليست أدوات (2). طورنا حتى لعبة شطرنج -شطرنج جنو- لأن النظام الكامل يحتاج إلى ألعابٍ أيضًا.
بحلول بداية التسعينيات أنهينا النظام كله عدا النواة. بدأنا وقتها أيضا نواة جنو هُرد التي تعمل فوق Mach. تطوير هذه النواة كان أصعب بكثير مما توقعنا؛ بدأت جنو هُرد العمل بثقة في عام 2001، لكن مازال أمامها الكثير حتى تكون جاهزةً لاستخدام الناس العام.
لحسن الحظ، لم يكن علينا انتظار هُرد بفضل لينكس. عندما كتب تورفالدس لينكس، حلّت محل آخر فجوة جوهرية في نظام جنو. استطاع الناس وقتها ضم لينكس مع نظام جنو لإنشاء نظام حر كامل: إصدار من نظام جنو مبني على لينكس؛ أو للاختصار نظام جنو/لينكس.
لم تكن عملية جعلهما يعملان معًا مهمةً سهلةً. بعض مكونات جنو(3) احتاجت تغييرًا جوهريًا لتعمل مع لينكس. كان إعداد نظام كامل كتوزيعة ستعمل ”خارج الصندوق“ مهمةً شاقّةً أيضًا. تطلبت ذلك حل مشكلة تثبيت وإقلاع النظام—وهي المشكلة التي لم نستعد لها لأننا لم نصل بعد إلى تلك المرحلة—. لكن الأشخاص الذين طوروا توزيعات النظام المختلفة أدوا الكثير من العمل الجوهري، لكن شخصًا ما كان سيؤدي هذا العمل حتمًا على جميع الأحوال.
يدعم مشروع جنو أنظمة جنو/لينكس تمامًا كدعمه نظام جنو. موّلت إفإسإف إعادة كتابة الامتدادات المتعلقة بلينكس لمكتبة جنو سي. ليصبحا الآن متناسقين بشكل ممتاز، وأحدث أنظمة جنو/لينكس تستخدم إصدار المكتبة الحالي بدون تغييرات. موّلت إفإسإف أيضًا منصة مبكرة لتطوير دبيان جنو/لينكس.
اليوم توجد تنويعات كثيرة مختلفة من نظام جنو/لينكس (تسمى عادة ”توزيعات“). معظمها تحتوي برمجيات غير حرة—مطوروها يتبعون الفلسفة المصاحبة للينكس بدلا من تلك التي لجنو. لكن توجد أيضا توزيعات جنو/لينكس حرة بالكامل. تدعم إفإسإف جينيوسنس ماديًا.
إيجاد توزيعة جنو/لينكس حرة لا يعني فقط إقصاء برامج غير حرة عديدة. اليوم يتضمن الإصدار الاعتيادي من لينكس برامجًا غير حرة أيضًا. هذه البرامج مُتعمد تحميلها إلى أجهزة الإدخال/الإخراج عندما يبدأ النظام، وهي مضمنة كسلسلة أرقام طويلة في ”الكود المصدري“ للينكس. لذلك، الإبقاء على توزيعة جنو/لينكس حرة يستلزم الآن إبقاء إصدار لينكس حر أيضا.
سواءً كنت تستخدم جنو/لينكس أو لم تكن، من فضلك لا تشتت العامة باستخدام الاسم ”لينكس“ بشكل مبهم. لينكس هو النواة، واحدة من مكونات النظام الأساسية الجوهرية. النظام ككل أساسا هو نظام جنو، مع إضافة لينكس. عندما تتحدث عن هذا الجمع بينهما، من فضلك سمّه ”جنو/لينكس“.
إذا أردت إنشاء وصلة عن ”جنو/لينكس“ كمرجع الخارجي، فإن هذه الصفحة و http://www.gnu.org/gnu/the-gnu-project.html خياران جيدان. إذا كنت تعني لينكس، النواة، وأردت إضافة وصلة للمرجع الخارجي، فإن http://foldoc.org/linux مسار جيد للاستخدام.
ملحقات
أنتج مشروع آخر -بجانب جنو- بشكل مستقل نظام تشغيل حر شبيه بيونيكس. هذا النظام يعرف باسم بيإسدي، وطُور في يوكي بيركيلي. لم يكن حرًا في الثمانينيات، لكنه أصبح كذلك في بداية التسعينيات. أي نظام تشغيل حر موجود اليوم (4) يعتبر غالبا تنويعة من نظام جنو، أو نوعًا من نظام بيإسدي.
يسأل الناس أحيانا فيما إذا كان بيإسدي أيضا إصدارًا من جنو، مثل جنو/لينكس. احتذى مطورو بيإسدي بجعل كودهم حرًّا بمشروع جنو، ومن الواضح أن التماسات مشروع جنو ساهمت في اقناعهم، لكن الكود تداخل إلى حدٍ ما مع جنو. تستخدم أنظمة بيإسدي بعض برامج جنو، تمامًا كاستخدام نظام جنو وتنويعاته لبعض برامج بيإسدي، لكن بالحكم على القضية ككل، هما نظامي تشغيل مختلفين طُورا بشكل منفصل. لم يكتب مطورو بيإسدي نواة ويضيفوها إلى نظام جنو، لذا فاسم جنو/بيإسدي لن يلائم الوضع.(5)
ملاحظات
- يدخل في المكونات الجوهرية المملّة مُجمّع جنو وGAS والرابط GLD وكلها الآن جزء من حزمة GNU Binutils، وGNU tar بالإضافة إلى غيرها.
- على سبيل المثال، The Bourne Again SHell (BASH) ومفسر PostScript Ghostscript ومكتبة جنو سي ليست أدوات برمجة. وكذلك GNUCash وجنوم وشطرنج جنو.
- مثل مكتبة جنو سي.
- منذ ذلك الحين، طُوّر نظام شبيه بويندوز شبه حر بالكامل، لكنه عمليًا ليس شبيهًا بجنو أو يونكس، لذا فهو لا يُؤثر في القضية. جُعلت معظم نواة Solaris حرة، لكن إذا أردت إنشاء نظام حر بجمع تلك الأجزاء المُحرّرة، واستبدال الأجزاء الناقصة من النواة، فسوف تحتاج إلى إضافتها إلى جنو أو بيإسدي.
- في المقابل، في السنوات الأخيرة منذ كتب هذا المقال، أضيفت مكتبة جنو سي إلى نواة BSD، والتي جعلت من الممكن ضم نظام جنو مع هذه النواة. وتمامًا مثل جنو/لينكس، تلك حتما توزيعات جنو، وتسمى لذلك جنو/kFreeBSD وجنو/kNetBSD بحسب نواة النظام. لا يتمكن المستخدمون العاديون على أسطح المكتب النمطية إلا بصعوبة من التفريق بين جنو/لينكس وجنو/*بيإسدي.