Ho riflettuto sull'idea di un sistema operativo basato su Python in cima al kernel di Linux, molto simile a come Android usa Java.
Cosa succede se gran parte dei componenti del sistema sono stati creati usando Python, in questo modo la maggior parte del Sistema Operativo può essere modificata da chiunque comprenda il codice Python. Ciò può consentire a chiunque abbia esperienza con Python di estendere e personalizzare completamente l'intero sistema operativo. Poiché Python consente di costruire moduli utilizzando C, questo può consentire a componenti di sistema specifici di trarre vantaggio dalla velocità laddove necessario, come un'interfaccia grafica. L'uso delle interfacce C consente inoltre a tutte le parti del kernel Linux di essere facilmente esposte a Python durante il tentativo di creare un sistema operativo di questo tipo.
Un grande vantaggio di un tale sistema operativo è la portabilità delle applicazioni, almeno le applicazioni realizzate in puro Python. L'intero sistema operativo funzionerà ovunque sia possibile compilare il Kernel Linux e Python, con uno sforzo minore rispetto a dire trasferire tutto Linux su un diverso chipset. Le app Python non hanno bisogno di essere ricompilate per la CPU di destinazione, e se la maggior parte del sistema operativo è realizzato in Python, il porting sarà abbastanza semplice.
Modifica: (qualcosa che voglio chiarire dopo aver osservato i voti negativi)
Non voglio sostituire Linux, solo uno strato sopra come fa Android con Java. (Forse usando virtualenvs)
I componenti specifici del SO saranno compilati in C ovviamente, poiché Python supporta questo usando molti metodi diversi. Python non dovrebbe essere molto più lento o più veloce di una Java VM, e Java funziona bene su dispositivi embedded. Il punto principale dell'utilizzo di Python su Java è la concessione di licenze. Dopo aver visto ciò che Oracle sta facendo a Google in tribunale su Android e Java, lo sviluppo di una soluzione Python impedirebbe a tali problemi e innovazione di continuare. Il motivo per cui non si utilizza solo un sistema C rigoroso, è che Python è molto più dinamico in fase di runtime e con i computer che cambiano così tanto, l'uso di un linguaggio statico nel core del sistema operativo sembra piuttosto limitante.
Informazioni sul multitasking: il kernel Linux eseguirà il multitasking. Python non sarà kernel, o farà cose veramente di basso livello. GIL e roba di CPython non saranno coinvolti qui.
Come fa Android: Android Core