سؤال

نظرًا لأن kernel Linux عبارة عن GPL وليس LGPL ، فأنا أفترض أنه من غير القانوني ربط رمز الملكية به. كيف تحيط الصناعة بهذا؟ أتوقع أن يجبر ترخيص GPL أي مطور على تشغيل برنامج تشغيل GPL و/أو وحدة kernel.

ربما أشعر بالارتباك وتنفيذ وحدة جديدة لا تربط حقًا مع رمز kernel ؟؟؟ كيف تتعامل الشركات مع هذا؟ ربما ربط العكس (من kernel إلى الثنائيات الخاصة بهم)؟

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

هل كانت مفيدة؟

المحلول

كما قلت أن ترخيص BSD كما هو مستخدم من قبل Kernel BSD هو أكثر ليبرالية ، لذلك ليس من مشكلة ربط أي وحدات مرخصة هناك.

بالنسبة لحالة Linux ، من الصحيح أن GPL في حد ذاته يحظر ارتباط التعليمات البرمجية غير المتوافقة مع GPL والتي سيكون لا تسمح للربط في وحدات الملكية ، أو حتى وحدات LGPL.

ومع ذلك ، يمنحك حاملي Linux حقوق الطبع والنشر لربط وحدة "LGPL" الخاصة بك مع أي رمز خاص. مثال على ذلك هو سائق Nvidia:

/------------.-\
| Kernel       |
|              |
|   /--------\ |
|   | Module | |     /-------------------\
|   | (LGPL) <========> proprietary code |
|   \--------/ |     \-------------------/
\--------------/

هذا سيظل غير قانوني تحت GPL بشكل عام ، ولكن هو سمح صراحة ل kernel Linux. كمرجع ، تعرف على ما يقوله Linus Torvalds حول القضية هنا:

http://linuxmafia.com/faq/kernel/proprietary-kernel-modules.html

PS ربط هو عملية متماثلة في شروط GPL.

نصائح أخرى

ليس فعل ربط نفسه هو الذي ينشط قيود GPL.

انها توزيع من "العمل المشتق" لعمل GPL الذي ينشط القيود - عليك أن تعطي أي شخص أعطيته "العمل المشتق" إلى الكود المصدري اللازم لإعادة إنشاء "العمل المشتق".

الآن ، يصبح السؤال أحد المكان الذي يتم فيه رسم خط "العمل المشتق" - وهو بعيدًا عن وضوح البلورة (ومن المحتمل أن يكون مختلفًا في ولايات قضائية مختلفة!). على سبيل المثال ، إذا قمت بتوزيع Linux kernel ثنائيًا مع الكود المرتبط بشكل ثابت في كجزء من ذلك ، فمن الواضح أن الثنائي كله "عمل مشتق". من ناحية أخرى ، إذا قمت بتوزيع فقط الوحدة الخاصة بك يستخدم ذلك فقط "واجهات منشورة" من kernel ، فربما لا تكون "عمل مشتق".

هناك مساحة كبيرة بين هذين الموقفين. على سبيل المثال ، إذا قمت بتوزيع جهاز يحتوي على ذاكرة فلاش تحتوي على نواة Linux وبرنامج تشغيل ثنائي متجمع ، فهل المحتويات الكاملة لذاكرة الفلاش "عمل مشتق"؟ من المؤكد أن الأمر يبدو لي - لكن الآراء تختلف ، وستأتي إجابة نهائية فقط عندما يتم اختبارها في المحكمة (وحتى ذلك الحين ، فقط للولاية القضائية لتلك المحكمة).

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

صحيح أن أي رمز يرتبط مقابل رمز GPL-ED يجب أن يكون في حد ذاته gpl-ed. ومع ذلك ، رمز GPL-ED يستطيع ارتباط مع المكتبات المغلقة المصدر دون تغيير ترخيص تلك المكتبات (وإلا ، يمكننا جعل كل مكتبة موجودة في ظهور المصدر المفتوح ببساطة عن طريق كتابة برنامج GPL وربطه ضد المكتبة). لذلك ، نواة Linux GPL-ED يستطيع رابط مع سائقك مغلق المصدر دون أي مشاكل.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top