Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilJan Pešan
1
UNIX 2. Uživatelská rozhraní © Milan Keršlágerhttp://www.pslib.cz/ke/slajdy http://creativecommons.org/licenses/by-nc-nd/3.0/ Obsah: ● terminál, příkazový řádek, shell ● textové a grafické uživatelské rozhraní ● X Window System, X protokol, X Server, ovladač ● tvorba obrazu v grafické kartě ● GPU, akcelerace 2D a 3D, OpenGL 9.3.2011
2
Řádkový terminál ● tzv. dumb terminal (glass tty) ● začínáme v levém horním rohu obrazovky ● z počítače přijde znak → vytiskneme ho ● přijde-li znak konce řádku → další znak na nový ● dojdeme-li na spodní řádek a má být nový řádek, ● odrolujeme všechny řádky nahoru (horní zmizí) ● na uvolněném řádku dál tiskneme znaky ● kurzor nelze nastavit na zvolenou pozici ● text neustále roluje nahoru, kde zmizí ● primitivní zpracování textu (editor ed, ex )
3
Samostatné terminály http://www.youtube.com/watch?v=7ND6oLXocR0 Zdroj obrázků: wikipedia.org
4
Řádkový terminál s příkazovým řádkem
5
Příkazový řádek ● stačí mu řádkový terminál ● první terminály neuměly smazat znak či obrazovku: ● Ahoj K^HLído, posílám pusu^Wprachy ● CTRL+h (^H) ruší předchozí znak ● CTRL+w (^W) ruší celé dosud napsané slovo ● vytváří komunikační rozhraní ● obslužný program → shell (bash, ksh, sh,...) ● zadáme příkaz, odešleme, spustí se program ● funguje stejně, jako cmd.exe ve Windows ● totéž poskytoval i DOS ( command.com )
6
Jak funguje shell ● vytváří rozhraní: příkazový řádek ● v podstatě „obyčejný program“ ● vstup připojený ke klávesnici ● výstup připojený na monitor ● zobrazí výzvu (prompt): [huzva@obelix ~]$ ● uživatel napíše příkaz (vstup) ● stisk Enter → zpracování příkazového řádku ● shell spustí program a čeká na jeho ukončení – fork(), exec(„program“), wait() ● opět zobrazení výzvy
7
Celoobrazovkový terminál ● umožňuje nastavit kurzor na libovolnou pozici ● kurzor určuje, kde bude vytištěn další znak ● též smazaní obrazovky, přepis existujícího znaku ● vznik celoobrazovkových aplikací ● např. vi (vim), mc (Midnight Commander), elinks,... ● vznik textového uživatelského rozhraní ● čárová grafika, tlačítka, menu, myš ● vše ovšem limitováno šachovnicí (VGA: 24x80) – nelze různé velikosti písma, čáry ani obrázky – dodnes např. účetnictví → rychlost, přehlednost
8
Textové uživatelské rozhraní
9
Grafické rozhraní ● GUI (Graphical User Interface) ● 1973 WIMP – první GUI, PARC (Xerox lab.) ● Window, Icon, Menu, Pointing device ● 1984 Macintosh – Apple ● 1984 X Window System (MIT) ● snaha o sjednocení GUI → přenositelné aplikace ● HW se ovládá přes API, GUI má ovladač k HW ● přesto v éře DOSu (1980) ● grafickou kartu ovládá sám program (např. T602) ● nepřenositelné aplikace, neustálé reimplementace
10
Terminál v GUI ● emulace terminálu ● speciální aplikace → v okně textový terminál – typicky volitelný font, velikost, sloupce i řádky – volba emulace konkrétního terminálu ● xterm → vzorová implementace pro X Window System – stal se standardem ● MS Windows ● PuTTY (zdarma, nemusí se instalovat) ● Linux ● gnome-terminal (GNOME), konsole (KDE),...
11
X Window System ● 1983 – MIT (současné označení X11, X11R6) ● navazuje na W, navíc asynchronní komunikace ● model klient (aplikace) – server (ovládá HW) – rozšiřitelný komunikační protokol (zpětná kompatibilita) – aplikace instruuje server, co má vykreslit ● kompletně řešeno v uživatelském prostoru ● výborná přenositelnost, univerzálnost ● problematická rychlost (ovládání HW není v jádře) ● modulární systém ● X Server, správce oken, panel → vše zaměnitelné
12
X Window System + GNOME
13
Schéma komunikace Grafická karta X server Aplikace Window manager X protokol
14
● komunikace mezi aplikacemi a X serverem ● model klient – server ● zajišťuje nezávislost na zařízení ● umožňuje použití sítě ● asynchronní komunikace – není nutné čekat na dokončení požadavku – jsou implementovány fronty (u serveru i klienta)
15
X Server ● dnes se v Linuxu používá X.org ● modulární stavba – jeden univerzální X server – ovladače grafických karet jako moduly ● ATI a nVidia mají binární ovladače bez zdrojových kódů ● pro většinu HW existují open source ovladače – bez nutnosti konfigurace ● může být /etc/X11/xorg.conf, /etc/X11/xorg.conf.d/ ● používá se jen ve speciálních případech – vypínání některých akcelerací při problémech se stabilitou – speciální konfigurace v případě selhání autodetekce – logování do /var/log/Xorg.0.log
16
Situace na IBM PC ● 1981 – MS DOS ● následník CP/M, inspirace Unixem (shell, adresáře) ● žádná podpora GUI → přímé ovládání HW ● 1990 – Windows 3.0 ● GUI nadstavba DOSu ● má ovladač, poskytuje jednotné API ● 1992 – XFree86 ● implementace X Windows System pro UN*X ● 2004 – X.org ● náhrada XFree86 (dnešní linuxové distribuce)
17
Ovladače grafické karty ● VESA standard neumí využít akcelerované fce. ● funkce VESA BIOSu nejsou optimalizované ● v DOSu se grafické funkce neřeší ● aplikace musí ovládání karty řešit individuálně ● aplikace nebo hra funguje jen s některým hardware ● GUI (grafické uživatelské prostředí) ● tj. Windows, unixové OS s X Window System ● aplikace používají univerzální API funkce ● API funkce realizována ovladačem konkrétní karty – ovladač tvoří výrobce HW
18
Vytvoření obrazu ● grafická karta má svoji paměť (VideoRAM) ● vyhrazená → paměť pouze pro graf. kartu ● sdílená → vyhrazená část operační paměti RAM ● monitor např. 1024 × 768, 32bpp ● 1 bod na 32 bitů → 2 32 barev (4 miliardy) ● obraz je řada bodů v řádcích (tzv. framebuffer) ● program zapisuje do VideoRAM čísla ● karta údaje čte a vykreslí příslušně barevné body ● 1024 × 768 × 32 = 25165824 bitů = 3 MB ● volná paměť obsahuje bitmapy fontů, skrytá okna... – urychlení vykreslování obrazu → akcelerace
19
Tvorba obrazu Vide o RAM Aplikace X server Grafický čip Monitor
20
GPU ● grafický procesor na videokartě ● původně specializovaný obvod pro 2D grafiku ● dnes obdoba procesoru v počítači ● orientován na vektorové výpočty ● provádí 3D výpočty ● dnes snaha využít jeho výpočetní potenciál – není jednoduché zapřáhnout odlišný procesor – specializované API pro X Window System ● offload dékódování video streamu: XvMC, VA API, VDPAU,... – podobně DxVA od Microsoftu pro Windows
21
Akcelerované 2D funkce ● problém rychlosti zobrazování ● velké přesuny dat (mezi RAM a VideoRAM) ● snaha o odlehčení práce CPU (řeší to GPU) ● blitting – přesuny obdélníkových částí bez CPU – typicky pohybující se postavička ve hře ● hardware cursor – ukazatel myši – není zapisován do obrazu, přidá se na pozici do výstupu ● clipping, off screen caching – rychlé překrývání objektů, fonty připravené ve videoRAM ● čára, obdélník, trojůhelník, kružnice, výseč...
22
3D akcelerace ● 2D akcelerace se dnes dělá pomocí 3D funkcí ● 3D objekty ● uloženy ve VideoRAM (i „neviditelné“ části) ● GPU renderuje objekty, řeší viditelnost, světlo,... ● obraz již nemá ve VideoRAM bitovou mapu 1:1 ● kompozitní správci oken ● program zapisuje (bitmapu) do bufferu ● buffer se skládají a transformují a pak zobrazení – umožňuje průhlednost oken, plochy na kostce, vlnění...
23
OpenGL ● 1992 – Silicon Graphics, Inc. ● dnes neziskové konsorcium Khronos Group ● programátorské API pro 2D a 3D funkce ● nezávislé na programovacím jazyku i HW platformě ● otevřený standard ● open source implementace → Mesa 3D ● původně pro 3D realizované pomocí CPU ● umí použít akcelerované funkce v HW karty
24
Direct3D ● 1996 – Microsoft (součást DirectX 2.0) ● proprietární 3D API s těsnou vazbou na HW ● nativní jen pro MS Windows a Xbox – uzamyká aplikace (hry) na MS platformě ● emuluje vertexové shadery, ale ne pixelové ● součást DirectX (ještě -Music, -Play a -Sound) ● od verze 8 též 2D (nahrazuje DirectDraw) ● dnes na úrovni OpenGL (design, rychlost) ● verze DirectX vzájemně nekompatibilní ● k nové verzi nutnost kupovat nový HW
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.