Enigma 2

Da SIF TeAm Wiki.

Enigma 2

Quando accendiamo uno dei nostri decoders "DREAMBOX-like", tutto quello che vediamo sul televisore e' gestito da un software che e' chiamato ENIGMA. Se il nostro decoder ha definizione TV di tipo non HD, il software e' in versione 1 (ENIGMA 1, semplicemente ENIGMA). Nei decoders con risoluzione HD, il software e' in versione 2 (ENIGMA 2). E' quindi lecito definire Enigma la GUI (Graphic User Interface, interfaccia grafica di utente) che il decoder presenta per rendere possibile il proprio funzionamento. Interfaccia grafica poco presente, dato che il monitor video deve essere in grado di visualizzare qullo che piu' ci interessa come appassionati di televisione, ma che deve essere comunque efficace per garantire tutte le funzioni necessarie.

ENIGMA si occupa di ricevere i comandi dal telecomando o da pulsanti presenti sul decoder, di gestire eventulai display, di visualizzare lo stream video, di selezionare la sorgente dello stream video, di proporre in overlay sullo stream video tutte le informazioni, i menu', i messaggi e quant'altro necessario alla gestione delle funzioni di un software cosi' complesso. Si occupa di utilizzare tutti i sitemi hardware sottostanti, cosi' che ogni parte elettronica possa essere gestita al meglio per ottenere il prodotto finale: vedere uno stream video.

Il passaggio da ENIGMA 1 ad ENIGMA 2 non e' stato un semplice cambio di versione, per il quale il software si arricchisce di nuove e piu' complete funzionalita'. ENIGMA 2 e' infatti espressione di una nuova filosofia implementativa, resa possibile dal miglioramento costante delle caratteristiche hardware dei decoders.

E' infatti essenziale ricordarsi che enigma e' un software, e come tale deve poter essere eseguito nell'ambito di un sistema operativo, piu' precisamente Linux. E' infatti Linux che si occupa di "tenere insieme" tutte le parti hardware del decoder, di riconoscere ogni singolo sottosistema elettronico e renderlo fruibile a chi sta sopra, ovvero ENIGMA. qualsiasi funzionalita' di ENIGMA passa quindi sempre e comunque da una o piu' funzionalita' garantita da Linux.

I primi decoders presentavano caratteristiche hardware tipiche della tecnologia allora disponibile: in generale, poca RAM. L'insieme sistema operativo-interfaccia non poteva qundi occupare piu' di tanto. Questo e' significato rendere operativi dei decoders che avevano un Linux semplificato al massimo e comandi di interfaccia il piu' snelli possibile. ENIGMA 1 e' quindi un software sviluppato in C/C++ e compilato in ogni sua parte, cosi' da ottenere il massimo livello di possibilita' d'azione con il minimo dispendio di risorse tecnologiche. Ogni piccola modifica ad ENIGMA o qualsiasi funzionalita' aggiuntiva (PLUGIN) ha richiesto la ricompilazione di codice. Dato l'espandersi del mercato dei decoders, diverse piattaforme hardware, diversi processori, hanno significato anche diverse modalita' di ricompilazione dello stesso codice, con serie difficolta' di manutenzione del codice stesso a risposta delle esigenze di ambienti diversi.

I decoders destinati agli stream video HD (High Definition, Alta Definizione), sono nati con capacita' hardware di livello piu' elevato. La RAM disponibile e' in quantita' maggiore, l'ambiente Linux e' indubbiamente piu' completo ed efficace. Gli sviluppatori hanno quindi pensato ad una nuova filosofia di sviluppo di ENIGMA: la versione 2 mantiene un corpo scritto in C/C++ che espone le funzionalita' del sistema GUI (kernel della GUI). Queste funzionalita' sono maggiori che in ENIGMA 1 (basi citare ad esempio il timeshift che nella versione 1 era funzionalita' aggiuntiva, nella versione 2 e' funzionalita' nativa). Le interfacce di accesso alle routines della kernel GUI versione 2 sono state sviluppate affiche' sia possibile sviluppare PLUGINS esterni in un linguaggio interpretato (PYTHON).

ENIGMA 2 risulta quindi piu' facilmente espandibile nelle sue funzionalita', dato che del codice scritto in python puo' essere eseguito immediatamente su sistemi che abbiano l'interprete a bordo (l'interprete python esiste in tutte le versioni di linux ed e' utilizzabile anche in ambiente Microsoft Windows). L'esecuzione risulta rallentata rispetto a programmi gia' compilati, ma l'efficacia e la praticita' di implementazione ed espansione di ENIGMA 2 son di portata piu' ampia che nel caso di ENIGMA 1.

Pur essendo un progetto di tipo opensource (SIFTeam Enigma 2), ed essendo piu' semplice la scrittura di codice che va ad espandere ENIGMA 2, non dovendo preoccuparsi di ambienti diversi e ricompilazione, un forte limite alla diffusione delle implementazioni per ENIGMA 2 e' sicuramente la non semplice rintracciabilita' di documentazione relativamente alle interfacce di utilizzo della GUI.

Strumenti personali
banner