next up previous contents
Next: Sviluppi futuri Up: Conclusioni Previous: Valore aggiunto   Indice

Problemi noti

Ad oggi PackageFS è utilizzabile concretamente per gestire i pacchetti in una distribuzione Debian. Tuttavia esso necessita di alcune migliorie per soddisfare i requisiti dell'ambiente di produzione.

L'operazione di inizializzazione non è molto efficiente. Per ovviare a questo problema, la classe PKGFSCache implementa un meccanismo di salvataggio su disco dei dati relativi alla gerarchia ed alla configurazione del file system (vedi sezione 5.3.5). Essi sono verificati ed eventualmente caricati in memoria ad ogni avvio del demone. Tale meccanismo non sembra velocizzare adeguatamente il processo di inizializzazione. Pertanto si sta valutando un metodo alternativo per la gestione completamente virtuale dei sottoalberi: l'idea è di reperire il contenuto dei directory su richiesta, eliminando così la necessità di costruire l'intera gerarchia ad ogni attivazione del file system. Per ridurre i tempi di accesso nelle operazioni consecutive, si potrebbero memorizzare temporaneamente i dati ottenuti. Una gestione di questo tipo ridurrebbe inoltre il rischio di incoerenza a seguito degli aggiornamenti del sistema.

I gestori di pacchetti non interattivi sono quelli che meglio si adattano a PackageFS. Nel corso della trattazione è stato più volte evidenziato il problema della configurazione dei pacchetti con particolare riferimento all'interazione con APT e dpkg. Nella sezione 4.5.2 abbiamo visto che è possibile risolvere questo problema usufruendo della modalità non interattiva supportata da debconf, o ancor meglio, della sua interfaccia grafica se disponiamo di un server $ \texttt{X}$ attivo. Nell'attuale versione di sviluppo di PackageFS, questa soluzione è implementata controllando l'impostazione della variabile di ambiente $ \texttt{DISPLAY}$ che identifica il nome del server $ \texttt{X}$ a cui è connessa l'applicazione (vedi sezione 5.3.4). Non possiamo considerare definitiva questa tecnica perché il demone che gestisce il file system e il processo che sta richiedendo il servizio potrebbero essere in esecuzione in ambienti diversi. Per mettere in pratica questa idea, il kernel stesso deve trasmettere a PackageFS informazioni sulla provenienza del messaggio. La nuova versione di sviluppo di FUSE permette di individuare il processo che ha effettuato la chiamata di sistema. Grazie alle potenzialità del procfs (illustrato nella sezione 3.1), possiamo reperire informazioni utili su di esso: si possono controllare le variabili che definiscono il suo ambiente di esecuzione, ricercando il valore della variabile $ \texttt{DISPLAY}$. Il demone potrà quindi tentare di impostare allo stesso modo il proprio ambiente di esecuzione prevedendo l'interfaccia grafica per la configurazione dei pacchetti. In caso di fallimento nella fase di connessione al server $ \texttt{X}$ , o di variabile $ \texttt{DISPLAY}$ non impostata, debconf verrà eseguito in modo non interattivo.

Debian presenta anche un ulteriore problema relativo ai file di configurazione dei pacchetti (vedi sezione 5.2.7). $ \texttt{dpkg}$ non specifica in nessun luogo i cosiddetti ``configuration files'' che contengono impostazioni relative alla macchina su cui è installato il software. Essi vengono creati da alcuni script al momento dell'installazione. È quindi impossibile per PackageFS dedurre il percorso dei file di questo tipo. Discutendo di questa mancanza con esperti sviluppatori di Debian, siamo giunti alla conclusione che l'unica soluzione possibile è quella di proporre un patch a $ \texttt{dpkg}$ stesso. In ogni caso dal momento dell'applicazione della patch, decorrerà un intero ciclo di sviluppo (stimato di circa 3 anni), prima che tutti i manutentori dei pacchetti utilizzino questa funzionalità.


next up previous contents
Next: Sviluppi futuri Up: Conclusioni Previous: Valore aggiunto   Indice
2004-11-19