ரஸ்டில் eBPF ஹேண்ட்லர்களை உருவாக்குவதற்கு Aya நூலகத்தை அறிமுகப்படுத்தியது

Aya நூலகத்தின் முதல் வெளியீடு வழங்கப்படுகிறது, இது லினக்ஸ் கர்னலில் JIT உடன் சிறப்பு மெய்நிகர் கணினியில் இயங்கும் ரஸ்ட் மொழியில் eBPF கையாளுபவர்களை உருவாக்க உங்களை அனுமதிக்கிறது. மற்ற eBPF மேம்பாட்டுக் கருவிகளைப் போலல்லாமல், Aya libbpf மற்றும் bcc கம்பைலரைப் பயன்படுத்தவில்லை, மாறாக ரஸ்டில் எழுதப்பட்ட அதன் சொந்த செயலாக்கத்தை வழங்குகிறது, இது கர்னல் கணினி அழைப்புகளை நேரடியாக அணுக libc crate தொகுப்பைப் பயன்படுத்துகிறது. ஆயாவை உருவாக்குவதற்கு C மொழி கருவி அல்லது கர்னல் தலைப்பு கோப்புகள் தேவையில்லை. MIT மற்றும் Apache 2.0 உரிமங்களின் கீழ் நூலகக் குறியீடு விநியோகிக்கப்படுகிறது.

முக்கிய அம்சங்கள்:

  • BTF (BPF வகை வடிவமைப்பு) க்கான ஆதரவு, இது BPF சூடோகோடில் வகைச் சரிபார்ப்பு மற்றும் தற்போதைய கர்னலால் வழங்கப்பட்ட வகைகளுக்கு மேப்பிங் செய்ய வகைத் தகவலை வழங்குகிறது. BTF இன் பயன்பாடு, லினக்ஸ் கர்னலின் வெவ்வேறு பதிப்புகளுடன் மறுதொகுப்பு இல்லாமல் பயன்படுத்தக்கூடிய உலகளாவிய eBPF ஹேண்ட்லர்களை உருவாக்குவதை சாத்தியமாக்குகிறது.
  • "bpf-to-bpf" அழைப்புகள், உலகளாவிய மாறிகள் மற்றும் துவக்கிகளுக்கான ஆதரவு, இது eBPF க்கான நிரல்களை வடிவமைக்க உங்களை அனுமதிக்கிறது.
  • வழக்கமான அணிவரிசைகள், ஹாஷ் வரைபடங்கள், அடுக்குகள், வரிசைகள், ஸ்டேக் ட்ரேஸ்கள், அத்துடன் சாக்கெட் மற்றும் செயல்திறன் கண்காணிப்பு கட்டமைப்புகள் உள்ளிட்ட பல்வேறு கர்னல் வகைகளுக்கான ஆதரவு.
  • டிராஃபிக்கை வடிகட்டுதல் மற்றும் நிர்வகிப்பதற்கான திட்டங்கள், cgroup கையாளுபவர்கள் மற்றும் பல்வேறு சாக்கெட் செயல்பாடுகள், XDP திட்டங்கள் உட்பட பல்வேறு வகையான eBTF நிரல்களை உருவாக்கும் திறன்.
  • தடையற்ற முறையில் டோக்கியோ மற்றும் async-std இல் ஒத்திசைவற்ற கோரிக்கை செயலாக்கத்திற்கான தளங்களுக்கான ஆதரவு.
  • கர்னல் அசெம்பிளி மற்றும் கர்னல் ஹெடர் கோப்புகளுடன் எந்த தொடர்பும் இல்லாமல் விரைவான அசெம்பிளி.

திட்டம் இன்னும் பரிசோதனையாகக் கருதப்படுகிறது - ஏபிஐ இன்னும் நிலைப்படுத்தப்படவில்லை மற்றும் தொடர்ந்து உருவாகி வருகிறது. மேலும், அனைத்து திட்டமிட்ட வாய்ப்புகளும் இன்னும் உணரப்படவில்லை. இந்த ஆண்டின் இறுதியில், டெவலப்பர்கள் Aya இன் செயல்பாட்டை libbpf உடன் இணையாகக் கொண்டு வருவார்கள் என்றும், ஜனவரி 2022 இல் முதல் நிலையான வெளியீட்டை உருவாக்குவார்கள் என்றும் எதிர்பார்க்கிறார்கள். லினக்ஸ் கர்னலுக்கான ரஸ்ட் குறியீட்டை எழுதுவதற்கு Aya இன் பகுதிகளை இணைக்கவும், eBPF நிரல்களை ஏற்றவும், இணைக்கவும் மற்றும் தொடர்புகொள்ளவும் பயன்படுத்தப்படும் பயனர்-வெளி கூறுகளுடன் இணைக்கும் திட்டங்களும் உள்ளன.

eBPF என்பது லினக்ஸ் கர்னலில் கட்டமைக்கப்பட்ட ஒரு பைட்கோட் மொழிபெயர்ப்பாளர் என்பதை நினைவில் கொள்வோம், இது நெட்வொர்க் ஆபரேஷன் ஹேண்ட்லர்களை உருவாக்கவும், சிஸ்டத்தின் செயல்பாட்டை கண்காணிக்கவும், சிஸ்டம் அழைப்புகளை இடைமறிக்கவும், அணுகலைக் கட்டுப்படுத்தவும், நிகழ்வுகளைச் செயலாக்கவும், நேரத்தைப் பராமரிக்கவும், செயல்பாடுகளின் அதிர்வெண் மற்றும் நேரத்தைக் கணக்கிடவும், செய்யவும் அனுமதிக்கிறது. kprobes/uprobes/tracepoints ஐப் பயன்படுத்தி தடமறிதல். JIT தொகுப்பின் பயன்பாட்டிற்கு நன்றி, பைட்கோட் பறக்கும் போது இயந்திர வழிமுறைகளாக மொழிபெயர்க்கப்பட்டு சொந்த குறியீட்டின் செயல்திறனுடன் செயல்படுத்தப்படுகிறது. பிணைய இயக்கி மட்டத்தில் BPF நிரல்களை இயக்குவதற்கான கருவிகளை XDP வழங்குகிறது, DMA பாக்கெட் இடையகத்தை நேரடியாக அணுகும் திறன் கொண்டது, இது அதிக நெட்வொர்க் சுமையின் கீழ் பணிபுரியும் உயர் செயல்திறன் செயலிகளை உருவாக்க உங்களை அனுமதிக்கிறது.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்