لونجين

لونجين ( بالصينية :龙井) هو نواة نظام تشغيل مبنية على لينكس، مصممة لتكون متوافقة ثنائياً مع برامج التطبيقات وبرامج تشغيل الأجهزة المصممة لأنظمة مايكروسوفت ويندوز ولينكس. اعتباراً من الإصدار 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.030 أبريل 2006
  • تم نقل نواة نظام التشغيل ويندوز 32
  • آلية استدعاء نظام ويندوز تعتمد على "int 2e"
0.2.01 ديسمبر 2006
  • تم تنفيذ إنشاء العمليات/الخيوط في نظام التشغيل ويندوز
  • تطبيق جزئي لآلية ويندوز APC
0.2.14 فبراير 2008
  • إدارة العمليات/الخيوط في نظام التشغيل ويندوز
  • إدارة الذاكرة الافتراضية
  • التزامن
  • إدارة الكائنات
  • وظيفة تحميل ملفات EXE مدمجة
0.2.231 أكتوبر 2008
  • آلية الرموز المميزة
  • برنامج تثبيت واجهة المستخدم الرسومية
0.2.2-117 ديسمبر 2008
  • إصلاحات الأخطاء
0.2.312 فبراير 2009
  • آلية تسجيل ويندوز تم نقلها من واين
0.2.422 مايو 2009
  • إدارة نظام الملفات المنقولة من Wine
  • تنفيذ جزئي لواجهات برمجة تطبيقات إدارة السجل
  • تم توفير حزم ثنائية لتوزيعات شائعة
0.2.4.131 أغسطس 2009
  • مبني على نواة لينكس 2.6.30
  • دعم أنظمة الملفات الجديدة (ext4 وغيرها)
0.331 مايو 2010
  • انقل جميع وظائف برنامج Wineserver إلى مساحة النواة وتخلص من برنامج Wineserver.
0.3.126 فبراير 2011
  • يدعم المستخدمين غير الحاصلين على صلاحيات الجذر
  • تطبيقات الدعم، المسار الصيني
0.3.28 يونيو 2011
  • يدعم Wineconsole تطبيقات وحدة تحكم Windows، مثل cmd.exe، التي يمكن تشغيلها بهذه الطريقة: wineconsole cmd.exe
  • تحسين طريقة إنشاء العملية، بحيث يمكن إنشاء تطبيقات ويندوز الأصلية وتطبيقات واين المدمجة بواسطة بعضها البعض.
1.0-rc131 ديسمبر 2013
  • تعديل كامل للإطار، لم يعد Longene مطلوبًا، رقعة النواة
  • دعمت شركة لونجين تقنية SMP
  • تركيب أكثر سهولة، توافق أفضل، استقرار أفضل
1.0-rc216 يناير 2014
  • قم بترقية برنامج Wine إلى الإصدار 1.7.10
  • حل مشكلة المستخدمين العاديين بعد إعادة التشغيل
  • حل مشكلات أذونات الملفات المتعددة
  • تعديل نوع تحميل الملف
2.0 [ 4 ]2015
  • تكامل كود QEMU
  • يدعم تطبيقات ويندوز التي تعمل على جهاز ARM

التطوير الحالي والمستقبلي

يعمل المطورون حاليًا على Longene 2.0، الذي سيدعم تطبيقات ويندوز التي تعمل على أجهزة ذات بنية غير x86، مثل ARM و Loongson . بالإضافة إلى ذلك، يعمل المطورون على دعم AMD64 ونقل كود NDISWrapper إلى المشروع.

لم يتم تنفيذه بعد (ولكن من المخطط له):

  • تكامل كود QEMU
  • إطار عمل برنامج تشغيل جهاز WDM
  • آلية DPC لنظام التشغيل Windows
  • وظائف النواة المصدرة التي تم تعريفها بواسطة Windows DDK

الموارد المتاحة مفتوحة المصدر

نواة لينكس
يعتمد Longene على نواة لينكس، حيث يُنفّذ وظائفه باستخدام وحدات نواة لينكس القابلة للتحميل (LKMs). على عكس ReactOS الذي يُنفّذ الوظائف من الصفر، يستفيد Longene من وفرة الشيفرة والوثائق المتاحة في نواة لينكس لإنشاء وظائفه. فيما يلي أهم الطرق لتنفيذ آليات ويندوز في Longene:
  1. واجهة استدعاء النظام – يمكن استخلاص بعضها من استدعاءات نظام لينكس المناسبة، أو إعادة استخدام جزء من الكود من استدعاءات نظام لينكس المقابلة. أما البقية التي لا يوجد لها نظير في لينكس، فتحتاج إلى استخدام وظائف نواة لينكس منخفضة المستوى في تنفيذها.
  2. إطار عمل برامج تشغيل الأجهزة – يستخدم سجل خدمة مقاطعة برنامج تشغيل الجهاز آلية مقاطعة لينكس، حيث تتعرف برامج تشغيل الأجهزة على نواة ويندوز قيد التشغيل، والتي يتم ربطها بنواة لينكس العاملة في الخلفية. تُترجم طلبات DPC لبرنامج تشغيل الجهاز إلى وظائف Linux-bh.
  3. ملفات نظام التشغيل الأصلية لنظام مايكروسوفت ويندوز، المحمية بحقوق الطبع والنشر لشركة مايكروسوفت، هي فئة من وحدات .sys تُستخدم للأجهزة الخارجية الشائعة، مثل الأقراص الصلبة، ووحدات USB، وأجهزة الرسومات، ومعدات الشبكة، وما إلى ذلك، والتي توجد لها وظائف مقابلة في نواة لينكس. لتشغيل هذه الأجهزة، يكفي إنشاء جسر، ولا حاجة لإنشاء وحدات .sys. أما بالنسبة لبقية وحدات .sys التي لا يوجد لها كائنات مقابلة في نواة لينكس، فيلزم استخدام محاكاة.
  4. مجموعة أدوات تطوير برامج تشغيل الأجهزة (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 أو فأرة تسلسلية متوافقة مع فأرة مايكروسوفت

دعم معماري

  • IA-32 (قيد التشغيل)
  • x86-64 (لا يعمل، قيد التطوير)
  • لونغسون 3 (لا يعمل، قيد التقدم)
  • ARM (لا يعمل، قيد التقدم)
  • يمكن أيضًا تشغيل Longene على برامج تحاكي أو تقوم بمحاكاة الأجهزة المذكورة أعلاه، مثل VMware و VirtualBox .

انظر أيضاً

مراجع

  1. ^ "أرشيف لونجين/لونجين-1.0-rc2" . جيثب . تم الاسترجاع 2018-08-21 .
  2. نواة لينكس الموحدة 0.2.4.1 "لا يقوم مشروع LUK بتطوير مكتبات مساحة المستخدم لنظامي التشغيل ويندوز ولينكس. يتم توفير هذه المكتبات من قبل مشروع Wine (أو Microsoft Windows/ReactOS) ومشروع لينكس."
  3. unifiedkernel-2.6.13
  4. "سيدعم Longene 2.0 تطبيقات Windows التي تعمل على أجهزة ذات بنية غير x86" . مؤرشف من الأصل بتاريخ 3 مارس 2014. تم الاطلاع عليه بتاريخ 9 أبريل 2014 .
  5. تم نشر Magic Linux 2.5 rc2 في أرشيف Wayback Machine بتاريخ 20 أبريل 2014