لونجين
لونجين ( بالصينية :龙井) هو نواة نظام تشغيل مبنية على لينكس، مصممة لتكون متوافقة ثنائياً مع برامج التطبيقات وبرامج تشغيل الأجهزة المصممة لأنظمة مايكروسوفت ويندوز ولينكس. اعتباراً من الإصدار 1.0-rc2، يتكون لونجين من وحدة نواة لينكس تُنفذ جوانب من نواة ويندوز، وتوزيعة واين مُعدلة مُصممة للاستفادة من واجهة المستخدم الأصلية. لونجين مكتوب بلغة البرمجة سي، وهو برنامج مجاني ومفتوح المصدر، ومرخص بموجب بنود رخصة جنو العمومية العامة الإصدار الثاني (GPLv2).
على الرغم من أن المشروع لا يزال في المرحلة التجريبية الأولى من التطوير اعتبارًا من عام 2015، إلا أن العديد من برامج ويندوز تعمل بشكل جيد بالفعل.
اختفى موقعه الرسمي في أغسطس، ولكن تمت استعادته في عام 2019. وفي الوقت نفسه، لا يزال رمز المصدر متاحًا على GitHub . [ 1 ]
سمات
يهدف مشروع Longene إلى دمج جميع آليات نواة نظام التشغيل Windows، بما في ذلك استدعاءات النظام، وسجل Windows ، ونموذج برامج تشغيل Windows ، واستدعاء الإجراءات المؤجلة، وغيرها، في نواة Linux لتشكيل نواة جديدة. ستتيح هذه النواة الجديدة تشغيل تطبيقات Linux وWindows وبرامج تشغيل الأجهزة دون الحاجة إلى محاكاة أو استخدام تقنيات افتراضية. ولمنع تضخم حجم النواة، إذا كانت إحدى الوظائف متوفرة في كل من نواة ReactOS ونواة Linux، فسيتم استخدام تطبيق Linux. تُنفذ الوظائف باستخدام وحدات نواة Linux القابلة للتحميل، مما يسهل تحميلها وإلغاء تحميلها.
يحتوي نظام Longene على مجموعتين من استدعاءات النظام وجداولها المقابلة: مجموعة استدعاءات نظام ويندوز ومجموعة استدعاءات نظام لينكس. تستدعي تطبيقات ويندوز جدول استدعاءات النظام عبر مقاطعة البرمجيات "int 0x2e". بينما تستدعي تطبيقات لينكس جدول استدعاءات النظام عبر "int 0x80".
لا يقوم مشروع Longene بتطوير مكتبات بيئة المستخدم لنظامي التشغيل Windows وLinux . تُقدم هذه المكتبات من قبل مشاريع أخرى، مثل Wine و ReactOS وGNU و NDISwrapper . [ 2 ]
تطوير
في سبتمبر 2005، حصل مشروع لونجين على رعاية من شركة إنسيجما تكنولوجي (浙大网新)، وهي شركة استشارات تقنية معلومات مقرها الصين. اقترح قائد المشروع، ديكاو ماو (毛德操)، فكرة لونجين ومساره. وكتب سلسلة من المقالات حول السوق وحقوق الملكية الفكرية والتقنيات لشرح سبب حاجة الناس للمشروع وكيفية تطبيق لونجين. ثم جُمعت مقالات ماو لتشكيل الورقة البيضاء للمشروع.
بحسب الورقة البيضاء، يتطلب تطبيق Longene إضافة عدة أجزاء إلى نواة نظام Linux:
- إطار عمل يتوافق مع خصائص ومتطلبات برامج تشغيل أجهزة ويندوز (أي إطار عمل برامج تشغيل أجهزة ويندوز) بحيث يمكن تحميل وحدات برامج تشغيل أجهزة ويندوز المتعددة في النواة، مع الحفاظ على علاقتها وظروف تشغيلها كما هو الحال في ويندوز.
- مجموعة من دوال التصدير التي تحددها واجهة دوال التصدير الخاصة بنواة نظام التشغيل ويندوز (WDK). بالنسبة لبرامج تشغيل الأجهزة، تُشبه هذه الدوال دوال المكتبة التي توفرها النواة.
- واجهة برمجة تطبيقات ويندوز الأصلية. لم تُفصح مايكروسوفت عن واجهة برمجة تطبيقاتها الأصلية، ولكن "مرجع واجهة برمجة تطبيقات ويندوز NT/2000 الأصلية" ومصادر أخرى كشفت عن هذه المعلومات. يمكن تشبيه تطبيق واجهة برمجة تطبيقات نظام ويندوز في نواة لينكس بتطبيق لغة برمجة عالية المستوى بلغة التجميع، لأن الوظائف القابلة للاستخدام داخل النواة لم تعد تُنفذ بواسطة واجهة برمجة تطبيقات نواة لينكس الخارجية، بل بواسطة وظائف نواة لينكس الداخلية.
- يُنتج مشروع Longene تصحيحات لنواة لينكس لتحقيق هدفه. ويتوقع مطورو المشروع دمج هذه التصحيحات في النهاية في الشجرة الرئيسية لنواة لينكس. وبذلك، سيتمكن المبرمجون على نظام ويندوز من تطوير تطبيقات وبرامج تشغيل أجهزة لنظام لينكس، أو نقل منتجاتهم إلى نظام لينكس بتكلفة منخفضة.
استراتيجية التطوير
يستخدم مشروع Longene برنامج Wine كأساس لتنفيذ واجهة برمجة تطبيقات Windows. ويعيد المشروع تنفيذ وحدات Wine لاستخدامها كجزء من النواة المشتركة. ويتجنب Longene استخدام وحدات Wine التي لم يتم تنفيذها بشكل كافٍ للمشروع. تُصدر إصدارات Longene عند اكتمال تنفيذ عدد من وحدات Wine بنجاح في النواة. ثم يُستخدم الإصدار المستقر الجديد كأساس لتنفيذ الوحدات المستقبلية. أما واجهة برمجة تطبيقات Windows التي لم يتم تنفيذها بواسطة Wine، فيتم تطويرها كوحدات من الصفر. وبما أن نواة Longene تقوم بعمل نواة Windows NT، فلا حاجة لمحاكاة نواة مساحة المستخدم الخاصة ببرنامج Wine (wineserver).
بالنسبة لبرامج تشغيل الأجهزة، يستورد Longene مكتبة NDISwrapper إلى نواة النظام. تُجرى تعديلات على NDISwrapper لسدّ النقص في وظائف نموذج برامج تشغيل Windows، وذلك بالاستعانة بشفرة ReactOS كمرجع. يعتمد تطبيق Windows Driver Kit على شفرة ReactOS ، ويستخدم مزيجًا من إعادة توجيه برامج التشغيل إلى موارد نواة Linux ومكتبات إضافية تُنفّذ وظائف لا يمكن تنفيذها في Linux.
سجل الإصدارات
تم إصدار نسخة سابقة، unifiedkernel-2.6.13، [ 3 ] في 15 فبراير 2006. وقد قامت هذه النسخة بتفعيل آلية استدعاء نظام ويندوز .
| لون | معنى |
|---|---|
| أحمر | لم يعد الإصدار مدعومًا |
| أصفر | إصدار مدعوم |
| أخضر | الإصدار الحالي |
| أزرق | إصدار مستقبلي |
| إصدار | تاريخ الافراج عنه | معلومات الإصدار |
|---|---|---|
| 0.1.0 | 30 أبريل 2006 |
|
| 0.2.0 | 1 ديسمبر 2006 |
|
| 0.2.1 | 4 فبراير 2008 |
|
| 0.2.2 | 31 أكتوبر 2008 |
|
| 0.2.2-1 | 17 ديسمبر 2008 |
|
| 0.2.3 | 12 فبراير 2009 |
|
| 0.2.4 | 22 مايو 2009 |
|
| 0.2.4.1 | 31 أغسطس 2009 |
|
| 0.3 | 31 مايو 2010 |
|
| 0.3.1 | 26 فبراير 2011 |
|
| 0.3.2 | 8 يونيو 2011 |
|
| 1.0-rc1 | 31 ديسمبر 2013 |
|
| 1.0-rc2 | 16 يناير 2014 |
|
| 2.0 [ 4 ] | 2015 |
التطوير الحالي والمستقبلي
يعمل المطورون حاليًا على Longene 2.0، الذي سيدعم تطبيقات ويندوز التي تعمل على أجهزة ذات بنية غير x86، مثل ARM و Loongson . بالإضافة إلى ذلك، يعمل المطورون على دعم AMD64 ونقل كود NDISWrapper إلى المشروع.
لم يتم تنفيذه بعد (ولكن من المخطط له):
الموارد المتاحة مفتوحة المصدر
- نواة لينكس
- يعتمد Longene على نواة لينكس، حيث يُنفّذ وظائفه باستخدام وحدات نواة لينكس القابلة للتحميل (LKMs). على عكس ReactOS الذي يُنفّذ الوظائف من الصفر، يستفيد Longene من وفرة الشيفرة والوثائق المتاحة في نواة لينكس لإنشاء وظائفه. فيما يلي أهم الطرق لتنفيذ آليات ويندوز في Longene:
- واجهة استدعاء النظام – يمكن استخلاص بعضها من استدعاءات نظام لينكس المناسبة، أو إعادة استخدام جزء من الكود من استدعاءات نظام لينكس المقابلة. أما البقية التي لا يوجد لها نظير في لينكس، فتحتاج إلى استخدام وظائف نواة لينكس منخفضة المستوى في تنفيذها.
- إطار عمل برامج تشغيل الأجهزة – يستخدم سجل خدمة مقاطعة برنامج تشغيل الجهاز آلية مقاطعة لينكس، حيث تتعرف برامج تشغيل الأجهزة على نواة ويندوز قيد التشغيل، والتي يتم ربطها بنواة لينكس العاملة في الخلفية. تُترجم طلبات DPC لبرنامج تشغيل الجهاز إلى وظائف Linux-bh.
- ملفات نظام التشغيل الأصلية لنظام مايكروسوفت ويندوز، المحمية بحقوق الطبع والنشر لشركة مايكروسوفت، هي فئة من وحدات .sys تُستخدم للأجهزة الخارجية الشائعة، مثل الأقراص الصلبة، ووحدات USB، وأجهزة الرسومات، ومعدات الشبكة، وما إلى ذلك، والتي توجد لها وظائف مقابلة في نواة لينكس. لتشغيل هذه الأجهزة، يكفي إنشاء جسر، ولا حاجة لإنشاء وحدات .sys. أما بالنسبة لبقية وحدات .sys التي لا يوجد لها كائنات مقابلة في نواة لينكس، فيلزم استخدام محاكاة.
- مجموعة أدوات تطوير برامج تشغيل الأجهزة (DDK) لنظام ويندوز – تحتوي معظم وظائف واجهة برامج تشغيل الأجهزة وهياكل البيانات على نظائر في نواة لينكس. بعض الوظائف لا يوجد لها مكافئ دقيق في نواة لينكس، مما يستدعي إنشاء غلاف برمجي باستخدام مكونات نواة لينكس. عمليًا، يمكن إعادة توجيه بعض استدعاءات الموارد والمراجع أو تكييفها مع نظائرها في نواة لينكس، بينما يتطلب تنفيذ الباقي من الصفر.
- ReactOS
- ReactOS هو نظام تشغيل مُعدّل من نظام التشغيل مايكروسوفت ويندوز، تم تطويره من الصفر. يستخدم Longene كود ReactOS كمرجع لتنفيذ بعض الآليات الأساسية لنظام التشغيل مايكروسوفت ويندوز. يشمل ذلك تنفيذ إطار عمل برامج تشغيل الأجهزة في ويندوز، وNDIS، وواجهة استدعاء النظام، وإدارة العمليات والموارد، وواجهة برامج تشغيل الأجهزة، وغيرها.
- خمر
- يُطبّق Wine طبقة توافق ، موفراً تطبيقات بديلة لملفات DLL التي تستدعيها برامج Windows، وعمليات بديلة لنواة Windows NT. على عكس Longene الذي يستخدم وظائف النواة المصغّرة لتطبيق واجهة برمجة تطبيقات Windows في مساحة النواة، يستخدم Wine واجهة برمجة تطبيقات نظام التشغيل المضيف الكبيرة لتطبيق واجهة برمجة تطبيقات Windows في مساحة المستخدم. يوفر Longene إدارة عمليات Windows، وإدارة الخيوط، وإدارة الكائنات، وما إلى ذلك في النواة؛ بينما يوفرها Wine عبر خادم Wine الذي يعمل في مساحة المستخدم. يعتمد Longene على Wine لمكتبات المستخدم (ملفات .dll). يمكن استخدام معظم ملفات DLL الخاصة بـ Wine مباشرةً بواسطة Longene. يمكن الرجوع إلى كود Wine (مثل جدول سجل Windows) لتطبيق بعض الوظائف. في المرحلة الانتقالية، يستخدم Longene برنامج Wine لتوفير تلك الوظائف التي لم تُستكمل بعد.
- Kernel-Win32
- مشروع Kernel-Win32 يهدف إلى نقل بعض وظائف Wineserver إلى نواة لينكس لتسريع تشغيل Wine. قام مشروع Longene بنقل (وإعادة تنفيذ جزئي) Kernel-Win32 إلى Longene لتطبيق آلية استدعاء النظام في ويندوز.
- غلاف NDIS
- أعاد NDISWrapper إنشاء جزء من نواة نظام التشغيل Windows NT في وحدة نواة Linux، مما يُتيح تشغيل برامج تشغيل Windows الحديثة داخل بيئة نواة Linux. يتكون NDISWrapper من واجهة برمجة تطبيقات NTOSKRNL، ووحدة تحكم WDM أساسية، ومجموعة من أغلفة استدعاءات Windows مثل Wireless/NDIS/USB/PnP إلى واجهات برمجة تطبيقات Linux. لا يقتصر NDISWrapper على تشغيل برامج تشغيل NDIS فقط؛ بل يُمكن استخدام برامج تشغيل WDM الأخرى طالما أنها لا تستدعي وظائف غير مُنفذة في واجهة برمجة تطبيقات Windows. تتمثل الخطوة الأولى لتنفيذ WDM في Longene في استيراد NDISWrapper إلى Longene. بعد ذلك، سيقوم فريق مشروع Longene بتنفيذ WDM الخاص به عن طريق تعديل NDISWrapper وإضافة وظائف إليه باستخدام كود ReactOS كمرجع.
- كيو إي إم يو
- لتشغيل تطبيقات ويندوز x86 الثنائية مباشرةً على معمارية ARM، يلزم وجود محاكاة بالطبع. QEMU هو محاكي مفتوح المصدر في لينكس يمكنه تشغيل Wine، لكن النتيجة بطيئة بشكل غير مقبول. يفسر QEMU جميع تعليمات x86 في مساحة المستخدم (بما في ذلك كود Wine)؛ ولا يعمل التطبيق بكامل سرعته إلا عند استدعاءات نظام لينكس. والسبب في بطء الأداء هو أن التطبيقات تقضي معظم الوقت في مساحة المستخدم المُحاكاة، ووقتًا أقل في النواة. ولكن إذا أمكن استخدام مكتبات Win API DLL، التي يوفرها Wine، خارج QEMU، فستعمل بكامل سرعتها لأنها قابلة للتجميع محليًا، ومن المفترض أن تتحسن سرعة التشغيل الإجمالية بشكل ملحوظ. هذه الطريقة في دمج Wine وQEMU، ووضع وظائف Wineserver في النواة، هي فكرة Longene 2.0.
المستخدمون
ماجيك لينكس – ماجيك لينكس هو توزيعة لينكس صينية مبنية على ريد هات لينكس . الإصدار 2.1 من ماجيك لينكس، الذي صدر في 15 ديسمبر 2008، يتضمن نسخة رئيسية (قرص DVD، بنواة لينكس 2.6.25.20)، ونسخة مضغوطة (قرص CD، بنواة لينكس 2.6.25.20)، ونسخة لونجين (قرص CD، بلونجين 0.2.2). [ 5 ]
متطلبات الأجهزة
الحد الأدنى من متطلبات الأجهزة لتشغيل البرنامج هي:
- معالج IA-32
- ذاكرة وصول عشوائي (RAM) سعة 128 ميجابايت
- قرص صلب IDE أو SATA
- بطاقة فيديو متوافقة مع VGA
- لوحة مفاتيح قياسية (PS/2 أو USB)
- فأرة متوافقة مع PS/2 أو فأرة تسلسلية متوافقة مع فأرة مايكروسوفت
دعم معماري
انظر أيضاً
مراجع
- ^ "أرشيف لونجين/لونجين-1.0-rc2" . جيثب . تم الاسترجاع 2018-08-21 .
- ↑ نواة لينكس الموحدة 0.2.4.1 "لا يقوم مشروع LUK بتطوير مكتبات مساحة المستخدم لنظامي التشغيل ويندوز ولينكس. يتم توفير هذه المكتبات من قبل مشروع Wine (أو Microsoft Windows/ReactOS) ومشروع لينكس."
- ↑ unifiedkernel-2.6.13
- ↑ "سيدعم Longene 2.0 تطبيقات Windows التي تعمل على أجهزة ذات بنية غير x86" . مؤرشف من الأصل بتاريخ 3 مارس 2014. تم الاطلاع عليه بتاريخ 9 أبريل 2014 .
- ↑ تم نشر Magic Linux 2.5 rc2 في أرشيف Wayback Machine بتاريخ 20 أبريل 2014
- نواة لينكس
