الرئيسية > مقالات > نشأة البرمجيات مفتوحة المصدر -الجزء الثاني

نشأة البرمجيات مفتوحة المصدر -الجزء الثاني

هناك معلومةٌ لا بُد مِن ذِكرها ما دمنا أردنا أن نتحدث عن علاقة الأستاذ الجامعي الأمريكي “أَنْدرُو تانِنْبُوم” بحركة البرمجيات الحرة، فقد طلب ستولمان أن يستخدم مُترجِم الـ C الذي كتبه تانِنْبُوم (مع Ceriel Jacobs) من قبل لنظام التشغيل الخفيف “مِنِكْس minix“، و لكن تانِنْبُوم أخبره أن المُترجِم ليس حراً (في عام 2003 أصبح حراً تحت ترخيص BSD). و هكذا لم يجد ستولمان مهرباً من بناء مُترجِمٍ خاصٍ بالـC من الصفر، صحيحٌ أنه قبل قراره هذا حاول كتابة نهايةٍ أماميةِ front end للغة الـC في المُترجِم الخاص بمعمل “Lawrence Livermore” إلا أنه فوجيء أن عملها يتطلب ذاكرةً أكبر مما كان مُتاحاً في حواسيب ذلك الزمن، لذا فقد نحَّاها جانباً و بدأ بناء الـ gcc من الصفر كما أسلفنا القول، و فيما بعد صار بالإمكان إستخدام تلك الواجهة الأمامية المهجورة بعدما تطورت إمكانيات الحواسيب عمَّا كانت عليه قبلاً.

Linus Torvalds

الآن تعالوا نقفز في الزمن من بداية الثمانينيات إلي بداية التسعينيات، ففي تلك السنوات دخل إلي المباراة لاعبٌ شديد الأهمية هو الطالب الفنلندي “لينُوس تُرْفالدز linus torvalds“، الذي كان حينها قد إنتقل إلي العام الثاني في جامعة هلسنكي، كان لينوس طالباً عادياً جداً في كل شيء و هو من الأقلية السويدية التي تعيش في فنلندا، إلا أنه كان يتميز بميزةٍ شديدة الأهمية هي حب التعلم عن طريق التجربة باليد، فمثلاً حينما كان يريد تعلم صنع محرك رسوميات graphics engine قام بعمل لعبةٍ خاصةٍ به (رغم أنه سيءٌ في اللعب !)، و حينما كان يستهويه تعلم جزئيةٍ معينةٍ في العتاد الخاص بحاسوبه كان يكتب برنامجاً يجرب به تلك الخاصية و يتعامل معها باستخدامه. و جانبٌ كبيرٌ من ذلك الإعتياد علي كتابة البرامج التي يحتاجها كان نتيجةً تلقائيةً لعدم وجود برامج تعمل علي ما يمكننا إعتباره أول حاسوبٍ شخصيٍ اشتراه فقد كان من نوع Sinclair QL الذي لا تتوافر برامجه في فنلندا، لذا فقد كان علي لينوس إما أن يغير العتاد الخاص به و يستخدم عتاداً تتوافر برمجياته في فنلندا، أو أن يقوم بكتابة البرامج التي يحتاجها بيده، و قد اختار الحل الثاني علي عكس المعتاد ليصبح أكثر اعتياداً علي عمل البرامج التي يحتاجها بنفسه. لذلك فحينما أحس لِينُوس بأنه يحتاج نظام تشغيلٍ جديداً يشبه يونكس علي حاسوبه الشخصي، و حينما لم يستطع شراء نسخةٍ من يونكس، و حينما وجد أن نظام المِنِكْس minix لا يلبي كافة احتياجاته، و حينما قام (بالخطأ) بإزالة المِنِكْس من حاسوبه: حينها قرر إكمال العمل علي بناء نواة نظام تشغيلٍ يستنسخ يونكس من الصفر!، الأمر بالطبع أكثر تعقيداً من مجرد “حاجته لنظام تشغيل ثم تقريره أنه سيبنيه بنفسه”، فالحق أنه كان قد بدأ العمل علي أساسيات النواة kernel منذ فترةٍ سابقة، لكن يمكنك دوماً أن تقول هذا و لن تكون مخطئاً بنسبةٍ كبيرة. في نفس التوقيت كانت مؤسسة fsf قد بَنَت كثيراً من البرمجيات التي تحتاجها، فقد أصبح لديهم مُترجِم gcc، و مُحرر gnu emacs الشهير، و مجموعةٌ أخري من البرمجيات، و بما أنها كانت عدداً كبيراً فقد أدي ذلك إلي أنهم لم يستطيعوا بناء النواة الخاصة بنظام تشغيل gnu في نفس الوقت، و هي النواة المُسمَّاة hurd، وعلي الرغم من ذلك اعتاد عددٌ كبيرٌ من الناس علي تحميل برمجياتهم تلك (و علي الأخص مُترجِم gcc) و إستعمالها علي عددٍ من أنظمة التشغيل، و حينما احتاج عددٌ من هؤلاء لنظام تشغيلٍ حرٍ بالكامل قاموا ببساطةٍ بتنصيب نواة اللينُكْس و فوقها أدوات مشروع قِنُو علي حواسيبهم، و هكذا صار لديهم نظام تشغيلٍ متكاملٍ قبل أن تعرف مؤسسة fsf شيئاً عن نواة اللينُكْس من الأساس. كان من الممكن ألا يشتهر اللينُكْس و ينضم إلي تطويره كل من انضم إليه لو أن نظام BSD كان حراً بالمثل، ففي تلك الفترة كان نظام التشغيل المُسمَّي Berkeley Software Distribution أو اختصاراً “BSD” مثل الجمل الأجرب، فقد كانت هناك منازعاتٌ قانوينةٌ عليه جعلت الجميع يفر من المشاركة في تطويره أو الاعتماد عليه بالكامل لأنه لا أحد يدري ماذا ستؤول إليه حكايته، و ماذا سيكون مصيره فيما بعد و هو الأمر الذي يخضع لقرار المحكمة أولاً، ثم لقرار من ستحكم له المحكمة بالأحقية في التحكم في مصير BSD. و هكذا كانت الساحة مهيأةً مئةً في المئة للفنلندي الواثق، الواقع يقول أنه في البداية واجه لِينُوس مصاعباً كبيرة، فمثلاً دخل البروفيسور أَنْدرُو تانِنْبُوم للساحة مرةً أخري ليؤكد أنك لو نظرتَ في كوب الشاي الذي تشربه لرأيته هناك!، و قد كان دخوله هذه المرة عنيفاً كثيراً فقد نشر مقالاً علمياً علي مجموعة الأخبار comp.os.minix تحت عنوان “لِينُكْس عفا عليه الزمن Linux is obsolete“، و الذي قام فيه (بمنتهي الروح الأبوية) بإتهام تصميم اللينُكْس بكل التهم التي استطاع التوصل إليها، فقد قال أن:

  1. – النواة من نوع monolithic و بالتالي فهي من الطراز القديم، بينما يري أن التصميم الأفضل هو النُواة المُصغَّرة microkernel كما في نظام المِنِكْس،
  2. – ضعف المحمولية portability، و هو ما نتج عن استعمال خصائص خاصة بمُعالِج Intel 386 في أكواد نواة اللينُكْس.
  3. – ليس هناك تحكمٌ قويٌ لشخصٍ واحدٍ في الكود المصدري.
  4. – هناك خصائصٌ موجودةٌ في اللينُكْس لا لازمة لها مطلقاً (من وجهة نظر تانِنْبُوم) مثل multithreaded file systems.

و أدي هذا إلي نشوب صراعٍ محتدمٍ شهيرٍ بين لِينُوس و تانِنْبُوم دافع فيه كلٌ منها عن وجهة نظره (و أنا أثق انها كانت حرباً ضروسا لأن لِينُوس لا ينقصه لا الثقة في النفس و لا اللسان الطويل، كما أن تانِنْبُوم أطلق كل ما وجده في يده من رصاصٍ علميٍ علي اللينُكْس!)، لكن الواقع يقول أن اعتراضات تانِنْبُوم سالفة الذِكر إما ثبت عملياً أنها غير قوية أو أنها أكاديميةٌ متحذلقةٌ بعض الشيء، أو تم التغلب عليها بالتدريج بعد نضج نواة اللينُكْس، أو ثبت أنها كانت خاطئةً علي طول الخط.

والواقع أن مشروع اللينُكْس كان مُصادِماً لكثيرٍ من القواعد البرمجية حتي في علم هندسة البرمجيات و كيفية بناء المشاريع البرمجية الضخمة ! بعد فترةٍ من انتشار فكرة البرمجيات الحرة و إنتشار استخدام توليفة GNU/linux، و بعد ازدياد أعداد المعتمدين عليها من المستخدمين بما يبشر بإمكانية فتح أسواقٍ جديدةٍ للاستثمار فيها: بدأ بعض أنصار البرمجيات الحرة في التنبه إلي أن كلمة free في اللغة الإنجليزية تحمل معني “حر” و معني “مجاني”، و هو ما قد يؤدي إلي نفور المستثمرين في مجال البرمجيات من استثمار أموالهم فيما يخص البرمجيات الحرة، لهذا السبب فكروا في استخدام الاسم “البرمجيات مفتوحة المصدر open source software” بدلاً من الاسم القديم “البرمجيات الحرة free software“، مع الإبقاء علي المقومات الأساسية كما هي، أي أن الأمر (كما كان يبدو) لا يعدو مجرد إعادة تسمية. لكن هذا الأمر لم يُعجِب ستولمان بطبيعة الحال، حيث رأي أن مشكلة الاسم يمكن حلها عن طريق كتابة جملة “free as in freedom” لكي تشرح أن كلمة free مأخوذةٌ من “الحرية” و ليس “المجانية”، و رأي ستولمان أن حركة المصادر المفتوحة تركز علي الجانب المادي و تُغفِل الجانب الاجتماعي و الأخلاقي لحركة البرمجيات الحرة. و بصراحةٍ شديدةٍ فإنني شخصياً أجد أن هناك بالفعل اختلافاً بين حركتَيْ البرمجيات الحرة و المصادر المفتوحة أكبر من مجرد الاهتمام بالجذب الاستثماري، فنشطاء المصادر المفتوحة يرون أنه بالإمكان أن يكون هناك نوعٌ من التعايش بين البرمجيات الحرة أو “مفتوحة المصدر” و بين البرمجيات المُغلَقة المصدر أو “الاحتكارية” أو “الاستئثارية” (سمِّها كما تشاء)، بينما تصب مباديء و كلمات أنصار البرمجيات الحرة في خانة أن النوع الاستئثاري من البرمجيات هو “نِتاجٌ شيطاني” يجب التخلص منه لصالح البشرية و لكي يسترد البشر آدميتهم (و قد رأينا هذا في حملاتهم ضد نظام تشغيل Microsoft windows 7).

إلا أن لِينُوس (الذي أُعجِب بفكرة حركة المصادر المفتوحة) يري أنهم (أي أنصار حركة البرمجيات الحرة) يبالغون كثيراً في هذه النظرة، وقال معبراً عن ذلك في إحدي تدويناته علي مدونته الشخصية (التي هجرها منذ سنوات): أنا مشهورٌ بأنني لستُ عاشقاً لـ fsf و ريتشارد ستولمان، علي الرغم من أن الواضح أنني أحب GPLv2 و أستخدمها كرخصةٍ لكل مشاريعي التي أهتم بشأنها، السبب كان دوماً أنني لا أحب رجال “الفكرة الواحدة”، و لا أظن الأشخاص الذين يُحوِّلون العالم إلي “أبيض و أسود” لطفاء جداً أو شديدو الفائدة، الحقيقة أنه ليس هناك وجهان فقط لكل قضية؛ فتقريباً هناك دائماً تدرج، و غالباً فإن الإجابة الصحيحة الغالب لأي سؤالٍ عميقٍ هي “عَلَي حسب”، و ليس حتي أن تأمل في اتخاذ الطرف الآخر لقراراتٍ خاطئة. لا تفهموني خطأً: أنا أحب أن أري أناساً شغوفين بما يفعلونه، و كثيرٌ من الناس لديهم شيءٌ ما يهتمون بأمره جداً، لكن فقط حينما يتحول هذا إلي منهجٍ إقصائيٍ فإنه غالباً ما يصبح قبيحاً، لا يكون الأمر “حباً لشيءٍ ما بل يصبح كرهاً لشيءٍ ما”، كمثالٍ فإن هذا واحداً من أسباب محاولتي لتلافي التحدث عن مايكروسوفت كثيراً، أنا شغوفٌ باللينُكْس جداً (كما هو واضح) لكن بصراحةٍ شديدةٍ فإنني أجد أن التفكير في اللينُكْس علي أنه “ضد مايكروسوفت” سخيفاً و خطأً في التوجه، نعم ربما أُلقِي طُرفةً أو اثنتين بـ”لسان زالف”، لكن حقاً هل هناك أحدٌ يفكر بجديةٍ أنه من الممكن أن تنفق 17 عاماً من عمرك و تأخذ قراراتٍ صحيحةً بناءاً علي الكره و الخوف ؟!، كان هذا أيضاً (و لا يزال) سبب كرهي للـGPLv3، أظن أن العديد من التغييرات لم تكن نتيجةً لـ”تأييد البرمجيات الحرة”، لكن بشكلٍ أكبر كرد فعلٍ طائشٍ ضد أشياء مثل TIVO، و منهجية “أبيض-أسود” و “خير-شر”.

ويمكنكم الإطلاع على المقال الأول في هذه السلسلة عن نشأة البرمجيات مفتوحة المصدر من هنا

لا يفوتك أيضا:

4 تعليقات

Nasreddine 2 مارس، 2013 - 12:41 م

شكرا مرة أخرى, و أتمنى أن تكون هناك مقالات لاحقة.
لدي سؤال حول الفرق بين النسخة الثانية و الثالثة من ترخيص جي بي أل ؟

محمد سيد 2 مارس، 2013 - 3:09 م

ستكون هناك سلسلة مقالات فتابعنا وبالنسبة لإستفسارك فسيرد عليك الكاتب

waelhasan 2 مارس، 2013 - 3:59 م

السلام عليكم

بعد إصدار النسخة الثانية من رخصة الـGPL تم تصنيع أجهزةٍ لها تصميمٌ غريب (أقصد أجهزة TIVO تحديداً)؛ فهي تمنع المستخدم من وضع برمجياته الخاصة عليها و لا يستطيع استخدام إلا البرمجيات التي تضعها الشركة فقط (الشركة تستخدم نواة اللينُكْس في أجهزتها). في الواقع لا أعرف كل شيءٍ يخص هذه الحكاية، و لكن المهم أن ستولمان قد جن جنونه و اعتبرت مؤسسة الـfsf أن مثل هذه الأجهزة تُصادِر حرية المستخدمين لها؛ لأنها تمنعه من تغيير برمجياته علي الرغم من أن المُصنِّع يستطيع فعل ذلك. و قد عارضهم في هذا بشدةٍ “لِينُوس تُرْفالدز” و نعتهم بنعوتٍ مشينةٍ بسبب طريقة تفكيرهم.

أنا عن نفسي لا أنحاز (حالياً علي الأقل) لأي طرفٍ من الأطراف؛ فرخصة الـGPLv2 تكفيني و زيادة، و لكن فيما بعد بإذن الله تعالي سوف أقرأ المزيد عن كل رأيٍ من الآراء المختلفة و ربما أكتب ما فهمتُه عن كليهما.

يمكنك معرفة المزيد عن هذا الأمر من الرابط:
http://en.wikipedia.org/wiki/TiVo#GNU_General_Public_License_and_.22Tivoization.22
و الرابط:
http://en.wikipedia.org/wiki/GNU_General_Public_License_3#Version_3

Nasreddine 7 مارس، 2013 - 3:26 م

جزاك الله كل خير.
أتمنى أن أرى مقالاتك اللاحقة قريبا و أرجو أن تتناول مستقبل اللينكس خاصة في ظل الخطوة التي اتخذتها كانونيكل في اتجاه بناء نظام تشغيل موحد بين مختلف اﻷجهزة

التعليقات مغلقة.