1 / 12

Investigarea contoarelor de referință de la nivelul nucleului Linux

Investigarea contoarelor de referință de la nivelul nucleului Linux. Emma – Camelia Mirică emma.mirica@gmail.com. As. Dr. Ing. Răzvan Deaconescu Ing. Daniel Băluță. Sesiunea de licen ţe - Iulie 2012. Cuprins. Introducere Motivație Structura kref Captură Filtrare Procesare Întrebări.

halia
Download Presentation

Investigarea contoarelor de referință de la nivelul nucleului Linux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Investigarea contoarelor de referință de la nivelul nucleului Linux Emma – Camelia Miricăemma.mirica@gmail.com As. Dr. Ing. Răzvan Deaconescu Ing. Daniel Băluță • Sesiunea de licenţe - Iulie 2012

  2. Cuprins • Introducere • Motivație • Structura kref • Captură • Filtrare • Procesare • Întrebări Sesiunea de Licenţe - Iulie 2012

  3. Introducere • Aplicație: • Modul de kernel (captură și filtrare) • Script Python (procesare) • Analiză dinamică • Oferă statistici (tabele, liste etc.) despre contoarele de referință filtrate după anumite criterii: valoare contor, id proces Sesiunea de Licenţe - Iulie 2012

  4. Motivație Sesiunea de Licenţe - Iulie 2012

  5. Structura kref kref_get kref_init kref_put Sesiunea de Licenţe - Iulie 2012

  6. Aplicația în ansamblu Spațiu kernel Spațiu user Modulul kref-count Scriptul ref_leaks Funcții kref și parametrii modulului captură filtrare procesare Statistici (valori, liste, tabele) Sesiunea de Licenţe - Iulie 2012

  7. Captură • Colectare într-un hash table și actualizare de informații utile despre structurile kref din nucleu • Id și nume proces de creare • Numărul de operații get și put • Hash table pentru contexte • Integritatea informației • În spațiu kernel, implementat în modulul kref-count • Sincronizare folosind spinlock Sesiunea de Licenţe - Iulie 2012

  8. Captură (2) • Primă fază de control prin parametrii modulului: • nokref • omode • leaks Sesiunea de Licenţe - Iulie 2012

  9. Filtrare • Filtrarea informațiilor colectate anterior după: • Valoare contor • Id proces • În spațiu kernel, implementat în modulul kref-count • Folosește procfs, adăugând un nou folder (/proc/kref_debug) cu intrările: • kref_filter: control filtrare • kref_0x<kref_addr>: rezultatele filtrării Sesiunea de Licenţe - Iulie 2012

  10. Modulul kref-count Funcție kref NU DA kref nou NU Actualizare informații Verifică nokref Ignoră Verifică leaks DA Șterge kref și intrare din /proc, dacă există NU Verifică omode Ignoră NU DA Verifică filtru NU Adaugă noul kref DA Șterge intrare din /proc, dacă există Verifică filtru Adaugă noua intrare în /proc/kref_debug DA Adaugă noua intrare în /proc/kref_debug Sesiunea de Licenţe - Iulie 2012

  11. Procesare • Oferă statistici pe baza intrărilor din /proc/kref_debug • În user space, implementat în scriptul ref_leaks ref_leaks -h -v -s -w -a -t Intrări din /proc/kref_debug Statistici (valori, liste, tabele) -k -l -d -f -p -g Sesiunea de Licenţe - Iulie 2012

  12. Cuvinte cheie • nucleul Linux • struct kref • modul de kernel • interceptare • script Python • procfs • captură • filtrare • procesare Vă Mulțumesc! Sesiunea de Licenţe - Iulie 2012

More Related