ما معنى مفتوح المصدر (Open Source) وما هي شروطه العشرة

مفتوح المصدر

لو كنت تستخدم الإنترنت، وكان لك دراية ولو صغيرة بعالم البرمجيات، فهناك احتمال كبير أنك قد سمعت من قبل مصطلح مفتوح المصدر أو مصدر مفتوح Open-source، وبالطبع تتسأل ما هو معنى كلمة مفتوح المصدر؟ ولماذا هناك بعض البرامج أو اللغات البرمجية أو أنظمة التشغيل التي يطلق عليها دون غيرها أنها مفتوحة المصدر؟

في هذا المقال سوف أوضح لك مفهوم Open-source بشكل مبسط وسهل، وسوف أتناول الكثير من الجوانب الأخرى المرتبطة بهذا الموضوع، لكي في النهاية أتركك وقد فهمت فكرة مفتوح المصدر بشكل يُمَكنك من شرحها للآخرين.

ما معنى مفتوح المصدر Open source؟

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

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

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

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

ما هي الشروط العشرة لكي يكون البرنامج مفتوح المصدر؟

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

يجب أن يكون البرنامج المرخص تحت ترخيص Open Source، معتمداً ومتوافقاً مع مبادرة المصدر المفتوح لتعزيز وحماية البرامج والمشروعات والمجتمعات المفتوحة المصدر (Open Source Initiative (OSI.
وهذه هي الشروط العشرة لمنح رخصة برنامج مفتوح المصدر:

1- إعادة توزيع مجاني Free Redistribution
يمكن لأي طرف بيع أو توزيع البرنامج مفتوح المصدر، ويمكن لأي شخص أو مؤسسة بيع البرنامج كجزء بين مجموعة برامج أخرى، ولا يتطلب دفع أية رسوم مقابل هذا البيع.

2- كود المصدر Source Code
يجب أن يشتمل البرنامج أو لغة البرمجة على كود المصدر Source Code، ويجب أن يكون كود المصدر متاحاً للجميع. و في الحالات التي لا يتم فيها توزيع البرنامج مع كود المصدر، يجب أن تكون هناك وسيلة معروفة جيداً للحصول على الكود المصدري، ويجب أن تكون تكلفة النسخ بسعر معقول، ويفضل أن يكون تنزيلها عبر الإنترنت دون مقابل.

3- الأعمال المشتقة Derived Works
يُسمح بإجراء تعديلات وأعمال مشتقة على كود المصدر، لإنتاج برامج جديدة فرعية، ويجب أن يُسمح بتوزيعها بموجب نفس شروط ترخيص البرنامج الأصلي.

4- سلامة كود المصدر للمؤلف Integrity of The Author’s Source Code
يجوز تقييد توزيع كود المصدر في شكل معدل فقط، وذلك إذا كان الترخيص يسمح بتوزيع ملفات التصحيح Patch Files مع كود المصدر، لغرض تعديل البرنامج أثناء إعادة البرمجة. يجب أن يسمح الترخيص صراحة بتوزيع البرامج المدمجة من كود المصدر المعدل، و قد يتطلب الترخيص أعمالًا مشتقة لحمل اسم أو رقم إصدار مختلف من البرنامج الأصلي.

5- لا تمييز ضد أشخاص أو مجموعات بعينها No Discrimination Against Persons or Groups
يجب ألا يميز الترخيص ضد أي شخص أو مجموعة من الأشخاص، فكل من يقرر الحصول على الترخيص والعمل على تعديله ومشاركته ونشره سواسية، سواءً كان شخص واحد أو مجموعة من الأشخاص.

6- لا تمييز في الاستخدام ضد مجالات بعينها No Discrimination Against Fields of Endeavor
يجب ألا تُقيد الرخصة أي شخص من الإستفادة من البرنامج أو لغة البرمجة في مجال معين، ولكن الإستفادة منها متاحة في جميع المجالات بدون تمييز.

7- توزيع الرخصة Distribution of License
يجب أن تنطبق حقوق الترخيص الملحقة بالبرنامج أو لغة البرمجة على جميع الأشخاص الذين تتم إعادة توزيع البرنامج عليهم، دون الحاجة إلى تنفيذ ترخيص إضافي من قبل هؤلاء الأطراف.

8- يجب ألا يكون الترخيص محدد بمنتج معين License Must Not Be Specific to a Product
يجب ألا تعتمد الحقوق المرتبطة بالبرنامج على كون البرنامج أو لغة البرمجة جزءًا من توزيع برنامج أخر، ففي حالة إستخراج البرنامج من هذا التوزيع و إستخدامه، أو توزيعه ضمن شروط ترخيص البرنامج المرتبط به.

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

9- لا يجب أن يقيد الترخيص برامج أخرى License Must Not Restrict Other Software
يجب ألا تضع الرخصة قيودًا على البرامج الأخرى التي يتم توزيعها مع البرنامج المرخص، فعلى سبيل المثال يجب ألا يصر الترخيص على أن تكون جميع البرامج الأخرى الموزعة على نفس الوسائط برامج مفتوحة المصدر.

10- يجب أن يكون الترخيص محايداً License Must Be Technology-Neutral
لا يجوز أن يستند أي شرط من شروط الترخيص إلى أي تقنية فردية أو إستخدام واجهة مستخدم User Interface معينة، فيجب أن يعمل الترخيص تحت أي ظرف من الظروف بشكل طبيعي.

اقرأ أيضاً: ما هو الأردوينو Arduino ومميزاته واستخداماته (كل ما تحتاج لمعرفته)

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

في هذا الجزء سوف نوضح الفرق بين البرامج مفتوحة المصدر، والبرامج مغلقة المصدر.

البرامج مغلقة المصدر Closed Source

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

ومن أشهر البرامج مغلقة المصدر والبرامج الإحتكارية:

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

Microsoft Office
حزمة البرامج المكتبية الخاصة بشركة مايكروسوفت.

Adobe Photoshop
برنامج إنشاء وتعديل الرسومات والتصوير الرقمي وهو من إنتاج شركة ادوبى.

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

في البرامج مفتوحة المصدر Open Source الأمر مختلف تماماً، بحيث يجعل مؤلفوها كود المصدر Source Code متاح للآخرين الذين يرغبون في عرض هذا الكود أو نسخه أو التعلم منه أو تغييره أو مشاركته.
ومن أشهر البرامج والأنظمة مفتوحة المصدر:

Android
وهو نظام تشغيل الهواتف الذكية الأكثر إنتشاراً على مستوى العالم، الذي تستخدمه معظم الشركات المصنعة للهواتف الذكية، يتم تطوير الأندرويد من قبل التحالف المفتوح للهواتف النقالة Open Handset Alliance، و الذي تديره شركة Google.

وهو تجمع مكون من أربعة وثمانون شركة إتصالات، وشركات مصنعي مكونات الهواتف و مطوري البرمجيات، والذين الذين يلتزمون بتطوير المعايير المفتوحة للهواتف النقالة مثل:
HTC ,Dell ,Motorola ,INTEL ,NVIDIA ,Vodafone ,Samsung ,Huawei ,Toshiba.

LibreOffice
هي حزمة برامج مكتبية حرة ومفتوحة المصدر، يعمل البرنامج على أكثر معظم منصات التشغيل مثل ويندوز وماكنتوش ولينكس، ويوفر LibreOffice ستة برامج لتلبية جميع الاحتياجات المكتبية من تحرير الوثائق، ومعالجة البيانات، وتقديم العروض، والرسم، وبناء قواعد البيانات، وغيرها من الاستعمالات المكتبية البسيطة والمعقدة، وهو من إنتاج العديد من المساهمين والمطورين الذين ينتمون للمؤسسة غير الربحية والذي تسمي The Document Foundation.

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

اقرأ أيضاً: مقابلة مع خبير: كل ما تريد معرفته عن البرمجة التنافسية ومسابقات البرمجة

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

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

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

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

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

من أهم أشكال البرامج المفتوحة المصدر هي الحوسبة السحابية Cloud Computing أو الحوسبة عن بُعد، لأنها تتضمن أنشطة مثل تخزين الملفات ومشاركة الصور أو مشاهدة مقاطع الفيديو، وهي التي لا تتضمنها الأجهزة المحلية فحسب، بل أيضًا شبكة عالمية من أجهزة الكمبيوتر البعيدة.

الحوسبة السحابية Cloud Computing هي جانب متزايد الأهمية في الحياة اليومية مع الأجهزة المتصلة بالإنترنت، وتعد بعض تطبيقات الحوسبة السحابية، مثل Google Drive ملكية خاصة للمستخدمين مفتوحة المصدر، حيث تتيح مشاركة الملفات ونسخها وتنزليها من قبل أي شخص أخر.

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

يفضل الناس البرمجيات مفتوحة المصدر على البرمجيات الاحتكارية لعدد من الأسباب، ومنها:

المراقبة Control

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

التدريب Training

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

الآمان Security

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

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

الثبات Stability

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

ما الفرق بين البناء من الأعلى للأسفل، و البناء من الأسفل إلى الأعلى؟

البناء من الأعلى إلى الأسفل Top–Down Build

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

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

هذا النوع من العلاقات هو علاقة بجهة واحدة وهو ما يعرف بالبناء من الأعلى للأسفل Top-Down-Build.

البناء من الأسفل إلى الأعلى Down–Top Build

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

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

هنا عملية البناء تتم من أسفل الهرم أي من قاعدة المستخدمين، وصولاً لأعلي الهرم وهي الشركة المصدرة للنظام، وهذا يسمي البناء من الأسفل إلى الأعلى Down To Top Build.

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

وإذا تم العثور على مشكلة أو ثغرة بأحد الإصدارات يستطيع أي شخص حول العالم أن يحاول تعديلها وتحسينها، وهذا ما جعل من نظام لينكس من أقوى الأنظمة ضد الفيروسات وهجمات القرصنة، وهو ما جعله أيضاً من أكثر الأنظمة تفضيلاً في مجال تشغيل خوادم الشبكات Network Server، وهذا ما جعله أيضاً نظام التشغيل الأكثر انتشاراً حول العالم في مجال الحواسيب الفائقة أو الحواسيب الخارقة Super Computer، حيث تعتمد 95% من الحواسيب الفائقة حول العالم على نظام تشغيل لينوكس.

اقرأ أيضاً: أشهر لغات البرمجة وأهم استخداماتها (دليل شامل ومبسط)

نزعة أخلاقية لبناء عالم تكنولوجي مفتوح المصدر

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

  • كسر حالة الإحتكار Monopoly التي تقوم بها الشركات التقنية الكبيرة.
  • فتح الباب أمام المطورين والمبدعين حول العالم ليبرزوا قدراتهم بشكل أفضل.
  • جعل مفهوم حقوق الملكية أكثر مرونة بما يساهم بتسهيل عملية نقل وتبادل المعلومات.

وانطلاقاً من هذه المفاهيم، أصبح هنالك ما يعرف بـ حركة المصادر المفتوحة Open Source Movement، والتي تؤمن بأهدافٍ نبيلة من التعاونية والتشاركية ومجانية تبادل المعلومات حول العالم، بدون أي قيود احتكارية أو تقييد لنقل المعلومات عبر حقوق الملكية.

هذه المفاهيم الرائعة أصبحت تشكل قيماً لمعظم المطورين الذين يعملون في مجال المصادر المفتوحة، وأصبحت هذه المفاهيم تمثل روح عمل وفلسفة تجمع ملايين المطورين حول العالم، مما قاد لنشوء مفهوم أخلاقي وفلسفي رائع ذو آثارٍ رائعة جداً، وهو مفهوم “البناء من الأسفل للأعلى Bottom-up-Build”.

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

موضوعات أخرى ستعجبك

عن الكاتب

8 أفكار عن “ما معنى مفتوح المصدر (Open Source) وما هي شروطه العشرة”

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Scroll to Top