Un sistema operativo può essere creato con Python?

-2

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

    
posta sbrm1 24.08.2016 - 19:25
fonte

1 risposta

3

Ovviamente può essere fatto. Ma guarda questo foglio di architettura : i moduli kernel e kernel, che devono essere tenuti in C, sono AFAIK a parte principale di Linux. Le "librerie di sistema" devono essere sostituite o estese da un adattatore C-Python, che non sarà nemmeno Python puro. Sono abbastanza sicuro che il livello di utilità, tuttavia, potrebbe essere completamente sostituito da strumenti Python puri (anche se ho qualche dubbio riguardo le prestazioni del risultato).

Quindi la tua idea che "la maggior parte del sistema operativo possa essere modificata da chiunque comprenda il codice Python" in realtà IMHO diventerà " alcuni del sistema operativo parti possono essere modificati da chiunque ..." . Il risultato non sarebbe "un sistema operativo in Python", solo un sistema operativo scritto in C con un livello di utilità in Python.

    
risposta data 25.08.2016 - 07:58
fonte

Leggi altre domande sui tag