CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament dArquitectura de

  • Slides: 23
Download presentation
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors El Protocol -Server (Seminaris de

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors El Protocol -Server (Seminaris de CASO) Autors Alex Maneu Victòria o David Marí Larrosa o Pau Roura Brun o

Sessió 2

Sessió 2

Sistema o -Window Format per – Protocol de comunicació (X Protocol) – API (Xlib):

Sistema o -Window Format per – Protocol de comunicació (X Protocol) – API (Xlib): Defineix una interfície aplicacions dispositius o 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. X 11 R 6) o Especifica un model client-servidor a nivell d’aplicació o – Client (aplicació) separat del servidor (display) 3

Protocol Especifica una capa dependent i una independent dels dispositius o Amaga les característiques

Protocol Especifica una capa dependent i una independent dels dispositius o Amaga les característiques del SO i del hardware o Ajuda a la portabilitat i al desenvolupament d’aplicacions o S’executa sobre la connexió de xarxa (orientat a connexió, generalment TCP) o Permet sol·licituds i respostes client servidor o Descriu el format dels missatges intercanviats entre client i servidor o 4

Servidor Programa dedicat a subministrar els serveis de display en un terminal gràfic a

Servidor Programa dedicat a subministrar els serveis de display en un terminal gràfic a petició del client X o Gestiona o – – – o 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). 5

Client És l’aplicació pròpiament dita o Dissenyada per a emprar una interfície gràfica d’usuari

Client És l’aplicació pròpiament dita o Dissenyada per a emprar una interfície gràfica d’usuari per a mostrar les seves sortides o Molts clients X competeixen pels serveis d’un servidor X per cada usuari i display o El gestor de finestres resol aquests conflictes o 6

Gestor de finestres) -Window (gestor de Cas particular de client X o Localitzat a

Gestor de finestres) -Window (gestor de Cas particular de client X o Localitzat a la mateixa màquina que el servidor X o Permet fer operacions sobre finestres (moure, redimensionar, etc) o No és necessari per a la creació de finestres o 7

Funcionament gràfic o o o El client X – Manté les finestres que ha

Funcionament gràfic o o o 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 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 8

i la pila TCP/IP Finestres remotes generalment sobre TCP/IP (AF_INET) o Finestres locals sobre

i la pila TCP/IP Finestres remotes generalment sobre TCP/IP (AF_INET) o Finestres locals sobre sockets AF_UNIX o 9

Característiques del sistema Window o - Concepte de client i servidor “invertit”! – El

Característiques del sistema Window o - 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 o Permet utilitzar els serveis de RPC o APPC (Advanced Program to Program Communication) o 10

Característiques del sistema Window - Servidor d’aplicacions – executa Clients X Client – Executa

Característiques del sistema Window - Servidor d’aplicacions – executa Clients X Client – Executa Servidor X 11

Displays o o Format per un servidor, pantalles i dispositius d’entrada Per iniciar sessió

Displays o o Format per un servidor, pantalles i dispositius d’entrada Per iniciar sessió les aplicacions es connecten al display – Display *XOpen. Display(char *display_name)) • L’struct Display conté la informació sobre l’estat d’un display particular o Identificació: host: [: ]num_servidor. num_display o Es numeren a partir de 0 TCP o – Port 0 x 5800+N per a clients Little Endian – Port 0 x 5900+N per a clients Big Endian 12

Exemple o Cas pràctic en màquines separades o Redirecció de la sortida – puki@pistacho$

Exemple o Cas pràctic en màquines separades o Redirecció de la sortida – puki@pistacho$ export DISPLAY=neoma: 0. 0 (en màquines BSD) – > setenv DISPLAY neoma: 0. 0 (en màquines Sys. V) o A la màquina local (servidor X) caldrà afegir el servidor remot a la llista de control d'accés: – dix@neoma$ xhost +pistacho o “Automatitzable” amb ssh – Servidor d’aplicacions amb servidor ssh i l'opció X 11 Forwarding posada a yes a l'arxiu /($ETC)/sshd_config) 13

lib API del sistema X-Window o Funcions C encastades en els clients X o

lib API del sistema X-Window o Funcions C encastades en els clients X o – 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 o Servidor X respon amb missatges de resposta o error o Servidor X envia missatges d’event als clients X o 14

Format dels missatges: Peticions o Cada petició conté: – Header de 4 bytes que

Format dels missatges: Peticions o 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 o o o 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. 15

Format dels missatges: Respostes i Errors o Cada resposta conté: – Un camp de

Format dels missatges: Respostes i Errors o 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 o 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. o 16

Format dels missatges: Events o Els paquets d’events són de 32 bytes. Cada event

Format dels missatges: Events o 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ó Send. Event, 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). o Els codis d’event del 64 al 127 estan reservats per a extensions. 17

Toolkits Problema: complexitat del codi que usa Xlib o Toolkits: Llibreries que afegeixen funcionalitats

Toolkits Problema: complexitat del codi que usa Xlib o Toolkits: Llibreries que afegeixen funcionalitats d’alt nivell o – Implementen “widgets”: botons, menús, etc. – Alguns exemples: • QT • GTK+ • Xt (MIT) • Xaw [3 D] (Athena) 18

Toolkits (cont. ) o Es pot combinar l’ús de widgets i Xlib en una

Toolkits (cont. ) o Es pot combinar l’ús de widgets i Xlib en una mateixa aplicació 19

Avantatges o o o o o Usuari i programador no noten la diferència entre

Avantatges o o o o o 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 20

Inconvenients o o o o El sistema X Window consumeix molts recursos No hi

Inconvenients o o o o 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. 21

Links o o o o X Consortium: http: //www. x. org XFree 86 Project:

Links o o o o X Consortium: http: //www. x. org XFree 86 Project: http: //www. xfree 86. 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/xdesi gn. html Funcionament de X: http: //hissa. nist. gov/rbac/titlehce/node 25. html Informació TCP/IP: http: //ditec. um. es/laso/docs/tut-tcpip/3376 fm. html Is X bloated? : http: //www. cbbrowne. com/info/xbloat. html 22

Links (cont. ) RFC 1013: http: //www. faqs. org/rfcs/rfc 1013. html o Xlib complete

Links (cont. ) RFC 1013: http: //www. faqs. org/rfcs/rfc 1013. html o Xlib complete reference: http: //www. msu. edu/~huntharo/xwin/docs/xwindo ws/XWINSYS. pdf o Documentació sobre X: http: //www. x-docs. org o 23