المعلوماتية > برمجيات

البرمجيات مفتوحة المصدر

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

ما هي البرمجيات الحرة؟

«البرمجيات الحرة Free software» والتي ظهرت كمصلح في عام 1985 هي البرمجيات المعتمدة على 4 حرّيات وهي:

حرية تشغيل البرنامج لأي غرض من الأغراض.

حرية دراسة كيفية عمل البرنامج وتغيرها لجعله يقوم بما نشاء.

حرية إعادة توزيع نسخ من البرنامج لمساعدة الآخرين.

حرية تحسين البرنامج ونشر هذه التحسينات للعامة حتى يستفيد المجتمع ككل.

ومن الواضح أن حرية دراسة وتعديل البرمجيات الحرة تعني الوصول غير المقيّد إلى الشيفرة المصدرية.

ما هي الشيفرة المصدرية؟

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

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

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

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

جاءت هذه الحركة كردّ فعلٍ على القيود المفروضة على البرمجيات الامتلاكية (البرمجيات مغلقة المصدر)، والتي تتعامل مع حقوق الملكية وتتيح الوصول والاستخدام المقيّد تحت شروط معينة، وغالباً ماتكون الشيفرة المصدرية لهذه البرمجيات غير متاحة.

أظهرت العديد من الشركات الكبيرة دعمها لحركة البرمجيات مفتوحة المصدر بما في ذلك مؤسسة أباتشي Apache، حيث شاركت هذه المؤسسة في إنتاج العديد من المشاريع ضمن هذا المجال ومنها المنصة مفتوحة المصدر Apache Hadoop المتخصصة بالبيانات الكبيرة Big Data، بالإضافة لمخدّم Apache HTTP مفتوح المصدر.

ويتعامل معظمنا مع «البرمجيات مفتوحة المصدر» من دون معرفته بذلك، والمقصود بمعظمنا هم مستخدمو نظام التشغيل «أندرويد Android» على الأجهزة الذكية الخاصة بهم. فنظام التشغيل أندرويد هو نظام تشغيل خاص بأجهزة الخليوي مبني حول نواة نظام التشغيل لينوكس Linux وقائمة من التقنيات مفتوحة المصدر بالإضافة لبعض التقنيات الامتلاكية، وقد تم تصنيفه كأكثر نظام تشغيل منتشر في العالم وصاحب أكبر مبيعات في العام 2013.

ما الفرق بين البرمجيات مفتوحة المصدر وغيرها من البرمجيات؟

كما ذكرنا سابقاً فإن البرمجيات الامتلاكية لا تتيح الوصول والتعديل على الشيفرة المصدرية إلا للشخص أو الفريق أو المنظمة التي أوجدت هذه الشيفرة، ومن أشهر الأمثلة على ذلك برامج Microsoft Word وAdobe Photoshop. وعلى مستخدمي هذه البرامج أن يوافقوا على شروطٍ معينة تقيد استخدام هذه البرمجيات، ويتم ذلك غالباً بتوقيع رخصة تظهر للمستخدمين عند تشغيل البرنامج لأول مرة.

هل البرمجيات الحرة هي ذاتها البرمجيات مفتوحة المصدر؟

يعاني مصطلح «البرمجيات الحرة» من الغموض، ففي حال أخذ المصطلح في اللغة الانكليزية "free software" فمن المحتمل أن يتمَّ فهمها على أنها البرمجيات التي «تحصل عليها مجاناً ومن دون دفع أي مبلغٍ من المال«، وقد حاول الكثير إيجاد حلٍ لهذه المشكلة عن طريق اقتراح مصطلحٍ آخر، ولكن كانت جميع الحلول المقترحة دون المستوى المطلوب، لذلك قام البعض بالانفصال عن هذه الحركة للتخلص من سوء فهم هذا المعيار، فجاء مصطلح البرمجيات مفتوحة المصدر بمرونة أكبر ويعني «إمكانية الحصول على الشيفرة المصدرية»، وبعد فترة من الزمن أخذ هذا المنهج الجديد اتجاهاً مختلفاً وأصبح له وجهات نظرٍ فلسفية وعلمية تغاير مصدره.

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

ومن الضروري التذكير أن كلمة "free" تعني حرية الوصول والاستخدام ضمن كلا المنهجين، وليست مرتبطة بالمبالغ المدفوعة في حال وجودها.

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

هل هذه البرمجيات مجانية الكلفة دائماً؟

إن هذا المفهوم الشائع خاطئ جداً حول البرمجيات مفتوحة المصدر، فبإمكانِ المبرمجين الحصول على الأموال مقابل البرمجيات التي أوجدوها أو ساهموا في تطويرها، ولكن بما أن معظم رخص المصدر المفتوح تفرض عليهم نشر شيفرتهم المصدرية فقد رأى هؤلاء المبرمجون أن تقاضي الأموال مقابل خدمات ودعم البرمجية عوضاً عن البرمجية بحد ذاتها أكثر ربحاً، وبهذه الطريقة تبقى البرمجية مجانية الكلفة ويحصل المبرمجون على أجورهم عن طريق مساعدة الآخرين على تثبيت، استعمال، وحل مشكلات البرمجية.

لماذا يفضل الكثير من الناس التعامل مع البرمجيات مفتوحة المصدر؟

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

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

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

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

لايقتصر المصدر المفتوح على البرمجيات وحسب، بل يمكن أن يشمل العتاديات والأجهزة الالكترونية ويدعى ذلك بـ "العتاديات مفتوحة المصدر" ويعني هذا المصطلح أنه من الممكن الوصول بسهولة إلى المعلومات الخاصة بالعتاديات، كما أن التصميم العتادي كالمخططات الميكانيكية، مخططات الدارات، المواد، معطيات لوحات الدارات المطبوعة Printed Circuit Board (PCB)، الشيفرة المصدرية للغة برمجة وتوصيف العتاديات HDL source code، معطيات الدارات المتكاملة، بالإضافة للبرمجيات التي تقود هذه الأجهزة، جميعها تكون منشورة تحت قانون FOSS (Free and Open Source Software).

من الأمثلة على العتاديات مفتوحة المصدر:

Openmoko وهي عائلة من أجهزة الخليوي مفتوحة المصدر والتي تنشر توصيف العتاديات ونظام التشغيل الخاصين بها.

OpenRISC وهي عائلة من المعالجات الأصغرية مفتوحة المصدر.

Arduino وهو منصة متحكمات أصغرية للهواة والمصممين.

Simputer وهو حاسب محمول باليد مفتوح المصدر تم صنعه في الهند.

خلاصة:

لاتقتصر استعمالات «المصدر المفتوح» على المعلوماتية وحسب، بل انتشر هذا النهج في كثير من المجالات ومنها الطب، والاقتصاد، والعلوم، والهندسة، والروبوتيات، والإعلام، والحكومات، وبعض الديانات، والموضة.

وهي بالعامي :D ...لا حدا يستغرب اذا سمع بمصطلح "المشروبات مفتوحة المصدر" متل "الكولا مفتوحة المصدر" وهي كولا بتشبه بيبسي وكوكا كولا اللي منعرفون بس الوصفة تبعا مفتوحة المصدر وهي نتيجة تعاون بين مجموعة من المتطوعين.

المصادر:

هنا و هنا و هنا و هنا