• Home
  • Chimica
  • Astronomia
  • Energia
  • Natura
  • Biologia
  • Fisica
  • Elettronica
  • L'isolamento automatico del driver del dispositivo protegge dai bug nei sistemi operativi

    Credito:Pixabay/CC0 di dominio pubblico

    Il kernel di un sistema operativo funge da traduttore tra utente e macchina. Per migliorare l'affidabilità di un kernel, gli sviluppatori possono isolare i driver di dispositivo del sistema operativo e impedire che un errore in un componente influisca sugli altri componenti. L'isolamento, tuttavia, richiede sforzi umani poco pratici.

    Un team di ricercatori, guidato da G. Gary Tan e Trent Jaeger, professori di informatica e ingegneria alla Penn State, ha deciso di sviluppare un framework in grado di automatizzare e ridurre la quantità di lavoro manuale necessario per l'isolamento del driver del dispositivo in presenza di modelli di kernel impegnativi.

    I ricercatori hanno presentato la loro struttura al 16° Simposio USENIX sulla progettazione e implementazione di sistemi operativi (OSDI '22), che si è svolto dall'11 al 13 luglio a Carlsbad, in California. OSDI è una conferenza di prim'ordine sulla ricerca sui sistemi operativi e riunisce professionisti provenienti da ambienti accademici e industriali per discutere la progettazione, l'implementazione e le implicazioni del software di sistema, secondo il suo sito web.

    Il kernel del sistema operativo controlla e coordina tutto l'hardware e il software nel computer. I driver di dispositivo consentono al kernel di interagire con l'hardware senza conoscere i dettagli del componente. Ad esempio, quando un utente indirizza il proprio computer a stampare un documento, il kernel richiama determinate funzioni dell'interfaccia fornite da un driver della stampante, che elabora i dati e invia il lavoro alla stampante.

    Secondo Tan, per isolare efficacemente i driver di dispositivo e mantenere la comunicazione kernel-driver, gli sviluppatori dovevano ispezionare l'ampia e complessa interfaccia di comunicazione tra un driver e il kernel e decidere quali dati dovevano essere sincronizzati esaminando tutte le interazioni tra il driver e il nocciolo. Avevano anche bisogno di gestire schemi di sincronizzazione impegnativi come la concorrenza dei dati, la scrittura di migliaia di righe di codice per mantenere le operazioni fluide.

    "L'isolamento è una tecnica efficace per migliorare l'affidabilità nei sistemi software, come il kernel, ma fare affidamento sullo sforzo umano per isolare i driver non è realistico, quindi abbiamo deciso di sviluppare un framework per automatizzare il processo", ha affermato Tan. "Con l'isolamento, l'errore in un componente è limitato all'interno del proprio dominio; i bug in un componente non possono influenzare direttamente il resto del sistema. Ciò migliora notevolmente l'affidabilità".

    Hanno sviluppato KSplit, un approccio che può sia analizzare automaticamente lo stato del kernel del driver condiviso sia calcolare qualsiasi necessità di sincronizzazione per questo stato condiviso. Il programma identifica anche le aree che necessitano di un intervento manuale, riducendo il carico di lavoro manuale a una codifica minima e al marshalling dei dati.

    "Prima di KSplit, il processo era laborioso e soggetto a errori", ha detto Tan. "Con KSplit, la maggior parte di queste complicate attività di isolamento vengono gestite automaticamente."

    I ricercatori hanno valutato la soluzione con 354 driver di dispositivo su nove sottosistemi in un kernel Linux. Per un driver complesso, KSplit ha richiesto aggiornamenti manuali a 53 delle 2.476 righe di codice, che erano specifiche dell'interfaccia generate automaticamente, e 19 modifiche aggiuntive al codice del driver. È meno del 3% del lavoro manuale richiesto senza KSplit.

    "L'analisi di KSplit dei 354 driver mostra che è prevista una frazione simile del lavoro manuale, dimostrando che KSplit è uno strumento pratico per automatizzare le attività chiave per consentire l'isolamento del driver", ha affermato Jaeger. "Tuttavia, il framework si concentra principalmente sul miglioramento dell'affidabilità del sistema. Abbiamo in programma di estendere KSplit per rafforzare l'interfaccia tra il kernel e un driver, con una garanzia di sicurezza per il kernel anche in presenza di un driver dannoso."

    Secondo Jaeger, l'insieme di analisi statiche fornite da KSplit, come il calcolo dei dati necessari tra le diverse parti del sistema, può essere esteso a software che richiedono un'analisi precisa delle informazioni di accesso ai dati, evidenziando il potenziale per la protezione da violazioni intenzionali della sicurezza o altri attacchi . + Esplora ulteriormente

    Approssimazione di un nocciolo di verità




    © Scienza https://it.scienceaq.com