Oracle eBPF භාවිතයෙන් Linux සඳහා DTrace ප්‍රතිනිර්මාණය කිරීමට අදහස් කරයි

ඔරකල් සමාගම වාර්තා විය DTrace සම්බන්ධ වෙනස්කම් upstream වෙත මාරු කිරීමේ වැඩ සහ සම්මත Linux kernel යටිතල ව්‍යුහයට ඉහළින් DTrace ගතික නිදොස් කිරීමේ තාක්ෂණය ක්‍රියාත්මක කිරීමට සැලසුම් කරයි, එනම් eBPF වැනි උප පද්ධති භාවිතා කිරීම. මුලදී, ලිනක්ස් හි DTrace භාවිතා කිරීමේ ප්‍රධාන ගැටළුව වූයේ බලපත්‍ර මට්ටමේ නොගැලපීමයි, නමුත් 2018 දී Oracle නැවත බලපත්‍ර ලබා දී ඇත GPLv2 යටතේ DTrace කේතය.

දැනටමත් DTrace දිගු කාලය Oracle Linux බෙදාහැරීම සඳහා දීර්ඝ කර්නලයක කොටසක් ලෙස පිරිනමනු ලැබේ, නමුත් අනෙකුත් බෙදාහැරීම් සඳහා එහි භාවිතය සඳහා මෙම තාක්ෂණය භාවිතය සීමා කරන අමතර කර්නල් පැච් භාවිතා කිරීම අවශ්‍ය වේ. උදාහරණයක් ලෙස, ඔරකල් සකස් කර ඇත Fedora Linux මත DTrace ස්ථාපනය සහ භාවිතා කිරීම සඳහා සවිස්තරාත්මක උපදෙස්. ස්ථාපනය සඳහා අවශ්ය එකලස් කිරීම මෙවලම් සහ ලිනක්ස් කර්නලයක් නැවත ගොඩනඟා භාවිතා කිරීම පැච්. Oracle සහ Fedora පැච් සමඟ කර්නල් ගොඩනැඟිල්ල ක්‍රියාත්මක කිරීම ස්වයංක්‍රීය කිරීම සඳහා, එය යෝජනා කෙරේ. පිටපත.

eBPF යනු ලිනක්ස් කර්නලය තුළ ගොඩනගා ඇති බයිට්කේත පරිවර්තකයක් වන අතර එය ජාල මෙහෙයුම් හසුරුවන්නන් සෑදීමට, පද්ධති ක්‍රියාකාරිත්වය නිරීක්ෂණය කිරීමට, පද්ධති ඇමතුම් වලට බාධා කිරීමට, ප්‍රවේශය පාලනය කිරීමට, කාල සටහන් සමඟ සිදුවීම් ක්‍රියාවට නැංවීමට (perf_event_open), මෙහෙයුම් වාර ගණන සහ ක්‍රියාත්මක කිරීමේ කාලය ගණනය කිරීමට, kprobes භාවිතයෙන් ලුහුබැඳීම සිදු කිරීමට ඉඩ සලසයි. /uprobes /tracepoints. JIT සම්පාදනය භාවිතයට ස්තූතිවන්ත වන අතර, බයිට්කේතය පියාසර කරන විට යන්ත්‍ර උපදෙස් වලට පරිවර්තනය කර දේශීය කේතයේ ක්‍රියාකාරීත්වය සමඟ ක්‍රියාත්මක වේ. DTrace eBPF මත ක්‍රියාත්මක කරන ආකාරයටම, eBPF මත ක්‍රියාත්මක කළ හැක. වැඩ කරනවා පවතින ලුහුබැඳීමේ මෙවලම්.

Solaris මෙහෙයුම් පද්ධතිය සඳහා DTrace තාක්‍ෂණය සංවර්ධනය කරන ලද්දේ පද්ධති කර්නලය සහ අවසාන යෙදුම් ගතිකව සොයා ගැනීමේ ගැටලුව විසඳීම සඳහා පරිශීලකයාට පද්ධතියේ හැසිරීම විස්තරාත්මකව නිරීක්ෂණය කිරීමට සහ තත්‍ය කාලීන ගැටළු හඳුනා ගැනීමට හැකියාව ලබා දීම සඳහා ය. දෝශ නිරාකරණ ක්‍රියාවලියේදී, DTrace අධ්‍යයනයට ලක්ව ඇති යෙදුම්වල ක්‍රියාකාරිත්වයට බලපාන්නේ නැති අතර ඒවායේ ක්‍රියාකාරිත්වයට කිසිදු ආකාරයකින් බලපාන්නේ නැත, එමඟින් පියාසර කරන ධාවන පද්ධති විශ්ලේෂණය සංවිධානය කිරීමට ඔබට ඉඩ සලසයි. DTrace හි එක් ශක්තියක් වන්නේ AWK හා සමාන ඉහළ මට්ටමේ D භාෂාවයි, එහි බාහිර පුස්තකාල සමඟ C, Python සහ Lua හි eBPF හසුරුවන්නන් ලිවීම සඳහා ලබා දෙන මෙවලම් භාවිතා කරනවාට වඩා ට්‍රේසින් ස්ක්‍රිප්ට් නිර්මාණය කිරීම ඉතා පහසු වේ.

Oracle හි ඉංජිනේරුවන් ද GCC සඳහා eBPF පසුබිමක් නිර්මාණය කිරීමට කටයුතු කරමින් සිටින අතර දැනටමත් ප්‍රකාශයට පත් කර ඇත පැච් කට්ටලය eBPF සහාය GCC වෙත ඒකාබද්ධ කිරීමට සහ සාක්ෂාත් කර ගත්තා GNU binutils හි eBPF සඳහා සහය දැක්වීම සඳහා කේතය ඇතුළුව. මුලදී, eBPF සහාය සඳහා පසුබිම LLVM තාක්ෂණයන් මත පදනම් වේ, නමුත් Oracle eBPF සඳහා වැඩසටහන් ජනනය කිරීමේ සම්මත හැකියාවක් GCC හි පෙනුම ගැන උනන්දුවක් දක්වයි, එමඟින් Linux කර්නලය ගොඩනැගීමට සහ වැඩසටහන් ගොඩනැගීම සඳහා එක් මෙවලම් කට්ටලයක් භාවිතා කිරීමට ඉඩ ලබා දේ. eBPF සඳහා.

bytecode උත්පාදන පසුපෙළට අමතරව, GCC සඳහා යෝජිත පැච්වල eBPF සඳහා libgcc පෝට් එකක් සහ ELF ගොනු උත්පාදනය සඳහා මෙවලම් ද ඇතුළත් වන අතර, කර්නලය සපයන ලද ලෝඩර් භාවිතයෙන් eBPF අථත්‍ය යන්ත්‍රය තුළ කේතය ක්‍රියාත්මක කිරීමට හැකි වේ. දැනට, C භාෂාවේ ඇති කේතය bytecode බවට පරිවර්තනය කළ හැක (සියලු භාෂා විශේෂාංග නොමැත), නමුත් අනාගතයේදී එය භාවිතා කිරීමට ඇති C භාෂා හැකියාවන් පුළුල් කිරීමට, වෙනත් භාෂා සඳහා සහය එක් කිරීමට, සිමියුලේටරයක් ​​නිර්මාණය කිරීමට බලාපොරොත්තු වේ. කර්නලය තුළට පැටවීමකින් තොරව eBPF වැඩසටහන් නිදොස් කිරීම සඳහා GCC සහාය එක් කරන්න.

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

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