ما هو المصدر المفتوح؟ – مقالة مفصّلة

opensource_linux2day

يشير المصطلح “open source” أو مصدر مفتوح، إلى شيء يمكن للناس القيام بالتعديل عليه وتشاركه مع اﻵخرين، ﻷنه صُمم باﻷصل ليكون متاحًا للعموم.

ولقد نشأ هذا المصطلح في سياق عالم تطوير البرمجيات لعمل منهجيّة معيّنة ﻹنشاء البرامج الحاسوبية، ويتضمن المصدر المفتوح اليوم مجموعة من القيم والمبادئ فيما يُطلق عليها اسم “the open source way” بما فيها المشاريع مفتوحة المصدر والمنتجات ومبادارت الاحتضان والاحتفاء بمبادئ التبادل الحرّ والمشاركة التعاونية والتطوير الموجّه نحو المجتمع والشفافية.

ما هو البرنامج مفتوح المصدر؟

هو ذلك البرنامج الذي يمكن للإنسان تفقّد وتفحص وقراءة شيفرته المصدرية (source code)، وكذلك إمكانية التعديل عليه وتحسينه، وفقما يناسب الاحتياجات المنشودة.

الـ Source code: أو الشيفرة المصدرية هي الكود الذي يكتبه المبرمجون ﻹنشاء البرامج التي نراها أمام أعيننا، لا نستطيع رؤية اﻷكواد بشكل مباشر ﻷنها تعمل في الخلفية، ويلزمنا محرر نصي أو برمجي لنستطيع قراءتها والتلاعب بها (ولكن إذا كان البرنامج مغلق المصدر closed source فإنه يُمنع رؤيتها نهائيًا، ﻷن مبرمجيها أرادوا كذلك).

ما الفرق بين البرنامج مفتوح المصدر واﻷنواع اﻷخرى؟

بعض البرمجيات يكون كودها المصدريّ محصورًا لدى الشخص المطوّر أو لدى المؤسسة أو الفريق الذي صنعه ويمتلكون السيطرة المطلقة الحصرية على ذلك الكود؛ يسمى هذا النوع من البرمجيات “proprietary”  أو المملوكة (أيّ مملوكة من قبل كيانات معيّنة)، وكذلك يُشار إليها باللفظ “closed source” أيّ مغلقة المصدر، في دلالة لعدم القدرة على الاطلاع عليها.

فقط أصحاب تلك البرمجيات لديهم القدرة على قراءة اﻷكواد وتعديلها ونسخها وتفحصها، ولكي يتمكن المستخدمون العاديون من استخدام تلك البرمجيات على حواسيبهم يلزمهم الموافقة على شروط الاتفاقية (اتفاقية المستخدم النهائي)، ولكن في الواقع يتجاهل معظم المستخدمين قراءة تلك الاتفاقية ويضغطون Next, Next, … ﻷنهم لا يريدون تضييع وقتهم في قراءة هذه الشروط المطوّلة، رغم احتواء بعض جزيئاتها على بعض اﻷمور الهامّة.

يعتبر Microsoft Office وAdobe Photoshop أشهر اﻷمثلة على البرمجيات المملوكة أو مغلقة الممصدر.

أمّا المصدر المفتوح open source فيختلف بشكل تامّ، صانعو هذه البرمجيات جعلوا أكوادهم متاحة للعموم إمّا لأسباب أخلاقيّة أو ﻷسباب تتعلق بسرعة التطوير وما إلى ذلك، فيتمكن الجميع من قراءة وعرض تلك اﻷكواد والتعلّم منها ونسخها ومشاركتها مع اﻵخرين والتلاعب بها وتعديلها والمشاركة في تطويرها، ومن أشهر اﻷمثلة على البرمجيات مفتوحة المصدر محرر الصور GIMP والبرنامج المكتبي LibreOffice.

وعلى الرغم من احتواء البرمجيات مفتوحة المصدر على بعض شروط التراخيص، إلا أنها تختلف تمامًا عن شروط الاتفاقية في البرمجيات المملوكة.

تُعنى شروط التراخيص في المصادر المفتوحة بالطريقة التي ينبغي فيها على اﻷشخاص استخدام ودراسة وتوزيع وتعديل البرامج، وبشكل عامّ؛ فإن بعض البرامج مفتوحة المصدر تمنح مستخدمي الحواسيب اﻹذن لاستعمال تلك البرمجيات ﻷيّ غرض رغبوا فيه ذلك، وفي بعض الرخص تجِد هنالك بعض اﻷشياء (“copyleft”)، وهذا يعني أن أيّ شخص يعدّل على الكود مفتوح المصدر فإنه ينبغي عليه أن يقوم بإطلاق ذلك الكود المصدري المعدّل إلى جانب البرنامج الذي أطلقه، وكذلك فبعض التراخيص تنصّ على عدم التعامل التجاري عند مشاركة اﻷكواد المصدرية المعدّلة مع اﻵخرين، إن تراخيص المصادر المفتوحة تعزز عملية التبادل والتعاون بين اﻷشخاص وتضمين تلك اﻷكواد في مشاريعهم الخاصة لزيادة اﻹنتاجية وتطوير المهارات والذكاء.

هل لفظ “مفتوح المصدر” مفيد فقط للمبرمجين؟

اﻹجابة: لا. هي مفيدة لعموم الناس، سواء كانوا مبرمجين أم لم يكونوا وسنوضّح ذلك.

أوائل المخترعين قاموا ببناء الكثير من جوانب اﻹنترنت على تقنيات مفتوحة المصدر بما فيها نظام التشغيل Linux وخادم الويب “أباتشي”، واليوم فإن أيّ شخص عاديّ يستخدم اﻹنترنت في العالم فإنه مدينٌ بالشكر للمصادر المفتوحة، لأنها كانت سببًا محوريًا في تطور الإنترنت.

عندما تتصفح الوب، تقرأ بريدك اﻹلكتروني، تدردش مع أصدقائك عبر برامج المراسلة، تشغّل الموسيقى، أو تلعب ألعاب MultiPlayer، كل هذه اﻷشياء تعتمد على مجموعة من التقنيات والبرمجيات مفتوحة المصدر من أجل عملية التبادل عبر الشبكة.

اﻷمر ذاته في عالم الحوسبة السحابية، بالنسبة ﻷولئك اﻷشخاص الذي يحتفظون بملفاتهم على سحابة “cloud”، فإن هنالك العديد من التقنيات مفتوح المصدر المصممة لتقوم بمُجريات هذه العملية، وكذلك هنالك عدد من خدمات التخزين السحابي مفتوحة المصدر أشهرها ownCloud and Nextcloud وبالنسبة للبرامج المملوكة هنالك Dropbox و Google Drive.

وتُعدّ منصة OpenStack بمثابة منصّة مفتوحة المصدر تعتمد عليها الكثير من خدمات التخزين السحابي الموجودة في العالم.

لمَ يفضّل بعض الناس استخدام البرمجيات مفتوحة المصدر؟

لعددٍ من اﻷسباب:

  • التحكم والسيطرة: كثير من الناس يفضلونها ﻷنها تعطيهم المزيد من التحكم بالبرامج بحيث يمكنهم التعديل عليها لتناسب احتياجاتهم وتغيير اﻷجزاء التي لا تعجبهم منها، المستخدمون العاديون أيضًا يمكنهم الاستفادة منها باستخدامها ﻷي غرض كان.
  • التدريب: ﻷنها تساعدهم على أن يصبحوا مبرمجين أفضل، ﻷنه بفتح الشيفرة المصدرية لدى الجمهور يساعدهم على دراستها وتقديم أفضل البرامج بعدها، ومشاركة أعمالهم مع اﻵخرين وسماع أصوات المديح والنقد، وتطوير مهاراتهم، وعندما يكتشفون أخطاءهم يشاركونها مع اﻵخرين لمساعدتهم على تجنب الوقوع في نفس الخطأ.
  • اﻷمان: وهو أمر معروف، فهي من أكثر البرمجيات أمنًا ﻷن العلل لا تمكث لفترة طويلة بسبب انفتاح الشيفرة لدى العموم فيؤدي ﻹغلاقها بسرعة (بالطبع بعد عمل مراجعة لذلك التصحيح من قِبل المتمكنين لئلا يكون مُدرِج ذلك التصحيح قد ارتكب خطأ أو زرع شيئًا خبيثًا، قبل إطلاق النسخة العامّة لدى عموم المستخدمين).
  • الاستقرار: الكثير من الناس يفضلون المصدر المفتوح للمشاريع المهمة على المدى الطويل، فعندما تكون الشيفرة متاحة يمكن للمستخدمين الاعتماد على هذا البرنامج في المهام الحرجة، فإنهم لن يتأثروا إذا توقف مخترعو البرنامج اﻷصلي عن االتحديث والتطوير وإصلاح العلل، بل يستطيعون إنشاء وتطوير نسختهم الخاصة.

هل المصدر المفتوح يعني مجانًا؟

هذا خطأ شائع. واﻵثار المترتبة على هذا المفهوم ليست اقتصادية فقط!

أصحاب المصادر المفتوحة يمكنهم أن يتقاضوا أموالًا على برامجهم ولكن بطريقة مختلفة عن البرمجيات الاحتكارية، نحن نعلم أن الرخص مفتوح المصدر تلزم أصحاب البرامج بإطلاق شيفرتهم عند بيعها للآخرين، ولكن كيف يربحون من ذلك؟! في بعض البرمجيات تجِد المطوّر يفرض رسومًا على لقاء الخدمات والدعم التي يتم بها مساعدة الزبون بدلًا من فرض رسوم على البرنامج نفسه؛ بهذه الطريقة يظلّ البرنامج مجانيًا، وتكون الرسوم المدفوعة لقاء مساعدة اﻵخرين في التركيب والاستخدام ودعمهم وما إلى ذلك…

في الواقع إن العديد من أرباب العمل يفضّلون توظيف أصحاب التقنيات مفتوحة المصدر بسبب مهاراتهم في الدعم الفني والمساعدة وإصلاح اﻷخطاء، وليس العكس كما تظن!

مقالاتنا التالية سوف تكون عن مجموعة من اﻷسئلة الشائعة حول المصادر المفتوحة، وسوف تكون على شكل سلسلة من المواضيع المتفرقة…

[opensource]

مشاركة