السبت، 2 مارس 2013

نشأة البرمجيات مفتوحة المصدر (2)

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

الآن تعالوا نقفز في الزمن من بداية الثمانينيات إلي بداية التسعينيات؛ ففي تلك السنوات دخل إلي المباراة لاعبٌ شديد الأهمية هو الطالب الفنلندي "لينُوس تُرْفالدز 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"، و الذي قام فيه (بمنتهي الروح الأبوية) باتهام تصميم اللينُكْس بكل التهم التي استطاع التوصل إليها؛ فقد قال أن:النواة من نوع  monolithic و بالتالي فهي من الطراز القديم، بينما يري أن التصميم الأفضل هو النُواة المُصغَّرة microkernel كما في نظام المِنِكْس،

  • ضعف المحمولية portability، و هو ما نتج عن استعمال خصائص خاصة بمُعالِج Intel 386 في أكواد نواة اللينُكْس، 
  • ليس هناك تحكمٌ قويٌ لشخصٍ واحدٍ في الكود المصدري،
  • هناك خصائصٌ موجودةٌ في اللينُكْس لا لازمة لها مطلقاً (من وجهة نظر تانِنْبُوم) مثل الـmultithreaded file systems.

 و أدي هذا إلي نشوب صراعٍ محتدمٍ شهيرٍ بين لِينُوس و تانِنْبُوم دافع فيه كلٌ منها عن وجهة نظره (و أنا أثق انها كانت حرباً ضروسا؛ لأن لِينُوس لا ينقصه لا الثقة في النفس و لا اللسان الطويل، كما أن تانِنْبُوم أطلق كل ما وجده في يده من رصاصٍ علميٍ علي اللينُكْس!)، لكن الواقع يقول أن اعتراضات تانِنْبُوم سالفة الذِكر إما ثبت عملياً أنها غير قوية أو أنها أكاديميةٌ متحذلقةٌ بعض الشيء، أو تم التغلب عليها بالتدريج بعد نضج نواة اللينُكْس، أو ثبت أنها كانت خاطئةً علي طول الخط. و الواقع أن مشروع اللينُكْس كان مُصادِماً لكثيرٍ من القواعد البرمجية حتي في علم هندسة البرمجيات و كيفية بناء المشاريع البرمجية الضخمة !
 ***
 بعد فترةٍ من انتشار فكرة البرمجيات الحرة و انتشار استخدام توليفة الـGNU/linux، و بعد ازدياد أعداد المعتمدين عليها من المستخدمين بما يبشر بإمكانية فتح أسواقٍ جديدةٍ للاستثمار فيها: بدأ بعض أنصار البرمجيات الحرة في التنبه إلي أن كلمة free في اللغة الإنقليزية تحمل معني "حر" و معني "مجاني"، و هو ما قد يؤدي إلي نفور المستثمرين في مجال البرمجيات من استثمار أموالهم فيما يخص البرمجيات الحرة. 
لهذا السبب فكروا في استخدام الاسم "البرمجيات مفتوحة المصدر open source software"  بدلاً من الاسم القديم "البرمجيات الحرة free software"، مع الإبقاء علي المقومات الأساسية كما هي، أي أن الأمر (كما كان يبدو) لا يعدو مجرد إعادة تسمية.

 لكن هذا الأمر لم يُعجِب ستولمان بطبيعة الحال؛ حيث رأي أن مشكلة الاسم يمكن حلها عن طريق كتابة جملة "free as in freedom" لكي تشرح أن كلمة free مأخوذةٌ من  "الحرية" و ليس "المجانية"، و رأي ستولمان أن حركة المصادر المفتوحة تركز علي الجانب المادي و تُغفِل الجانب الاجتماعي و الأخلاقي لحركة البرمجيات الحرة.

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

إلا أن لِينُوس (الذي أُعجِب بفكرة حركة المصادر المفتوحة) يري أنهم (أي أنصار حركة البرمجيات الحرة) يبالغون كثيراً في هذه النظرة، و قال معبراً عن ذلك في إحدي تدويناته علي مدونته الشخصية (التي هجرها منذ سنوات)*:

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

 
يُتبَع
--------------------------------------
* http://torvalds-family.blogspot.com/2008/11/black-and-white.html




نُشِر هذا المقال علي موقع (صدي التقنية) علي الرابط:
http://tech-echo.com/2013/03/beginning-of-open-source-software-2/

ليست هناك تعليقات:

إرسال تعليق