x32 ABI
واجهة x32 ABI هي واجهة ثنائية للتطبيقات (ABI) وإحدى واجهات نواة لينكس . توفر هذه الواجهة معالجة الأعداد الصحيحة والمؤشرات الطويلة (32 بت ) على معالجات Intel وAMD ذات 64 بت. تسمح هذه الواجهة للبرامج بالاستفادة من مزايا مجموعة تعليمات x86-64 (عدد أكبر من سجلات وحدة المعالجة المركزية ، وأداء أفضل للحسابات العشرية، وكتابة أسرع للتعليمات البرمجية المستقلة عن الموقع ، ومكتبات مشتركة ، وتمرير معلمات الدوال عبر السجلات، وتعليمات استدعاء النظام أسرع) مع استخدام مؤشرات 32 بت ، وبالتالي تجنب العبء الإضافي لمؤشرات 64 بت. [ 1 ] [ 2 ] [ 3 ]
تفاصيل
على الرغم من أن واجهة التطبيق الثنائية x32 تحد من مساحة العناوين الافتراضية للبرنامج إلى 4 جيجابايت، إلا أنها تقلل أيضًا من حجم الذاكرة المستخدمة عن طريق تصغير حجم المؤشرات. وهذا يسمح بتشغيل البرنامج بشكل أسرع من خلال استيعاب المزيد من التعليمات البرمجية والبيانات في الذاكرة المؤقتة . [ 1 ] [ 2 ] [ 3 ] وقد سُجلت أفضل النتائج أثناء الاختبار باستخدام معيار SPEC CPU 2000 (ملف 181.mcf)، حيث كان إصدار واجهة التطبيق الثنائية x32 أسرع بنسبة 40% من إصدار x86-64. [ 3 ] [ 4 ] في المتوسط، يكون أداء x32 أسرع بنسبة 5-8% في معايير SPEC CPU للأعداد الصحيحة مقارنةً بـ x86-64. ولا يوجد أي تفوق في السرعة على x86-64 في معايير SPEC CPU للأعداد العشرية. [ 5 ] كما توجد بعض معايير التطبيقات التي تُظهر مزايا واجهة التطبيق الثنائية x32. [ 6 ] [ 7 ]
| ميزة | واجهة برمجة التطبيقات i386 | x32 ABI | واجهة برمجة التطبيقات x86-64 |
|---|---|---|---|
| نصائح | 4 بايت | 8 بايت | |
| الحد الأقصى للذاكرة الافتراضية لكل عملية | 2 جيجابايت | 128 تيرابايت [ 8 ] | |
| سجلات الأعداد الصحيحة | 6 (صورة) | 15 | |
| سجلات FP | 8 | 16 | |
| مقدمة الصورة | 2-3 تعليمات | لا أحد | |
تاريخ
لم يكن تشغيل مساحة مستخدم تتألف في الغالب من برامج مُجمّعة في وضع ILP32 ، والتي تتمتع أيضًا بإمكانية الوصول الرئيسية إلى تعليمات وحدة المعالجة المركزية 64 بت، أمرًا نادرًا، لا سيما في مجال معالجات "RISC الكلاسيكية". على سبيل المثال، يقوم نظام التشغيل Solaris بذلك لكل من SPARC وx86-64. أما في نظام Linux ، فيوفر Debian أيضًا مساحة مستخدم ILP32. والسبب الرئيسي هو الطبيعة "الأكثر تكلفة" لرمز LP64 ، [ 9 ] تمامًا كما هو الحال بالنسبة لـ x86-64. وفي هذا الصدد، يوسع x32 ABI مفهوم ILP32-on-64bit ليشمل منصة x86-64.
ناقش العديد من الأشخاص فوائد واجهة التطبيق الثنائية x86-64 ذات المؤشرات 32 بت في السنوات التي تلت إصدار معالج أثلون 64 في عام 2003، ولا سيما دونالد كنوث في عام 2008. [ 10 ] لم يُحرز تقدم يُذكر نحو تطبيق هذا النمط حتى 27 أغسطس 2011، عندما أعلن هانز بيتر أنفين لقائمة بريد نواة لينكس أنه وHJ Lu كانا يعملان على واجهة التطبيق الثنائية x32. [ 11 ]
في اليوم نفسه، أعرب لينوس تورفالدز عن قلقه من أن استخدام قيم زمنية 32 بت في واجهة التطبيق الثنائية x32 قد يُسبب مشاكل في المستقبل. [ 12 ] [ 13 ] وذلك لأن استخدام قيم زمنية 32 بت سيؤدي إلى تجاوز سعة هذه القيم في عام 2038. [ 12 ] [ 13 ] وبناءً على هذا الطلب، قام مطورو واجهة التطبيق الثنائية x32 بتغيير القيم الزمنية إلى 64 بت. [ 14 ]
تناول عرض تقديمي في مؤتمر لينكس بلومبرز في 7 سبتمبر 2011 واجهة التطبيق الثنائية x32. [ 2 ]
تم دمج واجهة التطبيق x32 في نواة لينكس للإصدار 3.4 مع إضافة الدعم إلى مكتبة GNU C في الإصدار 2.16. [ 15 ]
في ديسمبر 2018، دار نقاش حول ما إذا كان سيتم إيقاف دعم واجهة التطبيق x32، وهو ما لم يحدث حتى أبريل 2023، [ 16 ] وشهد بعض التطورات الجديدة في مايو 2024. [ 17 ]
التبني
| توزيعة لينكس | للمزيد من المعلومات |
|---|---|
| ديبيان | منفذ X32 |
| جنتو | Multilib عبر abi_x86_x32علامات الاستخدام |
| مشروع يوكتو | X32 ABI |
| T2 SDE | تمت أرشفة x86-64 بتاريخ 22 أكتوبر 2021 على موقع Wayback Machine. |
مراجع
- 1 2 ثورستن ليمهاوس (13 سبتمبر 2011). "سجل النواة: واجهة برمجة التطبيقات x32 تتجاوز عيوب 64 بت" . www.h-online.com. مؤرشف من الأصل في 28 أكتوبر 2011. تم الاطلاع عليه في 1 نوفمبر 2011 .
- 1 2 3 "x32 - واجهة تطبيق ثنائية أصلية 32 بت لأنظمة x86-64" . linuxplumbersconf.org . تم الاطلاع عليه بتاريخ 12-06-2012 .
- 1 2 3 "x32-abi" . مواقع جوجل . تم الاسترجاع في 1 نوفمبر 2011 .
- ↑ "ملف وصف معيار الأداء SPEC CPU2000 (181.mcf)" . شركة تقييم الأداء القياسي. 14 أكتوبر 1999. تم الاطلاع عليه في 1 نوفمبر 2011 .
- ^ إتش جيه لو؛ هـ. بيتر أنفين؛ ميليند جيركار (سبتمبر 2011). "X32 - ABI أصلي 32 بت لـ X86-64" .
- ↑ راوشماير، ناتالي؛ ستريت، أشيم (2013). "تقييم واجهة التطبيق الثنائية x32 في سياق تطبيقات مصادم الهادرونات الكبير" . وقائع علوم الحاسوب . 18 : 2233-2240 . doi : 10.1016/j.procs.2013.05.394 .
- ↑ "التطبيقات التي تستفيد من تقنية x32-ABI غير المُقدَّرة حق قدرها" . www.sempria.de . تاريخ الاطلاع: 22 مايو 2023 .
- ↑ شوتيموف، كيريل أ. "خريطة الذاكرة الافتراضية الكاملة مع جداول الصفحات ذات 4 مستويات" . kernel.org . تم الاطلاع عليه في 1 يونيو 2026 .
- ↑ توني بورك (22 يناير 2004). "هل الملفات الثنائية ذات 64 بت أبطأ حقًا من الملفات الثنائية ذات 32 بت؟" . تم الاطلاع عليه بتاريخ 25 مارس 2014 .
- ↑ دونالد كنوث (فبراير 2008). "أخبار حديثة: جدل حول مؤشرات 64 بت" . مؤرشف من الأصل في 4 نوفمبر 2008. تم الاطلاع عليه في 15 مايو 2012 .
- ↑ هـ. بيتر أنفين (27 أغسطس 2011). "RFD: x32 أرقام استدعاء نظام ABI" . تم الاسترجاع في 15 مايو 2012 .
- 1 2 جوناثان كوربيت (29 أغسطس 2011). "واجهة برمجة تطبيقات استدعاء النظام x32" . LWN.net . تم الاسترجاع في 1 نوفمبر 2011 .
- 1 2 لينوس تورفالدز (26 أغسطس 2011). "ردًا على: RFD: أرقام استدعاء نظام x32 ABI" . LWN.net . تم الاسترجاع في 26 فبراير 2016 .
- ↑ لو، هـ. ج. (24-11-2011). "تحديث حالة مشروع X32" . libc-alpha (قائمة بريدية) . تم الاسترجاع في 17-10-2019 .
- ↑ أودونيل، كارلوس (30 يونيو 2012). "مكتبة GNU C الإصدار 2.16 متاحة الآن" . libc-alpha (قائمة بريدية) . تم الاطلاع عليه بتاريخ 27 ديسمبر 2016 .
- ↑ "هل يمكننا التخلي عن دعم Linux x32 في المصدر الرئيسي؟" . LKML . تم الاطلاع عليه بتاريخ 13 مارس 2019 .
- ↑ "النصف الأول من نافذة الدمج 6.10" . LWN . تم الاطلاع عليه بتاريخ 17 مايو 2024 .
روابط خارجية
- واجهات نواة لينكس
- معمارية X86
