È possibile creare un sistema operativo usando java?


Voglio sapere è possibile fare un funzionamento come Windows-xp che è scritto in linguaggio C come posso scriverlo in java in modo da avere le stesse caratteristiche scritte in C

Author: skaffman, 2010-01-01

7 answers

In teoria sì, ma dovrai comunque avere un codice assembly di basso livello per avviare la VM Java che verrà eseguita sulla macchina e anche un codice di basso livello per accedere ai driver hardware.

Da wikipedia:

Dato che Java di Sun Microsystems è oggi uno dei più dominanti linguaggi orientati agli oggetti, non è sorpresa che il funzionamento basato su Java i sistemi sono stati tentati. In questo area, idealmente, il kernel sarebbe consistono del minimo indispensabile necessario per supportare una JVM. Questo è l'unico componente di tale sistema operativo questo dovrebbe essere scritto in un lingua diversa da Java. Costruito su che JVM e supporto hardware di base, sarebbe possibile scrivere il resto del sistema operativo in Java; anche parti del sistema che sono più tradizionalmente scritto in un livello inferiore linguaggio come C, ad esempio dispositivo driver, possono essere scritti in Java.

Esempi di tentativi di operativo il sistema include JX, JNode e GiavAO.

 41
Author: Eli Bendersky, 2010-01-01 08:45:35
 10
Author: sesteel, 2010-01-01 08:48:42

In teoria, sì. Ma dovresti in qualche modo far funzionare la VM Java usando codice di basso livello (a meno che tu non voglia compilare Java fino all'assembly, il che probabilmente non è possibile senza sacrificare molte funzionalità di Java).

 5
Author: Ron Gejman, 2010-01-01 08:47:49

In teoria, si potrebbe effettivamente scrivere l'intero sistema operativo in Java con un processore Java. Fondamentalmente utilizza Java bytecode come set di istruzioni per il processore

 5
Author: iCodeSometime, 2014-02-14 02:58:55

Dipende da ciò che consideri "caratteristiche". Se intendi interfaccia grafica, effetti finestra fantasia, ecc. quindi sì, anche se avrai bisogno di linguaggio assembly o C per i bit più bassi (cioè, interfacciandosi con le porte I/O, ecc.). Se si includono anche gli ABI di Windows come funzionalità, diventa più difficile poiché seguono le convenzioni di chiamata Pascal.

 3
Author: Ignacio Vazquez-Abrams, 2010-01-01 08:46:50

I sistemi operativi sono più vicini all'hardware (come i driver). a mio avviso questo non è l'area di Java (solo la soluzione sbagliata del sistema operativo del dominio del problema).

 3
Author: manuel aldana, 2010-01-01 18:55:32

Come altri menzionati sopra, è già stato un tentativo. Jnode è l'unico che ha resistito alla prova del tempo e sta lavorando attivamente anche se non hanno rilasciato una nuova build da anni. Ma se guardi i loro commit Git, stanno lavorando a un rilascio imminente mentre scrivo questo. Sono un fan di Java e attendo con ansia il rilascio. Le persone che odiano linguaggi imperativi prolissi come Java rabbrividiscono all'idea, ma non è per tutti.

Interessante è anche l'idea di implementazione del codice byte Java nell'hardware. Non penso che andrà da nessuna parte poiché la forza di Java è che non devi preoccuparti molto dell'hardware. Hai solo bisogno di ottenere un sistema operativo in Java e può essere eseguito su qualsiasi JVM.

Penso che il vero potere di Java nel dominio del sistema operativo sia la virtualizzazione. Non riesco a pensare a un modo migliore per avere un sistema operativo virtuale poiché Java è ovunque.

Come altri poster notato sopra, non può essere implementato completamente in Java senza un'implementazione hardware Java. Jnode è completamente scritto in assembly e Java. Ma poi tutti i sistemi operativi moderni usano un linguaggio assembly.

 3
Author: magneto12321, 2014-03-18 16:03:04