Netflix: BPF هو نوع جديد من البرامج التي نستخدمها لتشغيل تطبيقات Linux بشكل آمن في النواة

  • Sep 28, 2023

يقول أحد مهندسي أداء Netflix إن BPF يعد بتغيير جذري في نموذج النواة الذي يبلغ عمره 50 عامًا.

مطور

  • إنها نهاية البرمجة كما نعرفها - مرة أخرى
  • يشعر المطورون بالأمان في وظائفهم، لكنهم ما زالوا يفكرون في الاستقالة
  • سيحتاج مستقبل الويب إلى نوع مختلف من مطوري البرامج
  • أفضل أجهزة الكمبيوتر المحمولة التي تعمل بنظام Linux للمستهلكين والمطورين

هناك اهتمام متزايد بنوع جديد من البرامج لأجهزة Linux يسمى BPF، والذي يسمح للمستخدم بتشغيل البرنامج في النواة والاستمتاع بـ "القوى الخارقة التي يمكن ملاحظتها"، وفقًا لبريندان جريج، أحد كبار مهندسي الأداء في نيتفليكس.

BPF ليس شيئًا يعرفه مستخدم الكمبيوتر العادي أو حتى يستخدمه، ولكنه يعد بقيمة بالنسبة لمهندسي الشبكات والبرمجيات. في الفيسبوك، على سبيل المثال، المهندسين استخدم BPF كجزء من موازن تحميل الشبكة.

يُنسب إلى مهندس برمجيات Facebook Alexei Starovoitov إنشاء Extended BPF، والذي يستخدم الآن في أندرويد لجمع الإحصائيات من النواة أو المراقبة أو التصحيح. وتستخدمه Google كجزء من برنامجها أدوات أمان وقت تشغيل Kernel لتحسين اكتشاف إشارات التهديد الأمني، مثل وحدة kernel التي تقوم بتحميل نفسها وإخفائها.

يرى:ست لغات برمجة مطلوبة: البدء (بي دي إف مجاني)

وفقا لجريج، يعد BPF بإجراء "تغيير جوهري في نموذج kernel البالغ من العمر 50 عامًا من خلال تقديم واجهة جديدة للتطبيقات لتقديم طلبات kernel، جنبًا إلى جنب مع syscalls".

ويتيح له إنشاء أدوات مجردة ولكنها رائعة وذات صلة بالأداء مثل ثيرمين BPF الخاص به، والذي استخدمه لاكتشافه تصور أشياء مثل قوة إشارة Wi-Fi.

...مما يتيح لنا استخدام رمز الأداة لمعرفة أشياء عشوائية مثل قوة إشارة wifi. pic.twitter.com/YpIYKKQ5Y6

— AWS مفتوح المصدر (@AWSopen) 5 ديسمبر 2019

مصطلح BPF مشتق من Berkeley Packet Filter، والذي كان في التسعينيات عبارة عن آلة افتراضية لمرشحات الحزم الفعالة. ومع ذلك، كما جريج تم شرحه هذا الأسبوع في محادثة Ubuntu Masters، أصبح BPF في عام 2019 الآن "محرك تنفيذ kernel عام". ومع هذه الوظيفة الأوسع، يرى أن BPF أصبح الآن اسمًا للتكنولوجيا وليس مجرد اختصار.

كتب جريج: "يعد BPF أكبر تغيير في أنظمة التشغيل رأيته في حياتي المهنية، ومن المثير أن أكون جزءًا منه".

هذا هو التصريح تمامًا بالنسبة لشخص كان المهندس الأساسي تحت الطلب في Netflix لقيادة العالم الاستجابة لانقطاعات خدمة Netflix، والذي قاد اختبارات الأداء في شركة Sun Microsystems لأول وحدة تخزين قائمة على ZFS جهاز.

قال جريج إنه كان يستخدم BPF في Netflix لفهم سبب قيام البرنامج بحظر الأداء بطرق لم يتمكن من رؤيتها من قبل في أنظمة الإنتاج.

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

وقال: "يسمح لك هذا بكتابة تطبيقات وضع kernel التي يمكنها الوصول إلى الموارد وتشغيلها بأداء وكفاءة عالية مع ضمانات الأمان".

يرى: Netflix: مكتبة Metaflow Python الخاصة بنا لعلم البيانات بشكل أسرع أصبحت الآن مفتوحة المصدر

يقول جريج إن هذا يختلف عن كتابة وحدة kernel لأنه على الرغم من أن هذه الوحدات لديها إمكانية الوصول إلى الأجهزة، إلا أنه لا توجد واجهة برمجة تطبيقات ثابتة، مما يخلق مخاطر أمنية.

"يمكنك ذعر الجهاز، ويمكنك إدخال مشكلات أمنية. إذا أتيت إلي وقلت لي: "بريندان، لقد كتبت وحدة النواة الرائعة هذه، هل يمكنك تشغيلها على Netflix؟"، سأكون مترددًا جدًا في القيام بذلك.

"إنه يقدم الكثير من المخاطر. إذا قلت أنك قدمت برنامج BPF الرائع هذا، فهل يمكنك تشغيله على Netflix، فهذا مختلف تمامًا."

يشير جريج إلى أن معظم تطبيقات BPF اليوم مكتوبة بلغة C وAssembly، لكنه يتوقع أنه ستكون هناك لغات جديدة تم تطويرها في المستقبل مخصصة لـ BPF.

يمكن العثور على مزيد من التفاصيل حول حديث جريج BPF في الورقة التي قدمها في حديث Ubuntu Masters.

لينكس

أفضل أجهزة الكمبيوتر المحمولة التي تعمل بنظام Linux للمستهلكين والمطورين
هل تريد إنقاذ جهاز الكمبيوتر الخاص بك القديم؟ جرب توزيعات Linux الخمسة هذه
أفضل التوزيعات للمبتدئين
كيفية تمكين Linux على جهاز Chromebook الخاص بك (ولماذا يجب عليك ذلك)
  • أفضل أجهزة الكمبيوتر المحمولة التي تعمل بنظام Linux للمستهلكين والمطورين
  • هل تريد إنقاذ جهاز الكمبيوتر الخاص بك القديم؟ جرب توزيعات Linux الخمسة هذه
  • أفضل التوزيعات للمبتدئين
  • كيفية تمكين Linux على جهاز Chromebook الخاص بك (ولماذا يجب عليك ذلك)