Utente:Drugonot/Sandbox1
Nanodesktop è una libreria software open-source sviluppata presso la facoltà di ingegneria dell'Università degli Studi di Messina ed è rilasciata secondo la Nanodesktop license, una variante della licenza BSD.
Questa libreria consente ai programmatori la scrittura di applicazioni a finestre su dispositivi embedded, per i quali non sia già disponibile da parte del produttore un ambiente a finestre ufficiale. L'architettura della libreria permette ai programmatori di scrivere applicazioni portabili da una piattaforma hardware, preferibilmente di piccole dimensioni, ad un'altra e consente il porting, su dispositivi portatili, di librerie di carattere scientifico-universitario che normalmente girano su personal computer.
Architettura del software
[modifica | modifica wikitesto]Il sistema di librerie che fa parte della Nanodesktop distribution è orientato alla portabilità. Secondo l'architettura del sistema, al livello più basso si trova un componente detto HAL (Hardware Abstraction Layer), che si occupa di nascondere ai livelli superiori del software le differenze tra le diverse piattaforme.
Qualora si avesse intenzione di portare l'intero sistema Nanodesktop su una nuova piattaforma, bisognerebbe scrivere solo un nuovo HAL: i livelli software superiori, invece, continuerebbero a funzionare in modo trasparente, in quanto non sono collegati con l'hardware ma ognuno risponde solo al proprio livello inferiore.
Attualmente sono disponibili tre HAL:
- Il PSPE che si occupa di garantire la compatibilità del codice con l'emulatore PSPE.
- Il PSP che si occupa di garantire la compatibilità del codice con l'hardware PSP, senza però potere accedere a funzioni hardware a basso livello, come la gestione della rete, la generazione di segnali infrarossi raw o la decodifica mp3.
- Il KSU_PSP (Kernel Service To User Main), è quello che è attualmente più interessante per gli sviluppatori, consente al codice in user mode del programma scritto dall'utente di accedere a funzioni a basso livello normalmente richiamabili solo in kernel mode, questa modalità consente di usare tutte le capacità della libreria.
Caratteristiche
[modifica | modifica wikitesto]Il progetto Nanodesktop ha premesso il porting di diverse librerie di carattere scientifico universitario in ambiente PSP.
In particolare, sono state portate le librerie OpenCV di Intel (chiamate cxcore, cv e cvaux), in ambiente Nanodesktop. Le corrispondenti versioni di una libreria per ambiente Nanodesktop sono caratterizzate dal prefisso "nd", per esempio, le librerie OpenCV per PSP tramite Nanodesktop sono chiamate "ndOpenCV".
Tali porting di librerie non sono semplici ricompilazioni di codice che normalmente gira su PC, ma sono spesso modificate per adattarle alle esigenze di Nanodesktop. In particolare, una minima parte degli algoritmi presenti nelle ndOpenCv sono riscritti per usare un componente di Nanodesktop chiamato EMI (Enhanced Mathematical Interface). Questo componente è una API scritta prevalentemente in assembly che è in grado di sfruttare la VFPU della PSP per accelerare calcoli matriciali e trigonometrici. Con questa architettura è possibile ottenere anche buone prestazioni nell'esecuzione di algoritmi di visione artificiale su dispositivi tascabili.
Nanodesktop include un porting delle librerie FLite, chiamato ndFLite, distribuite in origine dalla Carnegie Mellon University, con le quali i programmatori possono accedere ad un sistema di sintesi vocale gratuito e liberamente utilizzabile sulla PSP. Sono incluse anche librerie per l'accesso ad internet, per il load/save di diversi formati grafici, componenti che traducono l'ANSI C in un formato compatibile con la PSP, driver per la webcam, gestori di tastiera virtuale e altre funzioni minori.
Il sistema consente l'integrazione dell'ambiente di sviluppo con l'IDE Dev-C++, e con lo pseudo-emulatore MIPS PSPE.
Gli utenti possono scrivere le applicazioni a finestre testandole in emulazione sul PC, e successivamente possono scaricarle sulla memory stick della PSP.
La libreria è dichiarata compatibile solo con le PSP-FAT (ovvero, il modello disponibile dal 2005) con firmware versione 1.50. Non è garantito il completo funzionamento su altri firmware, così come non è garantito il supporto per le PSP-SLIM, che per eseguire programmi homebrew devono montare dei firmware non ufficiali.
Collegamenti esterni
[modifica | modifica wikitesto]{{portale|informatica}} [[Categoria:Informatica]]