el protocol -server

23
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

Upload: hong

Post on 12-Jan-2016

66 views

Category:

Documents


0 download

DESCRIPTION

Alex Maneu Victòria David Marí Larrosa Pau Roura Brun. El Protocol -Server. Sessió. 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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: El Protocol    -Server

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

Page 2: El Protocol    -Server

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

2

Sessió

Page 3: El Protocol    -Server

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)

Page 4: El Protocol    -Server

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

Page 5: El Protocol    -Server

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

Page 6: El Protocol    -Server

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

Page 7: El Protocol    -Server

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

Page 8: El Protocol    -Server

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

Page 9: El Protocol    -Server

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

Page 10: El Protocol    -Server

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)

Page 11: El Protocol    -Server

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

Page 12: El Protocol    -Server

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.

Page 13: El Protocol    -Server

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)

Page 14: El Protocol    -Server

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

Page 15: El Protocol    -Server

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.

Page 16: El Protocol    -Server

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.

Page 17: El Protocol    -Server

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.

Page 18: El Protocol    -Server

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)

Page 19: El Protocol    -Server

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ó

Page 20: El Protocol    -Server

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.

Page 21: El Protocol    -Server

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.

Page 22: El Protocol    -Server

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

Page 23: El Protocol    -Server

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