التخطي إلى المحتوى

رقم قبل بضع سنوات ، أدرك المطورون أن eBPF كان وسيلة ملائمة لبناء جدران الحماية ، لكنه الآن يُستخدم في كل مكان. كن مستعدًا للقيام بنفس الشيء.

معظم الناس لا يعرفون شيئًا عن لينكس الداخلي. لماذا هم؟ يعمل Linux بشكل أفضل من معظم أنظمة التشغيل. لا داعي للاندفاع إلى الداخل. ولكن تحت السطح ، هناك برامج مثل eBPF تعمل على تغيير البنية التحتية لأنظمة التشغيل التي نستخدمها كل يوم.

كما تم الكشف عنه هذا الأسبوع ، اختارت Microsoft نقل eBPF إلى Windows بدلاً من محاولة تكرار وظائف eBPF في برنامجها الخاص. يمكن أن تكون io_uring أداة Swiss-Army التالية لمطوري Linux.

يسمح Io_uring لنظام Linux ببدء عملية ما بشكل غير متزامن وانتظار اكتمالها. بخلاف سابقه ، نظام الإدخال / الإخراج غير المتزامن (AIO) الفرعي ، يستخدم io_uring مخزنًا مؤقتًا لحلقة الذاكرة مشتركًا بين مساحة المستخدم ونواة Linux. يتيح لك ذلك إرسال العمليات وجمع النتائج دون الحاجة إلى مكالمات Linux kernel التي تستغرق وقتًا طويلاً. واجهة برمجة التطبيقات الخاصة بها معقدة ، ولكن إذا كان التطبيق الخاص بك يتطلب الكثير من الإدخال / الإخراج ، فسيؤدي ذلك إلى تحسين الأداء بشكل كبير.

I / OI “كبير” يعني غيغابايت أو أكثر من مكالمات الإدخال / الإخراج الكبيرة. وعندما نقول “تحسن بشكل كبير” ، حتى في عام 2020 ، كان io_uring أسرع بما يصل إلى 20 مرة من نظام Linux AIO القديم.

هذا النوع من زيادة السرعة يدفع المطورين إلى الوقوف وجذب انتباههم. قال Glauber Costa ، الرئيس التنفيذي ومؤسس ChiselStrike ، وهي شركة خلفية كخدمة: سواء أكان الملف جاهزًا أم لا ، ينتهي به الأمر بشكل طبيعي في حلقة حدث ، مضيفًا شيئًا ما إلى المخزن المؤقت المشترك باستمرار ، ومعالجة الإدخالات السابقة التي اكتملت ، وشطفها ، وتكرارها. “

كوستا ليس وحده. في مؤتمر Open Source Summit الذي تنظمه مؤسسة Linux Foundation في دبلن ، قال جوناثان كوربيت ، كبير مطوري نواة Linux ، في خطابه في قمة Linux kernel أن io_uring هو تغيير قواعد اللعبة. سوف “يجعل الحدود بين مساحة المستخدم ومساحة kernel مسامية”.

في معظم فترات وجود Linux ، لم يكن هناك سوى جسر ضيق وبطيء لمكالمات النظام بين بطء مساحة المستخدم وعمليات مساحة النواة السريعة.

يقول Corbet: إنها طريقة مختلفة تمامًا للبرمجة على أنظمة من نوع Unix ، وقد بدأ الناس في فعل أشياء مثيرة للاهتمام باستخدامها. “

في المستقبل ، يعتقد أنه سيتم دمج الاثنين إلى حد كبير لأغراض البرمجة ، حيث سيتم استخدام مفهوم المخزن المؤقت لحلقة الذاكرة الرئيسية في io_uring في عمليات برمجة Linux الأساسية الأخرى.

في مقابلة في مؤتمر سباك لينكس ، الذي تزامن مع قمة المصدر المفتوح في أوروبا ، قال لينوس تورفالدس إنه في حين أن io_uring لا يزال جديدًا: بدأ الناس يقولون ، “أريد استخدام هذه الأداة!” “

Torvalds غير متأكد من أن io_uring سوف يحول برمجة Linux ، لكنه لا ينكر ذلك أيضًا.

لذلك إذا كنت مطورًا جادًا لنظام Linux ، أو شخصًا يقوم ببناء حوسبة عالية الأداء ، أو خادم ويب ، أو DBMS ، فراجع io_uring. أنا سعيد لأنك فعلت. ®

Scan the code