t1-introduccion

8
  ESO. Tema 1. Introducción Juan Carlos Pérez y Sergio Sáez

Upload: kiring84

Post on 05-Oct-2015

215 views

Category:

Documents


0 download

DESCRIPTION

primer tema asignatura eso

TRANSCRIPT

  • ESO. Tema 1. IntroduccinJuan Carlos Prez y Sergio Sez

  • Table of ContentsTema 1. Introduccin..........................................................................................................................................1

    1.1 Introduccin.......................................................................................................................................11.2 Revisin de conceptos........................................................................................................................11.3 Estructura interna del S.O..................................................................................................................11.4 Sistemas monolticos vs nanoncleos..............................................................................................21.5 Historia de UNIX .............................................................................................................................21.6 Historia de Linux .............................................................................................................................21.7 Evolucin...........................................................................................................................................31.8 El modelo de desarrollo de Linux ....................................................................................................41.9 Caractersticas de Linux ...................................................................................................................51.10 Esquema Global...............................................................................................................................51.11 Esquema interno...............................................................................................................................51.12 Estructura de los fuentes..................................................................................................................6

    ESO. Tema 1. Introduccin

    i

  • Tema 1. IntroduccinJuan Carlos Prez y Sergio Sez

    Sergio SezJuan Carlos Prez

    [email protected]@disca.upv.es

    1.1 IntroduccinSoftware de sistema y software de aplicacin. El objetivo del S.O. es ofrecer una abstraccin de los recursos hardware para que el software deaplicacin no necesite conocer las particularidades de cada mquina.

    Disco: Conjunto de ficheros con nombres y operaciones de abrir, cerrar, leer, escribir, etc. Memoria RAM: Espacio de direcciones virtuales. Teclado + pantalla: Ficheros especiales (terminal) Puertos: Ficheros especiales (Serie, paralelo, altavoz,...)

    Otra funcin de un S.O. multitarea es el reparto de recursos: procesador, memoria fsica, disco,comunicaciones, etc.

    1.2 Revisin de conceptosProceso: Programa en ejecucin. Seal: Abstraccin de interrupcin. Llamada al sistema: interfaz entre procesos y el S.O.

    Gestin de procesos: creacin destruccin ... Seales: envo, gestin, ... Ficheros y directorios: crear, destruir, leer, ... Otras: temporizacin, comunicacin, proteccin, ... Una llamada al sistema puede ser:

    Una funcin (call).1. Una interrupcin software.2.

    Niveles de proteccin:Las aplicaciones no han de poder hacer ciertas funciones. Modo usuario / Modo supervisor.

    1.3 Estructura interna del S.O.Sistema monoltico: el S.O. es un solo programa. Sistema estructurado en capas: el S.O. est dividido en procesos o bloques funcionales.

    Tema 1. Introduccin 1

  • Comunicaciones dentro del sistema operativo:Modelo cliente servidor: comunicacin por mensajes. Modelo biblioteca: llamadas a procedimiento.

    Comunicaciones entre procesos y sistema operativo (llamadas al sistema).Mediante interrupcin software. Llamada a procedimiento.

    Linux tiene una estructura monoltica tpica de un UNIX clsico. Los S. O. actuales tienden aconstruirse alrededor de nanoncleos.

    1.4 Sistemas monolticos vs nanoncleosMonolticos El S.O. es un gran programa compuestopor una gran cantidad de funciones. Desde cualquierparte del S.O. se puede acceder a cualquier otradirectamente.

    Ventajas:Muy eficiente ya que se producen pocoscambios de contexto.

    Inconvenientes:Difcil de depurar: un error en una funcin sepuede manifestar en otra distinta.Difcil de ampliar.

    Nano ncleos El S.O. tiene a su vez un ncleo queofrece unos servicios mnimos. Ofrece la abstraccinde proceso y mecanismo de comunicacin entreprocesos.

    Ventajas: Fcil de implementar y depurar.Se puede "portar" a otras arquitecturasmodificando muy poco cdigo.

    Inconvenientes:Poco eficiente, debido a la sobrecarga decomunicaciones

    1.5 Historia de UNIX Unix aparece en los Lab. Bell en 1969. Programado en "C" Nace Internet como red de interconexion de mquinas UNIX (TCP/IP) Se estudia en las universidades hasta la versin 6. Hoy existen numerosas variantes comerciales (SCO, IBM, Digital, HP, SGI, Sun, etc.) que actan enentornos cliente servidor, intranet, internet, etc.

    Otro sistema operativo de gran difusin es Windows (95, 98, NT, 2000 y XP). Proviene del modelode computacin personal/domstica y acusa todava problemas de fiabilidad, modelo monousuario,interfaz no orientado a red y ausencia de herramientas bsicas integradas.

    Existen dos grandes sistemas operativos con el cdigo fuente pblico: Linux y FreeBSD. El primeroha alcanzado mayor grado de desarrollo.

    1.6 Historia de Linux Linux aparece en 1991 como evolucin de MINIX para el 80386. En menos de un ao, ms de 100 programadores colaboran. Forma de trabajo: Los fuentes (versiones) se difunden con la mxima frecuencia y cualquiera quequiera modificar o criticar algo, lo hace. Los ms conocedores de esa rea (los que la hanprogramado) deciden si es til y si lo es, lo incorporan.

    ESO. Tema 1. Introduccin

    1.4 Sistemas monolticos vs nanoncleos 2

  • Se portan las herramientas GNU de la FSF (gcc, gdb, bash, emacs, etc.) En marzo de 1994 aparece Linux 1.0 en forma de "distribucin". En junio de 1996 se distribuye Linux 2.0, ya competitivo con otros UNIX.

    Aparecen varias distribuciones (RedHat, Caldera, S.U.S.E, Slackware, Debian, etc., algunas consoporte oficial para empresas)

    La FSF adopta Linux como Sistema Operativo Oficial: GNU/Linux. Inters por parte de las empresas (Intel, Sun, Netscape, Lotus, Adobe, Corel, Oracle, Informix,Sysbase, etc.)

    En enero de 1999 aparece Linux 2.2 con muchas mejoras y soporte para nuevos tipos de hardware.El primer nmero cambia cuando se da una evolucin importante, el segundo es la versin y el tercerola revisin. Las versiones pares son estables y las impares inestables.

    En enero de 2001 aparece Linux 2.4 con mejoras en el soporte a multiprocesadores, dispositivoscomo el USB, y acceso directo al HW grfico (2D, 3D).

    La versin 2.6 aparecio en diciembre del 2003. Se han reestructurado gran parte de losmecanismos internos del ncleo de Linux, entre ellos el planificador o la capacidad para ser expulsadocasi en cualquier situacin.

    1.7 Evolucin

    Ao Usuarios Versin y capacidadesLneascdigo /Tamao

    1991 1 0.01. Linus Torvalds disea un kernel y unos manejdores de teclado y pantalla,dejndolos al alcance de todos por FTP.10.2390.2 MB

    1992 1.000 0.96. Linux empieza a ser funcional y se incorpora un interfaz grfico. 40.0001 MB

    1993 20.000 0.99. Cientos de programadores aportan cambios y mejoras al cdigo. Torvaldsdelega en un grupo de 5 personas la tarea de revisin y seleccin de cdigo.81.0912.2MB

    1994 100.000 1.0. Se aade soporte de red. 176.2504.7 MB

    1995 500.000

    1.2. Se transporta a lasplataformas Digital y SunSPARC. Aparece la revistaLinux Journal en EE.UU.con una tirada de 10.000ejemplares.

    310.9508.4 MB

    1996 1,5 mill. 2.0. Se aade soporte paramultiproceso.

    777.95622 MB

    1999 9 mill

    2.2 Linux se afianza comosegundo sistema operativoen Internet, en nmero deservidores.

    1.800.84752 MB

    ESO. Tema 1. Introduccin

    1.7 Evolucin 3

  • 2001 10 mill.2.4 Mayor escalabilidad(SMP), soporte USB,PCMCIA, PnP interno, etc.

    3.377.902100 MB

    2003 20 mill.

    2.6 Hay grandes cambiosen el planificador, eltiempo de respuestapercibido, soporte NUMA,a mquinas sin MMU,procesadores conhyperthreading, mejora enla gestion de los hilos deejecucin (NTPL), ...

    5.929.913212 MB La mitad del cdigo pertenece a entrada/salida ymanejadores de dispositivo y una quinta parte a cdigo

    dependiente de la plataforma.

    Crecimiento del tamao del cdigo fuente del ncleo de Linux

    1.8 El modelo de desarrollo de Linux Modelo OSS (Open Source Software). Licencia GPL Motivaciones:

    Resolver problemas y compartir soluciones Educacin Reconocimiento pblico Rechazo a dominacin tecnolgica (microsoftfobia)

    Resultados de gran calidad:bind, sendmail, apache, herramientas GNU, "uptimes", etc.

    Cmo se resuelven los problemas de organizacin y de recursos?Motivacin y objetivos escogidos voluntariamente. Filosofa y herramientas comunes. Desarrollo en paralelo con poda de ramas fallidas (ej. TCP/IP). Distribucin de versiones frecuente y pruebas masivas inmediatas (ej. teardrop) Depuracin masivamente paralela merced al acceso al cdigo fuente.

    ESO. Tema 1. Introduccin

    1.8 El modelo de desarrollo de Linux 4

  • 1.9 Caractersticas de Linux Sistema operativo de estilo UNIX. Compatible POSIX 1003.1c Multitarea y Multiusuario con planificacin expulsiva. Multiplataforma. Arquitecturas Compaq Alpha AXP, Sun SPARC, UltraSPARC, Motorola 68000,PowerPC, PowerPC64, ARM, Hitachi SuperH, IBM S/390, MIPS, HP PARISC, Intel IA64, DECVAX, AMD x8664 y CRIS, entre otras.

    Proteccin de memoria entre procesos. Memoria virtual. Capacidad de multiproceso simtrico, de funcionamiento en "cluster". Soporte de mltiples sistemas de ficheros. Soporte de mltiples protocolos de red. Escrito en "C". Posibilidad de depuracin en tiempo de ejecucin. Carga de mdulos en tiempo de ejecucin y libreras dinmicas.

    1.10 Esquema Global

    1.11 Esquema internoEl ncleo de Linux, pese a ser monoltitco, est organizado como un conjunto de gestores fuertementeinterrelacionados. Cada uno de estos gestores tiene un subdirectorio en el directorio principal de losfuentes de Linux

    Ojo! Las bibliotecas de funciones NO pertenecen al ncleo del sistema operativo.

    ESO. Tema 1. Introduccin

    1.9 Caractersticas de Linux 5

  • 1.12 Estructura de los fuentesSe puede obtener va ftp desde ftp://ftp.kernel.org/pub/linux/kernel/. Estn empaquetados en un fichero "tar"comprimido (.tgz), que hay que extraer bajo el directorio /usr/src, crendose el directorio /usr/src/linux.

    ESO. Tema 1. Introduccin

    1.12 Estructura de los fuentes 6

    Table of ContentsTema 1. Introduccin1.1 Introduccin1.2 Revisin de conceptos1.3 Estructura interna del S.O.1.4 Sistemas monolticos vs nano-ncleos1.5 Historia de UNIX 1.6 Historia de Linux 1.7 Evolucin1.8 El modelo de desarrollo de Linux 1.9 Caractersticas de Linux 1.10 Esquema Global1.11 Esquema interno1.12 Estructura de los fuentes