איה, הספרייה הראשונה שיצרה בקרי eBPF ברוסט

Linus torvalds כמו גם מפתחים רבים גרעין והפצות שונות הביעו את דעתם על חלודה ואפילו ביותר מפעם אחת הוצג הנושא של יישום מנהלי התקנים בשפת תכנות זו בגרעין לינוקס.

ועל כך כבר יצאו עבודות שונות, מהן כבר הזכרנו כאן בבלוג ואנחנו יכולים להזכיר, למשל, Experimento מוצלח מתוך הסט החלופי של כלי עזר, coreutils, ששוכתבו ברוסט (זה כולל כלי עזר כמו sort, cat, chmod, chown, chroot, cp, date, dd, echo, host host, id, ln ו- ls).

בהתחשב בכך לינוס טורוואלדס לא נתן את דבריו במלואם לטובת יוזמה זו והביע את הנקודות השליליות (תוכלו לעיין בפרטים בקישור הבא.)

למרות הביקורת הקשה מצד לינוס, העבודות על יישום החלודה בליבה לא הפסיקה להמשיך הלאה ולאחרונה הוצגה הגרסה הראשונה של ספריית איה, המאפשר ליצור מנהלי התקנים של eBPF ברוסט שפועלים בתוך ליבת לינוקס במכונה וירטואלית מיוחדת של JIT.

בניגוד לכלי פיתוח EBPF אחרים, איה אינה משתמשת ב- libbpf ובמהדר BCC, אבל מציע יישום משלו שנכתב בחלודה המשתמשת בחבילת המגירות libc לגישה ישירה לשיחות מערכת הליבה. בניית איה אינה דורשת כלי שפה C או כותרות ליבה.

עבור מי אינם מודעים ל- eBPF, עליהם לדעת שמדובר במתורגמן לפי קוד מובנה בליבת הלינוקס המאפשר ליצור מטפלי פעולות רשת, לפקח על פעולת המערכת, ליירט שיחות מערכת, לשלוט בגישה, לעבד אירועים בתזמון, לחשב את תדירות וזמן הפעולות, ולעקוב אחר kprobes / uprobes / tracepoint.

בזכות אוסף JIT, bytecode מתורגם להוראות מכונה בזמן ורץ עם ביצועי קוד מקורי. XDP מספק אמצעי להפעלת תוכניות BPF ברמת מנהל התקן ברשת, עם גישה ישירה למאגר מנות DMA, המאפשר ליצור מנהלי התקנים בעלי ביצועים גבוהים לתנאי עומס רשת גבוהים.

על איה

מהתכונות העיקריות שהוזכרו מאיה אנחנו יכולים למצוא את זה יש את התמיכה ב- BTF (פורמט סוג BPF), המספק מידע על סוג בפסאוד-קוד BPF לבדיקת והשוואת סוגים המסופקים על ידי הגרעין הנוכחי. השימוש ב- BTF מאפשר ליצור מנהלי התקנים אוניברסליים של eBPF שניתן להשתמש בהם מבלי שיהיה צורך לקמפל אותם מחדש עם גרסאות שונות של ליבת לינוקס.

טוב כמו ה תמיכה בשיחות bpf-to-bpf, משתנים ומתחלפים גלובליים, המאפשר לעצב תוכניות עבור eBPF באנלוגיה עם תוכניות קונבנציונליות המשתמשות ב- aya כזמן ביצוע, מבטל פונקציות תוך התחשבות בעבודה ב- eBPF.

מצד שני, יש לו גם את תמיכה בסוגי גרעינים פנימיים, כולל מערכים רגילים, hashaps, ערימות, תורים, עקבות מחסנית ומבנים לשקעים ומעקב ביצועים.

טמביאן בעל יכולת ליצור סוגים שונים של תוכניות eBTF, כולל תוכניות לסינון וניהול תעבורה, מנהלי התקנים של קבוצה ושקעים שונים, תוכניות XDP וגם תמיכה בפלטפורמה לעיבוד בקשות אסינכרוניות במצב טוקיו שאינו חוסם ו- async-std.
אוסף מהיר, מבלי להיות קשור לאוסף ליבה או כותרות ליבה.

חשוב להזכיר זאת הפרויקט עדיין נחשב ניסיוני מכיוון שה- API עדיין לא התייצב וממשיך להתפתח. כמו כן, לא כל הפונקציות המיועדות טרם יושמו.

עד סוף השנה, היזמים מקווים להביא את הפונקציונליות של איה לשווה ל libbpf ובינואר 2022 יוצרים את הגרסה היציבה הראשונה. כמו כן, מתוכנן לשלב בין חלקי ה- Aya הדרושים לכתיבת קוד חלודה לליבת לינוקס לבין רכיבי שטח המשתמשים המשמשים לטעינה, הצמדה ואינטראקציה עם תוכניות eBPF.

בסופו של דבר אם אתה מעוניין לדעת יותר על זה, אתה יכול בדוק את הפרטים בקישור הבא.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.