Home
 
 
Linux



Firewall >

QoS >

PowerPC >

PHP & Interbase >

 

 

Amiga

 


Storia >
Os 3.9 >
Amiga DE >

 

 

Autore

 


Autore:
Masetti Marco

email:
marcomas@libero.it

ultimo aggiornamento:
Venerdì, 19 Febbraio 2003

 

 
 

Amiga: AmigaDE e TAO

 

 VP (Virtual Processor)

 

Come detto il cuore di questa tecnologia consiste nel TAO Virtual Processor (VP), che è alla base anche dell'intent JTE.

VP è molto simile ad un processore hardware solamente che è virtuale, ossia il programmatore svilupperà il software per questo processore che ha i propri registri, un proprio formato "eseguibile" e un linguaggio assembler proprio.

 

 

 

Un tool esterno (traduttore) provvederà poi a tradurre il codice realizzato per questo processore "virtuale" nel codice macchina nativo del processore "reale" presente nella macchina che si utilizza, qualunque esso sia (x86, PowerPC, ARM, Motorola ColdFire, ...).

 

 

 

 

Il processore virtuale assomiglia per la cronaca ad un processore RISC a 32 bit.

Il formato eseguibile in particolare è stato ideato per essere compatto, in genere in un rapporto 1:1.5 rispetto ai binari prodotti per un processore hardware RISC.

Nel caso degli "eseguibili" JAVA, che come abbiamo visto sono in formato bytecode, JTE provvede un tool sempre scritto in VP (jcode), di ridottissime dimensioni che provvede a prendere i bytecode e a convertirli in formato VP, il codice VP ottenuto verrà quindi sottoposto al "traduttore" (in genere di 50/80 Kilobytes appena) sviluppato da TAO che provvederà appunto a tradurre il formato VP nel codice macchina nativo del processore (x86, RISC) presente e a renderlo disponibile per l'esecuzione.

A questo punto si potrebbe ritenere che il processo sia molto simile a quello effettuato normalmente da una qualsiasi JVM standard, ma in realtà non lo è ed anzi permette notevoli vantaggi.

In particolare le dimensioni del traduttore come degli altri tool realizzati in VP sono ridottissime quindi non occupano inutilmente memoria, né richiedono tempi lunghi di accesso al disco per il caricamento in memoria, né di un utilizzo estremo del processore, né di eccessiva energia (batteria) nel caso di apparecchi embedded, telefonini.

Anche i pacchetti Java (librerie) sono stati ottimizzati e portati in VP per ottenere prestazioni ottimali.

Il codice VP viene tradotto ossia compilato in base al processore (Pentium, PowerPC, …) presente al momento del caricamento (in genere molto veloci date le dimensioni ridotte dei file VP) ed eseguito come un normale file eseguibile compilato, quindi ciò è differente dal caso tipico di JAVA che utilizza una combinazione interpretazione + compilazione (JIT).

Queste caratteristiche lo rendono ideali in particolare per i dispositivi embedded, per i palmari, per i telefonini, PDA, SmartCard, in particolare se utilizzati con Personal Java.

In genere in molti casi si è risusciti, in base ad esperimenti effettuati da TAO, a ottenere risultati fino a 10 volte più veloci di altre implementazioni della JVM e 10 volte più compatte.

Riassumendo i punti di forza del VP sono:

  • Compattezza dei file (caricamento da hard-disk o trasferimento via rete immediati)
  • Utilizzo non di classi di tool (caso JAVA), ma tool singoli per rapido caricamento e compilazione
  • Traduzione codice JAVA -> VP -> CPU e VP -> CPU veloce
  • Utilizzo memoria contenuto
  • Portabilità (utilizzo su una macchina qualsiasi avente uno dei processori supportati)
  • Sviluppo in C/C++/JAVA/VP

 

 

 

 Intent media Libreria

 

TAO, ad esempio, ha sviluppato una serie completa di librerie in grado di offrire diversi funzionalità grafiche avanzate con caratteristiche molto interessanti:

  • Alpha blending
  • Tool per primitive grafiche, incluso poligoni con texture
  • Font scalabili e con anti-alias, supporto TrueType e Type 1 Postscript fonts
  • Supporto per i formati di immagine classici
  • Tools per la riproduzione di filmati
  • GUI (Graphical User Interface) completa di bottoni, menu, finestre
  • Meccanismi di refresh dello schermo ottimizzati

 

 

 

Immagine da tao-group.com

 

Immagine da redloop

 

 

Questi toolkit possono essere utilizzati e integrati ad esempio con le API AWT di JAVA, e offrono ottime prestazioni, ciò è dovuto anche al fatto che diversamente da JAVA quando un metodo (procedura) viene chiamata non viene caricata in memoria l'intera classe che la contiene ma esclusivamente il tool/metodo (procedura) richiesto, che viene poi messo a disposizioni di tutte le applicazioni presenti. Una volta terminato l'utilizzo può essere rimosso.

Le librerie naturalmente sono tutte realizzate in VP e complessivamente consistono in appena 150KB (!) e sono inoltre completamente portabili (si possono utilizzare su tutte le macchine aventi uno dei processori supportati). La compattezza del codice ha un ruolo fondamentale in quanto consente, come già detto, di poter caricare, trasferire via rete, compilare i tool in tempi davvero ridotti.

TAO ha inoltre provveduto ad incorporare anche le API grafiche Renderware 3D (utilizzate anche sulla playstation) e il sistema audio SSEYO Koan.

 

 

 

<<-  Indietro        1 2 3 4      Avanti  ->>