السبت، 23 فبراير 2013

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

هذا هو أول مقالٍ لي في سلسلة مقالاتٍ تتحدث عن (نشأة البرمجيات مفتوحة المصدر)، و قد تم نشره في موقع (صدي التقنية) علي الرابط:
http://tech-echo.com/2013/02/beginning-of-open-source-software/


 ***
 
في الآونة الأخيرة ازدادت شهرة ما يُعرف بالبرمجيات الحرة free software و البرمجيات المفتوحة المصدر open source software في العالم العربي، تزايد الشهرة في هذه الأيام لا يعني أن هذين النوعين من البرمجيات لم ينشآ إلا في الفترة الحالية، و لا يعني كذلك أنهما لم يكونا معروفين للمهتمين بالتقنيات الحاسوبية منذ فترةٍ طويلة، بل يعني فقط أن انتشار الاهتمام بهما بين القاعدة العريضة من التقنيين العرب ازداد مؤخراً، و نري هذا واضحاً في ازدياد المتابعين للمواقع التي تقدم أخبار تلك التقنيات، و كذلك في اهتمام الذين لا يستخدمونهما من الأصل؛ بسبب رغبتهم في زيادة ثقافتهم الحاسوبية، أو حتي فتح آفاقٍ جديدةٍ في العمل.

السؤال هنا: ما هي المصادر المفتوحة، و ما هي البرمجيات الحرة، و هل هناك فارقٌ فعليٌ بينهما ؟

للإجابة عن هذا السؤال يجب علينا أن نفهم كثيراً من الأمور في نشأة عالم البرمجيات، و لذا سنعود بالزمن للوراء حتي بدايات تاريخ الحوسبة computing history نفسه، حينها كانت برمجيات الحاسوب عبارة عن برمجياتٍ صغيرةٍ وظيفتها الأساسية هي "خدمة الآلة باهظة الثمن"، أي أن الشيء الأكثر أهميةً كان هو جهاز الحاسوب مرتفع الثمن، أما البرمجيات فقد كانت شيئاً ثانوياً عند حساب الربح و الخسارة. لذلك لم يكن هناك من يفكر في "بيع" البرمجيات، إنما كان الكل يبيع "أجهزة حاسوبٍ بها برمجياتٌ سابقة التنصيب".
و نظراً لأن البرمجيات لم تكن ذات أهميةٍ كبري من الناحية المادية لذا كان يتم التعامل معها بمنتهي الحرية، فكان المبرمجون ينشرون أكواد برمجياتهم بكل أريحية، و يستطيع المبرمج أن يغير الأكواد التي علي آلته إذا ما توافرت له القدرة العملية علي ذلك و الرغبة فيه.

لكن مع مرور الوقت أصبح العتاد أكثر تقدماً و توفراً، و بالتالي أصبحت أسعاره أرخص مما كانت عليه سابقاً، و بعد التقدم في علوم تصنيع عتاد الحواسيب أصبحت الحواسيب الشخصية شيئاً عادياً، صحيحٌ أنها لم تكن متوافرةً لـ"كل" الناس، لكنها كانت متوافرةً علي كل حال. و بما أن الشركات أصبحت تتنافس فيما بينها علي جذب الزبائن لها فقد استرعي انتباهها شيئٌ هامٌ جداً سيفيدها في عملية تسويق منتجاتها بما لا يُقاس، هو الحاجة إلي برمجياتٍ أكثر قوةً مما لدي منافساتها، و بالتالي يجد الزبون نفسه أمام حواسيب جيدة الإمكانيات و في ذات الوقت بها برمجياتٌ تساعده علي استغلال إمكانيات تلك الأجهزة التي دفع ثمنها.

في هذه المرحلة بدأت البرمجيات تصبح أكثر تعقيداً عما كانت عليه من قبل، و بدأت شركات الحواسيب تنتبه إلي أن البرمجيات تصلح كسلاحٍ تسويقيٍ ممتازٍ إذا تم منع الآخرين من استخدامها بدورهم، و هو ما سيُطلَق عليه في عالم البرمجيات الحرة فيما بعد اسم "الاحتكار" و سأطلق عليه هنا اسم "الاستئثار". و كانت أهم الخطوات الاستئثارية التي قامت بها الشركات و أثَّرت علي مسيرة عالم المصادر الحرة تلك التي قامت بها شركة (AT&T) مع نظام تشغيل اليُنِكْس unix.

و لكن قبل أن نتحدث عن تلك الخطوة الفارقة تعالوا نتحدث عن شخصٍ يسمَّي ريتشارد ماثيو ستولمان richard matthew stallman أولاً؛ فهو من أكثر الشخصيات تأثيراً علي عالم البرمجيات الحرة ذي الصبغة القانونية و الفلسفية، كما أنه من أكثر الشخصيات إثارةً للجدل سواءٌ في عالم البرمجيات الحرة أو في عالم البرمجيات المُغلَقة المصدر (الاستئثارية-الاحتكارية) !

 

في بداية الأمر كان ستولمان باحثاً شاباً يعمل في معامل الذكاء الاصطناعي في معهد MIT للتقنية، كان الباحثون بطبيعة الحال يتداولون البرمجيات و أكوادها فيما بينهم بمنتهي السهولة و البساطة، و كان ريتشارد و الآخرون يشعرون بأنه من الطبعي جداً أن يقوموا بالتعديل علي الأكواد الخاصة بالبرامج التي يستخدمونها متي أحسوا بأنهم يحتاجون لذلك عملياً.

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

الأمر الجديد الإضافي علي طريقة عملهم هو فرض وضع كلمات سرٍ للمستخدمين المختلفين علي أجهزة المعمل التي يستخدمونها، فبما أنه لبعض العاملين في المعمل حقوق ليست للآخرين فقد أصبح من الضروري وجود تفرقةٍ بين حسابات هذا و ذاك، و من جديدٍ أحس ستولمان أن ما يجري يدفع الأمور للانهيار أكثر و أكثر.

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

الصدمة التي حدثت لستولمان مع عددٍ كبيرٍ من التقنيين الآخرين كانت ما حدث مع نظام اليُنِكْس؛ و اليُنِكْس هو نظام تشغيلٍ متطورٍ كانت له قصة النشوء التالية:
فى منتصف الستينيات تعاونت (جنرال إليكتريك general electric) و (معامل بِلْ bell laboratories التي تغيَّر اسمها فيما بعد ليصبح AT&T) و (معهد
MIT للتقنية) لإنتاج نظام تشغيلٍ يُسمَّي MULTICS، و هو  اختصارٌ لاسم (multiplexed Information Computing System). و يتميز بالعديد من القدرات القوية مثل تعدد المهام multi-tasking و تعدد المستخدمين multi-users و إداره ملفاتٍ متعددة المستويات multi-level file management  و غيرهن من القدرات. لكن AT&T انسحبت من المشروع في نهاية الأمر.
إلا أنه في عام 1969 قام كِنْ ثومبسون Ken Thompson  مع دِنِس رِتْشى Dennis Ritchie  و عددٍ آخرٍ من المبرمجين الذين كانوا قد عملوا فى مشروع MULTICS باستئناف العمل فى AT&T لإنتاج نظام تشغيل مماثلٍ خاصٍ بهم، بحيث يعمل على أجهزةٍ من نوع minicomputer، وفي 1 يناير 1970 تم تشغيل أول إصدارات اليُنِكْس.

و في بداية الأمر كانت AT&T قد جعلت اليُنِكْس منتجاً بحثياً research product بإمكان الجميع أن يستخدموه فى أبحاثهم و يطوروا فيه على أن تظل الملكيه لـAT&T،  و منذ ساعتها انتشر يُنِكْس انتشار النار في الهشيم بين الجامعات و الشركات المختلفة، إلا أن تغير نظرة الشركات للبرمجيات جعل الأمور تتغير تماماً فيما بعد. و في عام 1983 و حينما وصلت نسخةٌ من إصدارة system3 إلي ستولمان لم يجد الكود المصدري الخاص بها معها، رغم أنه كما قلنا أن المعتاد كان العكس تماماً، و الأغرب أنه حينما حاول أن يحصل عليه فوجيء أنه لا يمكن ذلك إلا إذا وقَّع على اتفاقية عدم الكشف (Non-Disclosure Agreement) أو (NDA)  اختصاراً،  و هو الأمر الذى يجعل من حصوله على الكود عديم القيمة. كأنك تضع أحدهم في معركةٍ طاحنة مع مسدسٍ سريع الطلقات و لكن في نفس الوقت تشترط عليه أن يعيد لك المسدس و الطلقات بنفس عددها الأول !

المصيبة الكبري كانت أن نظام اليُنِكْس كما ذكرتُ من قبل رغم أن علامته التجارية كانت ساعتها ملكاً لشركة AT&T إلا أن الواقع أن الجامعات المختلفة و المبرمجين في الشركات و في المعاهد التقنية المتنوعة كانوا قد أسهموا بشكلٍ كبيرٍ في تطويره، و هكذا لم تكن الخطوة الأخيرة التي قامت بها AT&T إلا ضربةً تحت الحزام ! و في النهاية لا يمكنك الاعتراض بشكلٍ قانونيٍ لأن "العلامة التجارية كانت ملكاً لـAT&T فقط".

هنا و بعد كل لتلك الصدمات المتواليات قرر ستولمان أنه "ما حك جلدك مثل ظفرك ... فتولَّ أنت جميع أمرك".
أنا عن نفسي كنتُ سأقضي ربع ساعةٍ من الصراخ و ركل الأرض بقدمي و ربما أُطلِق بعض السباب كذلك، و من الممكن أن أكتب رسالةً بذيئةً لقيادات AT&T و أوقعها باسمٍ زائف، لكني في كل الأحوال بعد فعل ذلك كنتُ سأخرس كأفراس النهر تماماً.

لكن ستولمان اتخذ حينها قراراً غريباً و درامياً للغاية: فمادام لا يستطيع إجبار شركات الحوسبة و الدول علي تغيير تلك الأساليب المُجحِفة التي ينتهجونها، فليس بإمكانه إلا أن يفعل ما يستطيع فعله: أن يكتب برمجياتٍ بديلةً لتلك التي يكره نهجها، و بما يتفق مع أفكاره هو. و قرر أن تكون تلك البرمجيات حرةً يستطيع الكل أن يُطالعوا أكوادها المصدرية و يُعدِّلوا فيها بمنتهي الحرية حسبما يحتاجون، بالإضافة إلي وجود غطاءٍ قانونيٍ يحمي تلك البرمجيات الحرة من أن يتم الاستيلاء عليها و تحويلها إلي برمجياتٍ مُغلَقة المصدر فيما بعد، و يُجبِر من يستخدم برنامجاً حراً علي جعل تعديلاته التي أجراها عليه حرةً بالمثل.

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

المهم أنه اختار أن يكون نظامه الجديد مشابهاً لليُنِكْس unix-like و أن يكون له الاسم "قِنُو GNU"  (يُُكتَب "جِنُو" في الترجمات المصرية)، و هو اختصارٌ لجملة "GNU's Not Unix" و يصف ستولمان هذا الاختصار بأنه إبداع hack في حد ذاته.
كانت طريقة ستولمان في بناء نظامه هي استبدال الأجزاء جزءاً تلو الآخر، فنظام اليُنِكْس يعمل كمجموعةٍ من التطبيقات تتخاطب فيما بينها و تتعاون لإنجاز العمل الكلي، و بالتالي من الممكن أن تستغن عن البرنامج غير الحر الأول و تكتب بديلاً له، ثم تستغن عن البرنامج غير الحر الثاني و تكتب بديلاً له، و هكذا إلي أن تجد أنك قد استبدلتَ كل مكونات النظام القديم بأخري جديدة حرة.
لكن المشكلة أن هذا كان معناه الحاجة في البداية إلي مكتباتٍ برمجيةٍ حرة، و تلك المكتبات البرمجية الحرة لا بد من بنائها من الصفر،
ثم بناء مترجمٍ compiler للغة الـc من الصفر !،
و مُحرِّر أكوادٍ code editor حر !
و مُنقِّحٍ debugger حر !

و علي هذا فقِسْ !!!

الخلاصة أن شخصاً آخر كان سـ"يضع ذيله في أسنانه" و يهرب من هذا الموضوع كما تهرب الغزلان من الأسود، إلا أن ستولمان كان (و لا يزال) متحجر الرأس جداً، لذا أصر علي الاستمرار و تجميع الآخرين لمساعدته في هذه الأعمال. لذا قام بالإعلان عن مشروع GNU عام 1984و نشر ما يُسمَّي "بيان قنو GNU manifesto" و الذي حث الآخرين فيه علي الانضمام إليه في مشروعه و مساعدته علي إنجاحه، و لرعاية المشروع و كل ما يتعلق به أسس ستولمان مؤسسة "البرمجيات الحرة Free Software Foundation" لترعي الجوانب القانونية و التنظيمية من العمل و تُصبح الشخصية الاعتبارية التي تتحدث بلسان حركة المصادر الحرة.

يُتبَع

هناك تعليقان (2):