በሩስት ውስጥ የኢቢፒኤፍ ተቆጣጣሪዎችን ለመፍጠር Aya ቤተ-መጽሐፍት አስተዋወቀ

የአያ ቤተ መፃህፍት የመጀመሪያ ልቀት ቀርቧል፣ ይህም በኢቢፒኤፍ ተቆጣጣሪዎች በሩስት ቋንቋ በሊኑክስ ከርነል ውስጥ በልዩ ቨርቹዋል ማሽን ከጂአይቲ ጋር እንዲፈጥሩ ያስችልዎታል። እንደሌሎች eBPF ማጎልበቻ መሳሪያዎች፣ Aya libbpf እና bcc compilerን አይጠቀምም፣ ይልቁንስ በራስት የተፃፈ የራሱን ትግበራ ያቀርባል፣ ይህም የከርነል ስርዓት ጥሪዎችን በቀጥታ ለመድረስ የlibc crate ጥቅልን ይጠቀማል። Aya መገንባት የC ቋንቋ መሣሪያን ወይም የከርነል ራስጌ ፋይሎችን አያስፈልገውም። የቤተ መፃህፍቱ ኮድ በ MIT እና Apache 2.0 ፍቃዶች ይሰራጫል።

ቁልፍ ባህሪያት:

  • ለ BTF (BPF Type Format) ድጋፍ፣ በ BPF pseudocode ውስጥ የአይነት መረጃን ለአይነት ፍተሻ እና በአሁኑ ከርነል ለተሰጡ ዓይነቶች ካርታ ይሰጣል። የቢቲኤፍ አጠቃቀም ከተለያዩ የሊኑክስ ከርነል ስሪቶች ጋር ሳይጠናቀር ጥቅም ላይ የሚውሉ ሁለንተናዊ eBPF ተቆጣጣሪዎችን ለመፍጠር ያስችላል።
  • ለ “bpf-to-bpf” ጥሪዎች፣ ለአለምአቀፍ ተለዋዋጮች እና ለጀማሪዎች ድጋፍ፣ ይህም ለኢቢኤፍኤፍ ፕሮግራሞችን እንዲነድፉ ያስችልዎታል መደበኛ ፕሮግራሞች በ eBPF ውስጥ ያለውን ስራ ከግምት ውስጥ በማስገባት ተግባራትን እንደገና የሚያስተካክል የ Runtime ይጠቀሙ።
  • መደበኛ ድርድሮች፣ hashes ካርታዎች፣ ቁልሎች፣ ወረፋዎች፣ ቁልል ዱካዎች፣ እንዲሁም ሶኬት እና የአፈጻጸም መከታተያ መዋቅሮችን ጨምሮ ለተለያዩ የከርነል ዓይነቶች ድጋፍ።
  • ትራፊክን ለማጣራት እና ለማስተዳደር ፕሮግራሞችን, የቡድን ተቆጣጣሪዎች እና የተለያዩ የሶኬት ስራዎችን, የ XDP ፕሮግራሞችን ጨምሮ የተለያዩ የ eBTF ፕሮግራሞችን የመፍጠር ችሎታ.
  • ያልተመሳሰለ ጥያቄን ለማስተናገድ የመሣሪያ ስርዓቶች ድጋፍ በማይከለከል ሁነታ tokio እና async-std።
  • ፈጣን ስብሰባ፣ ከከርነል ስብሰባ እና ከከርነል ራስጌ ፋይሎች ጋር ምንም ግንኙነት ሳይኖር።

ፕሮጀክቱ አሁንም እንደ ሙከራ ይቆጠራል - ኤፒአይ ገና አልተረጋጋም እና መገንባቱን ቀጥሏል። እንዲሁም ሁሉም የታቀዱ እድሎች ገና አልተፈጸሙም. በዓመቱ መገባደጃ ላይ፣ ገንቢዎቹ የAyaን ተግባር ከlibpf ጋር ወደ ተመሳሳይነት ያመጣሉ ብለው ይጠብቃሉ፣ እና በጃንዋሪ 2022 የመጀመሪያውን የተረጋጋ ልቀት ይፈጥራሉ። እንዲሁም ለሊኑክስ ከርነል የዝገት ኮድ ለመጻፍ የሚያስፈልጉትን የአያ ክፍሎችን ከኢቢፒኤፍ ፕሮግራሞች ጋር ለመጫን፣ ለማያያዝ እና ለግንኙነት ጥቅም ላይ ከሚውሉት የተጠቃሚ-ቦታ ክፍሎች ጋር የማጣመር እቅድ አለ።

እናስታውስ eBPF በሊኑክስ ከርነል ውስጥ የተገነባ የባይቴኮድ አስተርጓሚ ነው ፣ ይህም የኔትወርክ ኦፕሬሽን ተቆጣጣሪዎችን ለመፍጠር ፣ የስርዓት ስራን ለመከታተል ፣ የስርዓት ጥሪዎችን ለመጥለፍ ፣ መዳረሻን ለመቆጣጠር ፣ ጊዜን በሚጠብቁበት ጊዜ ክስተቶችን ለማስኬድ ፣ የክንውን ድግግሞሽ እና ጊዜ ያሰሉ ፣ ያከናውናሉ kprobes/uprobes/tracepoints በመጠቀም መከታተል። ለጂአይቲ ስብስብ ምስጋና ይግባውና ባይትኮድ በበረራ ላይ ወደ ማሽን መመሪያዎች ተተርጉሟል እና በአፍ መፍቻ ኮድ አፈፃፀም ይከናወናል። XDP የ BPF ፕሮግራሞችን በኔትወርክ ሾፌር ደረጃ ለማስኬድ መሳሪያዎችን ያቀርባል ፣የዲኤምኤ ፓኬት ቋት በቀጥታ የማግኘት ችሎታ ያለው ፣ይህም በከባድ የአውታረ መረብ ጭነት ውስጥ ለመስራት ከፍተኛ አፈፃፀም ያላቸው ፕሮሰሰሮችን ለመፍጠር ያስችላል።

ምንጭ: opennet.ru

አስተያየት ያክሉ