GCC දැන් eBPF වෙත සම්පාදනය සඳහා පසුබිමක් ඇතුළත් වේ

GCC සම්පාදක කට්ටලයේ ඇතුළත් කර ඇත දරුකමට හදා ගැනීම ලිනක්ස් කර්නලය තුළ ගොඩනගා ඇති බයිට්කේත පරිවර්තකය සඳහා වැඩසටහන් සම්පාදනය කිරීම සඳහා කේතය ඊබීපීඑෆ්. JIT සම්පාදනය භාවිතයට ස්තූතිවන්ත වන අතර, කර්නල් බයිට්කේතය පියාසර කරන විට යන්ත්‍ර උපදෙස් වලට පරිවර්තනය කර ස්වදේශීය කේතයේ ක්‍රියාකාරිත්වය සමඟ ක්‍රියාත්මක වේ. eBPF සහාය ඇතිව පැච් පිළිගත්තා GCC 10 නිකුතුව සංවර්ධනය කරන ලද ශාඛාව තුළට.

බයිට්කේත උත්පාදනය සඳහා පසුබිමට අමතරව, GCC විසින් eBPF සඳහා libgcc වරායක් සහ කර්නලය සපයන ලද ලෝඩර භාවිතයෙන් eBPF අථත්‍ය යන්ත්‍රය තුළ කේතය ක්‍රියාත්මක කිරීමට හැකි වන පරිදි ELF ගොනු ජනනය කිරීමේ මෙවලම් ඇතුළත් වේ. GCC හි eBPF සඳහා සහය දැක්වීම සඳහා පැච් සකස් කරන ලද්දේ දැනටමත් ඔරකල් හි ඉංජිනේරුවන් විසිනි සපයා ඇත GNU binutil වල eBPF සහාය. GDB සඳහා සිමියුලේටරයක් ​​සහ පැච් ද සංවර්ධනය වෙමින් පවතී, එමඟින් ඔබට eBPF වැඩසටහන් කර්නලයට පූරණය නොකර දෝෂහරණය කිරීමට ඉඩ සලසයි.

eBPF සඳහා වන වැඩසටහන් C භාෂාවේ උප කුලකයක අර්ථ දැක්විය හැක, සම්පාදනය කර කර්නලයට පැටවිය හැක. ක්‍රියාත්මක කිරීමට පෙර, eBPF පරිවර්තකය අවසර ලත් උපදෙස් භාවිතා කිරීම සඳහා බයිට් කේතය පරීක්ෂා කරන අතර කේතයට යම් නීති රීති පනවයි (උදාහරණයක් ලෙස, ලූප නොමැත).
මුලදී, ලිනක්ස් මත eBPF සම්පාදනය කිරීමට LLVM මත පදනම් වූ මෙවලම් භාවිතා කරන ලදී. GCC හි eBPF සහාය සිත්ගන්නා සුළුය, මන්ද එය අමතර පරායත්තතා ස්ථාපනය නොකර Linux කර්නලය සහ eBPF වැඩසටහන් තැනීමට එක් මෙවලම් කට්ටලයක් භාවිතා කිරීමට ඉඩ සලසයි.

eBPF වැඩසටහන් ආකාරයෙන්, ඔබට ජාල මෙහෙයුම් හසුරුවන්න, පෙරහන් ගමනාගමනය, කලාප පළල කළමනාකරණය, පද්ධති මොනිටර, පද්ධති ඇමතුම් බාධා කිරීම, ප්‍රවේශය පාලනය කිරීම, මෙහෙයුම් වාර ගණන සහ වේලාව ගණන් කිරීම සහ kprobes/uprobes/tracepoints භාවිතයෙන් ලුහුබැඳීම සිදු කළ හැක.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න