FOSS-Inside: Kernel Mode Settings e oltre

post_w0929_1.jpg

Architettura grafica DRI

In questo post si cercherà di approfondire il Kernel Mode Setting di Linux. Negli ultimi mesi si è sempre più parlato di questa funzionalità e delle potenzialità che essa offre. Sembra doveroso, quindi, approfondire l’argomento e capire cosa è realmente il mode-setting.

Cosa è il Kernel Mode Setting. “Il Kernel Mode Setting è una funzionalità che consente di impostare la risoluzione dello schermo e la profondità del colore (il numero di bit utilizzati per rappresentare un singolo pixel grafico), così come altri parametri che hanno a che fare con l’inizializzazione della parte grafica.” Implementare il KMS nel Kernel Linux significa configurare all’avvio della macchina la scheda grafica secondo le impostazioni indicate dai parametri di boot.

Sebbene il KMS sia concettualmente immediato da capire esso nella pratica richiede una riorganizzazione non banale dei moduli e del codice. Basti pensare al fatto che lo stack grafico Linux/FOSS utilizzato per anni è frammentato su più livelli, e non tutti interni al kernel: vga driver (kernel), framebuffer driver (kernel), DRM driver (kernel), X drivers (userspace), DRI e DDX driver (userspace), e altre librerie di gestione (userspace). Il Kernel Mode Setting implica lo spostare funzionalità dal layer userspace dell’X Server in quello interno al Kernel Linux.

Affrontare il problema dell’inizializzazione della scheda grafica e delle impostazioni dello schermo video non è proprio semplice. La questione, infatti, deve essere analizzata da due punti di vista. Da un lato bisogna snellire e rivedere parte dell’architettura di rendering dell’X Server, dall’altro bisogna importare codice nel Kernel Linux e aggiungere tutto quello che manca (interfacce, moduli, IOCTL). Non meraviglia, dunque, che il lavoro che si sta compiendo per l’implementazione del KMS è davvero complesso, e richiede uno sforzo sinergico di tutta la comunità open source.

Un brevissima storia. Si è iniziato a parlare ufficialmente di Kernel Mode Setting a partire dal Kernel Linux 2.6.29 (23 marzo 2009), il primo a riportare nelle Release Note la sezione KMS. In realtà il cammino verso il KMS era già iniziato da tempo, e solo col Kernel Linux 2.6.28 (25 dicembre 2008) si era entrati nel vivo dei lavori allorquando era stata rilasciata una versione stabile del modulo “GEM (“Graphic Execution Manager”)”. Questo nuovo componente si occupa della gestione della memoria delle GPU, e nelle intenzioni degli sviluppatori del Kernel dovrebbe sostituire quello TTM (Translation-Table Maps) attualmente in uso.

Nel mondo delle distribuzioni Linux il supporto al Kernel Mode Setting è per lo più ancora in divenire. Infatti, non tutte le distribuzioni Linux sono allo stesso punto, e non tutte hanno seguito lo stesso percorso. Probabilmente Fedora è la distribuzione che prima si è mossa su questo fronte, e fin dalla release F10 (ma forse anche da F9) ha cercato di portare in casa il risultato, completandolo parzialmente con il rilascio di Fedora 11. Ubuntu, invece, sta seguendo tutt’altra strategia puntando a qualcosa di più stabile e definitivo, ma sempre seguendo gli sviluppi del Kernel Linux. Infatti, sebbene Fedora sia stata la prima distribuzione ad avere il KMS c’è anche da dire che questo lavoro è stato frutto di investimenti personali. Ubuntu, dal canto suo sta seguendo l’evoluzione del Kernel Linux e del server grafico X.

Moblin, la distribuzione Linux di casa Intel per i netbook e i nettop, fa storia a se. Intel in questo caso controlla tutta la catena di produzione, dalla progettazione e realizzazione dei chipset grafici fino allo sviluppo dei driver e delle librerie software. Questo ha ovviamente comportato un indubbio vantaggio che è tutto confluito in Moblin fin dal rilascio della versione
V2 Alpha2 avvenuta il 24 marzo 2009.

Tag: ,

Commenti

  1. [1]

    Complimenti, veramente un interessante approfondimento.

  2. [2]

    complimenti anche da parte mia…interessante!

  3. [3]

    bell’articolo, mi ha chiarito un paio di cose, soprattutto quanto è stato fatto finora sulle varie distribuzioni.

  4. [4]

    COMPLIMENTI!
    Ottimo articolo!!!

  5. [5]

    Veramente un bell’articolo, mi incuriosiva l’argomento ma data la complessità non avevo mai approfondito.
    Complimenti (anche perchè è uscito il 13 agosto quando tutti gli altri non mettono neanche mezza news)

    ciao

  6. [6]

    Complimenti, davvero molto interessante..ora devo solo vedere se opensuse 11.2 (in test) con k2.6.31 rcx quale strada segue o deciderà di saguire hihihih

  7. [7]

    ottimo!

  8. [8]

    Bravi, bell’articolo. Speriamo di rivederne di così belli e tecnicamente dettagliati.

Inserisci il tuo commento