Universidad Carlos Iii De Madrid Escuela Politécnica Superior
Total Page:16
File Type:pdf, Size:1020Kb
Análisis, Diseño e Implementación de un módulo Linux para el acceso a servidores NFS UNIVERSIDAD CARLOS III DE MADRID ESCUELA POLITÉCNICA SUPERIOR INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN PROYECTO FIN DE CARRERA Análisis, Diseño e Implementación de un módulo Linux para el acceso a servidores NFS AUTOR: Carlos Rodríguez Miguel TUTOR: Félix García Carballeira Octubre, 2015 - 1 - Análisis, Diseño e Implementación de un módulo Linux para el acceso a servidores NFS Agradecimientos En primer lugar agradecer a mi familia, muy especialmente a mis padres, por haberme dado todos los medios, el apoyo y la motivación que a veces me faltaba para permitirme llegar a donde he llegado. Gracias de todo corazón por ser como sois. En segundo lugar quiero agradecer a los compañeros de “fatigas” universitarias, con los que tan buenos momentos he pasado y seguiremos pasando. Gracias a todas aquellas personas con las que he trabajado, haciendo prácticas y memorias interminables. Gracias sinceramente a todos mis amigos y a todas las personas que de verdad se alegran por mí y por este día. Aprovecho también para agradecer a todo el equipo humano que conforman los diferentes integrantes de todos y cada uno de los departamentos de la universidad, siempre dispuestos a colaborar aportándome entre tanto infinidad de valores durante mi estancia en la misma. Por último, y como no podía ser de otro modo, a mi tutor Félix, por toda la ayuda y comprensión mostrada, sin ti este proyecto no hubiera sido posible. - 2 - Análisis, Diseño e Implementación de un módulo Linux para el acceso a servidores NFS Contenido Agradecimientos ........................................................................................................................... 2 1 Introducción ............................................................................................................................... 8 1.1 Objetivos del proyecto ........................................................................................................ 8 1.2 Antecedentes .................................................................................................................... 10 1.3 Estructura del Documento ................................................................................................ 11 2 Módulos del núcleo .................................................................................................................. 13 2.1 El sistema operativo .......................................................................................................... 13 2.1.1 Introducción ............................................................................................................... 13 2.1.2 El núcleo ..................................................................................................................... 14 2.1.3 Tipos de núcleos ......................................................................................................... 16 2.2 Sistema operativo Linux .................................................................................................... 21 2.2.1 El núcleo del sistema operativo Linux ........................................................................ 21 2.2.2 Espacio de usuario y espacio de kernel ...................................................................... 22 2.3 Los módulos del núcleo de Linux ...................................................................................... 24 2.3.1 Administración de módulos ....................................................................................... 25 2.3.2 Carga de módulos ....................................................................................................... 27 2.3.3 Descarga de módulos ................................................................................................. 29 2.4 Drivers ............................................................................................................................... 31 2.4.1 Tipos de drivers .......................................................................................................... 32 3 Llamadas a procedimientos remotos (RPC) ............................................................................. 35 3.1 Mecanismos de comunicación en sistemas distribuidos .................................................. 35 3.2 Remote procedure call (RPC) ............................................................................................ 36 3.2.1 Historia ....................................................................................................................... 36 3.2.2 Introducción ............................................................................................................... 36 3.2.3 Terminología .............................................................................................................. 38 3.2.4 El modelo de RPC ....................................................................................................... 40 3.2.5 Protocolo de transporte ............................................................................................. 41 3.2.6 Localización del servidor ............................................................................................ 42 3.2.7 Modelo genérico de comunicación ............................................................................ 43 3.2.8 Semántica de Fallos .................................................................................................... 44 3.3 RPC de SUN ........................................................................................................................ 45 3.3.1 Programación con RPC ............................................................................................... 46 - 3 - Análisis, Diseño e Implementación de un módulo Linux para el acceso a servidores NFS 3.3.2 Requisitos del protocolo RPC de SUN ........................................................................ 46 3.3.3 Programas y procedimientos ..................................................................................... 47 3.3.4 Autenticación ............................................................................................................. 48 3.3.5 La asignación del número de programa ..................................................................... 48 3.3.6 Otros usos del protocolo RPC ..................................................................................... 49 3.3.7 Protocolo del programa PortMapper ......................................................................... 49 3.4 Lenguaje RPC de SUN ........................................................................................................ 52 3.4.1 Definiciones ................................................................................................................ 52 3.4.2 Estructuras ................................................................................................................. 53 3.4.3 Uniones ...................................................................................................................... 53 3.4.4 Enumerados ............................................................................................................... 54 3.4.5 Tipos ........................................................................................................................... 54 3.4.6 Constantes .................................................................................................................. 55 3.4.7 Programas .................................................................................................................. 55 3.4.8 Declaraciones ............................................................................................................. 56 3.4.9 Casos especiales ......................................................................................................... 58 3.5 Ejemplo de RPC ................................................................................................................. 59 3.6 Entornos de objetos distribuidos ...................................................................................... 63 4 Sistemas de ficheros distribuidos ............................................................................................. 64 4.1 Introducción ...................................................................................................................... 64 4.2 Diseño ................................................................................................................................ 65 4.3 Terminología ..................................................................................................................... 65 4.4 Componentes de un SFD ................................................................................................... 66 4.4.1 Servicios de un SFD..................................................................................................... 66 4.4.2 Servicio de directorios ................................................................................................ 67 4.4.3 Servicio de ficheros .................................................................................................... 70 4.5 Fiabilidad ........................................................................................................................... 77 4.6 Replicación ........................................................................................................................ 77 5 Sistema de ficheros en red NFS