MokaByte Numero 12 - Ottobre 1997

 
JavaOS: il Sistema Operativo
 
di
Rocco Mondo
Secondo ed ultimo articolo dedicato al JavaOS : caratteristiche tecniche e performance nel mirino

 

  



 

In questa seconda ed ultima parte parleremo di alcune caratteristiche avanzate del JavaOS, focalizzando la nostra attenzione sui servizi ed i tools disponibili, nonchè sulle performance e sulle reali possibilità di portatilità del sistema.


JavaOS: Caratteristiche Avanzate
In quest'ultima sessione, parleremo in modo più approfondito delle funzionalità avanzate del JavaOS, pertanto è bene cercare di focalizzare la propria attenzione sullo schema proposto nella prima parte e che per ragioni di comodità ripropongo di seguito :

C. A. : il Kernel di JavaOS
Come potete osservare dallo schema riportato sopra il kernel di un sistema operativo è lo strato più basso del sistema, quello cioè su cui pesa tutta la struttura.Infatti quando una applicazione o un applet gira su JavaOS, il Java runtime e il Java kernel si occupano di gestire sia il programma che gli strati intermedi (awt, grafica, funzioni per il neworking e per I/O) tra il programma e il kernel.
Ancora il kernel di Java contiene delle funzioni necessarie per il funzionamento della Virtual Macchine, esse si possono dividere nelle seguenti categorie:

Il bootstrap (cioè quell'insime di operazioni che vengono effettuate all'avvio del sistema operativo) identifica e schematizza le varie parti della piattaforma hardware, ROM, RAM, CD-ROM, floppy e tutti i tipi di HD.Oltre queste operazione il codice di bootstrap si preoccupa di allocare diverse aree di memoria, tra cui la heap per il Java e le sue applicazioni, e quelle per i diversi dispositivi di I/O oltre a quella per il DMA (Direct Memory Access).Il bootstrap provvede anche a mappare i diversi dispositivi hardware con i relativi drivers di gestione.

La presenza di un supporto di thread permette alla Java Virtual Machine di gestire dozzine di thread che tipicamente concorrono all'interno del sistema.
Per semplificare ed ottimizzare la gestione di questi thread, il sistema di protezione della memoria è stato sviluppato in linguaggio Java e permette di far girare JavaOs e tutte le applicazioni all'interno di un singolo spazio.

Come accennato in precedenza JavaOs per funzionare non richiede una MMU (Memory Management Unit), ma se essa è presente la sfrutta per creare un range contiguo di memoria, ottimizzandone gli accessi.
Il linguaggio di programmazione Java non fa uso dei puntatori e della loro matematica, quindi non accede direttamente alla memoria ma incapsula tutti gli accessi attraverso gli oggetti e le classi semplificando cosi lo sviluppo di applicazioni che risulteranno sicuramente più robuste ed efficienti.

C. A. : Java Virtual Machine
In un sistema compatibile Java come il JavaOS la VM (Virtual Machine) ha il compito di interpretare tutti i file di tipo bytecodes e di supportare tutta l'infrastruttura del sistema JavaOS.
Essa infatti oltre ad eseguire i programmi esegue buona parte dei processi del JavaOS, dalle classi di sistema a quelle dedicate per la manipolazione della memoria RAM, finendo alla gestine dei multithread.

C. A. : Device Drivers
Tutti i drivers per i dispositivi sono stati scritti in linguaggio Java, permettendone così una facile portatilità.
Esistono comunque alcuni drivers che non possono, per diverse ragioni, essere scritte in puro linguaggio Java, questa parte di codice è stata sviluppata in linguaggio C attraverso delle funzioni facilmente portatili. Le classi che si occupano di accedere alla memoria per modificarne i byte o le words memorizzate, cosi come la classe che si occupa di gestire gli interrupt non sono disponibili per nessuna applicazione Java, queste sono specifiche per il JavaOS.

Oggi esistono molti driver Java per differenti dispositivi, in generale è stata coperta tutta la fascia di drivers che riguardano le piattaforme SPARC e X86, ma molte terze parti stanno lavorando per fornire un ventaglio molto ampio di drivers per diverse piattaforme.

C. A. : Network Protocol Suite
JavaOs include una suite molto vasta di protocolli per il supporto del networking, essi sono stati scritti utilizzando esclusivamente il linguaggio di programmazione Java. In questa suite sono incluse funzionalità di base per il trasporto dei paccheti e meccanismi per il routing, tutti orientati verso gli standard TCP, UDP, IP e ICMP.
JavaOS usa sia il DNS che il NIS per la gestione dei nomi sul server e per la gestione dei nomi e delle password degli utenti durante il login.
Ancora esso supporta il reverse ARP ed il protocollo DHCP che permette di supportare l'allocazione dinamica di un indirizzo IP (Internet Protocol).

C. A. : Window e Graphics
Oltre ad una fornitissima suite di protocolli per il networking, JavaOs è fornito di una vastissima libreria di funzionalità per la gestione dell'interfaccia grafica e della grafica in genere.
La libreria di cui parliamo si chiama Tiny AWT, come la Abstract Window Toolkit essa è una libreria astratta di elementi grafiche e di interfaccia come pulsanti, menus, bottoni e barre di scorrimento.

Ultime considerazioni
Vorrei concludere questo articolo sul JavaOs facendo ancora alcune considerazioni;

E' importante sottolineare che per poter supportare il JavaOS sono necessari solo 4 MB di ROM e 4 MB di RAM.
Nei 4 MB di ROM è contenuto tutto il codice fondamentale relatico al S.O. cioè : kernel, drivers, JVM, classi standard i componenti fondamentali per l'interfaccia grafica e per il networking più tutto il codice relativo al browse HotJava.La ROM include circa 1 MB di bitmaps rappresentanti diversi tipi di fonts nelle varie rappresentazioni di stili e grandezze.
Il resto della memoria RAM è resa disponibile per far girare ed interaggire applets,applicazioni e sistema operativo.

Un particolare molto interessante sta nell' interfaccia utente che permetterà di gestire il sistema operativo e di farlo interaggire con le varie applicazioni e/o applets, essa si baserà su una combinazione di HotJava e HotJava View, che non vestiranno più i panni di semplici browse ma avranno il compito di gestire tutto ciò che riguarda il sistema operativo.
Il concetto di gestione di un sistema operativo tramite pagine HTML e browse lo ritroviamo nell'ultima versione del S.O. SOLARIS di SUN, in questo caso però la gestione è limitata, mentre nel JavaOS l'HotJava diventrà un elemento integrato e fondamentale del S.O.

Tra le tante caratteristiche citate nell'articolo vorrei sottolineare che JavaOs grazie alla sua struttura altamente stratificata permette di adattarsi con facilità a varie esigenze e a diversi dispositivi, richiedendo loro poche risorse fisiche.
In particolare JavaOS può essere usato dal personal all' intranet computers e a dispositivi di più largo consumo.
Il supporto del protocollo DHCP lo rende un sistema ideale per le reti intranet, grazie a tale protocollo è possibile allocare dinamicamente un nuovo indirizzo IP, senza l'intervento dell'amministratore d rete per un eventuale updating del sistema.
La Piattaforma Java è ideale per lo sviluppo e la vendita di applicazione MIS, esse infatti sono compatte e veloci pronte per essere scaricate sul proprio dispositivo di lavoro dalla rete Intranet/Internet.
Concludo ricordando che attualmente JavaOS è disponibile per le piattaforme hardware basate sul set di istruzioni per microprocessori SPARC e x86, l'attuale versione si basa sul JDK 1.0 e sono in fase di sviluppo le seguenti implementazioni :

E' evidente che vi terremo aggiornati sugli sviluppi prossimi di questo promettente Sistema Operativo. 

Bibliografia

 
 

MokaByte rivista web su Java

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