Wprowadzenie Do Systemu X Window
Total Page:16
File Type:pdf, Size:1020Kb
Wprowadzenie do systemu X Window Witold Paluszy´nski Katedra Cybernetyki i Robotyki Politechnika Wroc lawska http://www.kcir.pwr.edu.pl/~witold/ 2001–2013 Ten utw´or jest doste֒ pny na licencji Creative Commons Uznanie autorstwa- Na tych samych warunkach 3.0 Unported Utw´or udoste֒ pniany na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach. Udziela sie֒ zezwolenia do kopiowania, rozpowszechniania i/lub modyfikacji tre´sci utworu zgodnie z zasadami w/w licencji opublikowanej przez Creative Commons. Licencja wymaga podania oryginalnego autora utworu, a dystrybucja materia l´ow pochodnych mo˙ze odbywa´c sie֒ tylko na tych samych warunkach (nie mo˙zna zastrzec, w jakikolwiek spos´ob ograniczy´c, ani rozszerzy´c praw do nich). Za lo˙zenia i historia systemu X window System X Window zosta l opracowany na uniwersytecie M.I.T. w roku 1984 jako standard przemys lowy tworzenia system´ow okienkowych, niezale˙znych od platformy sprze֒ towej i programowej, w ´srodowisku sieciowym. W za lo˙zeniach mia l by´c zaimplementowany powy˙zej systemu operacyjnego komputera, i umo˙zliwia´c komunikacje֒ (wy´swietlanie okienek i obrazk´ow) mie֒ dzy r´o˙znymi rodzajami komputer´ow, r´o˙znych producent´ow, z gdzie indziej napisanym .oprogramowaniem, i by´c mo˙ze pod kontrola֒ innego administratora systemu Cel sformu lowany przez tw´orc´ow systemu zosta l osia֒gnie֒ ty. W roku 1987 wprowadzono wersje֒ 11 systemu (nazywanego te˙z X11), kt´ora jest jego bie˙za֒ca֒ wersja֒. W tym czasie powsta lo kilka kolejnych wyda´n (release) rozszerzaja֒cych funkcjonalno´sci systemu. Najnowszym jest wydanie 7, tzw. X11R7, z roku 2005 (11 lat po R6). Jednak poza pewnymi rozszerzeniami zasadniczy protok´o l komunikacyjny systemu X Window pozosta l w wersji 11 niezmieniony, i programy uruchomione np. w roku 1987 moga֒ komunikowa´c sie֒ z programami aktualnie kompilowanymi. ,X Window nadzoruje obecnie X Consortium zrzeszaja֒ce producent´ow, firmy i organizacje zainteresowane u˙zytkowaniem i rozwojem systemu. System X Window — wprowadzenie 3 System X Window — znaczenie spo leczne Od pocza֒tku system X Window by l projektem otwartym — zak lada l ca lkowita֒ jawno´s´c opracowanej koncepcji i zamiar udoste֒ pnienia systemu zainteresowanym jednostkom. M.I.T. od pocza֒tku udoste֒ pnia l wszystkie opracowane programy w wersji ´zr´od lowej zar´owno producentom oprogramowania, jak i u˙zytkownikom. Mie֒ dzy innymi dlatego system zosta l od pocza֒tku zaakceptowany przez mie֒ dzynarodowe konsorcjum producent´ow sprze֒ tu komputerowego jako standard systemu okienkowego, i koncepcja tego systemu jest najpowszechniej .przyje֒ ta֒ koncepcja֒ takiego systemu System X Window — wprowadzenie 4 Model konstrukcji programu graficznego Tradycyjny schemat programu graficznego Model X Window programu graficznego biblioteka procedur gra− biblioteka procedur gra− Program zródlowy ficznych zamieniajacych ficznych zamieniajacych Program zródlowy operacje graficzne wyso− operacje graficzne wy− wywolania procedur kiego rzedu na operacje sokiego rzedu na wywo− wywolania procedur wysokiego rzedu two− obslugujace konkretne lania protokolu X nie− wysokiego rzedu two− rzacych obiekty graficzne urzadzenie wyswietlajace zalezne od systemu ani rzacych obiekty graficzne sprzetu wyswietlajacego kompilator kompilator Program binarny Program binarny kod obsluguje konkretne kod wysyla polecenia urzadzenie graficzne protokolu X Window do serwera serwer X Window odbiera polecenia pro− tokolu X Window i obsluguje konkretne urzadzenie graficzne SIEC System X Window — wprowadzenie 5 Podstawowe pojecia֒ i architektura systemu X Window Sk ladniki systemu X Window: ,(serwer ekranowy: urza֒dzenie u˙zytkownika (ekran, klawiatura, mysz • i program obs luguja֒cy; najcze´s֒ ciej serwer jest uruchamiany na stacji roboczej albo komputerze typu PC, aczkolwiek istnieja֒ sprze֒ towe realizacje serwer´ow X Window, klienty: programy wy´swietlaja֒ce; moga֒ by´c uruchamiane na tym samym • komputerze co serwer X Window, albo gdziekolwiek w Internecie, w tym r´ownie˙z z komputera o innej architekturze, procesorze, systemie operacyjnym, • protok´o l X komunikacji klient´ow z serwerami. System X Window — wprowadzenie 6 Serwer X Window Rola serwera X Window — obs luga zdarze´nserwera: • odbieranie sygna l´ow od myszy i z klawiatury oraz przekazywanie ich klientowi aktywnemu (ang. focus), • odbieranie polece´n i zapyta´n klient´ow i ich realizacja. Serwer X Window jest programem, kt´ory standardowo nazywa sie֒ X, zatem normalnie jego uruchomienie polega po prostu na wywo laniu tego programu. Uruchomienie go lego”serwera X Window jest niewystarczajace, poniewa˙z ֒ ” pomimo i˙z jest on programem u˙zytkownika, sam nie mo˙ze by´c przez niego sterowany. Co najmniej pierwszy klient musi by´curuchomiony z zewnatrz.֒ Tradycyjnie, najwa˙zniejszym klientem, zwykle uruchamianym ,w domy´slnej konfiguracji, by l emulator terminala, np. xterm. Dzie֒ ki niemu u˙zytkownik serwera uzyskiwa l zdolno´s´c uruchamiania dowolnych program´ow okienkowych (klient´ow X Window), konfiguracji systemu, i og´olnie pracy. System X Window — serwer 7 Program xinit Program xinit pozwala wygodnie uruchamia´c serwer X Window. Wywo luje on serwer X, i od razu powoduje wykonanie skryptu (pliku) ${HOME}/.xinitrc: xedit -geometry -0-0 ~/.xinitrc & xclock -geometry -0+0 & xset s on s 300 xsetroot -solid ’#006060’ xterm Pierwsze dwa wiersze uruchamiaja֒ klienty okienkowe jako procesy t la (& na .ko´ncu). Programy te pracuja֒ trwale, do momentu ich jawnego zako´nczenia ,Kolejne dwa wiersze uruchamiaja֒ klienty X Window, kt´ore konfiguruja֒ serwer wydaja֒c mu pewne polecenia. Nie wy´swietlaja֒ one okienek, i szybko ko´ncza֒ .prace֒ , dlatego nie jest konieczne ich uruchamianie w tle Ostatni wiersz uruchamia zn´ow trwa ly”program okienkowy xterm. Jest on ” uruchamiany jako pierwszoplanowy, poniewa˙z po wykonaniu ca lego skryptu xinit zamyka serwer X i ko´nczy prace֒ . Gdyby ostatni klient by l uruchomiony w tle, ca la sesja by laby kr´otka i zosta laby automatycznie zamknie֒ ta. Wykonanie ostatniego klienta w pierwszym planie powoduje, ˙ze sesja trwa dop´oki dzia la ten ostatni klient. Pe lni on wie֒ c role֒ steruja֒ca֒ dla serwera X Window. Zako´nczenie xterm przez u˙zytkownika powoduje r´ownie˙z zako´nczenie sesji okienkowej. System X Window — serwer 8 Konwencje i mechanizmy systemu X Window :Zwr´o´cmy uwage֒ na pewne wbudowane mechanizmy systemu X Window ֒:Operacje mysza • lewy klawisz myszy wybiera i zaznacza (r´ownie˙z 2-click, 3-click), • ´srodkowy wkleja zaznaczony tekst, • prawy uruchamia menu kontekstowe (je´sli klient ma takie). — Stos okienek — Okienka wy´swietlane sa֒ na ekranie w kolejno´sci stosowej te p´o´zniej wy´swietlone moga֒ przykry´c te wcze´sniejsze. Ten stos okienek jest sta ly i u˙zytkownik nie mo˙ze nim sterowa´c. Je´sli jednak klient wy´swietlaja֒cy okienko na szczycie stosu zostanie zako´nczony, to ods loni sie֒ okienko poprzedniego klienta, itd. Wyb´or okna/klienta aktywnego (focus) — Okno w kt´orym jest wska´znik myszy jest aktywne. Ten klient otrzymuje znaki z klawiatury i zdarzenia myszy. Gdy wska´znik myszy jest w tle ekranu, ˙zadne okno nie jest aktywne. Nie potrzeba klika´c na okienko, aby uczyni´c je aktywnym. Jednocze´snie aktywno´s´c okienka nie jest zwia֒zana z wy´swietlaniem na szczycie stosu. Ten .(domy´slny spos´ob wyboru aktywnego nazywa sie֒ : focus-follows-mouse (FFM System X Window — serwer 9 Dynamiczna konfiguracja serwera X Window Serwer X Window posiada wiele cech i funkcji, z kt´orych niekt´orymi mo˙zna sterowa´c w czasie pracy. Istnieje dedykowany klient xset, kt´ory wysy la pewne polecenia serwerowi, zgodne z argumentami wywo lania, np.: xset r off # wylacza autorepeat na klawiaturze xset s on s 300 # wygaszanie ekranu po 300 sekundach xset pozwala r´ownie˙z ustawia´c serwerowi wa˙zniejsze parametry, jak np. ´scie˙zka doste֒ pu do czcionek (patrz ni˙zej), albo parametry sterowania zasilaniem .(monitora (sa֒ jednak one zale˙zne od konkretnej implementacji serwera Program xsetroot pozwala ustawia´c parametry wy´swietlanego okna serwera, kt´ore ma posta´c t la ekranu X Window. xsetroot -solid ’#006060’ Istnieja֒ jeszcze inne funkcje i parametry serwera, kt´ore mo˙zna ustawia´c w czasie pracy, jak np. autoryzacja wy´swietlania albo zasoby, i s lu˙za֒ do tego specjalne .klienty. Be֒ dzie o nich mowa dalej System X Window — serwer 10 Klienty X Window Po la֒czenie klient´ow z serwerem: o ile serwer normalnie komunikuje sie֒ • z wieloma klientami jednocze´snie, obs luguja֒c ich ˙za֒dania, to ka˙zdy klient typowo wysy la dane do wy´swietlania do jednego konkretnego serwera. • Zdarzenia klienta: sygna ly z klawiatury, od myszy, a tak˙ze inne zdarzenia .przekazywane klientom przez serwer, np. zdarzenie ods lonie֒ cia :Standardowe argumenty wywo lywania klient´ow okre´slaja֒ takie parametry jak • adres serwera: -display adres-ip:0.0 geometrie֒ : -geometry szer×wys±xoff±yoff czcionki: -fn ’-misc-fixed-bold-r-normal–15-140-75-75-c-90-iso8859-2’ kolory: -fg yellow -bg blue -bd red inne: -title xxx -iconic ... • Wiele klient´ow ma wiele parametr´ow konfiguracyjnych zwanych zasobami, o kt´orych ni˙zej. Poza tym niekt´ore rozbudowane wsp´o lczesne klienty X Window, jakimi sa֒ • .np. firefox, acroread, openoffice, itp. maja֒ swoje w lasne systemy konfiguracji Podobnie graficzne ´srodowiska, zwane pulpitami, be֒ da֒ce konfiguracjami .okienek, ustawie´n, konwencji, i protoko l´ow komunikacji mie֒ dzy klientami System X Window — klienty 11 Zestaw klient´ow X Window Zarzadzanie֒ systemem X Window U˙zytkowe xinit,startx - uruchamianie serwera X xbiff