Ogni sistema operativo del mondo, fatta esclusione per certi esperimenti accademici o con finalità dimostrative, possiede un kernel. Il kernel è il “cuore” del sistema ed è quella parte del sistema operativo che si occupa direttamente di gestire le interazioni tra hardware e software e di assegnare al software le risorse hardware: è il kernel a decidere quale programma può sfruttare la specifica risorsa (CPU, RAM, ecc). Visto che su una macchina moderna è in esecuzione più di un programma alla volta, l’accesso contemporaneo alle risorse di tutti i programmi porterebbe ad una situazione di non determinismo: ad  un input A potrebbe corrispondere un output B come un output C, o ancora un output D senza che sia possibile prevedere quale sia a priori. Limitando invece l’accesso all’hardware ad un solo programma per volta si crea una situazione deterministica: date le condizioni di partenza, io so sempre che ad input A corrisponde output B senza incertezze. È per questo motivo che sono nati i kernel ed i sistemi operativi. Esempi di kernel sono NT (Windows), XNU (Mac OS X), L4, Minix, BSD, Linux, MorphOS, BeOS, JOS, JX, Mach, Hurd e così via.

Android sfrutta una versione pesantemente modificata del kernel Linux. Le modifiche sono tante e tali da far nascere due filosofie di pensiero riguardo il nome del kernel: una che vuole che si scriva Android/Linux in contrapposizione a GNU/Linux per far risaltare la sostituzione dello userland e del set di programmi e librerie tipico dei sistemi operativi Linux con uno esclusivo di Android; la seconda che invece ritiene che le modifiche siano così pesanti e consistenti da non poter più considerare il kernel alla base di Android una forma “pura” di Linux e, pertanto, preferisce la dicitura “kernel Android” per marcare questa differenza. Da notare è il fatto che i programmi per Android non possono funzionare su kernel Linux e viceversa; non c’è dunque mutua compatibilità tra i due kernel. Questo fatto è la principale motivazione per cui personalmente preferisco la dicitura “kernel Android” che adotterò nel resto dell’articolo.

Samsung è il primo produttore mondiale di cellulari ed il primo produttore di smartphone e tablet Android e, in quanto tale, è anche uno dei primi produttori mondiali di dispositivi Linux. Samsung ha recentemente migliorato la sua posizione all’interno della Linux Foundation, la fondazione senza scopi di lucro che si occupa di gestire e promuovere Linux ed il suo sviluppo, siglando un accordo con il quale si impegna a versare alla fondazione mezzo milione di dollari in cambio di un posto nella board e del titolo di membro Platinum. La nuova posizione ricoperta dalla società koreana le permetterà di meglio gestire il proprio lavoro in relazione a quello della comunità Linux e di poter cooperare più direttamente contribuendo con il proprio codice e adottando pratiche migliori per l’open source.

La fondazione ha tre livelli per i membri: Silver, Gold e Platinum. Precedentemente, Samsung era un membro Silver; ora è un membro Platinum come IBM, Intel, Oracle, Qualcomm ed altri. È ironico il fatto che Google e Motorola siano solamente membri Gold, quando di fatto Android è sviluppato e “di proprietà” di Google (le virgolette sono per sottolineare il fatto che Android è open source e, quindi, di tutti e non solo di un individuo/entità).

Sia Samsung che la Linux Foundation hanno rilasciato delle dichiarazioni in merito. Jim Zemlin, direttore esecutivo della fondazione, ha affermato che il supporto di Samsung è “una decisione di business strategica che avrà come risultato l’avanzamento del successo di Samsung Electronics e l’accelerazione dello sviluppo di Linux.” Il vice presidente di Samsung Electronics, WonJoo Park, ha affermato che “stiamo guardando all’aumento della collaborazione e del supporto per il nostro portfolio crescente di dispositivi basati su Linux e al dare contributi che migliorino Linux per tutti”.

Speriamo davvero che da questo rinnovato sodalizio possano venire cose buone per tutto il mondo Linux e non solo per Android.