eBPF
eBPF هي تقنية يمكنها تشغيل البرامج في سياق مميز مثل نواة نظام التشغيل . [ 5 ] وهي خليفة لآلية تصفية حزم بيركلي (BPF، حيث يشير الحرف "e" في الأصل إلى "ممتد") في لينكس، وتستخدم أيضًا في أجزاء نواة لينكس غير المتعلقة بالشبكات.
يُستخدم هذا الأسلوب لتوسيع قدرات النواة بأمان وكفاءة أثناء التشغيل دون الحاجة إلى تغييرات في شفرة المصدر أو تحميل وحدات النواة . [ 6 ] وتُوفّر الأمان من خلال مُدقّق مُدمج في النواة يُجري تحليلًا ثابتًا للشفرة ويرفض البرامج التي تُسبب أعطالًا أو توقفًا أو تُؤثر سلبًا على النواة بأي شكل من الأشكال. [ 7 ] [ 8 ]
يختلف نموذج التحقق هذا عن بيئات الحماية المعزولة ، حيث تكون بيئة التنفيذ مقيدة ولا يملك وقت التشغيل أي معلومات عن البرنامج. [ 9 ] ومن أمثلة البرامج التي تُرفض تلقائيًا البرامج التي لا تضمن شروط خروج قوية (مثل حلقات for/while بدون شروط خروج) والبرامج التي تستخدم المؤشرات دون إجراء فحوصات أمان. [ 10 ]
تصميم
تُفسَّر البرامج المحملة التي اجتازت المُدقِّق أو تُجمَّع في نواة النظام في الوقت المناسب (JIT) لتحسين أداء التنفيذ الأصلي. يعتمد نموذج التنفيذ على الأحداث ، وباستثناءات قليلة، يُنفَّذ حتى الاكتمال [ 2 ] ، ما يعني إمكانية ربط البرامج بنقاط ربط مختلفة في نواة نظام التشغيل ، وتشغيلها عند وقوع حدث ما. تشمل حالات استخدام eBPF (على سبيل المثال لا الحصر) الشبكات مثل XDP ، وأنظمة التتبع والأمان الفرعية [ 5 ] . نظرًا لكفاءة eBPF ومرونته اللتين فتحتا آفاقًا جديدة لحل مشكلات الإنتاج، أطلق بريندان جريج على eBPF لقب "القوى الخارقة لنظام لينكس" [ 11 ] . قال لينوس تورفالدز : "لقد كان BPF مفيدًا للغاية، وتكمن قوته الحقيقية في قدرته على تمكين المستخدمين من كتابة تعليمات برمجية متخصصة لا تُفعَّل إلا عند طلبها" [ 12 ] . نظرًا لنجاحه في لينكس، نُقل وقت تشغيل eBPF إلى أنظمة تشغيل أخرى مثل ويندوز . [ 4 ]
تاريخ
تطورت تقنية eBPF من مرشح حزم بيركلي الكلاسيكي (cBPF، وهو اسم أُطلق عليها لاحقًا). على المستوى الأساسي، أدخلت هذه التقنية استخدام عشرة سجلات 64 بت (بدلاً من سجلين بطول 32 بت في cBPF)، ودلالات قفز مختلفة، وتعليمات استدعاء واتفاقية تمرير سجلات مقابلة، وتعليمات جديدة، وتشفيرًا مختلفًا لهذه التعليمات. [ 13 ]
| تاريخ | حدث |
|---|---|
| أبريل 2011 | تم دمج أول مترجم فوري (مترجم JIT) مدمج في نواة نظام لينكس لمرشح حزم بيركلي الكلاسيكي. [ 14 ] |
| يناير 2012 | ظهرت أول حالة استخدام غير متعلقة بالشبكات لمرشح حزم بيركلي الكلاسيكي، seccomp-bpf ، [ 15 ] ؛ يسمح بتصفية استدعاءات النظام باستخدام سياسة قابلة للتكوين يتم تنفيذها من خلال تعليمات BPF. |
| مارس 2014 | وافق ديفيد إس. ميلر ، المسؤول الرئيسي عن صيانة حزمة الشبكات في لينكس، على إعادة تصميم مُفسِّر BPF القديم المُدمج في نواة النظام . وقد استُبدل بمُفسِّر eBPF، وتقوم نواة لينكس داخليًا بترجمة تعليمات BPF الكلاسيكية (cBPF) إلى تعليمات eBPF. [ 16 ] وقد أُصدرت هذه النسخة في الإصدار 3.18 من نواة لينكس. [ 17 ] |
| مارس 2015 | تم دمج إمكانية ربط eBPF بـ kprobes كأول حالة استخدام للتتبع . [ 19 ] وفي الشهر نفسه، تمت الموافقة على أعمال البنية التحتية الأولية لربط eBPF بطبقة التحكم في حركة مرور الشبكة (tc)، مما يسمح بربط eBPF بمسارات الدخول الأساسية، ولاحقًا مسارات الخروج أيضًا، لمكدس الشبكة، والتي استخدمتها لاحقًا مشاريع مثل Cilium بكثافة . [ 20 ] [ 21 ] [ 22 ] |
| أغسطس 2015 | تم دمج الواجهة الخلفية لمترجم eBPF في إصدار LLVM 3.7.0. [ 23 ] |
| سبتمبر 2015 | أعلن بريندان جريج عن مجموعة من أدوات التتبع الجديدة القائمة على eBPF ضمن مشروع bcc، والذي يوفر واجهة أمامية لـ eBPF لتسهيل كتابة البرامج. [ 24 ] |
| يوليو 2016 | أُضيفت طبقة eBPF إلى مسار الاستقبال الأساسي لبرنامج تشغيل الشبكة. تُعرف هذه الطبقة اليوم باسم eXpress DataPath (XDP)، وقد أُضيفت استجابةً لـ DPDK لإنشاء مسار بيانات سريع يعمل بالتزامن مع نواة لينكس بدلاً من تجاوزها. [ 25 ] [ 26 ] [ 27 ] |
| أغسطس 2016 | أُعلن عن Cilium لأول مرة خلال مؤتمر LinuxCon كمشروع يوفر شبكات حاويات IPv6 سريعة باستخدام eBPF وXDP. واليوم، اعتمدت كبرى شركات الحوسبة السحابية Cilium في عروض Kubernetes الخاصة بها ، وهي من أكثر واجهات الشبكة للحاويات (CNIs) استخدامًا. [ 28 ] [ 22 ] [ 29 ] |
| نوفمبر 2016 | أضافت شركة Netronome خاصية تفريغ برامج eBPF لطبقة XDP و tc BPF إلى بطاقة الشبكة الخاصة بها. [ 30 ] |
| مايو 2017 | تم تشغيل موازن الأحمال من الطبقة الرابعة الخاص بشركة ميتا ، كاتران. ومنذ ذلك الحين، تتم معالجة كل حزمة بيانات متجهة إلى موقع facebook.com بواسطة بروتوكولي eBPF وXDP. [ 31 ] |
| نوفمبر 2017 | أصبح eBPF نظامًا فرعيًا خاصًا به في نواة النظام لتسهيل إدارة تصحيحات النواة المتزايدة باستمرار. وقد تم تقديم أول طلب سحب من قبل القائمين على صيانة eBPF. [ 32 ] |
| سبتمبر 2017 | تمت إضافة Bpftool إلى نواة لينكس كأداة مساعدة في مساحة المستخدم لفحص النظام الفرعي eBPF. [ 33 ] |
| يناير 2018 | تم نشر عائلة مقابس جديدة تُسمى AF_XDP، مما يسمح بمعالجة الحزم عالية الأداء مع دلالات النسخ الصفري على مستوى طبقة XDP. [ 34 ] واليوم، يدعم DPDK رسميًا برنامج تشغيل AF_XDP في وضع الاستقصاء. [ 35 ] |
| فبراير 2018 | تم نشر النموذج الأولي لـ bpfilter، مما يسمح بترجمة مجموعة فرعية من قواعد iptables إلى eBPF عبر برنامج تشغيل جديد لوضع المستخدم. وقد أثار هذا العمل جدلاً واسعاً نظراً لجهود تطوير nftables المستمرة، ولم يتم دمجه في النسخة الرئيسية. [ 36 ] [ 37 ] |
| أكتوبر 2018 | أعلن بريندان جريج عن أداة bpftrace الجديدة تحت اسم DTrace 2.0 لنظام لينكس. [ 38 ] |
| نوفمبر 2018 | تمت إضافة خاصية فحص eBPF لبروتوكول kTLS لدعم إمكانية تطبيق سياسة TLS داخل النواة. [ 39 ] |
| نوفمبر 2018 | تمت إضافة تنسيق BTF (تنسيق نوع BPF) إلى نواة لينكس كتنسيق بيانات وصفية فعال أصغر حجمًا بحوالي 100 مرة من DWARF . [ 40 ] |
| ديسمبر 2019 | صدر أول كتاب عن BPF، مؤلف من 880 صفحة، من تأليف بريندان جريج. [ 41 ] |
| مارس 2020 | قامت جوجل بدمج دعم BPF LSM في نواة لينكس، مما يتيح برمجة وحدات أمان لينكس (LSMs) من خلال eBPF. [ 42 ] |
| سبتمبر 2020 | تم دمج الواجهة الخلفية لمترجم eBPF لمجموعة مترجمات GNU (GCC). [ 43 ] |
| يوليو 2022 | أصدرت مايكروسوفت برنامج eBPF لنظام التشغيل ويندوز، والذي يقوم بتشغيل التعليمات البرمجية في نواة نظام التشغيل NT. [ 4 ] |
| أكتوبر 2024 | تم نشر بنية مجموعة تعليمات eBPF (ISA) كـ RFC 9669 . |
الهندسة المعمارية والمفاهيم
خرائط eBPF
خرائط eBPF هي مخازن بيانات فعّالة تعتمد على المفتاح والقيمة، وتُخزّن في مساحة النواة ، ويمكن استخدامها لمشاركة البيانات بين برامج eBPF متعددة، أو للتواصل بين تطبيق في مساحة المستخدم وشفرة eBPF التي تعمل في النواة. تستفيد برامج eBPF من خرائط eBPF لتخزين البيانات واسترجاعها في مجموعة واسعة من هياكل البيانات. توفر النواة الأساسية تطبيقات الخرائط، وهي أنواع مختلفة [ 44 ] ، بما في ذلك خرائط التجزئة والمصفوفات والمخازن الحلقية.
عمليًا، تُستخدم خرائط eBPF عادةً في سيناريوهات مثل قيام برنامج في مساحة المستخدم بكتابة معلومات التكوين ليتم استرجاعها بواسطة برنامج eBPF، أو قيام برنامج eBPF بتخزين الحالة لاسترجاعها لاحقًا بواسطة برنامج eBPF آخر (أو تشغيل لاحق لنفس البرنامج)، أو قيام برنامج eBPF بكتابة النتائج أو المقاييس في خريطة لاسترجاعها بواسطة برنامج في مساحة المستخدم لعرض النتائج. [ 45 ]
الآلة الافتراضية eBPF
تعمل الآلة الافتراضية eBPF داخل نواة النظام، وتستقبل برنامجًا على شكل تعليمات بايت كود eBPF ، والتي تُحوّل إلى تعليمات الآلة الأصلية التي تُنفّذ على وحدة المعالجة المركزية. في الإصدارات الأولى من eBPF، كان يتم تفسير بايت كود eBPF، ولكن تم استبدال ذلك الآن بعملية تجميع فوري (JIT) لأسباب تتعلق بالأداء والأمان. [ 45 ]
تتكون الآلة الافتراضية eBPF من أحد عشر مسجلاً 64 بت مع مسجلات فرعية 32 بت، وعداد للبرنامج ، ومساحة مكدس BPF كبيرة بحجم 512 بايت. تتولى هذه المسجلات العامة تتبع الحالة عند تنفيذ برامج eBPF. [ 46 ]
نداء الذيل
يمكن لاستدعاءات الذيل استدعاء وتنفيذ برنامج eBPF آخر واستبدال سياق التنفيذ ، على غرار كيفية عمل استدعاء النظام execve() للعمليات العادية. وهذا يسمح أساسًا لبرنامج eBPF باستدعاء برنامج eBPF آخر. تُنفَّذ استدعاءات الذيل كقفزة طويلة، مع إعادة استخدام إطار المكدس نفسه . تُعد استدعاءات الذيل مفيدة بشكل خاص في eBPF، حيث يقتصر حجم المكدس على 512 بايت. أثناء وقت التشغيل، يمكن إضافة وظائف أو استبدالها بشكل ذري، مما يُغير سلوك تنفيذ برنامج BPF. [ 46 ] من حالات الاستخدام الشائعة لاستدعاءات الذيل توزيع تعقيد برامج eBPF على عدة برامج. ومن حالات الاستخدام الأخرى استبدال أو توسيع المنطق عن طريق استبدال محتويات مصفوفة البرنامج أثناء استخدامها. على سبيل المثال، لتحديث إصدار البرنامج دون توقف أو لتمكين/تعطيل منطق معين. [ 47 ]
مكالمات BPF إلى BPF
يُعتبر تجميع الشيفرة المشتركة في دالة واحدة ممارسة جيدة في تطوير البرمجيات ، حيث يُغلف المنطق لضمان إمكانية إعادة استخدامه. قبل إصدار نواة لينكس 4.16 وLLVM 6.0، كان على برنامج eBPF C النموذجي توجيه المُصرّف صراحةً لتضمين دالة ، مما ينتج عنه ملف كائن BPF يحتوي على دوال مُكررة. تم رفع هذا القيد، وتدعم مُصرّفات eBPF الشائعة الآن كتابة الدوال بشكل طبيعي في برامج eBPF. يُقلل هذا من حجم شيفرة eBPF المُولّدة، مما يجعلها أكثر ملاءمة لذاكرة التخزين المؤقت لتعليمات وحدة المعالجة المركزية. [ 45 ] [ 46 ]
مدقق eBPF
يُعدّ المُدقّق عنصرًا أساسيًا في eBPF، وتتمثل مسؤوليته الرئيسية في ضمان سلامة تنفيذ برنامج eBPF. يُجري المُدقّق تحليلًا ثابتًا لرمز البايت الخاص بـ eBPF لضمان سلامته. يُحلّل المُدقّق البرنامج لتقييم جميع مسارات التنفيذ المُحتملة، حيث يتتبع التعليمات بالتسلسل ويُقيّمها. تبدأ عملية التحقق ببحثٍ عميقٍ أولًا عبر جميع مسارات البرنامج المُحتملة، ويُحاكي المُدقّق تنفيذ كل تعليمة باستخدام التفسير المُجرّد ، [ 48 ] مُتتبعًا حالة المُسجّلات والمكدس. إذا كان من المُمكن أن تُؤدي أي تعليمة إلى حالة غير آمنة، يفشل التحقق. تستمر هذه العملية حتى يتم تحليل جميع المسارات أو اكتشاف انتهاك. اعتمادًا على نوع البرنامج، يتحقق المُدقّق من انتهاكات قواعد مُحددة. قد تتضمن هذه القواعد التحقق من أن برنامج eBPF ينتهي دائمًا خلال فترة زمنية معقولة (بدون حلقات لا نهائية أو استدعاءات متكررة لا نهائية )، والتحقق من عدم السماح لبرنامج eBPF بقراءة أي ذاكرة عشوائية لأن القدرة على قراءة أي ذاكرة عشوائية قد تسمح للبرنامج بتسريب معلومات حساسة، والتحقق من عدم السماح لبرامج الشبكة بالوصول إلى الذاكرة خارج حدود الحزمة لأن الذاكرة المجاورة قد تحتوي على معلومات حساسة، والتحقق من عدم السماح للبرامج بالوصول إلى حالة الجمود ، لذلك يجب تحرير أي أقفال دورانية محجوزة ولا يمكن حجز سوى قفل واحد في كل مرة لتجنب حالات الجمود بين برامج متعددة، والتحقق من عدم السماح للبرامج بقراءة الذاكرة غير المهيأة. هذه ليست قائمة شاملة لجميع عمليات التحقق التي يقوم بها المُدقِّق، وهناك استثناءات لهذه القواعد. على سبيل المثال، تتمتع برامج التتبع بإمكانية الوصول إلى أدوات مساعدة تسمح لها بقراءة الذاكرة بطريقة مُتحكَّم بها، ولكن هذه الأنواع من البرامج تتطلب امتيازات الجذر وبالتالي لا تُشكِّل خطرًا أمنيًا. [ 47 ] [ 45 ]
بمرور الوقت، تطور مدقق eBPF ليشمل ميزات وتحسينات أحدث، مثل دعم الحلقات المحدودة، وإزالة التعليمات البرمجية غير المستخدمة ، والتحقق من الوظائف، ووظائف الاستدعاء .
eBPF CO-RE (يُجمّع مرة واحدة - يُشغّل في كل مكان)
تستخدم برامج eBPF الذاكرة وهياكل البيانات من نواة النظام. قد تتغير بعض هذه الهياكل بين إصدارات النواة المختلفة، مما يؤدي إلى تغيير تخطيط الذاكرة. ونظرًا للتطوير المستمر لنواة لينكس، فلا يوجد ما يضمن ثبات هياكل البيانات الداخلية عبر الإصدارات المختلفة. يُعدّ CO-RE مفهومًا أساسيًا في تطوير eBPF الحديث، حيث يسمح بنقل برامج eBPF بين إصدارات وتكوينات النواة المختلفة. وهو يعالج تحدي اختلافات بنية النواة بين توزيعات وإصدارات لينكس المختلفة . يتضمن CO-RE تنسيق BTF (تنسيق نوع BPF) - وهو تنسيق بيانات وصفية يصف الأنواع المستخدمة في النواة وبرامج eBPF ، ويوفر معلومات تفصيلية حول تخطيطات الهياكل، وإزاحات الحقول، وأنواع البيانات. كما يُمكّن من الوصول إلى أنواع النواة أثناء التشغيل، وهو أمر بالغ الأهمية لتطوير برامج BPF والتحقق منها. يُضمّن BTF في صورة نواة النظام التي تدعم BTF. ويصدر المُصرّف ( مثل LLVM) عمليات نقل خاصة. تُجسّد عمليات إعادة التوجيه هذه أوصافًا عالية المستوى للمعلومات التي يهدف برنامج eBPF إلى الوصول إليها. تُكيّف مكتبة libbpf برامج eBPF للعمل مع بنية البيانات في نواة النظام المستهدفة التي تُشغّل عليها، حتى لو كانت هذه البنية مختلفة عن بنية نواة النظام التي جُمعت عليها الشيفرة. وللقيام بذلك، تحتاج libbpf إلى معلومات إعادة توجيه BPF CO-RE التي يُنشئها Clang كجزء من عملية التجميع. [ 45 ] يُخزّن برنامج eBPF المُجمّع في ملف كائن بتنسيق ELF (ملف قابل للتنفيذ والربط ) . يحتوي هذا الملف على معلومات من نوع BTF وعمليات إعادة توجيه مُنشأة بواسطة Clang . يسمح تنسيق ELF لمُحمّل eBPF (مثل libbpf) بمعالجة برنامج BPF وتعديله ديناميكيًا ليتناسب مع نواة النظام المستهدفة . [ 49 ]
العلامة التجارية
يُستخدم الاسم المستعار eBPF غالبًا كمرادف لـ BPF، [ 2 ] [ 50 ] على سبيل المثال من قِبل مجتمع نواة لينكس. يُشار إلى eBPF وBPF كاسم تقني مثل LLVM . [ 2 ] تطور eBPF من لغة الآلة الخاصة بالآلة الافتراضية للتصفية في مرشح حزم بيركلي كإصدار موسع، ولكن مع توسع استخداماته لتتجاوز مجال الشبكات، يُفسر "eBPF" اليوم بشكل تفضيلي على أنه اختصار زائف . [ 2 ]
النحلة هي الشعار الرسمي لـ eBPF. في أول قمة لـ eBPF ، تم التصويت على اسم تميمة النحلة "eBee". [ 51 ] [ 52 ] صمم الشعار في الأصل فاديم شيكولدين. [ 52 ] وقد وُجدت تمائم غير رسمية لـ eBPF في الماضي، [ 53 ] لكنها لم تحظَ بانتشار واسع.
الحوكمة
تأسست مؤسسة eBPF في أغسطس 2021 بهدف توسيع نطاق المساهمات المقدمة لتعزيز قدرات eBPF الفائقة وتوسيع نطاقها ليشمل أنظمة تشغيل أخرى غير لينكس. [1] وتضم قائمة الأعضاء المؤسسين شركات ميتا، وجوجل، وإيزوفالنت، ومايكروسوفت، ونتفليكس . وتتمثل مهمتها في جمع الأموال ، ووضع الميزانية ، وإنفاقها لدعم مشاريع المصادر المفتوحة، والبيانات المفتوحة، والمعايير المفتوحة المتعلقة بتقنيات eBPF [ 54 ]، وذلك لتعزيز نمو وانتشار منظومة eBPF. ومنذ تأسيسها، انضمت إليها أيضاً شركات ريد هات ، وهواوي ، وكراود سترايك ، وتيجيرا، وداو كلاود، وداتومز، وفيوتشر واي. [ 55 ]
التبني
تم اعتماد نظام eBPF من قبل عدد من مستخدمي الإنتاج على نطاق واسع، على سبيل المثال:
- تستخدم Meta بروتوكول eBPF من خلال موازن التحميل Katran من الطبقة الرابعة لجميع حركة المرور المتجهة إلى facebook.com [ 56 ] [ 57 ] [ 58 ] [ 31 ]
- تستخدم جوجل eBPF في GKE ، وقامت بتطوير واستخدام BPF LSM لاستبدال التدقيق، وتستخدم eBPF للشبكات [ 29 ] [ 59 ] [ 60 ] [ 61 ]
- تستخدم Cloudflare تقنية eBPF لموازنة الأحمال والحماية من هجمات DDoS وإنفاذ الأمن [ 62 ] [ 63 ] [ 64 ] [ 65 ] [ 66 ]
- تستخدم Netflix تقنية eBPF لمراقبة الشبكة على مستوى الأسطول وتشخيص الأداء [ 67 ] [ 68 ]
- يستخدم Dropbox تقنية eBPF من خلال Katran لتحقيق توازن التحميل في الطبقة 4 [ 69 ]
- يستخدم نظام Android تقنية eBPF لتقنية NAT46 ومراقبة حركة البيانات [ 70 ] [ 71 ] [ 72 ]
- تستخدم سامسونج جالاكسي eBPF لحلول الشبكات [ 73 ]
- تستخدم شركة Yahoo! Inc تقنية eBPF من خلال Cilium لتحقيق توازن الحمل في الطبقة 4 [ 74 ]
- يستخدم LinkedIn بروتوكول eBPF لمراقبة البنية التحتية [ 75 ]
- تستخدم شركة Alibaba تقنية eBPF لموازنة تحميل وحدات Kubernetes [ 76 ]
- يستخدم Datadog بروتوكول eBPF لشبكات Kubernetes Pod وفرض الأمن [ 77 ] [ 78 ] [ 79 ]
- يستخدم موقع Trip.com بروتوكول eBPF لشبكات Kubernetes Pod [ 80 ] [ 81 ]
- تستخدم Shopify تقنية eBPF للكشف عن الاختراقات من خلال Falco [ 82 ]
- يستخدم DoorDash eBPF من خلال BPFAgent للمراقبة على مستوى النواة [ 83 ]
- قامت مايكروسوفت بنقل eBPF و XDP إلى ويندوز [ 84 ] [ 85 ] [ 86 ]
- يستخدم Seznam تقنية eBPF من خلال Cilium لتحقيق توازن الحمل في الطبقة 4 [ 87 ]
- تستخدم DigitalOcean بروتوكولي eBPF و XDP لتقييد معدل الوصول إلى الخدمات الداخلية في شبكتها الافتراضية [ 88 ].
- تستخدم CapitalOne بروتوكول eBPF لشبكات Kubernetes Pod [ 89 ]
- تستخدم شركة Bell Canada تقنية eBPF لتحديث شبكات الاتصالات باستخدام SRv6 [ 90 ]
- تستخدم Elastic_NV تقنية eBPF لتحليل التعليمات البرمجية كجزء من عرض المراقبة الخاص بها [ 91 ]
- تستخدم Apple بروتوكول eBPF لأمن وحدات Kubernetes [ 92 ]
- تستخدم Sky بروتوكول eBPF لشبكات Kubernetes Pod [ 93 ]
- تستخدم وول مارت eBPF لموازنة تحميل الطبقة 4 [ 94 ] [ 95 ]
- تستخدم هواوي eBPF من خلال نظام التمهيد الآمن DIGLIM الخاص بها [ 96 ]
- تستخدم شركة ايكيا eBPF لشبكات Kubernetes Pod [ 97 ]
- تستخدم صحيفة نيويورك تايمز نظام eBPF للتواصل [ 98 ]
- تستخدم Red Hat بروتوكول eBPF على نطاق واسع لتحقيق توازن الأحمال وتتبعها في سحابتها الخاصة
- تستخدم شركة Palantir Technologies تقنية eBPF لتصحيح أخطاء الشبكات في مجموعات Kubernetes واسعة النطاق [ 99 ].
- تستخدم بلومبيس تقنية eBPF للكشف عن التهديدات والتخفيف من آثارها على طبقة التخزين الشبكية.
حماية
نظرًا لسهولة برمجتها، استُخدمت eBPF كأداة لتنفيذ هجمات القنوات الجانبية الزمنية على مستوى البنية الدقيقة ، مثل Spectre، ضد المعالجات الدقيقة المعرضة للثغرات . [ 100 ] في حين أن eBPF غير المُرخَّص يُطبِّق إجراءات تخفيف ضد Spectre v1 وv2 وv4 لأنظمة x86-64 ، [ 101 ] [ 102 ] فقد عطَّل مجتمع نواة النظام استخدامها غير المُرخَّص افتراضيًا لحماية مستخدمي البنى غير المدعومة والحد من تأثير ثغرات الأجهزة المستقبلية. [ 103 ] في أنظمة x86-64، يتم التخفيف من Spectre v1 من خلال مزيج من فرض حدود بدون تفرع (مثل تعليمات الإخفاء) والتحقق من مسارات التنفيذ التخمينية. ويتم التخفيف من Spectre v4 حصريًا من خلال حواجز التخمين (أي lfence)، بينما يتم التخفيف من Spectre v2 من خلال retpoline عند توفره [ 104 ] أو حواجز التخمين. تمنع هذه الإجراءات التخفيفية تسريب المعلومات الحساسة المملوكة لنواة النظام (مثل عناوين النواة) بواسطة برامج eBPF الخبيثة، ولكنها غير مصممة لمنع برامج eBPF غير الضارة من تسريب المعلومات الحساسة التي تملكها/تعالجها عن طريق الخطأ (مثل مفاتيح التشفير المخزنة كأرقام). [ 102 ]
انظر أيضاً
مراجع
- ١ ٢ ٣ "ميتا، وجوجل، وإيزوفالنت، ومايكروسوفت، ونتفليكس تُطلق مؤسسة eBPF كجزء من مؤسسة لينكس" . مؤسسة لينكس . ١٢ أغسطس ٢٠٢١. تم الاطلاع عليه في ١ يوليو ٢٠٢٢ .
- 1 2 3 4 5 "التفاصيل الداخلية لـ BPF" . مؤتمر USENIX LISA 2021. 1 يونيو 2021. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "eBPF وKubernetes: أدوات مساعدة صغيرة لتوسيع نطاق الخدمات المصغرة" . مؤتمر CNCF KubeCon + CloudNativeCon Europe 2020. 19 أغسطس 2020. تم الاطلاع عليه في 1 يوليو 2022 .
- 1 2 3 "تشغيل eBPF على نظام ويندوز" . مدونة مايكروسوفت مفتوحة المصدر . 10 مايو 2021. تم الاطلاع عليه في 1 يوليو 2022 .
- 1 2 "وثائق eBPF: ما هو eBPF؟" . eBPF.io. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "eBPF - إعادة التفكير في نواة لينكس" . مؤتمر QCon 2020. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "البرامج الآمنة: أساس BPF" . قمة eBPF 2021. 8 نوفمبر 2020. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "BPF و Spectre: التخفيف من هجمات التنفيذ العابر" . مؤتمر POPL 2022. 22 يناير 2022. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "eBPF - ثورة المنصة الصامتة من الحوسبة السحابية الأصلية" (ملف PDF) . مؤتمر SIGCOMM 2023، ورشة العمل الأولى حول eBPF وامتدادات النواة . 10 سبتمبر 2023. تاريخ الاطلاع: 5 أكتوبر 2023 .
- ↑ هيدام، نيكلاس (26 مايو 2023). "eBPF - من منظور المبرمج" (ملف PDF) . doi : 10.13140/RG.2.2.33688.11529/4 .
- ↑ "قوى لينكس بي بي إف الخارقة" . مدونة بريندان جريج . 5 مارس 2016. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ «لينوس تورفالدز يتحدث عن عودته للعمل على لينكس» . مقابلة زد نت مع لينوس تورفالدز . ٢٣ أكتوبر ٢٠١٨. تاريخ الاطلاع: ١ يوليو ٢٠٢٢ .
- ↑ "مرشح النطاق الترددي الكلاسيكي مقابل مرشح النطاق الترددي الإلكتروني" . LWN . مارس 2014. تم الاطلاع عليه في 6 يناير 2023 .
- ↑ "net: filter: Just In Time compiler" . أبريل 2011. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "نهج جديد آخر لأمن المعلومات" . LWN . 1 يناير 2012. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ " [ تحديث net-next v4 0/9 ] تحديثات BPF" . مارس 2014. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "نواة لينكس 3.18، القسم 1.3. استدعاء النظام bpf() لبرامج الآلة الافتراضية eBFP [ كذا ] " . kernelnewbies.org . 7 ديسمبر 2014. تم الاطلاع عليه في 6 سبتمبر 2019 .
- "عيد ميلاد سعيد لـ BPF!" . سبتمبر 2021. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ " [ PATCH v5 tip 3/7 ] التتبع: السماح لبرامج BPF باستدعاء bpf_ktime_get_ns()" . مارس 2015. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ " [ RFC PATCH net-next 0/7 ] دعم eBPF لـ cls_bpf" . مارس 2015. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ " [ PATCH net-next v2 ] net, sched: add clsact qdisc" . يناير 2016. تم الاطلاع عليه في 1 يوليو 2022 .
- 1 2 "الشبكات القائمة على eBPF، والمراقبة، والأمان" . cilium.io . يناير 2016. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "ملاحظات إصدار LLVM 3.7" . releases.llvm.org . أغسطس 2015. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "bcc: ترويض قدرات التتبع الفائقة في لينكس 4.3+" . brendangregg.com . سبتمبر 2015. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ " [ تحديث الإصدار 10 بتاريخ 12/00 ] إضافة خطاف bpf لبرنامج التشغيل لإسقاط الحزم وإعادة توجيهها مبكرًا" . يوليو 2016. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "حلقة eCHO رقم 9: XDP وموازنة الأحمال" . youtube.com . يونيو 2021. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ هولاند-يورغنسن، توك؛ بروير، يسبر دانغارد؛ بوركمان، دانيال؛ فاستابيند، جون؛ هربرت، توم؛ أهيرن، ديفيد؛ ميلر، ديفيد (ديسمبر 2018). "مسار بيانات eXpress: معالجة سريعة قابلة للبرمجة للحزم في نواة نظام التشغيل". وقائع المؤتمر الدولي الرابع عشر حول تجارب وتقنيات الشبكات الناشئة . الصفحات 54-66 . doi : 10.1145/3281411.3281443 . ISBN 9781450360807. S2CID 53779310 .
- ↑ "Cilium - شبكات حاويات IPv6 سريعة باستخدام BPF وXDP" . slideshare.net . أغسطس 2016. تم الاطلاع عليه في 1 يوليو 2022 .
- ١ ٢ "GKE Dataplane V2 الجديد يعزز أمان وشفافية الحاويات" . cloud.google.com . مايو ٢٠٢١. تم الاطلاع عليه بتاريخ ١٦ أغسطس ٢٠٢٢ .
- ↑ " [ PATCH net-next resend 00/13 ] إعادة تكوين الحلقة ودعم XDP" . نوفمبر 2016. تم الاطلاع عليه في 1 يوليو 2022 .
- 1 2 "XDP 1.5 سنوات في الإنتاج. التطور والدروس المستفادة" . lpc.events . نوفمبر 2018. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "طلب سحب: bpf 2017-11-23" . نوفمبر 2017. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ " [ PATCH net-next 0/2 ] tools: add bpftool" . سبتمبر 2017. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ " [ RFC PATCH 00/24 ] تقديم دعم AF_XDP" . يناير 2018. تم الاطلاع عليه في 1 يوليو 2022 .
- ^ "برنامج تشغيل وضع الاستطلاع AF_XDP" . doc.dpdk.org . أغسطس 2022 . تم الاسترجاع في 16 أغسطس 2022 .
- ↑ "بروتوكول BPF يصل إلى جدران الحماية" . lwn.net . فبراير 2018. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "لماذا يستبدل مجتمع نواة لينكس iptables بـ BPF؟" . cilium.io . أبريل 2018. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "bpftrace (DTrace 2.0) لنظام Linux 2018" . brendangregg.com . أكتوبر 2018. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ بوركمان، دانيال؛ فاستابيند، جون (14 نوفمبر 2018). "دمج kTLS وBPF للاستبطان وإنفاذ السياسات" (ملف PDF) . vger.kernel.org . فانكوفر: مؤتمر لينكس بلومبرز . تاريخ الاسترجاع: 31 أغسطس 2025 .
- ↑ "إزالة التكرار في BTF ونواة لينكس BTF" . nakryiko.com . نوفمبر 2018. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "أدوات أداء BPF (كتاب)" . brendangregg.com . ديسمبر 2019. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ " [ PATCH bpf-next v9 0/8 ] MAC وسياسة التدقيق باستخدام eBPF (KRSI)" . مارس 2020. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "BPF في دول مجلس التعاون الخليجي" . lwn.net . سبتمبر 2020. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "bpf.h - include/uapi/linux/bpf.h - شفرة مصدر لينكس الإصدار 5.15.86 - Bootlin" . elixir.bootlin.com . تم الاطلاع عليه بتاريخ 1 أغسطس 2024 .
- 1 2 3 4 5 رايس، ليز (2023). تعلم eBPF: برمجة نواة لينكس لتحسين المراقبة والشبكات والأمان (الطبعة الأولى ). سيباستوبول، كاليفورنيا: أورايلي ميديا. ISBN 978-1-0981-3512-6. OCLC 1353981026 .
- 1 2 3 "معمارية BPF - وثائق Cilium 1.16.0" . docs.cilium.io . تم الاطلاع عليه بتاريخ 1 أغسطس 2024 .
- 1 2 "استدعاءات الذيل - وثائق eBPF" . ebpf-docs.dylanreimerink.nl . تم الاطلاع عليه بتاريخ 2024-08-04 .
- ↑ شاتشناي، ماتان؛ فيشواناثان، هاريشانكار؛ نارايانا، سرينيفاس؛ ناجاراكاتي، سانتوش. "إصلاح عوامل التشغيل المجردة غير السليمة الكامنة في مدقق eBPF لنواة لينكس" (ملف PDF) . التحليل الثابت . سبرينغر نيتشر سويسرا. الصفحات 386-406 . doi : 10.1007/978-3-031-74776-2_15 . ISBN 978-3-031-74776-2تم الاطلاع عليه بتاريخ 2 فبراير 2025 .
- ↑ "BPF CO-RE - eBPF Docs" . ebpf-docs.dylanreimerink.nl . تم الاطلاع عليه بتاريخ 2024-08-07 .
- ↑ بريندان جريج (ديسمبر 2019). أدوات أداء BPF . أديسون-ويسلي. ISBN 978-0136554820.
- ↑ "اليوم الثاني من قمة eBPF" . cilium.io . أكتوبر 2020. تم الاطلاع عليه في 1 يوليو 2022 .
- 1 2 "ما اسم النحلة؟" . ebpf.io . تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "eBPF: خطوة صغيرة" . مدونة بريندان جريج . مايو 2015. تم الاطلاع عليه في 1 يوليو 2022 .
- ↑ "ميثاق مؤسسة eBPF" . ebpf.foundation . يونيو 2021. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "حوكمة مؤسسة eBPF" . ebpf.foundation . أغسطس 2022. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "إتاحة برنامج كاتران كمصدر مفتوح، وهو برنامج موازنة أحمال شبكية قابل للتوسع" . fb.com . مايو 2018. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "BPF على فيسبوك" . youtube.com . ديسمبر 2019. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "من XDP إلى المقبس" . lpc.events . سبتمبر 2021. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "الحلقة 29 من برنامج eCHO: حركة تحرير بلوشستان مع كي بي سينغ" . youtube.com . نوفمبر 2021. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "تدقيق أمان BPF في جوجل - بريندان جاكمان/كيه بي سينغ" . youtube.com . نوفمبر 2021. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "استبدال HTB بـ EDT و BPF" . netdevconf.info . يوليو 2020. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "بنية كلاود فلير وكيف يهيمن BPF على العالم" . blog.cloudflare.com . مايو 2019. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "المكان مزدحم هنا!" . blog.cloudflare.com . أكتوبر 2019. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "eBPF جاهز للإنتاج، أو كيف قمنا بإصلاح واجهة برمجة تطبيقات مقبس BSD" . blog.cloudflare.com . فبراير 2022. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "التصحيح المباشر للثغرات الأمنية داخل نواة لينكس باستخدام وحدة أمان لينكس eBPF" . blog.cloudflare.com . يونيو 2022. تاريخ الاطلاع: 16 أغسطس 2022 .
- ↑ "Unimog - موازن الأحمال الطرفي من Cloudflare" . blog.cloudflare.com . سبتمبر 2020. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "كيف تستخدم نتفليكس سجلات تدفق eBPF على نطاق واسع للحصول على رؤى حول الشبكة" . netflixtechblog.com . يونيو 2021. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "توسيع Vector باستخدام eBPF لفحص أداء المضيف والحاوية" . netflixtechblog.com . فبراير 2019. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "بنية حركة مرور دروب بوكس: شبكة الحافة" . dropbox.tech . أكتوبر 2018. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "مراقبة حركة مرور eBPF" . source.android.com . أغسطس 2022. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "توسيع النواة باستخدام eBPF" . source.android.com . أغسطس 2022. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ " [ PATCH v5 1/3 ] selftests: bpf: إضافة اختبار لـ bpf_skb_change_proto" . أبريل 2022. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "BPF لنظام Android: كيف نستفيد من BPF في حلول الشبكات لدينا - مادان راج كاناغاراثينام" . www.youtube.com . فبراير 2024. تم الاطلاع عليه بتاريخ 19 فبراير 2022 .
- ↑ موازنة أحمال الطبقة الرابعة للبرمجيات لخدمات Kubernetes في Yahoo! – كارثيكيان ثانجاراج، فيريزون ميديا ، 19 أغسطس 2021 ، تاريخ الاطلاع 2024-02-03
- ↑ "سكايفول: وكيل eBPF لمراقبة البنية التحتية" . www.linkedin.com . تم الاطلاع عليه بتاريخ 3 فبراير 2024 .
- ↑ "كيف تبني Alibaba Cloud شبكات Pod عالية الأداء في بيئات الإنتاج؟" . alibabacloud.com . سبتمبر 2020. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "Datadog on eBPF" . datadogon.datadoghq.com . فبراير 2021. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "مراقبة أمان وقت التشغيل باستخدام eBPF" (ملف PDF) . sstic.org . فبراير 2021. تم الاطلاع عليه في 16 أغسطس 2022 .
- ^ "رحلة eBPF الخاصة بنا في Datadog - Laurent Bernaille & Tabitha Sable، Datadog" . youtube.com . نوفمبر 2020 . تم الاسترجاع في 16 أغسطس 2022 .
- ↑ "قصة مستخدم - كيف يستخدم موقع Trip.com منصة Cilium" . cilium.io . فبراير 2020. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "Trip.com: الدخول إلى عصر الشبكات السحابية الأصلية مع Cilium+BGP" . arthurchiao.art . نوفمبر 2020. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ كلمة رئيسية: كشف الاختراقات مفتوحة المصدر للحاويات في Shopify - شين لورانس وكريس نوفا ، 4 سبتمبر 2020 ، تم الاطلاع عليه بتاريخ 9 فبراير 2024
- ↑ روجرز، باتريك (15 أغسطس 2023). "BPFAgent: eBPF للمراقبة في DoorDash - مدونة هندسة DoorDash" . مدونة هندسة DoorDash . تم الاطلاع عليه بتاريخ 9 فبراير 2024 .
- ↑ "تشغيل eBPF على نظام ويندوز" . cloudblogs.microsoft.com . مايو 2021. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "تشغيل برامج eBPF المستندة إلى Linux باستخدام eBPF لنظام Windows" . cloudblogs.microsoft.com . فبراير 2022. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "التقدم المحرز في تشغيل eBPF على نظام التشغيل Windows" . cloudblogs.microsoft.com . نوفمبر 2019. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "موازن الأحمال المستقل من الطبقة الرابعة Cilium XDP" . cilium.io . يوليو 2022. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ تقييد معدل الوصول إلى الخدمات الداخلية في شبكة افتراضية – نيك بوليان، ديجيتال أوشن ، 19 أغسطس 2021 ، تاريخ الاطلاع 2024-02-04
- ↑ "بناء منصة كخدمة آمنة وقابلة للصيانة - برادلي ويتفيلد، كابيتال ون" . youtube.com . نوفمبر 2020. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ لماذا يُغيّر eBPF مجال شبكات الاتصالات؟ - دانيال بيرنييه، بيل كندا ، 31 أغسطس 2021 ، تاريخ الاطلاع : 9 فبراير 2024
- ↑ ملف تعريف Elastic Universal ، تم الاطلاع عليه بتاريخ 26 فبراير 2024
- ↑ "فكر في eBPF لمراقبة أمان النواة - فالكو في أبل - إريك سيج وميليسا كيلبي، أبل" . youtube.com . أكتوبر 2021. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "eBPF & Cilium at Sky – Sebastian Duff, Anthony Comtois, Joseph Samuel , Sky" . youtube.com . أغسطس 2021. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "تشغيل وتنسيق برامج XDP وTC المتعددة - برايان ميريل، وول مارت" . youtube.com . أغسطس 2021. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "موازنة الأحمال عالية الأداء في وول مارت - كانثي بافولوري وكاران دلال، وول مارت" . youtube.com . أغسطس 2021. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "DIGLIM eBPF: التمهيد الآمن على مستوى التطبيق مع الحد الأدنى من التغييرات على التوزيعات - روبرتو ساسو" . youtube.com . أغسطس 2022. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "سحابة ايكيا الخاصة، وشبكات قائمة على eBPF، وموازنة الأحمال، وإمكانية المراقبة مع... كارستن نيلسن" . youtube.com . مايو 2022. تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ حلقة نقاش: هل ثمة حقيقة وراء كل هذه الضجة؟ eBPF قيد الإنتاج!، ٢٨ أكتوبر ٢٠٢٢ ، تاريخ الاطلاع : ٩ فبراير ٢٠٢٤
- ↑ استخدام تتبع مساحة المستخدم لحل مشاكل نظام أسماء النطاقات (DNS) - أندريوس غرابوسكاس، بالانتير ، 19 أغسطس 2021 ، تاريخ الاطلاع : 9 فبراير 2024
- ↑ "قراءة الذاكرة المميزة باستخدام قناة جانبية" . googleprojectzero.blogspot.com . 3 يناير 2018. تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "BPF و Spectre: التخفيف من هجمات التنفيذ العابر" . popl22.sigplan.org . تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- 1 2 جيرهورست، لويس؛ هيرتسوغ، هنرييت؛ فاغيمان، بيتر؛ أوت، ماكسيميليان؛ كابيتزا، روديغر؛ هونيغ، تيمو. "VeriFence: دفاعات خفيفة ودقيقة ضد ثغرة Spectre لامتدادات نواة لينكس غير الموثوقة" . وقائع الندوة الدولية السابعة والعشرين حول أبحاث الهجمات والاختراقات والدفاعات (RAID '24) . رابطة آلات الحوسبة. الصفحات 644-659 . arXiv : 2405.00078 . doi : 10.1145/3678890.3678907 . تاريخ الاسترجاع: 2 فبراير 2025 .
- ↑ "bpf: منع bpf غير المميز افتراضيًا" . kernel.org . تم الاطلاع عليه بتاريخ 16 أغسطس 2022 .
- ↑ "emit_indirect_jump() in arch/x86/net/bpf_jit_comp.c of Linux v6.13" . kernel.org . تم الاطلاع عليه بتاريخ 2 فبراير 2025 .
للمزيد من القراءة
- جريج، بريندان (ديسمبر 2019). أدوات أداء BPF . أديسون-ويسلي. ISBN 978-0136554820.
- ديفيد كالافيرا، لورينزو فونتانا (ديسمبر 2019). مراقبة لينكس باستخدام BPF . دار نشر أورايلي ميديا. رقم ISBN 978-1492050209.
- جريج، بريندان (ديسمبر 2020). أداء الأنظمة، الطبعة الثانية . أديسون-ويسلي. ISBN 978-0136820154.
- رايس، ليز (أبريل 2022). ما هو eBPF؟ . ISBN 978-1492097259.
- رايس، ليز (أبريل 2023). تعلم eBPF: برمجة نواة لينكس لتحسين المراقبة والشبكات والأمان . دار نشر أورايلي ميديا. رقم ISBN 978-1098135126.
- ثالر، ديف، محرر. (أكتوبر 2024). بنية مجموعة تعليمات BPF (ISA) . IETF . doi : 10.17487/RFC9669 . RFC 9669. تاريخ الاسترجاع: 5 يناير 2024 .
روابط خارجية
- برنامج مجاني مكتوب بلغة C
- برامج نظام مجانية
- برنامج يستخدم رخصة جنو العمومية العامة
- برنامج مرخص بموجب ترخيص MIT
