ඔරකල් සමාගම
දැනටමත් DTrace
eBPF යනු ලිනක්ස් කර්නලය තුළ ගොඩනගා ඇති බයිට්කේත පරිවර්තකයක් වන අතර එය ජාල මෙහෙයුම් හසුරුවන්නන් සෑදීමට, පද්ධති ක්රියාකාරිත්වය නිරීක්ෂණය කිරීමට, පද්ධති ඇමතුම් වලට බාධා කිරීමට, ප්රවේශය පාලනය කිරීමට, කාල සටහන් සමඟ සිදුවීම් ක්රියාවට නැංවීමට (perf_event_open), මෙහෙයුම් වාර ගණන සහ ක්රියාත්මක කිරීමේ කාලය ගණනය කිරීමට, kprobes භාවිතයෙන් ලුහුබැඳීම සිදු කිරීමට ඉඩ සලසයි. /uprobes /tracepoints. JIT සම්පාදනය භාවිතයට ස්තූතිවන්ත වන අතර, බයිට්කේතය පියාසර කරන විට යන්ත්ර උපදෙස් වලට පරිවර්තනය කර දේශීය කේතයේ ක්රියාකාරීත්වය සමඟ ක්රියාත්මක වේ. DTrace eBPF මත ක්රියාත්මක කරන ආකාරයටම, eBPF මත ක්රියාත්මක කළ හැක.
Solaris මෙහෙයුම් පද්ධතිය සඳහා DTrace තාක්ෂණය සංවර්ධනය කරන ලද්දේ පද්ධති කර්නලය සහ අවසාන යෙදුම් ගතිකව සොයා ගැනීමේ ගැටලුව විසඳීම සඳහා පරිශීලකයාට පද්ධතියේ හැසිරීම විස්තරාත්මකව නිරීක්ෂණය කිරීමට සහ තත්ය කාලීන ගැටළු හඳුනා ගැනීමට හැකියාව ලබා දීම සඳහා ය. දෝශ නිරාකරණ ක්රියාවලියේදී, DTrace අධ්යයනයට ලක්ව ඇති යෙදුම්වල ක්රියාකාරිත්වයට බලපාන්නේ නැති අතර ඒවායේ ක්රියාකාරිත්වයට කිසිදු ආකාරයකින් බලපාන්නේ නැත, එමඟින් පියාසර කරන ධාවන පද්ධති විශ්ලේෂණය සංවිධානය කිරීමට ඔබට ඉඩ සලසයි. DTrace හි එක් ශක්තියක් වන්නේ AWK හා සමාන ඉහළ මට්ටමේ D භාෂාවයි, එහි බාහිර පුස්තකාල සමඟ C, Python සහ Lua හි eBPF හසුරුවන්නන් ලිවීම සඳහා ලබා දෙන මෙවලම් භාවිතා කරනවාට වඩා ට්රේසින් ස්ක්රිප්ට් නිර්මාණය කිරීම ඉතා පහසු වේ.
Oracle හි ඉංජිනේරුවන් ද GCC සඳහා eBPF පසුබිමක් නිර්මාණය කිරීමට කටයුතු කරමින් සිටින අතර දැනටමත් ප්රකාශයට පත් කර ඇත
bytecode උත්පාදන පසුපෙළට අමතරව, GCC සඳහා යෝජිත පැච්වල eBPF සඳහා libgcc පෝට් එකක් සහ ELF ගොනු උත්පාදනය සඳහා මෙවලම් ද ඇතුළත් වන අතර, කර්නලය සපයන ලද ලෝඩර් භාවිතයෙන් eBPF අථත්ය යන්ත්රය තුළ කේතය ක්රියාත්මක කිරීමට හැකි වේ. දැනට, C භාෂාවේ ඇති කේතය bytecode බවට පරිවර්තනය කළ හැක (සියලු භාෂා විශේෂාංග නොමැත), නමුත් අනාගතයේදී එය භාවිතා කිරීමට ඇති C භාෂා හැකියාවන් පුළුල් කිරීමට, වෙනත් භාෂා සඳහා සහය එක් කිරීමට, සිමියුලේටරයක් නිර්මාණය කිරීමට බලාපොරොත්තු වේ. කර්නලය තුළට පැටවීමකින් තොරව eBPF වැඩසටහන් නිදොස් කිරීම සඳහා GCC සහාය එක් කරන්න.
මූලාශ්රය: opennet.ru