Mediul XWindow. Dr. Sabin-Corneliu. Facultatea de Informatică Universitatea A.I.Cuza Iaşi, România ://www.infoiasi.

Similar documents
VISUAL FOX PRO VIDEOFORMATE ŞI RAPOARTE. Se deschide proiectul Documents->Forms->Form Wizard->One-to-many Form Wizard

Ghid de instalare pentru program NPD RO

Click pe More options sub simbolul telefon (în centru spre stânga) dacă sistemul nu a fost deja configurat.

PREZENTARE INTERFAŢĂ MICROSOFT EXCEL 2007

GRAFURI NEORIENTATE. 1. Notiunea de graf neorientat

Modalităţi de redare a conţinutului 3D prin intermediul unui proiector BenQ:

Split Screen Specifications

PROCESOARE NUMERICE DE SEMNAL DIGITAL SIGNAL PROCESSORS

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Parcurgerea arborilor binari şi aplicaţii

ARHITECTURI SOFTWARE PENTRU ÎNTREPRINDERI

Laboratorul 1. Primii paşi în Visual Basic.NET

TTX260 investiţie cu cost redus, performanţă bună

Aplicatii ale programarii grafice in experimentele de FIZICĂ

Pasul 2. Desaturaţi imaginea. image>adjustments>desaturate sau Ctrl+Shift+I

De ce calcul paralel?

Exerciţii Capitolul 4

Structura sistemelor de operare Windows şi Linux

2 MEDIUL BAZELOR DE DATE

Geographical data management in GIS systems

Split Screen Specifications

Capitolul V MODELAREA SISTEMELOR CU VENSIM

MODULUL 2 UTILIZAREA SISTEMULUI DE OPERARE WINDOWS VISTA CURSUL UTILIZAREA CALCULATORULUI PERSONAL; APLICAREA TIC ÎN ŞCOALĂ ŞI AFACERI

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

REŢELE DE COMUNICAŢII DE DATE

Un tip de data este caracterizat de: o O mulţime de date (valori є domeniului) o O mulţime de operaţii o Un identificator.

CURS Nivele de management al SAN Nivelul de stocare *I LTO Tape Library Specialist

Ghidul administratorului de sistem

CALCULATOARE NUMERICE

9.1. Structura unităţii de I/E. În Figura 9.1 se prezintă structura unui sistem de calcul împreună cu unitatea

Mail Moldtelecom. Microsoft Outlook Google Android Thunderbird Microsoft Outlook

Referat II. Arhitectura unei interfeţe avansate pentru un Sistem Suport pentru Decizii. Coordonator ştiinţific: Acad. prof. dr. ing. Florin G.

Sistemul de operare Windows (95, 98) Componenta My Computer

Press review. Monitorizare presa. Programul de responsabilitate sociala. Lumea ta? Curata! TIMISOARA Page1

O abordare orientată pe componente generice pentru crearea dinamică a interfeţelor cu utilizatorul

1. Introducere in instrumentaţia virtuală 2. Arhitectura unui instrument virtual 3. Medii de dezvoltare pentru instrumentaţia virtuală

Circuite Basculante Bistabile

Sisteme de operare şi programe specifice. Material de predare partea a I-a. Material de învăţare

PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT. Curs 1

riptografie şi Securitate

CAPITOLUL 2. FACILITATILE SI ARHITECTURA SISTEMULUI ORACLE

SUBIECTE CONCURS ADMITERE TEST GRILĂ DE VERIFICARE A CUNOŞTINŢELOR FILIERA DIRECTĂ VARIANTA 1

Programul de instruire ADM1 Reţele de comunicaţii

MODULUL 2 UTILIZAREA SISTEMULUI DE OPERARE WINDOWS XP CURSUL UTILIZAREA CALCULATORULUI PERSONAL; APLICAREA TIC ÎN ŞCOALĂ ŞI AFACERI

Tehnologia Informaţiei şi a Comunicaţiilor

Implementarea unei aplicaţii pentru sisteme e-learning cu capabilităţi multimedia streaming

6. MPEG2. Prezentare. Cerinţe principale:

Executive Information Systems

Sisteme informationale economice (3)

Prefaţă Programatorul este un creator de universuri pentru care este în întregime responsabil. Joseph Weizenbaum

ELEMENTE DE INTERFATA ALE UNUI SISTEM DE OPERARE

An Introduction to PHP. Slide 1 of :31:37 PM]

CURSUL 4 STOCARE ŞI VIRTUALIZAREA STOCĂRII ÎN SISTEME INFORMATICE

Application form for the 2015/2016 auditions for THE EUROPEAN UNION YOUTH ORCHESTRA (EUYO)

Reţele de calculatoare. Cursul nr. 2 Principiile reţelelor de calculatoare

Lucrul în reţea Serviciile de acces la distanţă (RAS): Conexiunile PPP

DIRECTIVA HABITATE Prezentare generală. Directiva 92/43 a CE din 21 Mai 1992

CERCETĂRI PRIVIND SECURITATEA AFACERILOR ELECTRONICE. STANDARDE ŞI PROTOCOALE PENTRU SECURITATEA AFACERILOR ELECTRONICE

Clasificarea internaţională a funcţionării, dizabilităţii şi sănătăţii

CE LIMBAJ DE PROGRAMARE SĂ ÎNVĂŢ? PHP vs. C# vs. Java vs. JavaScript

Ghid de instalare in limba romana TE100-S16 TE100-S24

EPI INFO. - Cross-tabulation şi testul 2 -

Cap. 1. Introducere în arhitectura sistemelor de calcul. 2. Date. Informaţii. Măsurarea lor. 1. Definirea sistemului electronic de calcul

Kompass - motorul de cautare B2B numarul 1 in lume

Comunităţile virtuale şi educaţia

SERVICIUL DE TELECOMUNICAŢII SPECIALE

IH49W01E. 49" IPTV Hotel Series

VIDEOPOINT CAPTURE 2.1

Introduction to Computer Graphics

IH32V03D. 32" IPTV Hotel Series

Cyclone V5 Teletext & Text Publishing System System Overview

DH22V02E. 22" Deluxe Hotel Series

GHIDUL UTILIZATORULUI DE REŢEA

Prezentare Modelarea Proceselor de Afaceri bazate pe Managementul de Cunoştinţe Partea I Impactul Managementului de Cunoştinţe la nivelul Firmei 5.

22METS. 2. In the pattern below, which number belongs in the box? 0,5,4,9,8,13,12,17,16, A 15 B 19 C 20 D 21

INTERNET. SISTEME MULTIMEDIA

ARHITECTURA CALCULATOARELOR 2003/2004 CURSUL 10

Marketing politic. CURS (tematică & bibliografie) Specializarea Ştiinţe Politice, anul III

Curs 5 Sistemul de semnalizare 7 (SS7).

Material de sinteză privind conceptul de intreprindere virtuală şi modul de implementare a mecanismelor care susţin funcţionarea acesteia

FIŞA DISCIPLINEI. 2.7 Regimul disciplinei. Examen. Obligatoriu

SISTEMUL INFORMATIONAL-INFORMATIC PENTRU FIRMA DE CONSTRUCTII

FIŞA DISCIPLINEI Semestrul Tipul de evaluare. Obligatorie. 2.7 Regimul disciplinei

Gândirea algoritmică - o filosofie modernă a matematicii şi informaticii

Introduction To LabVIEW and the DSP Board

Circuit de supervizare şi control cu interfaţă ethernet Coordonator ştiinţific, Asist. Drd. Ing. EPURE Silviu Absolventă, MIHNEA Dorina

Curriculum vitae Europass

Conferinţa Naţională de Învăţământ Virtual, ediţia a IV-a, Graph Magics. Dumitru Ciubatîi Universitatea din Bucureşti,

Operaţiile de sistem de bază

Managementul Proiectelor Software Principiile proiectarii

UTILIZAREA TEHNOLOGIILOR CONSILIEREA CARIEREI

Introducere. Tehnologii. Fast Ethernet şi Gigabit Ethernet Fibra optica High Speed Wireless LAN

2. Date despre disciplină 2.1 Denumirea disciplinei (ro) (en)

Free software and open source databases

CUPRINS CAP. 1. PREZENTARE GENERALĂ

IBM OpenPages GRC on Cloud

2016 Digital Terrestrial Television transition in Romania

DEZVOLTAREA LEADERSHIP-ULUI ÎN ECONOMIA BAZATĂ PE CUNOAŞTERE LEADERSHIP DEVELOPMENT IN KNOWLEDGE BASED ECONOMY

CERCETARE ŞTIINŢIFICĂ,

Computer Graphics. Introduction

Transcription:

1 Mediul XWindow Buraga Facultatea de Informatică Universitatea A.I.Cuza Iaşi, România http:// ://www.infoiasi.ro/~busaco/

2 Writing software is more fun than working. /usr/games/fortune

3 Cuprins Ce este XWindow? Caracteristici principale Modelul client/server XWindow Aplicaţia de bază XWindow Managementul interfeţei Dezvoltarea aplicaţiilor XWindow De la prezent la viitor

4 Ce este XWindow? XWindow System X11R6 (versiunea curentă), X11R7 (cea mai recentă) Sistem client/server de management al interfeţei grafice Independent de hardware & de sistemul de operare Dezvoltat de MIT (proiectul Athena 84) & DEC ( 83) Standardizat de Consorţiul X (1988) www.x.org Standard industrial pentru dezvoltarea de aplicaţii grafice

5 Ce este XWindow? Evoluţie: 1984: Consorţiul X Disponibilitatea în regim open source a X11 Suport pentru paradigma WIMP la nivel de reţea Similar SunTools, Mac OS 2.x 1991: XFree86 Suport hardware pentru PC-uri Similar Windows 3.1, Mac OS 4.x 2001: X.org / freedesktop.org Suport pentru dispozitive/periferice grafice moderne Similar Mac OS X, Windows 2000/XP

6 Caracteristici principale Bazat pe modelul client/server: Server controlează dispozitivele grafice (display, pointer al mouse-ului, ) Client program (aplicaţie) independent(ă) de server, posibil aflat la distanţă (pe altă maşină: staţii de lucru UNIX, PC-uri, ) Canal de comunicaţie realizează conexiunea dintre server şi client protocolul XWindow

7 Caracteristici principale Arhitectura generală a sistemului XWindow:

8 Modelul client/server X Clientul & serverul se găsesc pe aceeaşi maşină Clientul & serverul se găsesc pe maşini diferite

9 Modelul client/server X Modalitatea de execuţie a aplicaţiilor pe maşini aflate la distanţă este transparentă pentru utilizator

10 Modelul client/server X Modelul serverului X Mecanismul comunicării depinde de structura client/server-ului Pe aceeaşi maşină (UNIX): comunicare inter-procese Pe maşini diferite omogene (UNIX): TCP/IP Pe maşini diferite eterogene (UNIX şi Windows/Mac): TCP/IP

11 Modelul client/server X Mesaje (cereri) XWindow: Aplicaţie server (e.g., deschide fereastra, schimbă fundalul, ) Se realizează fără confirmare Periodice (aplicaţie server) (e.g., interogare mouse, paleta de culori) Cerere de informaţii de la server Evenimente (server aplicaţie)

12 Modelul client/server X Evenimente: Fiecare fereastră răspunde la seturi (diferite) de evenimente Se generează în mod asincron Evenimentele pot fi stocate într-o coadă de evenimente (la client) Se încearcă minimizarea traficului de reţea Exemple: pierderea focus-ului, apăsarea unei taste,

13 Modelul client/server X Serverul X Intermediar între programe (clienţi, aplicaţii) şi resursele unui sistem (I/O) Activităţi: Acces multi-utilizator la display Poate manipula structuri complexe (ferestre, fonturi) care sunt referite de clienţi prin ID-uri (numere) După lansare, este iniţializat de xinit Pentru Linux: XFree86 / X.org

14 Modelul client/server X Serverul X Display server Display screen Screen reprezintă hardware-ul pe care este desenat display-ul Un server poate controla mai multe screen-uri Se poate găsi pe o staţie UNIX, pe un terminal X dedicat, pe orice PC etc. Clientul X Poate fi activat de la o maşină la distanţă/locală prin intermediul rlogin, rsh,

15 Aplicaţia ia de bază X Trebuie să se conformeze specificaţiilor Consorţiului XWindow protocolul X Se poate dezvolta în orice limbaj suportat

16 Aplicaţia ia de bază X Clientul trebuie să: stabilească în prealabil conexiunea cu serverul determine caracteristicile serverului realizeze acţiunile implementate de programator, exploatând resursele grafice prin intermediul serverului X

17 Aplicaţia ia de bază X 1. Conectarea la server (XOpenDisplay) 2. Verificarea mediului (DisplayWidth, DisplayHeight, DefaultDepth) 3. Crearea ferestrei principale (XCreateWindow) 4. Afişarea ferestrei (XMapWindow, XMapRaised) 5. Execuţia aplicaţiei propriu-zise... 6. Distrugerea ferestrei (la ieşire) şi închiderea display-ului (XDestroyWindow, XCloseDisplay)

18 Managementul interfeţei ei Nu există o interfaţă standard X Componentele interfeţei sunt parte ale aplicaţiei (utilizând apeluri standard) Sistemul particular de interfaţă pe care îl utilizăm este decodificat de serverul X Interfaţa utilizează componente widgets O interfaţă X pune la dispoziţie un set de widget-uri definind look & feel-ul acesteia

19 Managementul interfeţei ei

20 Managementul interfeţei ei Interfaţa X Aceeaşi aplicaţie poate avea interfeţe diferite exploatate pe maşini diferite Componente: Application interface Management interface Componentele aplicaţiilor X

21 Managementul interfeţei ei Aplicaţiile X se construiesc peste nivelurile principale ale sistemului de dezvoltare X XLib Toolkits (Widgets & Xt Intrinsics)

22 Managementul interfeţei ei XLib Set de funcţii de bibliotecă de nivel-scăzut Este scris în limbajul C standard Implementează apelurile X de bază Se utilizează rar în mod direct Baza unor biblioteci de nivel mai ridicat Ferestrele în XLib Structuri fundamentale de date Stocate pe server Posedă identificatori unici definiţi la crearea ferestrelor Mărimea se măsoară în pixeli Originea (0, 0) este plasată în stânga-sus

23 Managementul interfeţei ei Evenimentele în XLib Mai multe aplicaţii grafice pot rula simultan Utilizatorul introduce datele folosind mai multe modalităţi (tastatura, mouse-ul, ) Pot fi generate de utilizator (click), de managerul de ferestre (resize) sau de aplicaţii (cut & paste) Plasate (de server) într-o singură coadă de evenimente spre a fi procesate Evenimentele sunt structuri de date trimise de fereastra care deţine focusul

24 Managementul interfeţei ei Evenimentele în XLib Dacă fereastra care deţine focusul nu poate prelucra evenimentul îl va trimite ferestrei părinte, până când: Evenimentul este acceptat de fereastră Evenimentul e captat de fereastra root, fiind ignorat Aplicaţiile pot aştepta evenimente (blocking) Aplicaţiile pot interoga serverul asupra apariţiei evenimentelor (polling) Un mesaj-eveniment este compus dintr-un set de ID-uri de ferestre, fonturi, culori etc.

25 Managementul interfeţei ei Procesarea evenimentelor while(1) { event = read (events); switch (event.type) { case mouse_press: if (event.window == ) } } case key_press: Avantaj Se poate realiza automat managementul evenimentelor Dezavantaj necesită cunoştinţe de programare orientată-eveniment

26 Managementul interfeţei ei X Toolkits X Intrinsics (Xt) set de widgets

27 Managementul interfeţei ei Xt (X Intrinsics) Standard al Consorţiului X Intermediar între XLib şi aplicaţie Utilizează OOP pentru a extinde XLib Permite construirea de componente de interfaţă (widgets) Utilizează o ierarhie de clase pentru a crea seturi de widgets Suportă orice tip de interfaţă

28 Widgets Managementul interfeţei ei Oferite de diverşi implementatori: Athena (MIT), Motif (OSF) în fapt e standard, OpenLook (AT&T), Widget fragment de cod reutilizabil şi configurabil care operează independent de aplicaţie pentru a realiza diferite interacţiuni Separă codul aplicaţiei propriu-zise de codul interfeţei cu utilizatorul

29 Managementul interfeţei ei Motif Widgets Se alocă dinamic Conţin informaţii de stare Posedă o clasă de bază ( nucleu ) conţinând resursele moştenite de celelalte widget-uri Fiecare widget va fi configurat via resurse (manipulate de un manager de resurse pus la dispoziţie de XLib) Realizează managementul aranjamentului ferestrelor Automatizează operaţiile de redesenare, rescalare etc.

30 Managementul interfeţei ei Motif Widgets Push-button Scrollbar Data entry area Composite widgets Shell widgets Popup-dialog box Special widgets

31 Managementul interfeţei ei Managerul de ferestre (window manager) Client special responsabil cu amplasarea şi dimensionarea ferestrelor principale ale aplicaţiilor pe display-ul serverului X Mediază cereri referitoare la resursele fizice ale display-ului (screen, resurse color, tastatură) Permite utilizatorului să manipuleze ferestrele şi să lanseze alte aplicaţii Defineşte comportamentul sistemului de ferestre folosit (e.g., suprapunerea, controlul focusului, )

32 Managementul interfeţei ei Managerul de ferestre mwm (Motif) twm Tab Window System (MIT) fvwm2 AfterStep WindowMaker KDE The K Desktop Environment GNOME The GNU Network Object Modeling Environment mediu pentru manageri de ferestre: Enlightment, Sawfish Medii desktop

33 Managementul interfeţei ei Mediul desktop context

34 Dezvoltarea aplicaţiilor iilor X Structura unui program X: Rutina principală Iniţializarea toolkit-ului Crearea widget-urilor Adăugarea funcţiilor de tratare a evenimentelor Apelarea widget-urilor (afişarea efectivă) Intrarea în bucla principală de procesare a evenimentelor Rutine-eveniment Funcţii definite de utilizator Apelate la apariţia unui eveniment particular Depind de tipurile de evenimente survenite

35 Dezvoltarea aplicaţiilor iilor X În afară de widget-uri, pot fi folosite şi gadget-urile Nu au ataşată nici o fereastră X Nu pot să-şi trateze propriile evenimente Evenimentele sunt tratate de widget-ul părinte Nu au acces la setul de resurse (e.g., culoare) Pot micşora numărul de ferestre X create Exemple: ArrowButtonGadget, LabelGadget

36 Dezvoltarea aplicaţiilor iilor X Limbaje: C/C++ X Toolkit Intrinsics Qt (Trolltech, folosit de KDE) GTK (GNOME Toolkit) Tcl/Tk PHP (PHP-GTK) Perl & Python (module pentru GTK) Object Pascal Java C# GTK# http://gtk-sharp.sourceforge.net/

37 Dezvoltarea aplicaţiilor iilor X Instrumente/platforme: KDevelop (KDE) Qt Designer (Trolltech) Specificarea interfeţei se realizează via XML Glade (GNOME) Kylix (Borland) Eclipse Mono (portare open-source a.net) MonoDevelop şi (multe) altele

38

39

40

41 De la prezent la viitor Instrumente de autoinstalare/autoconfigurare Hotplug hardware Utilizarea tehnicilor moderne de redare grafică Fără distincţie între caracterul 2D/3D Modularizare clară a funcţionalităţilor client/server Componente grafice de ultimă generaţie Transluciditate, grafică vectorială, animaţie

42 Noua infrastructură X (Jamey Sharp, 2006) De la prezent la viitor

43 De la prezent la viitor Un driver video X este compus actualmente din partea de redare 2D (DDX) & cea de redare 3D (DRI) Efort dublu de dezvoltare Soluţie mai bună: emularea operaţiilor 2D via acceleratorul 3D Un singur driver este suficient Performanţă superioară Compatibilitate cu viitorul (forward compatibility)

44 De la prezent la viitor Suport pentru redare composite: Ferestre translucide, cu forme nerectangulare, anti-aliased Manager distinct pentru fonturi Manager distinct pentru combinarea efectelor (compositing manager): Efecte de tip post-production Afişarea smooth (la nivel perceptual) a obiectelor grafice

45 De la prezent la viitor Suport pentru grafica vectorială: Cairo Model de redare bazat pe specificaţiile PDF (Portable Document Format) Permite aplicaţiilor/toolkit-urilor existente să deseneze judicios pe suprafeţe vizuale arbitrare API familiar SVG (Scalable Vector Graphics) Model declarativ bazat pe XML Pentru icon-uri, slide-uri, animaţii, redare în browser Reprezentări compacte API-uri complexe în curs de dezvoltare

46 De la prezent la viitor Suport pentru animaţii: Accentuarea unor conţinuturi Mutarea obiectelor de interfaţă Pictograme, miniaturi (thumbnails), cursoare animate Trebuie să satisfacă aşteptările utilizatorilor în ceea ce priveşte redarea conţinuturilor video (TV, filme, jocuri)

47 Rezumat Ce este XWindow? Caracteristici principale Modelul client/server XWindow Aplicaţia de baza XWindow Managementul interfeţei Dezvoltarea aplicaţiilor XWindow De la prezent la viitor

48 Întrebări?