La relazione tra Linux e Android è piuttosto stretta: cuore del sistema operativo sviluppato da Google è infatti proprio il kernel Linux. Il kernel è responsabile della gestione delle risorse hardware e delle comunicazioni tra l’hardware e il software. Android ne utilizza una versione modificata, ottimizzata per i dispositivi mobili. A parte questo, tutte le varie librerie di sistema sono state sviluppate al di sopra dl kernel e le app Android sono gestite ed eseguite attraverso la macchina virtuale Java chiamata ART (Android Runtime), erede della storica Dalvik. Eseguire programmi Linux su Android, quindi, non è direttamente possibile.
Questo perché le applicazioni Android sono tipicamente scritte in Java o Kotlin e “girano” su ART. I programmi Linux sono spesso scritti in C, C++, Python, Rust e in altri linguaggi di programmazione: funzionano appoggiandosi al kernel Linux servendosi di librerie standard.
Come eseguire programmi Linux su Android
In generale, quindi, se si avesse interesse a eseguire programmi Linux su Android, è possibile ricorrere a un’app di emulazione del terminale. Termux, ad esempio, fornisce agli utenti un ambiente Linux con accesso alla riga di comando. È così possibile eseguire molti comandi e programmi Linux dalla riga di comando sfruttando il dispositivo Android in uso.
In alternativa, app Android come UserLAnd e Andronix permettono di installare intere distribuzioni Linux come Ubuntu e Debian in un ambiente virtualizzato. L’idea è quella di mettere a disposizione degli utenti un ambiente desktop Linux completo da cui sia possibile eseguire anche programmi dotati di interfaccia grafica.
A partire da Android 10, inoltre, Google ha introdotto il supporto per il sottosistema Linux integrato: può essere abilitato dal produttore del dispositivo e consente di eseguire applicazioni Linux caricate nella cartella /bin
.
Ancora, Linux Deploy si presenta come un’app che semplifica l’installazione di distribuzioni Linux complete come Ubuntu e Fedora, insieme con i rispettivi desktop environment.
L’idea alla base di Lindroid: utilizzare i container
L’ingegnere software Erfan Abdi ha presentato, dopo mesi di lavoro, il suo progetto Lindroid: ancora si trova in fase embrionale ma gli ingredienti per eccellere ci sono tutti.
L’obiettivo è quello di trasformare radicalmente l’interazione tra Linux e Android, proponendo una soluzione accelerata in hardware che permette di caricare “il pinguino” sui dispositivi a cuore Android. La peculiarità di questo progetto risiede nel fatto che Linux funziona in un container all’interno di Android. I programmi Linux, diversamente dagli approcci visti sinora, hanno quindi accesso diretto all’hardware nativo del dispositivo. Questo schema consente performance ottimali e un’integrazione senza soluzione di continuità tra le due piattaforme.
I container Lindroid, inoltre, isolano le applicazioni Linux e permettono di gestirle senza interferire con il sistema Android sottostante.
Un aspetto unico di Lindroid è la presenza di un’interfaccia simile a quella di un PC, con un launcher di applicazioni chiamato Kickoff, che appare sullo schermo dello smartphone. In questo modo è possibile garantire agli utenti un’esperienza familiare e funzionale, simile a quella che si ha con un normale computer desktop.
Gestione delle finestre e supporto multimonitor
Il compositing window manager predefinito e raccomandato da Abdi è il noto KWin, molto conosciuto per la sua efficienza e versatilità. Lindroid offre anche il supporto sperimentale per altri window manager compatibili con il sistema X Window (X11), ampliando le possibilità di personalizzazione per gli utenti avanzati.
Un’altra caratteristica interessante di Lindroid è il supporto multimonitor e multi-input quando il dispositivo mobile risulta connesso con un sistema Linux. Si tratta di una caratteristica che permette di utilizzare il dispositivo Android in modalità desktop, sfruttando al massimo le capacità di entrambi i sistemi operativi.
Supporto per le distribuzioni Linux complete
Lindroid non si limita a eseguire solo applicazioni Linux, ma è anche in grado di eseguire distribuzioni complete. L’autore del progetto cita, per esempio, la compatibilità con Ubuntu Touch, Droidian e Plasma Mobile. Questa flessibilità rende Lindroid una soluzione particolarmente interessante per chi desidera portare l’esperienza completa di Linux sui propri dispositivi mobili Android.
Sebbene Lindroid sia davvero promettente, nel momento in cui scriviamo, il progetto supporta esclusivamente LibreMobileOS, una distribuzione Android focalizzata sulla privacy e la sicurezza.
Per ulteriori dettagli e per contribuire al progetto, è possibile consultare il codice sorgente di Lindroid su GitHub. Consigliamo anche di leggere i messaggi pubblicati da Abdi sulla sua pagina X.
Cos’è LibreMobileOS
Scaricabile da questa pagina, LibreMobileOS si presenta sotto forma di ROM Android che va a sostituire il firmware preinstallato su un gran numero di dispositivi mobili. Rientra di fatto nel novero delle versioni personalizzate di Android, derivate dal progetto AOSP (Android Open Source Project).
Un sistema operativo open source come LibreMobileOS è incentrato sull’assenza di software proprietario (non ci sono i servizi Google né tanto meno il Play Store…) e per l’adozione di pratiche che mirano a proteggere i dati personali e a garantire un’esperienza d’uso più sicura.
Per usare LibreMobileOS è necessario effettuare il flashing del dispositivo, come si farebbe per aggiornare Android quando sembra impossibile (ad esempio quando il produttore del terminale cessasse di rilasciare aggiornamenti ufficiali).
Credit immagine in apertura: Copilot Designer.