Pentru a simplifica interfata cu utilizatorul in cazul aplicatiilor complexe, grafica este o alegere naturala. Photon reprezinta un nou tip de arhitectura pentru interfete utilizator grafice (GUI), avand ca structura: un nucleu (55K) in jurul caruia ruleaza un set de procese cooperante. Rezultatul acestei arhitecturi unice :
In aceasta pagina este prezentata arhitectura unica a Photon microGUI-ului, un sistem de ferestre scalabil, care poate rula intr-un spatiu de memorie mai mic de 500K
|
Sistemul de operare QNX este un sistem
foarte robust datorita arhitecturii sale unice. Nucleul este format numai din operatiile
strict necesare unui sistem de operare, in timp ce componentele auxiliare cum ar fi, de
exemplu, sistemul de fisiere ruleaza ca procese separate. Avantajul acestei arhitecturi
este ca daca una din componentele auxiliare se blocheaza, nucleul continua sa functioneze. Chiar daca la prima vedere Photon microGUI pare un client/server clasic, folosit deja de sistemele X Windows, arhitectura Photon microGUI difera totusi, avand la baza conceptul prezentat in paragraful precedent. Photon difera deci de X Windows prin aceea ca numai un numar restrans de functii - cele "vitale" - sunt implementate in interiorul nucleului (serverului), restul fiind distribuite proceselor cooperante care ruleaza in jurul acestui nucleu. Aceste procese pot fi pornite sau oprite fara a reporni sistemul.
|
Nucleul Photon-ului si procesele cooperante |
Nucleul Photonu-lui creaza si gestioneaza un spatiu tridimensional abstract denumit spatiu al evenimentelor (3D event space). Fiecare din aplicatiile Photon plaseaza in acest spatiu unul sau mai multe planuri denumite regiuni. Aplicatiile folosesc aceste regiuni pentru a genera sau receptiona diferitele tipuri de evenimente din acest spatiu. O reprezentare intuitiva a spatiului evenimentelor si a regiunilor este prezentata in figura urmatoare:
Regiuni in spatiu de evenimente Driverele grafice sunt implementate ca procese care plaseaza o regiune sensibila la evenimentele de desen, in "varful" spatiului de evenimente. O regiune a unui driver grafic poate fi imaginata ca un ecran de fosfor care este iluminat de fotonii (evenimentele) care se "lovesc" de el. Un driver grafic creaza o regiune "iluminata de fotoni" |
Avantajul acestui concept este ca pot fi pornite simultan in acelasi spatiu al evenimentelor mai multe drivere grafice fiecare sensibile la propriile evenimentele de desen, fapt care permite lucrul cu mai multe placi grafice pe acelasi calculator sau in aceeasi retea. |
Se poate interactiona cu orice sesiune Photon, oricand si [de] oriunde in lume folosind Internetul sau conexiune directa. Modulul care permite aceasta, da automat controlul tastaturii si a mouse-ului sesiunii Photon a calculatorului de la distanta calculatorului local, afisand sesiunea respectiva pe intreg ecranul local. |
|
Multe aplicatii Photon vor avea un operator uman. Daca un operator de la un punct indepartat are nevoie vreodata de ajutor, poti prelua ecranul sau pe calculatorul propriu si sa urmaresti in mod direct ceea ce face. Mai mult, poti controla tastatura sau pointerul de mouse pentru a-i arata ce are de facut. | |
Pentru a permite rularea aplicatiilor sub
alte sisteme de operare, Photon implementeaza interfata utilizator de la distanta (Remote
User Interface). Tehnologia RUI poate fi implementata peste orice tip de conexiune fizica (LAN, serial (modem), TCP/IP). Evenimentele de desen sunt transmise unui proces numit PhRelay, care emuleaza un driver grafic. Acestea sunt trimise prin conexiune programului client Phindows - pentru Windows sau PhinX - pentru terminalele si statiile de lucru X Window |
Desktop-ul a fost proiectat special pentru programatori, oferind 9 console in locul uneia singure, help on-line complet, acces imediat la aplicatiile in mod text si multe altele. Pentru a face din Photon un mediu mai prietenos si mai productiv pentru utilizatori a fost adaugat suportul pentru tastatura compatibila CUA (Common User Acces). Suportul CUA permite lucrul rapid cu orice aplicatie Photon -inclusiv PhAB- evitand comutarea in mod repetat intre mouse si tastatura. |