CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors
(Seminaris de CASO)
Autors
El Protocol -Server
Alex Maneu Victòria
David Marí Larrosa
Pau Roura Brun
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
2
Sessió
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
3
Sistema -Window Format per
– Protocol de comunicació (X Protocol)– API (Xlib): Defineix una interfície aplicacions dispositius
Desenvolupat al MIT als ‘80 com a part del projecte Athena.– Necessitat d’una GUI transparent en xarxa sobretot per entorns
UNIX Format de les versions inclou nº de versió i de revisió (p.e.
X11R6) Especifica un model client-servidor a nivell d’aplicació
– Client (aplicació) separat del servidor (display)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
4
Protocol Especifica una capa dependent i una independent dels
dispositius Amaga les característiques del SO i del
hardware Ajuda a la portabilitat i al desenvolupament
d’aplicacions S’executa sobre la connexió de xarxa (orientat a connexió,
generalment TCP) Permet sol·licituds i respostes clientservidor Descriu el format dels missatges intercanviats entre client i
servidor
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
5
Servidor Programa dedicat a subministrar els serveis de display en un
terminal gràfic a petició del client X Gestiona
– La pantalla– Els dispositius d’entrada (teclat, mouse, ...)– La sortida al display– El mapatge de colors– La càrrega de fonts– El mapatge de teclat
S’executa habitualment en PCs, terminals gràfics i terminals X (dissenyats per a executar servidors X).
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
6
Client És l’aplicació pròpiament dita Dissenyada per a emprar una interfície gràfica d’usuari per
a mostrar les seves sortides Molts clients X competeixen pels serveis d’un servidor X per
cada usuari i display El gestor de finestres resol aquests conflictes
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
7
Gestor de -Window (gestor de finestres)
Cas particular de client X Localitzat a la mateixa màquina que el servidor X Permet fer operacions sobre finestres (moure,
redimensionar, etc) No és necessari per a la creació de finestres
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
8
Funcionament gràfic El client X
– Manté les finestres que ha creat– No s’ha de preocupar de quina part de la finestra és visible
Canvis efectuats en el display per altres altres clients són notificats mitjançant events del servidor X
Servidor X– Gestiona finestres visibles/no
visibles utilitzant piles– No conté funcions de gestió,
només retalla finestres
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
9
i la pila TCP/IP Finestres remotes generalment sobre TCP/IP (AF_INET) Finestres locals sobre sockets AF_UNIX
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
10
Característiques del sistema -Window Concepte de client i servidor “invertit”!
– El servidor s’executa en la màquina “client”– L’aplicació s’executa al servidor d’aplicacions i es mostra a la
màquina client Permet execució remota en entorns heterogenis Permet utilitzar els serveis de RPC o APPC (Advanced
Program to Program Communication)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
11
Característiques del sistema -WindowServidor d’aplicacions – executa Clients X
Client – Executa Servidor X
Client – Executa Servidor X
Client – Executa Servidor X
Client – Executa Servidor X
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
12
Displays Format per un servidor, pantalles i dispositius d’entrada Per iniciar sessió les aplicacions es connecten al display
– Display *XOpenDisplay(char *display_name))• L’struct Display conté la informació sobre l’estat d’un display particular
Identificació: host:[:]num_servidor.num_display
Es numeren a partir de 0 TCP
– Port 0x5800+N per a clients Little Endian– Port 0x5900+N per a clients Big Endian
host L'adreça IP o nom de la màquina que mostrarà la part gràfica del'aplicació
num_servidor El número de servidor X al qual ens referim (podem tenir diversosservidors X executant-se en una mateixa màquina)
num_display El número de display del servidor num_servidor.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
13
Exemple Cas pràctic en màquines separades
Redirecció de la sortida– puki@pistacho$ export DISPLAY=neoma:0.0 (en màquines
BSD)– > setenv DISPLAY neoma:0.0 (en màquines SysV)
A la màquina local (servidor X) caldrà afegir el servidor remot a la llista de control d'accés:– dix@neoma$ xhost +pistacho
“Automatitzable” amb ssh– Servidor d’aplicacions amb servidor ssh i l'opció X11Forwarding
posada a yes a l'arxiu /($ETC)/ssh/sshd_config)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
14
lib API del sistema X-Window Funcions C encastades en els clients X
– Accés de més baix nivell a l’X Protocol– Peticions clients Sol·licituds X Protocol– Analitzen missatges dels servidors X (events, respostes, errors)– Subministren utilitats addicionals (Xpermalloc())
Clients X envien peticions al servidor X Servidor X respon amb missatges de resposta o error Servidor X envia missatges d’event als clients X
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
15
Format dels missatges: Peticions Cada petició conté:
– Header de 4 bytes que inclou:• Un opcode de 8 bits (major opcode) que correspon a una crida de la Xlib
• Un camp de longitud de 16 bits que expressa la (longitud total incloent el header)/4
• Un byte de dades (minor opcode a les extensions)– 0 o més bytes de dades
Els opcodes de 128 a 255 estan reservats per a extensions. Les extensions poden contenir múltiples peticions, i utilitzen el minor opcode.
A cada petició se li assigna implícitament un número de seqüència, començant per 1, que s’utilitza a les respostes, errors i events.
Cada petició té un tamany mínim i màxim; si el camp de longitud està fora de rang, es produeix un error.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
16
Format dels missatges: Respostes i Errors Cada resposta conté:
– Un camp de 32 bits que expressa la longitud total/4– 32 bytes seguits de 0 o més bytes addicionals de dades– Els 16 bits menys significatius del número de seqüència de la petició
corresponent
Els paquets d’error són de 32 bytes. Cada error inclou:– Un codi d’error de 8 bits– Major opcode de la petició– Minor opcode de la petició– Els 16 bits menys significatius del número de seqüència de la petició– Informació necessària en determinats tipus d’errors
Els codis d’error del 128 a 255 estan reservats per a extensions.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
17
Format dels missatges: Events Els paquets d’events són de 32 bytes. Cada event conté:
– Un codi de tipus de 8 bits. Si aquest event l’ha generat una petició SendEvent, el bit més alt està a 1.
– Els 16 bits menys significatius del número de seqüència de l’última petició feta pel client que el servidor està processant (o ja ha processat).
Els codis d’event del 64 al 127 estan reservats per a extensions.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
18
Toolkits Problema: complexitat del codi que usa Xlib Toolkits: Llibreries que afegeixen funcionalitats d’alt nivell
– Implementen “widgets”: botons, menús, etc.– Alguns exemples:
• QT
• GTK+
• Xt (MIT)
• Xaw [3D] (Athena)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
19
Toolkits (cont.) Es pot combinar l’ús de widgets i Xlib en una mateixa aplicació
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
20
Avantatges Usuari i programador no noten la diferència entre el funcionament local i remot. Servidor X portable i ofereix suport per diversos llenguatges i sistemes
operatius. Clients X són força portables. Sistema X-Window suporta qualsevol protocol de xarxa orientat a connexió. Rendiment de les aplicacions poc afectat. Les aplicacions no han de conèixer les característiques hardware del terminal. Les aplicacions no tenen perquè estar a la mateixa màquina que el terminal. Es poden afegir terminals d’arquitectura diferent proporcionant un servidor X
adequat. El programador no s’ha de preocupar de les comunicacions, només ha
d’escriure aplicacions gràfiques per a X, amb independència de si s’utilitzaran de forma local o remota.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
21
Inconvenients El sistema X Window consumeix molts recursos No hi ha una GUI unificada ni polítiques sobre el tema La interfície de programació no és còmoda d’utilitzar (problema
parcialment solucionat pels toolkits, però no n’hi ha cap que sigui dominant).
Les dades viatgen sense encriptar Es complicat gestionar les autoritzacions i controls d’accés El suport de fonts no ofereix serveis com “antialiasing”, i és complicat
utilitzar charsets com UNICODE. Una aplicació (client X) no pot indicar al servidor que només li envïi un
tipus determinat d’events, per la qual cosa s’envien tots i es pot arribar a generar trànsit innecessari.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
22
Links X Consortium: http://www.x.org XFree86 Project: http://www.xfree86.org/ Enllaços a informació sobre X:
http://www.rahul.net/kenton/xsites.html Principis de disseny de X:
http://www.motifzone.com/tmd/articles/XDesign/xdesign.html Funcionament de X:
http://hissa.nist.gov/rbac/titlehce/node25.html Informació TCP/IP:
http://ditec.um.es/laso/docs/tut-tcpip/3376fm.html Is X bloated?: http://www.cbbrowne.com/info/xbloat.html
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
23
Links (cont.) RFC 1013: http://www.faqs.org/rfcs/rfc1013.html Xlib complete reference:
http://www.msu.edu/~huntharo/xwin/docs/xwindows/XWINSYS.pdf
Documentació sobre X: http://www.x-docs.org
Top Related