ஆரக்கிள் eBPF ஐப் பயன்படுத்தி லினக்ஸிற்கான DTrace ஐ மறுவடிவமைப்பு செய்ய விரும்புகிறது

ஆரக்கிள் நிறுவனம் அறிவிக்கப்பட்டது DTrace தொடர்பான மாற்றங்களை அப்ஸ்ட்ரீமுக்கு மாற்றும் பணி மற்றும் நிலையான லினக்ஸ் கர்னல் உள்கட்டமைப்புக்கு மேல் DTrace டைனமிக் பிழைத்திருத்த தொழில்நுட்பத்தை செயல்படுத்த திட்டமிட்டுள்ளது, அதாவது eBPF போன்ற துணை அமைப்புகளைப் பயன்படுத்துகிறது. ஆரம்பத்தில், லினக்ஸில் DTrace ஐப் பயன்படுத்துவதில் முக்கிய பிரச்சனை உரிமம்-நிலை இணக்கமின்மை, ஆனால் 2018 இல் Oracle மீண்டும் உரிமம் பெற்றது GPLv2 இன் கீழ் DTrace குறியீடு.

ஏற்கனவே டிடிரேஸ் நீண்ட நேரம் ஆரக்கிள் லினக்ஸ் விநியோகத்திற்கான நீட்டிக்கப்பட்ட கர்னலின் ஒரு பகுதியாக வழங்கப்படுகிறது, ஆனால் மற்ற விநியோகங்களில் பயன்படுத்த கூடுதல் கர்னல் இணைப்புகள் தேவை, இது இந்த தொழில்நுட்பத்தின் பயன்பாட்டைக் கட்டுப்படுத்துகிறது. உதாரணமாக, ஆரக்கிள் தயார் Fedora Linux இல் DTrace ஐ நிறுவி பயன்படுத்துவதற்கான விரிவான வழிமுறைகள். நிறுவலுக்கு தேவையான சட்டசபை கருவிகள் மற்றும் லினக்ஸ் கர்னலைப் பயன்படுத்தி மீண்டும் கட்டப்பட்டது திட்டுகள். ஆரக்கிள் மற்றும் ஃபெடோரா இணைப்புகளுடன் கர்னல் அசெம்பிளியின் செயல்பாட்டினை தானியக்கமாக்க, இது முன்மொழியப்பட்டது. ஸ்கிரிப்ட்.

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

கணினி கர்னல் மற்றும் எண்ட் அப்ளிகேஷன்களின் டைனமிக் டிரேசிங் பிரச்சனைகளை தீர்க்க சோலாரிஸ் ஆப்பரேட்டிங் சிஸ்டத்திற்காக DTrace தொழில்நுட்பம் உருவாக்கப்பட்டது, இது பயனருக்கு கணினி நடத்தையை விரிவாக கண்காணிக்கும் மற்றும் உண்மையான நேரத்தில் சிக்கல்களை கண்டறியும் திறனை அளிக்கிறது. பிழைத்திருத்தத்தின் போது, ​​DTrace ஆய்வு செய்யப்பட்ட பயன்பாடுகளின் செயல்பாட்டை பாதிக்காது மற்றும் அவற்றின் செயல்திறனை எந்த வகையிலும் பாதிக்காது, இது பறக்கும்போது இயங்கும் அமைப்புகளின் பகுப்பாய்வை ஒழுங்கமைக்க அனுமதிக்கிறது. DTrace இன் பலங்களில், AWK போன்ற உயர்-நிலை D மொழி குறிப்பிடப்பட்டுள்ளது, இதில் வெளிப்புற நூலகங்களுடன் C, Python மற்றும் Lua இல் eBPF க்கு வழங்கப்படும் கையாளுபவர்களை எழுதுவதற்கான கருவிகளைப் பயன்படுத்துவதை விட, ட்ரேஸ் ஸ்கிரிப்ட்களை எழுதுவது மிகவும் எளிதானது. .

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

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

ஆதாரம்: opennet.ru

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