Oracle intende riprogettare DTrace per Linux utilizzando eBPF

Azienda Oracle ha annunciato sui lavori per il trasferimento delle modifiche relative a DTrace nell'upstream e i piani per l'implementazione della tecnologia di debugging dinamico DTrace sopra l'infrastruttura standard del kernel Linux, in particolare utilizzando sottosistemi come eBPF. Inizialmente, il principale problema nell'utilizzo di DTrace su Linux era l'incompatibilità a livello di licenza, ma nel 2018 Oracle ha ri-licenziato il codice di DTrace sotto GPLv2.

DTrace è già offerto da tempo come parte del kernel esteso per il distribuito Oracle Linux, ma il suo utilizzo in altre distribuzioni richiede l'applicazione di patch aggiuntive al kernel, il che limita l'uso di tale tecnologia. Come esempio, Oracle preparato fornisce istruzioni dettagliate per l'installazione e l'uso di DTrace su Fedora Linux. Per l'installazione è necessaria la compilazione strumenti e l'applicazione di un kernel Linux ricompilato con che eliminano ritardi non necessari nel driver MMC (MMC viene collegato tramite il firmware della scheda e al momento dell'avvio del driver è già attivato) e avviano l'inizializzazione dei driver MMC e FEC (Ethernet) in modalità parallela.. Per automatizzare la compilazione del kernel con le patch di Oracle e Fedora, è stata proposta script.

eBPF è un interprete di bytecode integrato nel kernel di Linux che consente di creare gestori per operazioni di rete, monitorare le attività di sistema, intercettare chiamate di sistema, controllare l'accesso, gestire eventi preservando il timestamp (perf_event_open), contare la frequenza e il tempo di esecuzione delle operazioni e effettuare tracciamenti utilizzando kprobes/uprobes/tracepoints. Grazie all'uso della compilazione JIT, il bytecode viene tradotto in istruzioni macchina in tempo reale, eseguendosi con le prestazioni di un codice nativo. DTrace può essere implementato sopra eBPF, similmente a come funziona con gli strumenti di tracciamento esistenti. lavorano strumenti di tracciamento esistenti.

La tecnologia DTrace è stata sviluppata per il sistema operativo Solaris per risolvere problemi di tracciamento dinamico del kernel di sistema e delle applicazioni finali, consentendo all'utente di monitorare dettagliatamente il comportamento del sistema e di effettuare diagnosi in tempo reale. Durante il debug, DTrace non influisce sul funzionamento delle applicazioni esaminate e non ha alcun impatto sulle loro prestazioni, consentendo di analizzare i sistemi in esecuzione senza interruzioni. Tra i suoi punti di forza, DTrace vanta un linguaggio di alto livello, D, simile ad AWK, che rende notevolmente più semplice creare script di tracciamento rispetto all'uso degli strumenti proposti per eBPF per scrivere gestori in C, Python e Lua con librerie esterne.

Gli ingegneri di Oracle stanno anche lavorando alla creazione di un backend eBPF per GCC e hanno già pubblicato un insieme di patch per l'integrazione del supporto eBPF in GCC e hanno ottenuto inclusione del codice per il supporto eBPF in GNU binutils. Inizialmente, il backend per il supporto eBPF si basa sulle tecnologie LLVM, ma Oracle è interessata a introdurre in GCC una funzionalità nativa per generare programmi per eBPF, consentendo di utilizzare un unico strumento sia per la compilazione del kernel Linux sia per la generazione di programmi per eBPF.

Oltre al backend per la generazione di bytecode, le patch proposte per GCC includono anche un porting di libgcc per eBPF e strumenti per la creazione di file ELF, che consentono di eseguire codice in una macchina virtuale eBPF utilizzando i loader forniti dal kernel. Attualmente, solo il codice in linguaggio C può essere tradotto in bytecode (non tutte le funzionalità del linguaggio sono disponibili), ma in futuro ci si aspetta un ampliamento delle capacità del linguaggio C, l'aggiunta di supporto per altri linguaggi, la creazione di un simulatore e il supporto di GCC per il debug di programmi eBPF senza doverli caricare nel kernel.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster