GCC இப்போது eBPF க்கு தொகுப்பதற்கான பின்தளத்தை உள்ளடக்கியுள்ளது

GCC கம்பைலர் தொகுப்பில் சேர்க்கப்பட்டுள்ளது ஏற்றுக்கொள்ளப்பட்டது லினக்ஸ் கர்னலில் கட்டமைக்கப்பட்ட பைட்கோட் மொழிபெயர்ப்பாளருக்கான நிரல்களை தொகுப்பதற்கான குறியீடு eGMP. JIT தொகுப்பின் பயன்பாட்டிற்கு நன்றி, கர்னல் பைட்கோடு இயந்திர வழிமுறைகளில் பறக்கும்போது மொழிமாற்றம் செய்யப்பட்டு சொந்த குறியீட்டின் செயல்திறனுடன் செயல்படுத்தப்படுகிறது. eBPF ஆதரவுடன் இணைப்புகள் ஏற்றுக்கொள்ளப்பட்டது GCC 10 வெளியீடு உருவாக்கப்பட்ட கிளைக்கு.

பைட்கோட் உருவாக்கத்திற்கான பின்தளத்திற்கு கூடுதலாக, GCC ஆனது eBPF க்கான libgcc போர்ட் மற்றும் ELF கோப்புகளை உருவாக்குவதற்கான கருவிகளை உள்ளடக்கியது, இது கர்னல் வழங்கிய லோடர்களைப் பயன்படுத்தி eBPF மெய்நிகர் கணினியில் குறியீட்டை இயக்குவதை சாத்தியமாக்குகிறது. GCC இல் eBPF ஐ ஆதரிப்பதற்கான இணைப்புகளை ஏற்கனவே ஆரக்கிளின் பொறியாளர்கள் தயாரித்தனர் வழங்கப்படும் குனு பைனுட்டில்களில் eBPF ஆதரவு. GDBக்கான சிமுலேட்டர் மற்றும் பேட்ச்களும் உருவாக்கத்தில் உள்ளன, இது eBPF நிரல்களை கர்னலில் ஏற்றாமல் பிழைத்திருத்த அனுமதிக்கும்.

eBPF க்கான நிரல்களை C மொழியின் துணைக்குழுவில் வரையறுக்கலாம், தொகுக்கப்பட்டு கர்னலில் ஏற்றப்படும். செயல்படுத்துவதற்கு முன், eBPF மொழிபெயர்ப்பாளர் அனுமதிக்கப்பட்ட வழிமுறைகளைப் பயன்படுத்துவதற்கான பைட்கோடைச் சரிபார்த்து, குறியீட்டில் சில விதிகளை விதிக்கிறார் (எடுத்துக்காட்டாக, சுழல்கள் இல்லை).
ஆரம்பத்தில், லினக்ஸில் eBPF ஐ தொகுக்க LLVM- அடிப்படையிலான கருவிகள் பயன்படுத்தப்பட்டன. GCC இல் eBPF ஆதரவு சுவாரஸ்யமானது, ஏனெனில் இது கூடுதல் சார்புகளை நிறுவாமல், Linux கர்னல் மற்றும் eBPF நிரல்களை உருவாக்க ஒரு கருவித்தொகுப்பைப் பயன்படுத்த அனுமதிக்கிறது.

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

ஆதாரம்: opennet.ru

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