Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

UNIX 3. Unixová uživatelská rozhraní © Milan Keršláger

Podobné prezentace


Prezentace na téma: "UNIX 3. Unixová uživatelská rozhraní © Milan Keršláger"— Transkript prezentace:

1 UNIX 3. Unixová uživatelská rozhraní © Milan Keršláger 16.11.2016 http://www.pslib.cz/ke/slajdy http://creativecommons.org/licenses/by-nc-nd/3.0/

2 Rozhraní prvních počítačů ● první počítače bez rozhraní ● program na propojovací desce ● vstupy a výstupy dat – děrné štítky, děrná páska, později magnetická páska ● novější něco jako obyčejná kalkulačka ● obsluhováno jednoduchým programem (monitor) ● numerická klávesnice a displej s čísly ● vložím adresu, zobrazí se její obsah, lze ho změnit ● po vložení strojového kódu skok na adresu (začátek)

3 Znakový terminál ● první rozhraní současného stylu ● připojeno sériovým kabelem (half-duplex) ● umí tisknout znaky přijaté od počítače ● vlastně znaky vyslané programem na výstup ● CRT obrazovka, 24x40, 12x80 znaků apod. ● obsah obrazovky si terminál musí pamatovat ● umí odeslat znaky počítači ● nejprve jen velká písmena z ASCII (ADM-3A) ● malá klávesnice (písmena, čísla, ESC, CTRL)

4 Řádkový terminál (viz obr) ● 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 )

5 Samostatné terminály

6 Řádkový terminál s příkazovým řádkem

7 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 ● zadáme příkaz, odešleme, spustí se program ● funguje stejně, jako cmd.exe ve Windows ● totéž poskytoval i DOS ( command.com )

8 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ř. editor „ vi “ ● 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

9 Celoobrazovková aplikace

10 Terminál a aplikace ● program neví, jaké schopnosti terminál má ● černobílý, inverzní či podtržený text, barevný ● různé řídící kódy ● některé terminály se staly standardem (vt100 atp.) ● databáze vlastností terminálů ● termcap, terminfo, curses ● terminál oznámí svůj název (vt100, xterm, linux,...) ● aplikace využije databázi pro zjištění detailů ● k dispozici knihovny, programátor má jednotné API

11 Konzole ● terminál pevně připojený k počítači ● původně sloužil ke správě systému ● pro běžnou práci terminály (+operátoři) ● propojení sériovou linkou (i telefonní) ● konzole fungovala hned po zapnutí – systémová a diagnostická hlášení ● každé IBM PC má jen terminál ● zjednodušení komunikace, zapojení ● možnost zrychlení zobrazování

12 telnet ● připojení ke vzdálenému počítači ● umí využít TCP/IP (tj. počítačovou síť) ● vytvoření textového terminálu – podporuje celoobrazovkový režim ● posílání znaků oběma směry ● řídící znaky mají přednost – např. přerušení programu (CTRL+c) ● na lokálním terminálu se zobrazuje výstup programu spuštěného na vzdáleném počítači ● moje klávesnice odesílá znaky na vzdálený počítač ● v primitivní formě součást MS Windows (od Win95)

13 ssh ● telnet používá otevřený text ● stisknu klávesu, vyšle se datagram s písmenem ● program pošle znak, odeslán datagram zpět ● vše lze odposlouchávat → problém – přihlašovací jméno, heslo, ale i obsah obrazovky ● ssh realizuje telnet, ale šifrovaně ● asymetrická kryptografie (2 klíče: privátní + veřejný) ● podporuje kompresi, vytváření tunelu ● 1995 – univerzita Helsinki, Finsko – reakce na hromadné odposlouchávání hesel

14 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) ● vyhodnocení → zpracování příkazového řádku ● shell spustí program a čeká na jeho ukončení – fork(), exec(„program“), wait() ● zobrazení výzvy

15 Zpracování příkazového řádku ● pořadí zpracování (pro BASH) ● parsování příkazového řádku ● uložení úvodních přiřazení do proměnných ● uložení přesměrování ● expanze žolíkových znaků ● rozlišení: příkaz argument1 argument2 argumen3... ● vyhodnocení přesměrování ● vyhodnocení, dosazení a naplnění proměnných ● spuštění programu + čekání na jeho ukončení ● přečtení návratového kódu programu

16 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 ● nepřenositelné aplikace, neustálé reimplementace

17 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 → zaměnitelné

18 X Window System + GNOME

19 Schéma komunikace Grafická karta X server Aplikace Window manager X protokol

20 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),...

21 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 ● de-fakto standard Hercules, VGA ● 1989 – VESA ● 1990 – Windows 3.0 ● GUI nadstavba DOSu ● má ovladač, poskytuje jednotné API ● 1992 – XFree86 ● implementace X Windows System pro UN*X

22 X.org ● 2004 ● XFree86 mění licenci ● X.org přebírá poslední kódy a iniciativu – velký zájem tvůrců distribucí Linuxu – tím opuštěno XFree86 ● modulární stavba – X Server, ovladače, knihovny, další programy ● v současnosti – plně implementována 2D akcelerace – open source implementace 3D akcelerace ● Intel, ATI (nVidia se neúčastní, ale projekt Nouveau)

23 API pro 3D ● OpenGL ● tradičně unixové systémy ● MS Windows má svoji implementaci – DirectX obsahuje Direct3D, což je ekvivalent OpenGL ● abstraktní API pro programátory – následuje vývoj hardware, ale není na něm závislé ● co neumí hardware, řeší se softwarově – v MS Windows není zvykem → podpora prodeje HW ● X Server má tzv. state tracker – systém má ponětí o tom, co se v GPU děje

24 Současný vývoj ● X Window System má starý návrh ● několik projektů se neprosadilo (Y, Xgl) ● zatím se jde cestou rozšiřování X protokolu ● Wayland ● nový projekt, plně postaven nad 3D ● zpětná kompatibilita s X Window System – důležité pro hotové aplikace ● další cíle ● non-root provoz X Serveru, multiinput/multioutput ● sjednocení vstupních metod (čínské znaky atp.)

25 Národní prostředí ● locale ( příkaz pro vypsání nastavení národního prostředí ) ● uloženo jako proměnné prostředí ● cs, cs_CZ, cs_CZ.UTF-8 (jazyk, stát, kódování) – rómština v ČR a Rumunsku bude odlišná ● def. třídění podle abecedy, zápisy čísel, datumu,... ● i18n (internationalisation) ● program je schopen pracovat s národními znaky ● korektní inicializace, lokalizované funkce (knihovny) ● L10n (localisation) ● překlad hlášení programu (katalogy.PO)

26 Příklad nastavení [huzva@obelix ~]$ locale LANG=cs_CZ.UTF-8 LC_CTYPE="cs_CZ.UTF-8" LC_NUMERIC="cs_CZ.UTF-8" LC_TIME="cs_CZ.UTF-8" LC_COLLATE="cs_CZ.UTF-8" LC_MONETARY="cs_CZ.UTF-8" LC_MESSAGES="cs_CZ.UTF-8" LC_PAPER="cs_CZ.UTF-8" LC_NAME="cs_CZ.UTF-8" LC_ADDRESS="cs_CZ.UTF-8" LC_TELEPHONE="cs_CZ.UTF-8" LC_MEASUREMENT="cs_CZ.UTF-8" LC_IDENTIFICATION="cs_CZ.UTF-8" LC_ALL=


Stáhnout ppt "UNIX 3. Unixová uživatelská rozhraní © Milan Keršláger"

Podobné prezentace


Reklamy Google