MokaByte Numero 11 - Settembre 1997
  
JavaOS - Il Sistema Operativo
I parte
 
di
Rocco Mondo
Continua il nostro viaggio attraverso la Piattaforma Java.In questa puntata incontreremo il JavaOS e le sue promesse Prima Parte

 


 


Nel numero di MB di Luglio/Agosto 97 la redazione ha lanciato una nuova iniziativa dedicata ai meno esperti e alle novità più salienti del mondo Java provenienti direttamente dal sito SUN. In quest'ottica abbiamo iniziato la serie descrivendo per grandi linee cosa rappresenta la PJ, abbiamo visto che essa non si identifica semplicemente con un linguaggio di programmazione orientato agli oggetti ma più ragionevolmente la si può pensare come ad un insieme di tecnologie software e hardware che lavorono su un set comune di API .Nello scorso numero si è accennato anche al sistema operativo JavaOS, basato sul set di API Java. JavaOS sarà l'oggetto di discussione del seguente articolo


Perchè JavaOS ?
Molti di voi si chiederanno perchè SUN Microsystem ha sviluppato un "nuovo" Sistema Operativo quando il mondo dell'informatica (IT) brulica di S.O. maturi e ben introdotti nel mercato IT ?
Vi chiederete ancora quali saranno i plus che permetteranno al JavaOs di affermarsi e guadagnare una propria fetta di mercato ?
Cercheremo di dare una risposta a queste domande analizzando le principali caratteristiche e potenzialità del JavaOS.

JavaOS: Caratteristiche Generali
Come accennato in precedenza JavaOS è un Sistema Operativo ottimizzato per far girare applicativi Java su diversi tipi di computers e dispositivi di consumo come cellulari, stampanti, macchine fotografiche etc.Le applicazioni gireranno direttamente su JavaOS senza richiedere un sistema operativo ospitante, in questo modo esse saranno altamente interattive, dinamiche, sicure e portatili.
Le poche righe scritte sin ora rivelano alcune grandi potenzialità di JavaOS: il fatto che esso si adatti sia ai computers che ai dispositivi di consumo implica che esso è:

Tutto ciò è reso possibile perchè JavaOS si basa sullo stesso set di API dell'ambiente di sviluppo Java.Quali benefici può ottenere da tutto questo il futuro utente del JavaOS ?
Gli utenti del neo S.O. possono installare o ritrovarsi JavaOS su macchine di diversa estrazione hardware, da microprocessori Intel 80486/Perntium a Motorola della serie 680xx/PowerPC o ancora su SPARC o ALPHA oppure su chip come picoJava e microJava, ciò non pone grossi limiti di spostamento all'utente che voglia migrare da una piattaforma all'altra, anzi questi si ritroverebbe a lavorare con la stezza interfaccia utente e con gli stessi meccanismi.
Il discorso si fa ancora più interessante per gli sviluppatori che possono produrre un unico codice sorgente facendo girare così il proprio programma su tutte le piattaforme, compreso il JavaOS e i dispositivi che supportano i JavaChips (vedi articolo ).

L'elevata portatilità, l'alta scalabilità, la possibilità di poter far girare programmi e/o applets, scritti in linguaggio Java, più velocemente sono rese possibili dal fatto che JavaOS implementa una Virtual Machine ad elevate prestazioni, molte funzionalità avanzate per l'interfaccia utente e per il networking ed un file system ottimizzato, il tutto senza richiedere un sistema operativo ospintante (sottostante).
JavaOs definisce una vera e propria piattaforma hardware comprendente una CPU, una memoria fisica, il controllo su qualsiasi dispositivo, la definizione dei bus e degli slots.
Esso si compone fondamentalmete di due parti :

La prima parte è la porzione del S.O. indipendente dalla piattaforma, la seconda si riferisce a quella dipendente dalla piattaforma ospitante.

L'ambiente runtime del JavaOs è stato progettato per girare su piattaforme hardware molto limitate, infatti esso per funzionare non richiede sofisticati sistemi di gestione della memoria come la MMU (Memory Management unit) per mappare la memoria fisica degli indirizzi in una mappa virtuale e non richiede un meccanismo di memoria protetta.Il Runtime lascia che sia il kernel (nocciolo del S.O.) ad occuparsi della MMU e della memoria protetta.

In futuro i benefici della PJ porteranno molti vantaggi nella realizzazione di semplici, intelligenti, e dinamici dispositivi di rete, la vera sfida è fornire la PJ a dispositivi con risorse hardware e software limitati.Uno dei modi per ridurre le richieste di hardware da parte di un qualsiasi dispositivo è quello di rimuoverne la causa principale; ossia la presenza di un Sistema Operativo generico.JavaOS grazie alla sua elevata scalabilità fornisce delle caratteristiche minimali per il supporto della PJ, in questo modo gli sviluppatori possono realizzare programmi con le API della PJ su dispositivi aventi hardware e software limitati.
 

Per questi motivi JavaOS è stato realizzato implementando una architettura a strati indipendenti, ogni strato lavora e vive indipendentemente dall' altro, permettendo di ottenere così due importanti obiettivi:

La castomizzazione del JavaOS consiste nell'assemblarne i vari strati per adattarlo all'uso specifico cui è destinato.Per esempio, se il JavaOs è destinato a girare su un telefono portatile, sicuramente esso sarà composto da un kernel (nocciolo del S.O.) che supporti pienamente le operazioni in tempo reale (Realtime), una Virtual Machine, delle funzioni base per il supporto della grafica, e alcuni protocolli di comunicazione.
Mentre se il JavaOs è destinato ai computers di rete, dovrà avere un kernel con funzionalità più sofisticate, ma non dovrà necessariamente supportare il realtime, avrà una Virtual Machine ed una completa libreria grafica come la AWT (Abstract Window Toolkit), infine non mancherà il JDK (Java Developers Kit) con tutte le APIs incluso un browser come HotJava.

Java e i Sistemi Operativi
Attualmente l'ambiente Java viene supportato attraverso un Sistema Operativo ospinante, cioè un S.O. che ospita la Virtual Machine e le classi fondamentali, sia l'una che l'altra vengono incorporte direttamente all'interno del S.O. oppure vengono incorporte all'interno di un browser.
Quindi l'unico modo per poter lavorare con la PJ è quello di avere un S.O. sottostante che lo ospiti.
Infatti attualmente molte delle classi e delle utility del linguaggio assumono per certo che esistano un certo numero di servizi disponibili a livello di Sistema Operativo.La figura sottostante mostra l'architettura software usata dalla Piattaforma Java quando essa gira su un Sistema Opeativo ospitante.

Come potete osservare le applicazioni Java girano su uno strato di API Java, esse includono molti servizi e funzioni, come le Classi Fondamentali, le AWT e le classi per la gestione del Network e del I/O a livello di applicazioni.Questa parte di codice è scritto tutto in puro linguaggio Java quindi lo ritroveremo su tutte le piattaforme che supportano Java.
Lo strato inferiore riguarda il Java Runtime il quale include l'interprete e la garbage collector per la gestione automatica della memoria dedicata alle applicazioni.Questa parte è scritta in codice C-indipendent, cioè scritto in modo tale da essere il più possibile indipendente dalla piattaforma.
Per finire, lo schema mostra la porzione contenente il sistema operativo d'appoggio.

In generale il S.O. sottostante deve fornire alla PJ i seguenti servizi :

Quando si effettua il porting della PJ, gli sviluppatori deveno preoccuparsi delle seguenti cose: Java e JavaOS
JavaOs implementa un ambiente Java completamente autonomo.Ciò significa che le applicazioni sviluppate per la PJ gireranno su JavaOS e su tutti i dispositivi su cui esso.
JavaOS fornisce alla PJ i seguenti servizi: La figura sotto mostra l'architettura software usata per far girare la PJ su JavaOS. Come potete osservare dalla figura le applicazioni Java e le applets continuano a girare sullo strato della PJ che si compone sempre delle Java API, delle classi AWT e delle classi fondamentali per il supporto del networking e I/O.
Nello strato inferiore appare il JavaOS con tutti i servizi fondamentali per il funzionamento della PJ, supporto alla grafica e alla interfaccia a finestre, supporto ai protoccolli per la trasmissione dati quali TCP/IP-UDP, supporto per la gestine del file system NFS, supporto per le periferiche di rete ethernet, per la tastiera, il mouse ed il monitor.
Quindi si passa agli strati comprendenti il Java runtime e il Java kernel di cui abbiamo parlato in precedenza.
Infine possiamo osservare lo strato hardware, che può essere rappresentato da qualsiasi piattaforma su cui giri il JavaOS.

Vorrei concludere questa prima parte sottolineando che il contenuto tecnico di questo articolo dedicato al JavaOS è stato ragionevolmente mantenuto ai confini tra il neofita e l'utente avanzato, consentendo cosi una lettura scorrevole ed interessante nello stesso tempo.
Ricordo che nel prossimo numero di MB verrà trattata la seconda ed ultima parte dell'argomento, in esso troveremo ulteriori specifiche sul JavaOS.
 
 

  

 

MokaByte rivista web su Java

MokaByte ricerca nuovi collaboratori
Chi volesse mettersi in contatto con noi può farlo scrivendo a mokainfo@mokabyte.it