È una buona idea scrivere un sistema operativo in un linguaggio di scripting? [chiuso]

8

È una buona idea creare un sistema operativo scritto in un linguaggio di scripting?

Ad esempio, che ne dici di creare un sistema operativo usando Python?

    
posta Amir Saniyan 29.06.2012 - 01:08
fonte

5 risposte

15

Non è solo una cattiva idea. È praticamente impossibile.

Come implementate l'IO con un linguaggio le cui strutture IO dipendono interamente dal sistema operativo host?

Come potresti implementare la pianificazione primitiva senza primitive di interrupt utili?

Come si può scrivere un driver di periferica in una lingua che non può indirizzare un determinato byte?

Modifica: - Giusto per chiarire un po '. Non è possibile scrivere un sistema operativo "reale" che interagisce direttamente con la macchina in un linguaggio "scripting". Tuttavia, è possibile scrivere una "macchina virtuale" utilizzabile se il linguaggio scritping è sufficientemente flessibile. Ad esempio implementazioni di MIX (s) teorico di Donald Knuths macchina e uno ZX80 emulator abbastanza buono per eseguire pacman sono stati scritti in JavaScript.

    
risposta data 29.06.2012 - 03:56
fonte
6

Prima di decidere su come , devi specificare cosa . Cosa farà questo nuovo sistema operativo? Dove verrà eseguito? Perché qualcuno dovrebbe preoccuparsi di usarlo? ecc. La prossima cosa è determinare le qualità del sistema operativo. Velocità, sicurezza, threading, gestione della memoria, multi-tasking, formati di file, supporto linguistico, processori supportati, ecc.

Dalla risposta alle domande di cui sopra e considerando le numerose qualità del tuo sistema operativo, puoi determinare quale strumento utilizzare per raggiungere i tuoi obiettivi.

Ora, vuoi davvero fare tutto questo?

Suppongo che Python sia stato usato in parte nella scrittura di parti di Linux - Vedi: Quali lingue sono scritte in Windows, Mac OS X e Linux?

    
risposta data 29.06.2012 - 01:50
fonte
3

So che questa non è una risposta adeguata, ma questo progetto dimostra un sistema operativo funzionante con un kernel scritto in JavaScript:

link

Anche i driver per VGA e tastiera sono stati scritti in JavaScript utilizzando gli interrupt. Ho sviluppato un'implementazione di OpenGL 1.1 per me da un po 'di tempo fa e funziona molto bene.

    
risposta data 29.06.2012 - 05:49
fonte
3

No, non è nemmeno possibile (esclusivamente)

Perché? Considera quanto segue:

Che cos'è un linguaggio di scripting?

Consente di fare le seguenti due ipotesi sulla definizione di un "linguaggio di scripting":

  1. Il linguaggio risiede in un ambiente di runtime.
  2. La lingua non ha accesso ai puntatori di memoria grezza.

Che cos'è un sistema operativo?

Supponiamo che l'obiettivo principale di un sistema operativo possa essere semplificato come segue:

  • per fornire un'astrazione tra i programmi utente e l'hardware su cui eseguono

Da queste stesse definizioni, è logicamente impossibile che un linguaggio di scripting sia un sistema operativo. Perché?

  1. Un sistema operativo deve disporre di accesso raw e illimitato alla memoria del computer per comunicare con l'hardware. Poiché i linguaggi di scripting non hanno accesso ai puntatori di memoria grezza, non possono farlo.
  2. Poiché un linguaggio di scripting richiede un ambiente di runtime, ma non possono parlare direttamente all'hardware, l'ambiente deve essere codificato in un'altra lingua con questa capacità. In questa istanza (come nel caso di JSOS che è stato inserito in altri post), è necessario utilizzare un linguaggio di livello inferiore per interfacciarsi con la macchina.

È possibile scrivere una quantità minima di codice in un linguaggio "grezzo" come C, ma per definizione sarà sempre necessario un linguaggio compilato non elaborato. Una volta che questo è a posto, altri pezzi del sistema operativo possono essere implementati in un linguaggio di scripting, ma un linguaggio di scripting non può mai essere usato da solo.

    
risposta data 29.06.2012 - 06:32
fonte
0

Devo sostenere che è, in linea di principio, possibile scrivere un sistema operativo in python. Dovresti produrre un compilatore di linguaggio da Python a basso livello, nonché aggiungere moduli alla libreria standard che forniscono accesso ai pezzi di basso livello del tuo computer. Ma se quei due pezzi fossero a posto sarebbe possibile.

Tuttavia,

  1. Sarà davvero difficile scrivere un compilatore che produca codice efficiente
  2. Python sarà scomodo per accedere a dettagli di basso livello
risposta data 29.06.2012 - 06:51
fonte

Leggi altre domande sui tag