Az Oracle tervezi a DTrace átdolgozását Linuxra az eBPF használatával

Oracle vállalat bejelentette a DTrace-hez kapcsolódó változások upstream-re történő átadásának munkájáról és a DTrace dinamikus hibakeresési technológia megvalósításának terveiről a Linux kernel meglévő infrastruktúrája felett, nevezetesen olyan alrendszerek használatával, mint az eBPF. Kezdetben a DTrace Linuxban történő használatának fő problémája a licencfokozatok közötti inkompatibilitás volt, de 2018-ban az Oracle vállalat újra licencelte a DTrace kódját GPLv2 alatt.

A DTrace már hosszú ideje elérhető Oracle Linux disztribúcióhoz készült kiterjesztett kernel részeként, de más disztribúciókban való használatához kiegészítő patch-ek alkalmazása szükséges a kernelhez, ami korlátozza a technológia alkalmazását. Például az Oracle készítette részletes útmutatót készített a DTrace Fedora Linux alá történő telepítéséhez és használatához. A telepítéshez eszközkészletből a Linux kernel újraépítése szükséges javításokkal. Az Oracle és Fedora patch-ekkel történő kernel építésének automatizálására javasolt script.

az eBPF egy beépített bytecode értelmező a Linux kernelben, amely lehetővé teszi hálózati műveletek kezelőinek létrehozását, a rendszerek működésének nyomon követését, a rendszerhívások elfogását, a hozzáférés ellenőrzését, események kezelését időzítésekkel (perf_event_open), a műveletek gyakoriságának és végrehajtási idejének számlálását, valamint a nyomozást kprobes/uprobes/tracepoints segítségével. A JIT-kompilációnak köszönhetően a bytecode valós időben gépi utasításokra fordítódik és natív kód teljesítményével hajtódik végre. A DTrace az eBPF felett is megvalósítható, ahogyan azt az eBPF-en lévő dolgozik létező nyomozó eszközök teszik.

A DTrace technológiát a Solaris operációs rendszerhez fejlesztették ki, hogy megoldja a kernel és a végső alkalmazások dinamikus nyomozási feladatait, lehetővé téve a felhasználó számára, hogy részletesen nyomon kövesse a rendszer viselkedését, és valós időben diagnosztizálja a problémákat. A DTrace hibakeresése nem befolyásolja a vizsgált alkalmazások működését, és nem hat a teljesítményükre, ami lehetővé teszi az élő rendszerek elemzését. A DTrace erősségei közé tartozik a D magas szintű nyelv, amely az AWK-hoz hasonlít, ami lehetővé teszi a nyomozási szkriptek egyszerűbb létrehozását, mint az eBPF-hez javasolt C, Python és Lua nyelveken írt kezelőkkel és külső könyvtárakkal.

Az Oracle mérnökei is dolgoznak az eBPF backend létrehozásán a GCC számára, és már közzétették patch csomagot az eBPF támogatásának integrálására a GCC-be, és elérték az eBPF támogatásához szükséges kód integrálását a GNU binutils-be. Eredetileg az eBPF támogatására szolgáló backend az LLVM technológiákra épül, de az Oracle érdeklődik az iránt, hogy a GCC natív funkcióként biztosítson eBPF programok generálására alkalmas eszközöket, lehetővé téve ezzel ugyanannak az eszközkészletnek a használatát a Linux kernel és az eBPF programok összeállításához.

Az eBPF bytecode generálásához szükséges backend mellett a GCC-hez javasolt javítások tartalmazzák az eBPF-hez szükséges libgcc portját és az ELF fájlok előállításához szükséges eszközöket, amelyek lehetővé teszik, hogy az eBPF kódot a kernel által biztosított betöltőkkel végezhesse el a virtuális gépen. A bytecode jelenleg C nyelven írható (a nyelv nem minden lehetősége érhető el), de a jövőben várható a C nyelv alkalmazási lehetőségeinek szélesítése, más nyelvek támogatásának hozzáadása, szimulátor létrehozása és a GCC eBPF programok kernelbe való betöltés nélküli hibakeresésének támogatása.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster