مقال | ما هي المصادر أو البرمجيات مفتوحة المصدر
هل سمعتَ يومًا عن أنظمة التشغيل مثل “لينكس” أو متصفح “فايرفوكس”؟ هذه أمثلة على البرمجيات مفتوحة المصدر، وهي تقنية ثورية تسمح لأي شخص بدراسة الكود البرمجي وتعديله بحرية.
لكن كيف بدأت هذه الفكرة؟ وما الفرق بينها وبين البرمجيات العادية؟ في هذا الدليل المبسط، سنشرح كل شيء خطوة بخطوة، مع أمثلة ومراجع موثوقة.
في البداية ماهي : البرمجيات مفتوحة المصدر
البرمجيات مفتوحة المصدر ( OSS ) هي برمجيات يتم توزيعها مع الكود المصدر الخاص بها حيث يمكن لأي شخص تحليله وتعديله وتحسينه بأي طريقة يراها مناسبة.
عادةً، يكون هناك ترخيص مرتبط بكل برنامج مفتوح المصدر يحدد الشروط التي يمكن بموجبها استخدام الكود المصدر. يتم تطويره من خلال التعاون المفتوح في مجتمع تطوير البرمجيات الذي تم تشكيله حول كل حل مفتوح المصدر.
على عكس البرامج الاحتكارية، لا يستطيع أي شخص قادر على القيام بذلك رؤية ودراسة الكود المصدري وراء البرنامج مفتوح المصدر فحسب، بل يمكنه أيضًا تغييره أو حتى إعادة استخدامه بالكامل وتصميم برنامج جديد خاص به بناءً عليه.
وبهذه الطريقة تشجع مشاريع البرامج مفتوحة المصدر التعاون والشفافية وتنمية المجتمع. تشمل بعض الأمثلة الأكثر شيوعًا لمشاريع البرامج مفتوحة المصدر والمساهمين فيها، على سبيل المثال لا الحصر، WordPress و Linux .
ماهو : الكود المصدر
الكود المصدري هو مجموعة من التعليمات البرمجية المكتوبة بلغة يفهمها البشر (مثل Python أو Java أو C++)، والتي تُستخدم لإنشاء البرامج أو التطبيقات. يُشبه “وصفة طهي” تحتوي على خطوات مفصلة تُخبر الكمبيوتر بكيفية تنفيذ مهام محددة.
النشأة : كيف ظهرت فكرة المصادر المفتوحة
في الماضي، كانت الشركات توزع البرامج دون الكشف عن الكود المصدري (مثل مايكروسوفت في الثمانينيات). لكن في 1983، قرر ريتشارد ستولمن تغيير ذلك عبر إطلاق مشروع جنو (GNU)، الذي دعا إلى “البرمجيات الحرة” القائمة على أربع اساسيات:
- الحرية 0: تشغيل البرنامج لأي غرض.
- الحرية 1: دراسة الكود وتعديله (شرط وجود الكود المصدري).
- الحرية 2: إعادة توزيع النسخ الأصلية.
- الحرية 3: توزيع النسخ المعدلة.
وفي 1998، ظهر مصطلح “مفتوح المصدر“ رسميًا بفضل مبادرة Open Source Initiative (OSI)، التي هدفت لجعل الفكرة أكثر جاذبية للشركات.
المصدر: مؤسسة البرمجيات الحرة (FSF) | تاريخ OSI.
لماذا تم تشكيل مبادرة : المصدر المفتوح (OSI)؟
كان لا بد من تنظيم النهج الجديد الذي قدمه ستالمان وتقنيات المصدر المفتوح بطريقة ما، ولهذا السبب تأسست مبادرة المصدر المفتوح. والهدف من ذلك هو الدفاع عن البرمجيات والمجتمعات مفتوحة المصدر وحمايتها.
حيث اصبح OSI هو المركز الرئيسي للبرمجيات مفتوحة المصدر، حيث يقدم قواعد شاملة وإرشادات حول كيفية استخدام البرمجيات مفتوحة المصدر بشكل مسؤول.
وعلاوة على ذلك، فهو يوفر معلومات حول تراخيص الكود، إلى جانب دعم المستخدم وأدوات التعاون المجتمعي التي تهدف إلى المساعدة في ضمان الاستخدام العادل لجميع التطبيقات مفتوحة المصدر المتاحة.
آلية العمل : كيف تُبنى البرمجيات المفتوحة؟
تتطور البرمجيات المفتوحة عبر تعاون المطورين حول العالم، مثل كتابة كتاب جماعي! يمكن للجميع التعديل على القصة لتظهر بي افضل شكل ، إليك كيف يتم ذلك:
- المنصات: تُستضاف المشاريع على منصات مثل GitHub أو GitLab، حيث يُرفع الكود المصدري للجميع.
- التحديثات: أي مطور يمكنه اقتراح تحسينات (تُسمى Pull Requests)، ويتم فحصها قبل الموافقة.
- الإصدارات: تُنشر تحديثات دورية (مثل إصدارات نظام Linux).
مثال: نظام أندرويد مبنى على لينكس المفتوح المصدر، لكن بعض إضافات جوجل مغلقة.
المصدر: كيف يعمل GitHub؟
حقوق الملكية : ما الذي يسمح به الترخيص؟
البرمجيات المفتوحة ليست “خالية من الملكية“، ويعني انه يمكن للجميع الاطلاع على من هو منشى البرمجية وانه يحدد نوع الترخيص ومن. أشهرها:
المصدر: قائمة تراخيص OSI.، تراخيص GNL ، شرح MPL
أمثلة واقعية : مشاريع مفتوحة غيرت العالم
- متصفح فايرفوكس: بديل مفتوح المصدر لـ Chrome، يحمي خصوصية المستخدمين. رابط الموقع.
- ووردبريس: يُشغل 43% من مواقع الويب! رابط الموقع.
- Blender: برنامج مجاني لتصميم الأفلام ثلاثية الأبعاد. رابط الموقع.
البرمجيات مفتوحة المصدر مقابل البرمجيات الاحتكارية
على النقيض من البرامج مفتوحة المصدر الموصوفة أعلاه، هناك نوع من البرامج لا يمكن الوصول إلى كود المصدر الخاص به علنًا، ولا يمكن إلا للفريق والشركة التي أنشأته رؤيته وتعديله.
وهذا ما يسمى بالبرامج الاحتكارية أو البرامج المغلقة المصدر. ويتعين على أي شخص يرغب في استخدامها التوقيع على ترخيص احتكاري والموافقة على الشروط المذكورة فيه.
ومن الأمثلة على هذه البرامج المغلقة المصدر برنامج Adobe Photoshop وMicrosoft Word وغيرهن الكثير.
وفقًا لتقرير نشرته شركة Red Hat عام 2022 حول حالة البرمجيات مفتوحة المصدر، فإن البرمجيات المملوكة تتراجع بسرعة. وذكر التقرير أن المشاركين في الاستطلاع أشاروا في عام 2021 إلى أن حوالي نصف (55%) البرمجيات التي استخدموها كانت مملوكة.
وفي عام 2022 انخفض الرقم إلى 42%. ويتوقعون أن تنخفض نسبة البرمجيات المملوكة إلى 32% من مجموعات البرمجيات التي يستخدمونها في وقتنا الحالي.
المصدر: تقرير Red Hat.
الأنواع : انواع المصادر المفتوحة
1. أنواعها حسب الترخيص
الترخيص هو العقد القانوني الذي يُحدد شروط استخدام الكود المصدري، وتنقسم إلى:
النوع | الوصف | أمثلة | الاستخدام الشائع |
---|---|---|---|
تراخيص تصاريحية (Permissive) | تتيح للمستخدمين حرية التعديل وإعادة التوزيع حتى مع إغلاق الكود، مع اشتراط ذكر المصدر الأصلي. | MIT, BSD, Apache | مشاريع تجارية تريد مرونة في الاستخدام (مثل React.js). |
تراخيص كوبي ليفت (Copyleft) | تفرض أن تظل أي نسخة معدلة مفتوحة المصدر مثل الأصل (لا يُسمح بإغلاقها). | GPL, AGPL | مشاريع تهدف للحفاظ على الانفتاح (مثل Linux). |
تراخيص هجينة | تجمع بين التصاريحية وكوبي ليفت، مثل السماح بربط الكود ببرمجيات مغلقة تحت شروط. | LGPL, MPL | مكتبات برمجية (مثل بعض مكونات Mozilla). |
المصادر:
2. أنواعها حسب الغرض
هي تصنيفات بناءً على الوظيفة الأساسية للبرنامج:
النوع | الوصف | أمثلة | الهدف |
---|---|---|---|
أنظمة التشغيل | برامج لإدارة موارد الجهاز وتشغيل التطبيقات. | Linux, FreeBSD | تشغيل الخوادم أو الحواسيب الشخصية. |
خوادم الويب | برامج لاستضافة المواقع الإلكترونية وتوجيه الزوار. | Apache, Nginx | تشغيل مواقع مثل YouTube أو Netflix. |
قواعد البيانات | برامج لتخزين البيانات واسترجاعها بفعالية. | MySQL, PostgreSQL | إدارة بيانات المواقع أو التطبيقات الكبيرة. |
أدوات المطورين | مكتبات أو أُطر عمل تُسهل كتابة التطبيقات. | React, TensorFlow | تطوير الذكاء الاصطناعي أو واجهات المستخدم. |
التطبيقات المكتبية | برامج يومية للمستخدمين العاديين. | LibreOffice, GIMP | معالجة النصوص أو التصميم الجرافيكي. |
3. أنواعها حسب الحوكمة
تشير إلى كيفية إدارة المشروع وتطويره:
النوع | الوصف | أمثلة | الميزة |
---|---|---|---|
مشاريع مجتمعية | يُطورها متطوعون دون تموين مركزي، عبر تعاون مفتوح. | Wikipedia (ميدياويكي) | الشفافية والاستقلالية. |
مشاريع مدعومة من شركات | تُموَّل وتُدار بواسطة شركات كبيرة، لكن الكود يظل مفتوحًا. | Android (جوجل), VS Code (مايكروسوفت) | موارد تطويرية قوية وانتشار واسع. |
لماذا هذه التصنيفات مهمة؟
- للمطورين: تساعد في اختيار الرخصة المناسبة لمشاريعهم.
- للمستخدمين: توضح حقوقهم (مثل التعديل أو إعادة التوزيع).
- للشركات: تحدد إمكانية دمج البرمجيات مع منتجاتها المغلقَة.
الأنواع : ليست كلها متشابهة!
كما هو موضح اعلاه الانواع غير متشابها ولتوضيحها اكثر :
1- الغرض
- برمجيات للمطورين: مثل أدوات البرمجة (Python).
- برمجيات للمستخدمين: مثل مشغل الوسائط VLC.
2- درجة الانفتاح أو التحكم
- مشاريع هجينة: مثل Android (جزء مفتوح، وجزء مغلق من جوجل).
- مشاريع كاملة: مثل LibreOffice (مفتوحة بالكامل).
مزايا وعيوب : البرمجيات مفتوحة المصدر
لقد كان تطوير البرمجيات مفتوحة المصدر موجودًا منذ فترة طويلة الآن، وقد أتيحت الفرصة للعديد من الشركات لتجربة الجوانب الإيجابية والسلبية لهذه البرمجيات ومقارنتها بالبرمجيات مغلقة المصدر. دعونا نلقي نظرة على بعض أكثر إيجابيات وسلبيات تكنولوجيا مفتوحة المصدر وضوحًا.
الايجابيات
1- قابلة للتخصيص
غالبًا ما تكون البرامج مفتوحة المصدر قابلة للتخصيص بدرجة كبيرة، مما يعني أنه يمكن تعديلها لتناسب الاحتياجات المحددة للمستخدم نظرًا لأنه لديه إمكانية الوصول إلى الكود الأولي.
2- الاستقرار
وبما أن الكود البرمجي يتم توزيعه علنًا، فيمكن للمستخدمين الثقة به في مشاريعهم طويلة الأجل – مع العلم أن المطورين لا يمكنهم ببساطة إنهاء الدعم أو إهمال تحديث حيوي.
3- التعليم
بالنسبة للمطورين المبتدئين والمستقبليين، فإن البرمجيات مفتوحة المصدر تشكل أصلًا لا يقدر بثمن. حيث يمكن لطلاب البرمجة فحص الكود وتعلم كيفية كتابة برامج خاصة بهم.
كما يسهل عليهم التعاون مع الآخرين والحصول على ملاحظات مفيدة، والتي يمكن أن تساعد في ضبط قدراتهم. قد يقدم المبرمجون الأكثر دراية الإرشادات من خلال تحديد الأخطاء وكذلك المساعدة في إصلاح الأخطاء لصالح تعلم الطلاب.
3- الجودة العالية
مع وجود عدد كبير من الأشخاص الذين يقومون بفحص البرنامج والمساهمة فيه، فمن المرجح أن يتم اكتشاف الأخطاء والأجزاء المفقودة من الكود وتصحيحها.
نظرًا لأن البرامج المملوكة يتم تطويرها بواسطة فرد واحد أو فريق من المحترفين، فإنها تأتي مع عدد أقل من الأشخاص لمراجعة الكود والتحقق من صحته. وهذا يعني أن الإغفالات المحتملة قد تمر دون أن يلاحظها أحد مقارنة بالدقة التي توفرها مجتمعات المصادر المفتوحة.
4- التكلفة
كما ناقشنا أعلاه، لا يعني المصدر المفتوح بالضرورة أنه مجاني. ولكن إذا كان لديك فريق خاص بك من المتخصصين في تكنولوجيا المعلومات، فمن المؤكد أن بدء مشروعك باستخدام كود موجود بالفعل سيكون أرخص بكثير من البدء من الصفر.
السلبيات
1- الدعم
عند العمل باستخدام برامج مغلقة المصدر، تقدم معظم الشركات فرق دعم مخصصة لمساعدة المستخدمين من البداية إلى النهاية. مع البرامج مفتوحة المصدر، لن تجد عادةً فريق دعم لمساعدتك في أي مخاوف كما هو الحال مع البرامج مغلقة المصدر. في هذه الحالة، قد تضطر إلى طلب خدمات خبير أو استشارة المنتديات عبر الإنترنت لحل مشكلتك.
2- سهولة الاستخدام
بشكل عام، توفر البرامج المغلقة المصدر تجربة مستخدم أفضل بكثير بسبب عدم وجود واجهات مستخدم سهلة الاستخدام مع حلول مفتوحة المصدر.
في النهاية، تعتمد قابلية الاستخدام على كفاءة كل مستخدم فردي مع أي نوع من البرامج. نظرًا لأن الناس يدفعون مقابل البرامج المغلقة المصدر، فإن المالكين يميلون إلى إعطاء الأولوية لجعلها سهلة وممتعة للاستخدام قدر الإمكان.
3- التوافق
عند برمجة الأجهزة الملكية باستخدام حلول مفتوحة المصدر، غالبًا ما يكون من الضروري الحصول على برامج تشغيل متخصصة لا يمكن الوصول إليها عادةً إلا من الشركة المصنعة الأصلية.
4- المسؤولية
بالمقارنة بالبرمجيات المملوكة التي يديرها البائع بالكامل، نادرًا ما تقدم البرمجيات مفتوحة المصدر أي تغطية ضمان أو حماية من المسؤولية أو تعويض ضد الانتهاك.
وهذا يعني أن مستهلكي البرمجيات مفتوحة المصدر مسؤولون وحدهم عن ضمان التزامهم بمسؤولياتهم القانونية.
ما الفرق بين البرمجيات مفتوحة المصدر والمجانية؟
- المفتوحة المصدر: تتيح الوصول إلى الكود المصدري مع حق التعديل وإعادة التوزيع (قد تكون مدفوعة أو مجانية).
- المجانية (Freeware): تُوزع مجانًا لكن كودها مغلق، ولا يُسمح بتعديله.
مصدر: مبادرة المصادر المفتوحة (OSI).
كيف أبدأ في المساهمة بالمشاريع المفتوحة؟
اختر مشروعًا تحبه على GitHub. ومن ثم ابحث عن قضايا مُصنفة بـ “Good First Issue“. ومن ثم تابع إرشادات المساهمة في ملف CONTRIBUTING.md.
مثال: دليل مساهمة Mozilla.
ما أفضل المواقع لاكتشاف مشاريع مفتوحة المصدر؟
كيف أتحقق من أن البرنامج مفتوح المصدر حقًا؟
ابحث عن ملف LICENSE في مستودع الكود ومن ثم تحقق من قائمة التراخيص المعتمدة على موقع OSI. تأكد من وجود الكود المصدري على منصات مثل GitHub.