عمودي قبل بضع سنوات ، عرف المطورون أن eBPF طريقة سهلة لبناء جدران الحماية ، لكنها الآن تُستخدم في كل مكان. io_uring الاستعداد لفعل الشيء نفسه.
لا يعرف معظم الناس أول شيء عن برمجة Linux. لماذا يجب عليهم ذلك؟ يعمل Linux ، أكثر من معظم أنظمة التشغيل. ولكن تحت السطح ، هناك مشاريع مثل eBPF تعمل على تغيير البنية التحتية الأساسية لنظام التشغيل الذي نستخدمه كل يوم.
كما كشف هذا الأسبوع ، اختارت مايكروسوفت المنفذ eBPF بدلاً من محاولة تكرار وظائفه على Windows مع البرنامج الخاص به. يمكن أن تكون io_uring أداة الجيش السويسري التالية لمطوري Linux.
يسمح Io_uring لنظام Linux بالبدء بشكل غير متزامن والانتظار حتى يكتمل. على عكس نظام الإدخال / الإخراج غير المتزامن (AIO) الفرعي ، يستخدم النظام السابق ، io_uring مخزنًا مؤقتًا لحلقة الذاكرة المشتركة بين مساحة المستخدم ونواة Linux. يتيح ذلك تقديم العمليات وجمع النتائج دون الحاجة إلى مكالمات Linux kernel التي تستغرق وقتًا طويلاً. واجهة برمجة التطبيقات الخاصة بها معقدة ، ولكن إذا كانت تطبيقاتك تتطلب الكثير من الإدخال / الإخراج ، فسوف تحصل على أداء محسن بشكل كبير.
عندما أقول “الكثير” من I / OI ، أعني مكالمات إدخال / إخراج ضخمة ، غيغابايت وأكثر. وعندما أقول “تحسن كثيرًا” ، حتى في عام 2020 ، كان io_uring أسرع 20 مرة من Linux AIO القديم الطراز.
هذا النوع من زيادة السرعة يجعل المطورين يقفون وينتبهون. كما قال Glauber Costa ، الرئيس التنفيذي ومؤسس ChiselStrike ، وهي شركة خدمات ، “هذا يغير بشكل جذري الطريقة التي يتم بها تصميم تطبيقات Linux: بدلاً من تدفق التعليمات البرمجية التي تصدر عمليات syscalls عند الحاجة ، والتفكير في ما إذا كان الملف جاهزًا أم لا ، تصبح بشكل طبيعي حلقة حدث ، والتي تضيف الأشياء باستمرار إلى المخزن المؤقت المشترك ، وتستكمل الإدخالات السابقة ، وتشطف ، وتكرر. “
كوستا ليس وحده. في مؤتمر Open Source Summit التابع لمؤسسة Linux في دبلن بأوروبا ، قال جوناثان كوربيت ، كبير مطوري نواة Linux ، إن io_uring هو تغيير قواعد اللعبة في خطابه في قمة Linux Kernel. إنه “يطمس الحدود بين مساحة المستخدم ومساحة النواة.”
في معظم فترات وجود Linux ، لم يكن هناك سوى جسر قصير بطيء لاستدعاءات النظام بين مساحة المستخدم البطيئة وعمليات مساحة النواة السريعة.
كما قال كوربيت: “يتيح لك القيام ببعض الأشياء المعقدة جدًا باستخدام الحلقة. إنها واجهة برمجة تطبيقات منفصلة للنظام الحالي ، بطريقة ما ، تتيح لك تحميل بعض البرامج البسيطة في النواة وتشغيلها جميعًا. بشكل غير متزامن والحصول على النتائج فور حدوثها. إنها تشبه يونكس. “إنها طريقة مختلفة تمامًا للبرمجة في أجهزة الكمبيوتر ، وقد بدأ الناس في فعل أشياء مثيرة للاهتمام باستخدامها.”
في المستقبل ، يرى أن الاثنين يندمجان تقريبًا لأغراض البرمجة حيث يتم استخدام مفهوم المخزن المؤقت لحلقة الذاكرة الأساسية لـ io_uring في عمليات برمجة Linux الأساسية الأخرى.
في مقابلة في مؤتمر Linux Plumbers الذي عقد في نفس الوقت مع Open Source Summit Europe ، قال Linus Torvalds إنه بينما لا تزال io_uring جديدة ، “أعتقد أن التكنولوجيا معقولة للغاية. أعتقد أنها أثبتت نفسها في مناطق صغيرة. والناس كذلك قائلا ، “مرحبًا ، أريد استخدام هذه الأداة!”
Torvalds غير متأكد من أن io_uring سيغير برمجة Linux ، لكنه لا يستبعد ذلك.
لذلك ، إذا كنت مطورًا جادًا لنظام Linux أو مطورًا للحوسبة عالية الأداء أو خوادم الويب أو DBMS ، فراجع io_uring. عليك أن تكون سعيدا فعلتم. ®
“مفكر غير قابل للشفاء. هواة طعام. عالم كحول ساحر. مدافع عن ثقافة البوب.”