Oracle is van plan DTrace voor Linux te herbouwen met behulp van eBPF

Oracle Company meldde over het werk aan de overdracht van gerelateerde DTrace-wijzigingen naar upstream en de plannen voor de implementatie van de technologie voor dynamische debugging van DTrace bovenop de standaard Linux-kernel infrastructuur, met name met het gebruik van subsystemen zoals eBPF. Aanvankelijk was de belangrijkste uitdaging bij het gebruik van DTrace in Linux de incompatibiliteit op licentieniveau, maar in 2018 heeft Oracle de licentie van de DTrace-code naar GPLv2 gewijzigd.

DTrace wordt al een aanzienlijke tijd aangeboden als onderdeel van de uitgebreide kernel voor de Oracle Linux-distributie, maar voor gebruik in andere distributies vereist het de toepassing van aanvullende kernelpatches, wat het gebruik van deze technologie beperkt. Ter illustratie geeft Oracle De belangrijkste afnemer van de oplossingen voor het minen van Grin beschouwt de ontwikkelaar als de thuisgebruiker. Hiervoor heeft Innosilicon een ASIC-miner ontwikkeld in de vormfactor van een PCIe-adapter, die qua grootte en vorm lijkt op een videokaart. De prijs voor de pre-order, die voor het einde van april geplaatst moet worden, bedraagt $800. De leveringen van de oplossing beginnen in augustus. Het kopen van de miner na de start van de leveringen kost al $1200. Deze en andere miners ondersteunen de hashing-algoritmes Cuckatoo31+ en Cuckatoo32+ (net als Cuckatoo29/30). Tot april 2020 zullen alle algoritmes behalve Cuckatoo32+ uit gebruik worden genomen, maar de apparatuur van Innosilicon verliest niet aan relevantie, omdat deze al het algoritme Cuckatoo32+ ondersteunt. Overigens is de garantie op de apparatuur bij het plaatsen van de pre-order verlengd van 6 naar 9 maanden, wat een aangename aanvulling zal zijn op de directe kortingen. een gedetailleerde instructie voor het installeren en gebruiken van DTrace in Fedora Linux. Voor de installatie is het nodig om de kernel te bouwen toolset en de Linux-kernel toe te passen, opnieuw gebouwd met patches. Voor het automatiseren van de bouw van de kernel met de Oracle- en Fedora-patches is script.

eBPF een ingebouwde bytecode-interpreter in de Linux-kernel die het mogelijk maakt om netwerkbewerkingshandelaars te creëren, systeemoperaties te volgen, systeemaanroepen te intercepten, toegang te controleren, gebeurtenissen met tijdregistratie te verwerken (perf_event_open), de frequentie en uitvoeringstijd van operaties te tellen, en tracing uit te voeren met behulp van kprobes/uprobes/tracepoints. Dankzij JIT-compilatie wordt bytecode in real-time omgezet naar machine-instructies en uitgevoerd met de prestaties van native code. DTrace kan bovenop eBPF worden geïmplementeerd, vergelijkbaar met hoe bestaande tracing-tools werken. samen bestaande traceertools.

De DTrace-technologie is ontwikkeld voor het Solaris-besturingssysteem om de uitdagingen van dynamische kerneltracering en eindtoepassingen aan te pakken, waardoor gebruikers de mogelijkheid krijgen om het gedrag van het systeem in detail te volgen en in realtime diagnose van problemen uit te voeren. Tijdens het debuggen heeft DTrace geen invloed op de werking van de onderzochte applicaties en beïnvloedt het hun prestaties niet, waardoor realtime analyse van werkende systemen mogelijk is. Onder de sterke punten van DTrace valt de hoog-niveau programmeertaal D, die lijkt op AWK, waar scripting voor tracing aanzienlijk eenvoudiger te realiseren is dan met de aangeboden middelen voor eBPF, waarvoor handelaars in de programmeertalen C, Python en Lua met externe bibliotheken moeten worden geschreven.

Ingenieurs van Oracle zijn ook bezig met het creëren van een eBPF-backend voor GCC en hebben al gepubliceerd een set patches voor de integratie van eBPF-ondersteuning in GCC en hebben bereikt de opname van code voor eBPF-ondersteuning in GNU binutils. Oorspronkelijk is de backend voor eBPF-ondersteuning gebaseerd op LLVM-technologieën, maar Oracle is geïnteresseerd in het opnemen van een native functie in GCC voor het genereren van programma's voor eBPF, wat het mogelijk maakt om één toolkit te gebruiken voor zowel de compilatie van de Linux-kernel als voor de compilatie van eBPF-programma's.

Naast de backend voor het genereren van bytecode omvatten de voorgestelde patches voor GCC ook een port van libgcc naar eBPF en tools voor het maken van ELF-bestanden, die de uitvoering van code in de eBPF-virtuele machine mogelijk maken met behulp van door de kernel geleverde loaders. Code in de C-taal kan momenteel worden omgezet naar bytecode (niet alle mogelijkheden van de taal zijn beschikbaar), maar in de toekomst wordt verwacht dat de beschikbare mogelijkheden van de C-taal worden uitgebreid, met ondersteuning voor andere talen, de creatie van een simulator en de toevoeging van ondersteuning voor GCC voor het debuggen van eBPF-programma's zonder deze in de kernel te laden.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster