Download Introducción a Linux del INEI
Document related concepts
Transcript
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ Introducción a LINUX Lima, Abril de 2000 Elaboración : Sub-Jefatura de Informática Impreso en los Talleres de la Oficina de Impresiones de la Oficina Técnica de Difusión Estadística y Tecnología Informática del Instituto Nacional de Estadística e Informática Diagramación Edición Domicilio Orden Nº : : : : Centro de Edición del INEI 500 Ejemplares Av. Gral. Garzón Nº 658 Jesús María, Lima 11 293 - OTDETI - INEI Introducción a LINUX Presentación El Instituto Nacional de Estadística e Informática (INEI), en concordancia con sus fines y objetivos institucionales y como ente rector de los sistemas de Estadística e Informática, pone a disposición de las Entidades Públicas, Privadas, estudiantes y público en general, el libro ¨ Introducción al LINUX” que forma parte de la Colección Informática Fácil. La aparición de LINUX que fuera un pequeño sistema operativo de código público, se ha apoderado poco a poco de la cultura informática a nivel mundial, habiendo pasado de manera fulgurante por los ambientes estudiantiles, y entrando de lleno en el mundo empresarial, donde las tecnologías de información tienen especial relevancia, condiciones que vienen afirmando que existe una ya bastante evolucionada “cultura Linux”; propiciando el renacimiento del Código Público. El Sistema operativo de código público LINUX, es un sistema operativo para redes por ser multitarea, multiusuario, se persive confiable y escalable, además trabaja en un amplio rango de hardware. Soporta casi todos los protocolos de red e internet estándar, se puede personalizar gracias a su naturaleza abierta y cantidad de herramientas de programación. El Instituto Nacional de Estadística e Informática, pone a disposición la presente Guía Práctica de Informática Fácil, con el propósito de contribuir al conocimiento y desarrollo de la Cultura Informática y en beneficio de sus economías por ser LINUX un sistema gratuito. Econ. Félix Murillo Alfaro Jefe INSTITUTO NACIONAL DE ESTADISTICA E INFORMATICA Instituto Nacional de Estadística e Informática 3 Introducción a LINUX 4 Instituto Nacional de Estadística e Informática Introducción a LINUX Contenido 1. ¿Qué es Linux?................................................................................................................ 3 2. Historia de Linux ............................................................................................................ 3 3. ¿Porqué Linux? ............................................................................................................... 4 3.1 3.2 3.3 3.4 4. ¿Cómo es licenciado Linux? .................................................................................... 4 ¿De donde vienen los recursos para el desarrollo de Linux?........................................ 6 Características Principales ....................................................................................... 9 Ventajas de Linux frente a otros Sistemas Operativos .............................................. 11 Estructura de Linux ........................................................................................................ 15 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Kernel GPL ......................................................................................................... 15 Manejadores GPL ................................................................................................ 15 Herramientas del usuario ...................................................................................... 16 Herramientas de usuario (GPL, GNU, FSF) Herramientas de Desarrollo (GPL) X Server.............................................................................................................. 17 Widgets y Desktops .............................................................................................. 17 Servidor WEB ...................................................................................................... 17 Servidor de Correo.............................................................................................. 18 Servidor DNS ...................................................................................................... 20 5. Compatibilidad de Linux................................................................................................. 22 6. Conectividad de Linux.................................................................................................... 23 7. Conexión segura a Internet con Linux ............................................................................. 23 7.1 7.2 8. Ipchains .............................................................................................................. 24 Ipmasquerade ..................................................................................................... 25 Distribuciones comerciales.............................................................................................. 26 8.1 Componentes fundamentales de una distribución comercial ..................................... 26 Boot Manager Interfaz de usuario Sistema X Window Servicio de Internet Servicios de impresión de archivos Instituto Nacional de Estadística e Informática 5 Introducción a LINUX Aplicaciones Administrador de paquetes Herramientas del programador Bibliotecas 8.2 Distribuciones comerciales más populares............................................................... 29 Red Hat Caldera Open Linux Debian GNU Linux Slackware 9. Crecimiento de Linux..................................................................................................... 33 10. Productos para Linux ..................................................................................................... 36 11. Enlaces Linux ................................................................................................................ 38 11.1 Listas de consulta sobre Linux ............................................................................... 38 11.2 Sitios de Interés para usuarios de Linux .................................................................. 39 APENDICE ........................................................................................................................... 41 A. Entrevista con Linus Torvalds - Tomado de la revista Linux Focus B. Una vista a Star Office C. Noticias Linux 6 Instituto Nacional de Estadística e Informática Introducción a LINUX 1. ¿Qué es el LINUX? Linux es un Sistema Operativo, una versión de Unix libremente distribuible e independiente, para plataformas con maquinas x86, Motorola 68k, Digital Alpha, Sparc, Mips y Motorola Power PC. Es una implantación de la especificación POSIX con la cual cumplen todas las verdaderas versiones de Unix. El núcleo de Linux no usa código de AT&T o de cualquier otra fuente propietaria, la mayoría de los programas disponible para Linux es desarrollado por el proyecto GNU de la Free Software Foundation (Fundación de Programas Libres). Este soporta un amplio espectro de aplicaciones o paquetes de programación tales como X Window, Emacs, redes de datos bajo protocolos TCP/IP (incluyendo SLIP, PPP, ISDN). Mucha gente ha corrido benchmarks en sistemas Linux 80486 consiguiendo a estos comparable con estaciones de rango-medio de Sun y Digital. Linux esta disponible en Internet en cientos de servidores ftp y de varios distribuidores en discos flexibles o CD-ROM, alguno de estos son Caldera, Debian, Slakware, Red Hat, entre otros. Uno de los sitios de ftp más famoso es el ftp://sunsite.unc.edu/pub/Linux/distributions, con decenas de servidores espejos alrededor del mundo. El núcleo de Linux esta legalmente protegido por la Licencia Publica GNU (GPL de sus siglas en inglés), es usualmente empaquetado con varios ejecutables que comprenden un sistema operativo Unix funcional. Estos paquetes de programas son llamados "distribuciones" y vienen en muchos tamaños y arreglos. Linux esta siendo usado por cientos de miles de personas alrededor del mundo. Es usado para desarrollo de programas, redes (Intranet e Internet), y como plataforma para usuarios finales. Linux se ha convertido en una alternativa efectiva comparándolo con costosos sistemas Unix y de otros Sistemas Operativos. Instituto Nacional de Estadística e Informática 7 Introducción a LINUX 2. Historia de LINUX Linux fue creado originalmente por Linus Torvalds en la Universidad de Helsinki en Finlandia. Inicialmente, sólo fue un proyecto de aficionado de Linus Torvalds. Se inspiraba en Minix, un pequeño UNIX desarrollado por Andy Tanenbaum, y las primeras discusiones sobre Linux surgieron en el grupo de noticias comp.os.minix. Estas discusiones giraban en torno al desarrollo de un pequeño sistema UNIX de carácter académico dirigido a aquellos usuarios de Minix que querían algo más. El desarrollo inicial de Linux ya aprovechaba las características de conmutación de tareas en modo protegido del 386, y se escribió todo en ensamblador. Linus dice, "Comencé a utilizar el C tras escribir algunos drivers, y ciertamente se aceleró el desarrollo. En este punto sentí que mi idea de hacer "un Minix mejor que Minix" se hacía más seria. Esperaba que algún día pudiese recompilar el gcc bajo Linux... "Dos meses de trabajo, hasta que tuve un driver de discos con numerosos bugs, pero que parecía funcionar en mi PC y un pequeño sistema de ficheros. Aquí tenía ya la versión 0.01 [al final de Agosto de 1991]; no era muy agradable de usar sin el driver de disquetes, y no hacía gran cosa. No pensé que alguien compilaría esa versión." Linus Torvalds durante una conferencia en Buenos Aires (Junio 1996) No se anunció nada sobre esa versión, puesto que las fuentes del 0.01 jamás fueron ejecutables: contenían solo rudimentos de lo que sería el núcleo , y se asumía que se tenía acceso a un Minix para poderlo compilar y jugar con él. 8 Instituto Nacional de Estadística e Informática Introducción a LINUX El 5 de Octubre de 1991, Linus anunció la primera versión "oficial" de Linux, la 0.02. Ya podía ejecutar bash (el shell de GNU) y gcc (el compilador de C de GNU), pero no hacía mucho más. La intención era ser un juguete para hackers. No había nada sobre soporte a usuarios, distribuciones, documentación ni nada parecido. Hoy, la comunidad de Linux aun trata estos asuntos de forma secundaria. Lo primero sigue siendo el desarrollo del kernel. Linus escribía en comp.os.minix. "¿Suspiráis al recordar aquellos días de Minix-1.1, cuando los hombres eran hombres y escribían sus propios drivers? ¿Os sentís sin ningún proyecto interesante y os gustaría tener un verdadero S.O. que pudierais modificar a placer? ¿Os resulta frustrante el tener solo a Minix? Entonces, este artículo es para vosotros. "Como dije hace un mes, estoy trabajando en una versión gratuita de algo parecido a Minix para ordenadores At-386. He alcanzado la etapa en la que puede ser utilizable y voy a poner las fuentes para su distribución. Es solo la versión 0.02. pero he conseguido ejecutar en él bash, gcc, gnu-make, gnu-sed, compress, etc." Tras numerosas revisiones, se alcanzó la versión 0.95, reflejando la esperanza de tener lista muy pronto una versión "oficial". (Generalmente, la versión 1.0 de los programas se corresponden con la primera teóricamente completa y sin errores). Esto sucedía en Marzo de 1992. Año y medio después, en Diciembre del 93, el núcleo estaba en la revisión 0.99.pl14, en una aproximación asintótica al 1.0. Actualmente, el núcleo se encuentra en la versión 2.2.x Hoy Linux es ya un clónico de UNIX completo, capaz de ejecutar X Window, TCP/IP, Emacs, UUCP y software de correo y News. Mucho software de libre distribución ha sido ya portado a Linux, y están empezando a aparecer aplicaciones comerciales. El hardware soportado es mucho mayor que en las primeras versiones del núcleo. Mucha gente ha ejecutado tests de rendimiento en sus sistemas Linux 486 y se han encontrado que son comparables a las estaciones de trabajo de gama media de Sun Microsystems y Digital. ¿Quién iba a imaginar que este "pequeño" clónico de UNIX iba a convertirse en un estándar mundial para los ordenadores personales? como lo es hoy en día. Instituto Nacional de Estadística e Informática 9 Introducción a LINUX 3. ¿Porqué LINUX? Cuando se desarrollo el sistema operativo Linux, muchos pensaban que no tendría éxito. A lo más podría tener un éxito de corto plazo. Probablemente sería rápidamente olvidado como OS/2, Nextstep, Interactive, y otras alternativas comerciales maduras. Hoy Linux cuenta con decenas de miles, si no millones, de entusiastas usuarios, y estamos seguros de que Linux disfrutará de éxito por largo tiempo. La lista de rasgos actuales de Linux es impresionante. Por ejemplo, corre en un rango más ancho de equipos PC que cualquier otro SO no-Microsoft. Cuando usted también considera que Linux corre sobre computadoras Alpha de Digital, Sun SPARC y ahora hardware Apple PowerMac, Linux igual aventaja a otros SOs. Además, ofrece un ambiente fiable y estable de multitasking /multithreading en todas éstas plataformas, con apoyo para SMP (multiprocesamiento simétrico), y una amplia lista de hardware drivers para virtualmente todos los hardware populares. Sin embargo, los factores que asegurarán el éxito a largo plazo de Linux tienen poco que ver con la lista actual de rasgos, y mucho más con cómo es licenciado. 3.1 ¿Cómo es Licenciado Linux? Todos estos rasgos parecen notables más aun cuando usted considera que es libremente distribuido bajo los términos de la licencia GPL. Simplemente con poner esta licencia permite a cualquiera trabajar en Linux proporcionando a ellos hacer que sus cambios estén disponibles bajo los mismos términos. Esto significa que mientras Linux puede ser (y es) vendido en una variedad de formas, puede también ser bajado o ser copiado sin costo o restricción. La GPL no es el único tipo de licencia de software free, y Linux se beneficia de software licenciado bajo varios otros tipos de licencias de software libremente-distribuible. Los cuatro tipos principales son: Software del Dominio público (Public Domain Software), Shareware, derechos de propiedad de tipo-BSD, y la Licencia Pública General (GPL). Hay pros y contras en cada uno de estos, pero para proyectos de desarrollo de software cooperativo nosotros preferimos la GPL y aquí esta por qué: La GPL le permite toda la libertad de los otros, con un beneficio agregado - no a usted o su autor - pero un beneficio para el propio proyecto: Requiriendo que si usted puso cualquier cambio o agregado al código GPL que usted pidió prestado queden bajo los mismos términos de GPL, 10 Instituto Nacional de Estadística e Informática Introducción a LINUX asegurándose que ningún desarrollador gana alguna ventaja encima de otros contribuyentes del desarrollo. (Software en el que simplemente corre sobre de o usa Linux u otro código de GPL pueden ponerse bajo cualquier derecho de propiedad que usted escoja). Esto resuelve problemas como ocurrió en el proyecto de UNIX original. AT&T sostuvo los derechos de propiedad de UNIX y muchos grupos incluso el de la Universidad de California de Berkeley les ayudaron a construirlo. Cuando estuvo terminado, AT&T ejerció sus derechos de propiedad para restringir todo el uso de la tecnología que se había construido cooperativamente. Bajo la GPL el derecho de propiedad de Linux puede ser sostenido por Linus Torvalds y otros pero ellos no tienen ningún mayor derecho para restringir el uso de él que usted o Red Hat hacen. Esta carga pequeña de falta de control restrictivo asegura que Linux y sus tecnologías relacionadas continuarán evolucionando para el beneficio igual de todos sus usuarios. 3.2 ¿De donde vienen los recursos para desarrollo de Linux? ¿Cómo puede un SO gratis que al parecer no tiene dinero detrás de él ser competitivo con productos de las compañías de software de computadora más ricas del mundo? Las apariencias pueden engañar. Hay de hecho una porción de dinero que se invierte en desarrollo de Linux. Compañías comerciales de Linux como Red Hat Software y otras, invierten directamente en Linux a través de código que sus programadores escriben y contribuyen bajo la GPL, y dinero que es donado a los equipos de desarrollo Linux más importantes como la Fundación de Software Libre y los proyectos GNU, la LDP y a los responsables por la documentación de Linux, y al equipo XFree86 y su Servidor de X. El papel de Red Hat Software en el desarrollo de Linux se relaciona con que los desarrolladores de Linux que son principalmente indiferentes en las características de facilidad-de-uso. Si usted tiene las habilidades para ayudar escribir un código de sistema operativo también usted tiene las habilidades para instalar y manejar un SO sin usar menús pull-down, cajas del diálogo, y Instituto Nacional de Estadística e Informática 11 Introducción a LINUX herramientas de configuración. Rasgos, que la mayoría de las personas a quiénes podría beneficiar el uso un sistema operativo avanzado, requieren para usarlo productivamente. La historia de Red Hat Linux ilustra este punto. En 1994 Marc Ewing, un graduado del famoso programa de informática de Carnegie Mellon, estaba trabajando a IBM. En su tiempo libre él estaba construyendo la herramienta de desarrollo más avanzada del mundo. Sus máquinas de desarrollo eran una pareja de workstations Linux. Ellos estaban ejecutando SLS Linux que él había tenido que parchar y modificar substancialmente. Cuando él encontró que no estaba teniendo el progreso que él esperó en su proyecto, se detuvo y analizó el uso de su tiempo. Él descubrió que estaba gastando más tiempo manteniendo su workstations Linux que lo que estaba trabajando en su proyecto. De esa manera se detuvo y decidió que el mundo realmente no necesita otra herramienta de desarrollo, pero sí una mejor distribución de Linux. Así empezó el proyecto de Linux Red Hat proyectándose sobre las limitaciones de Linux que él había experimentado personalmente. Un ejemplo de esto es RPM - posiblemente el sistema de software de manejo de paquetes más avanzado y sofisticado de la industria de computadoras. Los RPM permiten a los usuarios de Linux instalar nuevos paquetes o actualizar los viejos, sin todas las pruebas y los errores de poner los archivos apropiados en los directorios correctos, construyendo los links necesarios, y en el caso de las actualizaciones borrando los archivos y links viejos. Los RPM hacen todo esto por el usuario incluyendo advertir al usuario de otros programas y archivos que el nuevo programa requiera por lo que no pueda instalarse todavía, ahorrando, a nuevos usuarios y desarrolladores experimentados, horas de administración y de mantenimiento del sistema. Contribuyendo con valiosos rasgos de facilidad-de-uso al SO Linux bajo GPL, Red Hat ha hecho al Linux SO útil para un número mayor de usuarios de computadoras los cuales extienden a la comunidad de Linux. A su vez Red Hat puede hacer ventas de CD Linux, libros y aplicaciones las que ensanchan rápidamente el mercado de Linux. Pero las contribuciones de compañías como Red Hat Software sólo representan una parte pequeña de los fondos que entran en el desarrollo de Linux. ♦ Linux es construido por los usuarios para los usuarios: El volumen de desarrollo de Linux es consolidado por los desarrolladores que trabajan en Linux para aplicarlo a los proyectos o aplicaciones que ellos necesitan. Desde proyectos de super-computación de NASA a desarrollo de software de empresas como Empress Software, el trabajo es consolidado por los usuarios para su propio beneficio. El hecho de que este trabajo también beneficia de gran forma a la comunidad usuaria de Linux es simplemente una realidad en el verdadero sentido de esa palabra. La historia del disco ZIP Iomega en Linux es un buen ejemplo. Grant Guenther, el diseñador en jefe de los fabricantes de bases de datos Empress Software Inc. (http://www.empress.com/) estaba 12 Instituto Nacional de Estadística e Informática Introducción a LINUX animando el uso de Linux como OS de desarrollo de Empress. Dieron acceso a sus equipos de desarrollo a workstations de bajo costo para el trabajo y para la casa. Cuando Empress escogió el ZIP drive como estándar para la compañía para transferir datos, Grant encontró que ellos no tenían soporte para Linux. El tenía opciones y tenía que hacer una decisión. Abandonar Linux y comprar números significantes de las licencias caras de las alternativas comerciales, las que vienen sin compiladores o códigos fuente - dos de las valiosas características de Linux para los desarrolladores de software - o gastar algún tiempo investigando y escribiendo su propio driver ZIP para Linux. Lo que hizo. Grant, como jefe de desarrollo de una compañía de base de datos comercial tenía ambas habilidades y estaba entrenando para hacer bien este trabajo. Habiéndolo construido, lo anunció entonces en Internet pidiendo ayuda para probarlo y mejorarlo. Asi, rápidamente se volvió parte del SO Linux para el uso de cualquiera que tuviera un drive ZIP de Iomega. ♦ Desarrollo de Linux continuado: Empress Software podría haber cobrado varios miles de dólares por los servicios que Grant hizo por escribir profesionalmente semejante driver. Bajo el modelo de Linux/GNU en el que el incentivo directo no está en el dinero en efectivo pero el beneficio indirecto para él y Empress radica en el uso que le dan a Linux. Ahora considere a Empress y Red Hat son sólo dos de varias miles de organizaciones las que incluyen literalmente todas las grandes instituciones de investigación gubernamentales, la mayoría de las Universidades y una mayoría de los equipos de investigación comercial y de desarrollo de software, y de usted que empieza a concebir una idea del notable alcance y calidad del SO Linux no son ningún accidente. La grande (y creciente) cantidad de esfuerzo en desarrollo detrás de Linux resulta, en esta tecnología, que se mantenga o sobrepase cualquier proyecto comercial de SOs que usted pueda nombrar. Un ejemplo ilustrativo es la seguridad. Debido a la naturaleza extensamente abierta de Linux y sus fuentes disponibles, se identifican problemas de seguridad, se debaten, y se reparan en tiempo real. El problema se discute abiertamente, los parches se prueban ampliamente, y el problema es trabajado hasta que es resuelto para la satisfacción de todos. Mientras esta discusión abierta de problemas de seguridad en Linux tiene, de vez en cuando, a los usuarios de SOs tradicionales desconcertados al pensar que Linux tiene problemas de seguridad a decir verdad: todos los SOs tienen problemas de seguridad, Linux simplemente los identifica y los resuelve más rápido. Cuando nos ponemos a pensar de cuantas compañías como Red Hat pueden tener éxito compitiendo con gigantes corporativos en el negocio de los sistemas operativos, nosotros pensamos en personas como Grant Guenther, en desarrolladores de la Universidad de Helsinki, en la National Aeronautics and Space Administration (NASA), en todas las universidades y en los Instituto Nacional de Estadística e Informática 13 Introducción a LINUX equipos de investigación comerciales que funcionan alrededor del mundo sobre Linux. De pronto la pregunta se da vuelta... "¿Cómo es que estos gigantes van a competir con Linux?" 3.3 Características Principales El Sistema Operativo Linux presenta las siguientes características: Multitarea: varios programas (realmente procesos) • ejecutándose al mismo tiempo. Multiusuario: varios usuarios en la misma máquina al • mismo tiempo (¡y sin tener que comprar licencias para cada usuario!). Multiplataforma: corre en muchas CPUs distintas, no • sólo Intel. Funciona en modo protegido 386. • Tiene protección de la memoria entre procesos, de • manera que uno de ellos no pueda colgar el sistema. [No como otros sistemas que todos conocemos ] Carga de ejecutables por demanda: Linux sólo lee de disco aquellas partes de un • programa que están siendo usadas actualmente. Política de copia en escritura para la compartición de páginas entre ejecutables: esto • significa que varios procesos pueden usar la misma zona de memoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la página (4Kb de memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria. Memoria virtual usando paginación (sin intercambio de procesos completos) a disco: • una partición o un archivo en el sistema de archivos, o ambos, con la posibilidad de añadir más áreas de intercambio sobre la marcha (se sigue denominando intercambio, es en realidad un intercambio de páginas). Un total de 16 zonas de intercambio de 128Mb de tamaño máximo pueden ser usadas en un momento dado con un límite teórico de 2Gb para intercambio. La memoria se gestiona como un recurso unificado para los programas de usuario y • para el caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y éste puede a su vez ser reducido cuando se ejecuten grandes programas. Librerías compartidas de carga dinámica (DLL's) y librerías estáticas también, por supuesto. • • • • 14 Se realizan volcados de estado (core dumps) para posibilitar los análisis post-mortem, permitiendo el uso de depuradores sobre los programas no sólo en ejecución sino también tras abortar éstos por cualquier motivo. Casi totalmente compatible con POSIX, System V y BSD a nivel fuente. Mediante un módulo de emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a nivel binario. Todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario; además todo ello se puede distribuir libremente. Hay algunos programas comerciales que están Instituto Nacional de Estadística e Informática Introducción a LINUX • • • • • • • • • • • • • 3.4 siendo ofrecidos para Linux actualmente sin código fuente, pero todo lo que ha sido gratuito sigue siendo gratuito. Control de tareas POSIX. Pseudo-terminales (pty's). Emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su propia emulación matemática. Cualquier máquina que ejecute Linux parecerá dotada de coprocesador matemático. Por supuesto, si tu ordenador ya tiene una FPU (unidad de coma flotante), será usada en lugar de la emulación, pudiendo incluso compilar tu propio kernel sin la emulación matemática y conseguir un pequeño ahorro de memoria. Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos dinámicamente. Consolas virtuales múltiples: varias sesiones de login a través de la consola entre las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente del hardware de video). Se crean dinámicamente y puedes tener hasta 64. Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos los sistemas de archivo típicos de System V, y tiene un avanzado sistema de archivos propio con una capacidad de hasta 4 Tb y nombres de archivos de hasta 255 caracteres de longitud. Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un sistema de archivos especial: no necesitas ningún comando especial para usar la partición MS-DOS, parece un sistema de archivos normal de Unix (excepto por algunas graciosas restricciones en los nombres de archivo, permisos, y esas cosas). Las particiones comprimidas de MS-DOS 6 no son accesibles en este momento, y no se espera que lo sean en el futuro. El soporte para VFAT (WNT, Windows 95) ha sido añadido al núcleo de desarrollo y estará en la próxima versión estable. (Está de hecho disponible desde principios de 1997) Un sistema de archivos especial llamado UMSDOS que permite que Linux sea instalado en un sistema de archivos DOS. Soporte en sólo lectura de HPFS-2 del OS/2 2.1 Sistema de archivos de CD-ROM que lee todos los formatos estándar de CDROM. TCP/IP, incluyendo ftp, telnet, NFS, etc. Appletalk disponible en el actual núcleo de desarrollo. Software cliente y servidor Netware disponible en los núcleos de desarrollo. (Ya está disponible de forma standar) Ventajas de Linux frente a otros S.O. Muchos somos conscientes de que el mayor inconveniente de cualquier sistema Unix, Linux incluido, es la 'empinada' curva de aprendizaje que se le obliga a 'subir' al usuario tipo de cualquier otro sistema operativo. Muchas veces termina uno preguntándose si realmente merece la pena ese esfuerzo. Instituto Nacional de Estadística e Informática 15 Introducción a LINUX Normalmente, ese tipo de preguntas suelen aparecer durante las primeras semanas de aprendizaje del sistema, cuando todavía no se ha obtenido una visión global de sus posibilidades. Con el tiempo, uno aprende a pensar de una forma radicalmente diferente a la que tenía cuando se sentaba delante de otros S.O. propietarios, como el OS/2, (ya vencido), System 7, de Mac o los Win95 o NT de Microsoft. Con estos sistemas, uno se acostumbra a 'ver' solo las opciones que el sistema le presente, mientras que en cualquier Unix, lo que no se te presenta directamente, enseguida estás pensando en como hacerlo. Este cambio de mentalidad delante del sistema se convierte en un pequeño reto diario que los usuarios de Linux solemos disfrutar cada día. OS/2 y Windows NT son sistemas operativos completamente multitarea, muy parecidos a Linux. Técnicamente, OS/2, Windows NT y Linux son bastante similares: Soportan aproximadamente las mismas características en términos de interfaz de usuario, redes, seguridad, y demás. Sin embargo, la diferencia real entre Linux y los otros es el hecho de que Linux es una versión de UNIX, y por ello se beneficia de las contribuciones de la comunidad UNIX en pleno. ¿Qué hace a UNIX tan importante? No solo es el sistema operativo más popular para máquinas multiusuario, también es la base de la mayoría del mundo del software de libre distribución. Si tiene acceso a Internet, casi todo el software de libre distribución disponible está específicamente escrito para sistemas UNIX. (Internet en si está profundamente basada en UNIX.) Hay muchas implementaciones de UNIX, de muchos vendedores, y ni una sola organización es responsable de su distribución. Hay un gran pulso en la comunidad UNIX por la estandarización en forma de sistemas abiertos, pero ninguna corporación controla este diseño. Por eso, ningún vendedor (o, como parece, ningún hacker) puede adoptar estos estándares en una implementación de UNIX. Por otro lado, OS/2 y Windows NT son sistemas propietarios. El interface y diseño están controlados por una sola corporación, y solo esa corporación puede implementar ese diseño. (No espere encontrar una versión gratis de OS/2 en un futuro cercano.) De alguna forma, este tipo de organización es beneficiosa: establece un estándar estricto para la programación y el interfaz de usuario distinto al encontrado incluso en la comunidad de sistemas abiertos. OS/2 es OS/2 vaya donde vaya lo mismo ocurre con Windows NT.Sin embargo, el interface UNIX está constantemente desarrollándose y cambiando. Varias organizaciones están intentando estandarizar el modelo de programación, pero la tarea es muy difícil. Linux, en particular, es en su mayoría compatible con el estándar POSIX. para el interface de programación UNIX. A medida que pase el tiempo, se espera que el sistema se adhiera a otros estándares, pero la estandarización no es la etapa primaria en la comunidad de desarrollo de Linux. 16 Instituto Nacional de Estadística e Informática Introducción a LINUX Entre las ventajas más saltantes de Linux podemos mencionar las siguientes: • • • • • • • • • • • • • Linux representa la mejor variante de UNIX, al cual se le ha confiado aplicaciones de misión crítica y -debido a su código fuente abierto -- tiene una credibilidad a largo plazo que excede a muchos otros SO que compiten con él. La mayor parte de las aplicaciones primarias que la gente requiere cuando se desplazan hacia Linux ya están disponibles de manera gratuita. Entre estos están los servidores de web, clientes POP, servidores de correo, editores de texto, etc. Un usuario avanzado del GUI de Win32 tendría que pasar por un período corto de aprendizaje para hacerse productivo [bajo Linux]. Las virtudes de Linux incluyen: Personalización... Disponibilidad / Confiabilidad ... Escalabilidad / Desempeño... Interoperabilidad... Linux está emergiendo como un sistema operativo clave dentro del mercado de servidores. Utilizando los requerimientos actuales para servidores, Linux es una alternativa creíble para los servidores desarrollados de manera comercial en muchas aplicaciones de alto volumen. Se puede usar en casi cualquier computadora, desde una 386. Puede manejar múltiples procesadores. Incluso hasta 16 procesadores. Libre de virus, aun no se conoce ningún virus para Linux. Maneja discos duros de hasta 16 TeraBytes. Se posee el apoyo de millones de usuarios a nivel mundial. Los fabricantes de Hardware le están dando su apoyo, como IBM y COMPAQ. La ventaja más contundente se encuentra en la relación costo beneficio, a comparación de otros SOs. Como ejemplo mostramos el costo de una solución para redes con Microsoft Windows NT 4.0 y con Linux S.u.S.e. 5.2 Cuadro Comparativo Windows NT 4.0 - Linux Servicio Microsoft Costo Sistema Operativo Windows NT Server 4.0 US $ 2.950,00 Linux Costo S.u.S.E. Linux 5.2 US $ 89,00 Apache US $ 0,00 Web Server Internet Information Server (I IS) E-Mail Exchange 5.0 Enterprise US $ 6.400,00 Sendmail, UW I MAP, US $ POP-3 0,00 Telnet server SLNet (4 usuarios) US $ 300,00 Incluida licencia libre ilimitada US $ 0,00 FTP server Incluido con I IS US $ 0,00 Incluido US $ 0,00 Base de datos relacional SQL Server 6.5 US $ 10.650,00 ADABAS D US $ 250,00 Proxy Server Microsoft Proxy Server US $ 995,00 Squid Object Cache US $ 0,00 Backup Software Incluido US $ 0,00 Backup Arkeia US $ 0,00 Costo Total US $ 0,00 US$ 20.995,00 Instituto Nacional de Estadística e Informática US$ 339,00 17 Introducción a LINUX 4. Estructura de LINUX "Linux" técnicamente es solamente el Kernel, no el SO de soporte. Para poder crear un producto útil, las "distribuciones" de Linux son creadas cuando se relaciona el Kernel, manejadores y aplicaciones y muchos otros componentes necesarios para tener una experiencia plena del UNIX/GUI. Los subsistemas son desarrollados típicamente dentro del esquema del OSS, así como varios de ellos – ej. el Xfree86 GUI – tienen una base de código fuente de tamaño/complejidad que excede el Kernel de Linux. Estos componentes externos vienen de muchas fuentes, y son escogidos individualmente por el vendedor de la distribución de un producto en particular. Un fuente frecuente de controversia surge debido a que los vendedores de distribución conectan código que no es GPL con el kernel de Linux y lo distribuyen de manera masiva. COMPONENTES DE LINUX Componente Encargado(s) de Proporcionarlo / Mantenerlo Código Fuente Base/Nombre Kernel SO Básico, Conexión en Red, Stacks Linux Sistema(s) de Archivos MSDOS, EXT2FS Kernel de Linux Biblioteca de System Glibc, Lib5c GNU/FSF Manejadores (http://www.kernel.org/ ) Contribuidores Inidividuales, Linux Herramientas para Usuarios Herramientas para Usuarios de GNU GNU/FSF Instalación del System LISA Caldera Instalación de Aplicaciones Mantenimiento Red Hat Package Manager Red Hat Herramientas de Desarrollo Herramientas de Desarrollo GNU GCC GNU/FSF Servidor de Web APACHE El Grupo Apache http://www.apache.org/ Servidor de Correos SendMail http://www.sendmail.org/ Servidor de DNS BIND http://www.bind.org/ Servidor X Xfree86 / Metro X Proyecto Xfree86/ comercial Manejador de Ventanas FVWM GPL Widgets Motif X Consortium Herramientas de Escritorio X Contrib, KDE Gnome X Consortium http://www.kde.org/ http://www.gnome.org/ Mantenimiento Paquetes RPM Instalados Específico de cada distribución Red Hat (gratuito) Debian / Slackware Metro X Descripción Detallada 18 Instituto Nacional de Estadística e Informática Introducción a LINUX 4.1 Kernel GPL El Kernel es la parte central de Linux que está manejada expresamente por Linus Torvalds y sus lugartenientes y está protegida vía GPL. Las funciones contenidas dentro del Kernel de Linux son: • • • Características centrales del SO (distribución del tiempo, administración de la memoria, hilos, abstracción del hardware, etc.). Stack de red Sistema de archivos Se puede encontrar una extensa documentación sobre la arquitectura del Kernel de Linux y de sus componentes en: http://sunsite.unc.edu/linux/LDP/tlk/tlk.html. Nótese que los manejadores de video existen fuera del Kernel – el Kernel sólo tiene soporte para un desplegado en modo de texto para la consola. El Kernel de Linux esta en constante actualización y es el núcleo central de todas las distribuciones Linux. Las versiones se dividen en 3 categorías: estable, alpha y beta. Las versiones estables, son las que han sido totalmente probadas y son la base de todas las distribuciones. Instituto Nacional de Estadística e Informática 19 Introducción a LINUX Las versiones alpha son las que están en una etapa previa de evaluación entre la beta y la estable y son las candidatas a la próxima versión estable. Las versiones beta son versiones estrictamente de evaluación, en la que se incorporan mejoras o novedades que deben ser debidamente evaluadas, antes de pasar a la etapas de alpha y estable. Las versiones actuales son: Ultima Versión estable:2.2.14 Ultima Versión Alpha: 2.3.99/3-6 Ultima Versión Beta: 2.3.99-pre2 4.2 Manejadores – GPL Son componentes típicos de una distribución de Kernel un conjunto variado de módulos para funciones y dispositivos estándar. Además, frecuentemente se incluye una selección de módulos no estándar. Sin embargo, en algunos casos en que el software es en su mayor parte GPL, pero que los NDA con los fabricantes de hardware son obligados a proporcionar especificaciones para hacer un controlador, en cuyo caso no son de fuente abierta. Los manejadores de dispositivos de Linux son típicamente desarrollados por usuarios de dispositivos específicos sobre sus máquinas. Este proceso acumulativo de poquito en poquito ha creado un gran conjunto de manejadores de dispositivos para Linux (hasta el 1 de Julio de 1998): • • • Vídeo: http://sunsite.unc.edu/LDP/HOWTO/Hardware-HOWTO-6.html– cerca de 400 manejadores dispositivos disponibles. Red: http://sunsite.unc.edu/LDP/HOWTO/Hardware-HOWTO-11.html – cerca de 75 tarjetas de red tienen soporte. PCMCIA: http://sunsite.unc.edu/LDP/HOWTO/Hardware-HOWTO-26.html – cerca de 150 tarjetas con soporte. NatBro señala que: Una importante característica a notar, que ha llevado a ese volumen de manejadores, es la facilidad con que usted puede escribir manejadores para Linux, y la infraestructura de depuración relativamente poderosa que Linux tiene. Encontrar e instalar el DDK y tratar de unirlo a un depurador del kernel y realizar cualquier tipo de interacción con el modo de usuarios sin romper en pedazos el sistema NT implica un reto bastante mayor que escribir un manejador sencillo de dispositivo para Linux. Cualquiera podría escribir un manejador en dos días con un libro como "Manejadores de Dispositivos de Linux" – no hay tal cosa como un manejador de dispositivo en dos días para NT. 20 Instituto Nacional de Estadística e Informática Introducción a LINUX Recientemente, varios vendedores pequeños de hardware han comenzado a proporcionar manejadores para sus NICs (3Com) y adaptadores SCSI (Adaptec). Se cree que estos dispositivos serán protegidos por la Librería-GPL y por lo tanto no serán software abierto (la Librería-GPL será descrita posteriormente). Librerías de Sistema y Aplicaciones – GNU GPL Las librerías de sistema proporcionan: • • API POSIX básicos para servicios de sistema. API básicos para utilerías de líneas de comando/shell. Las librerías de sistemas dentro de una distribución de Linux NO son manejadas por Linux. Como tales, se ha presentado un poco de escisiones en esta área con dos librerías dominantes – glibc y lib5c – quienes introducen incompatibilidades menores entre diferentes aplicaciones. 4.3 Herramientas de Usuario Herramientas del Usuario (GPL, GNU FSF) Estas son herramientas de línea de comando de UNIX y ambientes de shell básicos. Existen muchos ambientes de shell, aunque todos tienen soporte para FSF. También, dentro de esta categoría están las viejas aplicaciones "stand by" tales como Finger, Telnet, etc. Herramientas de Desarrollo (GPL) Uno de los éxitos del sistema operativo UNIX es la disponibilidad gratuita de herramientas de desarrollo/compilación. Los compiladores de lenguaje GCC y PERL son frecuentemente proporcionados de manera gratuita para todas las versiones de Linux y están disponibles también para otras variantes de UNIX. Para los estándares del desarrollador novato/intermedio para VB/VS/VC/VJ, estas herramientas son increíblemente primitivas. 4.4 X SERVER El X Server pertenece a MIT, quien se lo concesiona a la X Consortium. Las prácticas de licenciamiento de X Consortium son vistas como demasiado limitantes por la gente de OSS, por lo que se lanzaron una serie de iniciativas públicas X. Entre las que se lanzaron, el Xfree86 se convirtió en la distribución dominante. Lo que es interesante es que la licencia del equipo de desarrollo de Xfree86 está bajo la licencia de BSD, debido a que consideran a la GPL demasiado restrictiva: http://www.redhat.com/linuxinfo/xfree86/developer.html. Instituto Nacional de Estadística e Informática 21 Introducción a LINUX La configuración del sistema Xfree86 sobre Linux puede ser un proceso bastante difícil, que consume mucho tiempo. Linux no tiene capa de abstracción de hardware para los servicios de video, y la mayor parte de los fabricantes de tarjeta de video no proporcionan manejadores de video para el SO Linux. Así, Xfree86 proporciona soporte interno para una amplia variedad de tarjetas de video y chipsets. Una configuración correcta de Xfree86 requiere de que el usuario conozca al fabricante, modelo y chipset de su tarjeta de video. En muchos casos, el usuario deberá conocer o calcular la sincronización de video. 4.5 Widgets y Desktops Existen muchos conjuntos de widget que existen en muchas aplicaciones, por lo que no todas las aplicaciones X parecen ser la misma o actúan de la misma manera que Windows. Se le considera a Motif como el conjunto de widget de UNIX de facto, pero debido a que no se puede distribuir libremente, ésta es contraria al modelo de Linux. Por lo tanto, las distribuciones de Linux generalmente escogen uno de tantos conjuntos Widget, aunque no sean completamente compatibles. • • • • Motif LessTif Xaw3d (widgets 3d athena que se ven como los de Motif) Qt Obviamente, este caos ha entorpecido varios esfuerzos para unificar el "desktop", así como los conjuntos widget. A la típica manera Linux, existen varios esfuerzos que compiten entre sí: • • • • 4.6 Gnome / totalmente nuevo KDE FreeQT / KDE CDE / Comercial Servidor WEB – Apache Apache es un "programa de servidores", que son el cerebro y corazón de poderosos ordenadores que administran los sitios Web. Contrariamente a los programas comerciales, distribuidos en determinados códigos ejecutable -que el ordenador comprende-, Apache es un programa libre (freeware). Apache está publicado sobre Internet en un código original, el código fuente, que cada uno es libre de rescribir a su gusto para adaptar mejor el programa a sus necesidades específicas o rectificar errores. 22 Instituto Nacional de Estadística e Informática Introducción a LINUX La única obligación es que esta nueva versión de Apache debe ser publicada a su turno sobre Internet en código fuente. Forma así una comunidad de un potencial de millones de profesionales que participan en el desarrollo del programa. Según la publicación mensual de estadísticas sobre Internet Netcraft, Apache equipe al 49% de los sites Web. Apache compite directamente con un servidor desarrollado por Netscape y con un producto de Microsoft, Internet Information Server (IIS). ¿Que es Apache? Apache se basó originalmente en codificación e ideas basadas en el servidor HTTP mas popular de todos, el NCSA httpd 1.3 (principios de 1995). Esto ha desencaminado en un sistema que puede rivalizar (y probablemente sobrepasar) a casi cualquier otro servidor basado en UNIX HTTP en cuanto a funcionalidad, eficacia y rapidez. Desde su comienzo, se ha vuelto a escribir completamente, e incluye muchos rasgos nuevos. Apache, actualmente, es el servidor WWW mas popular en Internet, según el Netcraft Survey. ¿Por que se creo Apache? Apache fue creado para enviar las preocupaciones de un grupo de proveedores WWW y programadores httpd a los cuales ese httpd no se porto como querían que se portara. Apache es producto de un esfuerzo enteramente voluntario, completamente consolidado por sus miembros, no por ventas comerciales. Instituto Nacional de Estadística e Informática 23 Introducción a LINUX ¿Como hace el grupo de trabajo del Apache para relatar sus esfuerzos a otros servidores tales como NCSA? Ellos, por supuesto, tienen una gran deuda con NCSA y sus programadores porque el servidor Apache este basado en el. De todos modos, ahora ellos tienen su propio servidor y su proyecto es mayormente de ellos. El Proyecto Apache es una empresa enteramente independiente. ¿De donde viene el nombre de Apache? El nombre de Apache viene de "A PAtCHy server", (Un servidor lleno de remiendos). Estaba basado en alguna codificación existente y en una serie de archivos "parche". ¿Como se compara Apache con otros servidores? Apache ha mostrado ser substancialmente mas rápido que muchos otros servidores libres. Aunque seguro que los servidores comerciales han exigido superar la rapidez del Apache, ellos opinan que es mejor tener un servidor libre y en su mayor parte rápido, que un servidor extremadamente rápido pero que cueste miles de dólares. Apache funciona en sitios que tienen millones de usos al día, y estas se ejecutan sin complicaciones. ¿Como se ha comprobado totalmente el Apache? Para garantizar que funciona completamente hay que tener en cuenta que Apache esta en mas de 500,000 servidores en Internet, y se ha probado completamente por servidores y usuarios. Aparte, el Grupo Apache mantiene normas rigurosas antes de lanzar versiones nuevas de su servidor. Este corre sobre una tercera parte de los servidores WWW disponibles en Internet. Cuando aparecen "Bugs" el Grupo Apache lanza parches y versiones nuevas en cuanto estas están disponibles. La Pagina Web del Proyecto Apache (http://www.apache.org/ )incluye una lista parcial de los sitios que funcionan con Apache. ¿Cuáles son sus planes de futuro? • • • • Continuar como un servidor público de HTTP. Seguir con los adelantos en protocolo HTTP y desarrollos del Web en general. Recoger sugerencias de los usuarios para ajustes y mejoras. Responder a las necesidades de un gran numero de proveedores así como a usuarios. ¿Con quien tengo que contactar para recibir ayuda? No hay ningún soporte oficial de Apache. Ninguno de los desarrolladores quiere sumergirse en un mar de preguntas triviales que se pueden resolver en otra parte. Informes de "bugs" y sugerencias deben enviarse vía pagina de informe de "bugs". Otras preguntas deben dirigirse al comp.infosystems.www.servers.unix newsgroup donde alguien del equipo Apache que este en ese momento debería ser capaz de ayudar. 24 Instituto Nacional de Estadística e Informática Introducción a LINUX ¿Existe mas información sobre Apache? Por supuesto que si. En esta misma pagina hay una lista de direcciones en Internet sobre Apache. ¿Donde se puede conseguir el Apache? Puede enterarse de como bajarse la fuente del Apache en la página del Proyecto Apache en Internet http://www.apache.org/ ¿Cuál es Apache? la ultima versión de Apache se encuentra actualmente en su versión 1.3.12 la cual puede ser descargada de su sitio web http://www.apache.org Adicionalmente ya se encuentra en su etapa Alpha la próxima versión 2.0 la cual también puede ser descargada. 4.7 Servidor de Correo – Sendmail Sendmail es el agente de transporte de correo más común de Internet (en los sistemas UNIX). Aunque actúa principalmente como MTA, también puede ser utilizado como MUA (aunque no posee interfaz de usuario). Las misiones básicas de sendmail son las siguientes: • • • • • • Recogida de mails provinientes de un Mail User Agent (MUA) como pueden ser elm, Eudora o pine; o provinientes de un Mail Transport Agent (MTA) como puede ser el propio sendmail. Elección de la estrategia de reparto de los mails, basándose en la información de la dirección del destinatario contenida en la cabecera: Si el mail es local en nuestro sistema, enviará el mail al programa de reparto local de mails. Si el mail no es local, sendmail utilizará el DNS de nuestro sistema para determinar el host al que debe ser enviado el mail. Para transferir el mensaje, iniciará una sesión SMTP con el MTA de dicho host. Si no es posible mandar el mail a su destino (porque la maquina receptora esta desconectada, o va muy lenta), sendmail almacenará los mails en una cola de correo, y volverá a intentar el envío del mail un tiempo después. Si el mail no puede ser enviado tras un tiempo razonable, el mail será devuelto a su autor con un mensaje de error. Sendmail debe garantizar que cada mensaje llegue correctamente a su destino, o si hay error este debe ser notificado (ningún mail debe perderse completamente). Reformatear el mail antes de pasarlo a la siguiente máquina, según unas reglas de reescritura. Según el tipo de conexión que poseamos con una determinada máquina, o según Instituto Nacional de Estadística e Informática 25 Introducción a LINUX • • el agente de transporte al que vaya dirigido el mail, necesitaremos cambiar los formatos de las direcciones del remitente y del destinatario, algunas líneas de la cabecera del mail, o incluso puede que necesitemos añadir alguna línea a la cabecera. Sendmail debe realizar todas estas tareas para conseguir la máxima compatibilidad entre usuarios distintos. Otra función muy importante de sendmail es permitir el uso de "alias" entre los usuarios del sistema; lo que nos permitirá (entre otras funciones) crear y mantener listas de correo entre grupos. Ejecución como agente de usuario (MUA). Aunque no posee interfaz de usuario, sendmail también permite el envío directo de mails a través de su ejecutable. Todas estas características y muchas otras que posee el sendmail deben ser configuradas y variarán de unos sistemas a otros. Para configurarlas hacemos uso del fichero de configuración de sendmail. La revisión y modificación de este fichero es bastante complicada y necesita de una serie de conocimientos previos. La ultima versión de sendmail es la 8.10.0 y puede ser descargada de su sitio web http://www.sendmail.org 4.8 Servidor DNS – Bind En una red TCP/IP típica, el servidor de nombres es una máquina encargada de hacer la conversión entre direcciones nombres de máquinas y direcciones IP y viceversa. El software utilizado para este fin fue desarrollado en la universidad de Berkeley, California, y es llamado por esta razón BIND (Berkeley Internet Name Domain). El software BIND incluye un demonio llamado named, así como utilerías que permiten controlar este programa, que es el encargado de realizar las traducciones de nombres a IP La ulrima versión de BIND es la 8.2.2 patchlevel 5 la cual puede ser descargada del sitio web http://www.isc.org/products/BIND ♦ ¿ Dónde conseguir el software? En algunas versiones de Unix, como SCO ODE 2.0 y superiores, el software ya viene incluido, sin embargo el código fuente de última versión de BIND puede obtenerse en ftp.vix.com. Este software puede compilarse en casi cualquier versión moderna de Unix, aunque es necesario leer cuidadosamente las instrucciones que acompañan al código fuente para hacer las adecuaciones necesarias a cada ambiente. Para algunas versiones del sistema operativo Linux es posible conseguir paquetes precompilados que facilitan en gran manera la instalación del software. Para RedHat Linux, por ejemplo, es posible obtener el paquete bind-4.9.4-3.i386.rpm del sitio oficial de RedHat, ftp.redhat.com. Un buen sitio para obtener el paquete correspondiente a la versión de Slakware Linux es sunsite.unc.edu 26 Instituto Nacional de Estadística e Informática Introducción a LINUX ♦ Como instalarlo El proceso de instalación varía de una versión de Unix a otra. En SCO, por ejemplo, es necesario utilizar el custom runtime system para verificar que la instalación de TCP/IP haya sido realizada adecuadamente. La instalación a partir de los fuentes debe hacerse siguiendo las instrucciones que acompañan al código. Es necesario disponer de un ambiente de desarrollo completo (compilador, make, etc.), compilar los fuentes y poner el ejecutable named y programas auxiliares en un directorio como /usr/sbin. La instalación en una máquina con Linux RedHat es muy sencilla. Basta utilizar el siguiente comando en directorio que contiene los paquetes de software RedHat (RPMS): rpm -i bind-4.9.3-3.i386.rpm Los números de versión del paquete, así como el especificador de arquitectura (i386) pueden variar: lo mejor es verificar el nombre exacto del paquete mediante el comando ls. ♦ Cómo ejecutarlo El sistema operativo debería arrancar por sí solo el demonio named al terminar su propia secuencia de arranque. En los sistemas UNIX BSD (Linux Slakware, por ejemplo), esto se logra incluyendo en el archivo rc.local la línea: named & Los sistemas que, por el contrario, siguen la norma System V para los archivos de arranque, contienen directorios especiales con scripts de shell que levantan los programas necesarios en cada runlevel. El caso de Linux RedHat, es el más sencillo: la misma instalación mediante el comando rpm agrega en el directorio correspondiente el script necesario para levantar el demonio. Instituto Nacional de Estadística e Informática 27 Introducción a LINUX 5. Compatibilidad de LINUX La compatibilidad ha sido y será uno de los grandes éxitos de Linux, y en esto tiene mucho que ver la gente que está colaborando en el desarrollo de Linux, que trabaja habitualmente sobre distintas plataforma software, motivo este, que causa ese interés razonado por mantener la compatibilidad con cualquier otro entorno informático. Si trabajáramos con Mac o con Pc's, nos interesaría, en un momento dado, el poder intercambiar la información que pudiera tener en ambos equipos. En Linux, estas necesidades van siendo solventadas sobre la marcha, de manera que hoy día, se puede decir que alrededor del 50% del software producido a nivel mundial se podría ejecutar sobre una plataforma Linux. Actualmente contamos con emuladores para los principales entornos 'domésticos' del mundo, el 'Dosemu' para Ms-Dos, el 'wabi' y el 'wine' para Windows. Aparte de las emulaciones, que como es lógico y normal, no rinden igual que el sistema operativo al cual emulan, contamos con el 'samba', que nos permite interactuar con sistemas Win95 utilizando su famoso 'Netbios', logrando compartir recursos de forma transparente en cualquier pequeña, o no tan pequeña, red de área local. También hemos logrado lo mismo con los entornos Mac, donde también podemos compartir recursos de forma transparente. Asimismo, hemos logrado interconectar los servidores de red Novell con cualquier servidor Linux, de forma tal que podemos montar nuevos volúmenes desde Linux sin problemas. Entre los formatos de ficheros soportados por Linux tenemos los siguientes: Sistemas de Ficheros soportados Sistema de Ficheros Tipo Definición Extended File System Ext Reemplazado por ext2. Second Extended Filesystem Ext2 Sistema de ficheros mas común en Linux. Minix File System minix Sistema de ficheros Minix original; raras veces utilizado. Xia Filesystem Xia Como ext2, pero raras veces utilizado. UMSDOS Filesystem umsdos Utilizado para instalar Linux en una partición MS-DOS. MS-DOS File System msdos Utilizado para acceder a ficheros MS-DOS. /proc File System proc Suministra información de proceso para ps, etc. ISO 9660 File System iso9660 Formato utilizado por muchos CD-ROMs. Xenix File System xenix Sistema de ficheros de Xenix. System V File System sysv Variantes del System V para el x86. Coherent File System coherent Acceso a ficheros de Coherent. 28 Instituto Nacional de Estadística e Informática Introducción a LINUX HPFS File System hpfs Acceso en lectura a particiones HPFS (DoubleSpace). 6. Conectividad de LINUX Linux puede trabajar con otros SOs sin problemas gracias a los productos desarrollados para tal fin, y uno de los mas usados es Samba. Samba es un paquete que permite que un sistema Unix se integre en una red a través del protocolo NETBIOS. De esta forma sistemas Unix pueden integrarse en redes Lan Manager y compartir recursos con otros sistemas así como ofrecer recursos propios a los demás. SAMBA es un conjunto de aplicaciones que permiten establecer una total Compartición de recursos en sistemas heterogéneos. Fue desarrollado con la idea de que los UNIX "entendieran " el lenguaje de los PC´s antes que los PC´s entendieran el lenguaje de UNIX. Se trata de un protocolo muy complicado, y que ni siquiera Windows NT lo implementa en su totalidad, ya que permite realizar tareas de muchas formas diferentes. Según Andrew Tridgell, parece como si cada vez que Microsoft añadiera una nueva funcionalidad a su sistema operativo, añadiera la función equivalente en un nuevo nivel de protocolo. La aparición de "Windows for Workgroups" (WfW), llevó aparejada la aparición de un protocolo de Compartición de servicios desarrollado por Microsoft.. Este protocolo llamado SMB (SERVER MESSAGE BLOCK), también conocido por "Lan Manager" o "Netbios", se encuentra implementado en WfW, Win95 y WinNT, y permite el intercambio de servicios entre distintos ordenadores en una red local. Debido a la proliferación y uso de este protocolo en clientes de gama baja, les surge la necesidad a muchos programadores de que las máquinas de gama más alta puedan acceder a aquellas y por eso surge SAMBA. Aunque inicialmente fue escrito para UNIX ha sido portado a OS/2, VMS y Netware. Y aún dentro del mundo UNIX con todas sus variantes Samba funciona en muchas plataformas diferentes: "GNU/ Linux, SunOS, Solaris, Ultrix, HP-UX, NetBSD, SCO, NeXT, IRIX, etc...". La primera versión de Samba salió en Diciembre de 1993, y la versión actual es la 1.9.17, que es la que se distribuye habitualmente, con lo que Samba a pasado de ser un pequeño programa a un programa muy popular y un proyecto de desarrollo de muchas personas. La distribución a través de Internet es, una vez más, fundamental ya que ha hecho posible que muchas personas hayan visto la gran utilidad de este software. Instituto Nacional de Estadística e Informática 29 Introducción a LINUX 7. Conexión segura a Internet con LINUX - Firewall Una red local conectada a Internet necesita de direcciones IP oficiales para todos los puestos de la red. Por direcciones IP oficiales entendemos las direcciones que nos asigna nuestro proveedor de servicios internet de su propio rango. Si no tenemos direcciones reservadas para la red local. Es obligado que para conectar un ordenador a una red TCP/IP (como internet), éste disponga de una dirección IP (un número de 32 bits que identifica cada ordenador de forma exclusiva, una especie de matrícula de circulación). En esta situación, para que cada ordenador de la red pueda tener acceso a Internet es obligada la utilización de un Proxy o apoderado Asimismo nuestra red local debe de estar protegida de ataques externos y filtrar los paquetes recibidos. Lo cual significa, decidir si a un paquete se le permite pasar o no. Linux permite esta y muchas otras posibilidades, y cuenta con las herramientas necesarias para lograrlo. Una de estas herramientas es ipchains. ipchains) ipchains Esta misma herramienta (ipchains ipchains es usada para controlar enmascaramiento y proxy transparente, a pesar de que son dos conceptos del filtrado de paquetes totalmente separados (la implementación actual de Linux los opaca, dando la impresión de que se relacionan estrechamente). Enmascaramiento y Proxies son tratados en forma separada, y las características auto forwarding (auto re-envio) y el port forwarding (re-envío a puerto) son manejadas por herramientas separadas. 7.1 Ipchains Linux ipchains es una modificación de la codificación de Linux IPv4 firewalling (la cual fue obtenida en su mayor parte de BSD) y una modificación de ipfwadm, la cual fue a su vez modificación de ipfw de BSD. Es necesaria para la administración de filtros de paquetes de IP en las versiones 2.1.102 de Linux o posteriores. Actualmente el código está en el Kernel 2.1.102. Para las series 2.0 del Kernel, necesitará descargar un parche del Kernel desde la página web. Si su Kernel 2.0 es más reciente que el parche proporcionado, el parche más viejo debe ser el adecuado; esta porción de los kernels 2.0 es bastante estable (eg. el parche del kernel 2.0.34 trabaja sobre el Kernel 2.0.35). Necesita un kernel que tenga el nuevo IP firewall chains. Puede saber si el kernel que está ejecutando actualmente lo tiene instalado, simplemente buscando el archivo '/proc/net/ip_fwchains'. 30 Instituto Nacional de Estadística e Informática Introducción a LINUX Si no es así, usted necesita un kernel que tenga ip firewall chains. Primero, descargue los fuentes del kernel que desea. Si tiene el kernel 2.1.102 o superior, no necesitará parcharlo. Caso contrario, aplique el parche de la página web listada anteriormente, y configúrelo como se indica abajo. Si no sabe hacerlo, no tenga miedo -- lea el Kernel-HOWTO. Las opciones de la configuración que usted necesitará para las series 2.0 del kernel son: CONFIG_EXPERIMENTAL=y CONFIG_FIREWALL=y CONFIG_IP_FIREWALL=y CONFIG_IP_FIREWALL_CHAINS=y Para las series 2.1 o 2.2 del kernel: CONFIG_FIREWALL=y CONFIG_IP_FIREWALL=y La herramienta ipchains le dice al Kernel, qué paquetes se filtran. El Kernel toma las decisiones basado en las reglas con que se han configurado ipchains. Estas reglas han de permitir los servicios como http, ftp, POP3, SMTP, etc de acuerdo a lo que sea necesario Esta herramienta reemplaza a ipfwadm usado en el antiguo código de Ip firewall. El paquete también contiene un shell script llamado ipfwadm-wrapper el cual le permitirá hacer filtrado tal como se hacia antes. No debe usar este script a menos que desee una manera rápida de actualizar un sistema que use ipfwadm (es más lento, y no verifica argumentos, etc). 7.2 Ip Masquerade La función de IP-Masquerade es hacer un servicio proxy a nivel de red. A diferencia de otros servidores proxy, que ofrecen sus servicios a nivel de transporte, IP-Masquerade lo hace a nivel 3 (Capa de red), con lo que de cara a la red privada se comporta como un router. De esta forma, en los ordenadores de la red interna simplemente hay que configurar el ordenador que ejecute IPMasquerade como el gateway de la red y ya se puede acceder a recursos de otras redes sin necesidad de tener asignadas direcciones IP oficiales. Esto permite a un conjunto de maquinas acceder de forma transparente a Internet ocultas tras la maquina pasarela, la cual aparece como el único sistema que está usando Internet. A tener en cuenta también que romper la seguridad de un sistema configurado de forma correcta con IP Masquerade es considerablemente mas difícil que romper un buen filtro de paquetes basado en cortafuegos (suponiendo que no hay fallos en ninguno). Instituto Nacional de Estadística e Informática 31 Introducción a LINUX Se ha comprobado que los Navegadores de páginas web y telnet funcionan bien sobre ip_masq. FTP, IRC y Real Audio funcionan con ciertos módulos cargados. Otras variedades de audio por red como True Speech e Internet Wave también funcionan. Algunos usuarios de la lista de correo incluso lo intentaron con software de vídeo-conferencia. Además IP Masquerade funciona bien con 'máquinas clientes' con diferentes sistemas operativos y plataformas. Ha habido éxito con sistemas usando Unix, Windows 95, Windows NT, Windows para Trabajo en Grupo (con el paquete TCP/IP), OS/2, Sistemas Macintosh OS con Mac TCP, Mac Open Transport, DOS con el paquete NCSA Telnet, VAX, Alpha con Linux, e incluso Amiga con AmiTCP o AS225-stack. 32 Instituto Nacional de Estadística e Informática Introducción a LINUX 8. Distribuciones Comerciales Una distribución no es mas que una forma de hacerte llegar LINUX de forma que puedas instalarlo fácilmente. Cada una tiene su propia forma de "empaquetar" y distribuir el software que acompaña a LINUX junto con utilidades para la instalación y configuración del sistema. La mayoría de ellas están disponibles en Internet y en CD-ROM. Para tener una idea existe Slackware, Red Hat, Debian, Caldera, ... algunas pertenecientes a empresas privadas (la distribución, no LINUX!!) y otras mantenidas por grupos de gente. No vamos a recomendar ninguna ni a entrar en cual es mejor o peor, con el tiempo se oirá suficientes juicios a favor y en contra de unas y de otras para tener argumentos de valor sobre cual conviene. Conviene no confundir la versión del sistema operativo que se utilice (compuesta por tres dígitos separados por un punto) con la de la distribución, aunque generalmente se puede entender perfectamente si mencionamos Debian 1.2.xx, Red Hat 4.x, Slackware 3.0, etc... 8.1 Componentes fundamentales de una distribución comercial Aunque la esencia de Linux es el Kernel, se necesita mucho mas para convertirlo en un ambiente operativo completo. Aquí hay unos elementos clave de una típica distribución Linux. ♦ Boot Manager El boot manager o administrador de inicio es una utilería que reside en el sector de inicio maestro (MBR), que el bios de su computadora carga al inicio. Si agrega Linux a un sistema operativo con Windows u otro SO, el administrador de inicio le permite seleccionar el SO que quiere ejecutar. Aunque hay administradores de inicio de otros fabricantes, como el System comander de V Comunications, Linux incluye su propio administrador de inicio, conocido como LILO(Linux Loader), que por lo general se instala por omisión. Instituto Nacional de Estadística e Informática 33 Introducción a LINUX ♦ Interfaz de usuario En el núcleo, Linux es un derivado de Unix, y su interfaz por omisión es una línea de comando DOS. Para hacer mas accesible a Linux, hay varios ambientes de escritorio gráficos que pueden semejarlo al SO Windows o Macintos. Algunos ejemplos son CDE(Common Desktop Environment), KDE (Kool Desktop Environment) y GNOME(GNU Network Object Model Environment). A continuación mostramos las interfaces gráfica GNOME y KDE: Interfaz gráfica GNOME 34 Instituto Nacional de Estadística e Informática Introducción a LINUX Interfaz Gráfica KDE Sistema X Window Al igual que GDI(Graphics Device Interface) de windows, X window es el subsistema gráfico que soporta una interfaz de usuario gráfica. Uno delos servidores más comunes es Xfree86 (www.xfree86.org). Durante la configuración puede instalar o no un sistema X Window, según su preferencia Servicio de Internet Linux tiene soporte nativo para TCP/IP y para todos los protocolos internet comunes, como DNS(domain name system), http(web server), SMTP(correo electrónico), FTP (file transport protocol), TNP(foros de discusión) y PPP/SLIP(para cuentas conmutadas). Gran parte de las distribuciones incluyen Apache, el popular servidor web de código público, así como visualñizadores web, clientes de correo electrónico, lectores de foros y otras aplicaciones de internet. Servicios de impresión de archivos Estos servicios permiten a un sistema acceder a los recurso de red y compartir archivos e impresoras con otros usuarios. Entre los servicios típicos se incluyen NFS(Netwrk File System) para compartir archivos con otros sistemas basados en unís; y samba, que hace que los sistemas Linux luzcan y actúen como servidores Windows NT y Appletalk. Instituto Nacional de Estadística e Informática 35 Introducción a LINUX Aplicaciones Linux aún no goza del mismo soporte de aplicaciones que Windows. Pero gran parte de las distribuciones incluyen, literalmente cientos de aplicaciones, y si deseas buscarlas, encontrará una buena variedad de herramientas en otro lado. Además de editores básicos de texto como Crisp y Xemacs, hay diversas aplicaciones y suites de productividad. GIMP(GNU Image Manipulation Program) es un clon de Adobe Photoshop. Administradores de Paquetes Los administradores de paquete son herramientas diseñadas para instalar , desintalar y actualizar aplicaciones en sistemas Linux. El Debian Package Management System y el Red Hat Package Manager.(RPM) son administradores de paquetes bien conocidos. Herramientas del Programador Puesto que Linux es un favorito de los programadores , no sorprende que las distribuciones incluyan muchas herramientas de programación. Entre estas se incluyen utilerías para administrar y crear programas a partir de código fuente, eliminadores de fallas como gdb, lenguajes de programación y lenguajes de guiones como Pitón y TCL. Bibliotecas Linux incluye un conjunto central de rutinas de bibliotecas de vínculo dinámico(DLL) que se encuentran en Windows, las libcs son módulos ejecutables que se encuentran en Windows, las libcs son módulos ejecutables que realizan funciones ocultas que soportan a otras aplicaciones. Gran parte de las distribuciones incluyen muchas bibliotecas; los tipos más comunes son GNU Libc(glibc) y Libc5. 8.2 Distribuciones comerciales más populares ♦ Red Hat http://www.redhat.com/ Red Hat fue fundado en 1995 por dos entusiastas/desarrolladores de Linux con la intención de crear una distribución "limpia" con soporte comercial. La compañía, sus finanzas y alguna información sobre su desempeño están disponibles en una entrevista con su CEO en Inforworld (http://www.infoworld.com/cgibin/displayArchive.pl?/98/23/e03-23.102.htm): Bob Young, presidente de Red Hat, espera que su compañía tenga ingresos por $10 millones de dólares este año y que venda 400,000 copias de Linux, cuyos precios van de US$ 50 a casi US$ 1,000 para una versión con soporte. Extensiones Desarrolladas de manera Comercial Es posible que el aspecto más interesante del modelo de negocio de Red Hat sea sus contribuciones extremadamente activas y continuas hacia la comunidad de Red Hat. Varias iniciativas encabezadas por Red Hat han sido liberadas como OSS para su modificación. En la 36 Instituto Nacional de Estadística e Informática Introducción a LINUX mayor parte de los casos, estas liberaciones eran simples depuraciones o manejadores adicionales. Red Hat emplea de manera activa a varios desarrolladores clave de Linux y les paga para que hackeen Linux de tiempo completo. Algunos de los componentes que han sido "donados" de vuelta hacia el esfuerzo de Linux son: • Red Hat Package Manager – RPM es un componente de Linux que proporciona facilidades de instalación y mantenimiento de aplicaciones similares al Application Manifest que está siendo desarrollado por Microsoft. • Manejador Conectable de Autentificación – El PAM es similar al sistema NT SSPI/SAM y permite que plug-ins divididos en componentes la función de autentificación (Red Hat proporciona un plug-in LDAP). PAM estuvo disponible originalmente en los sistemas Sun. Sin embargo, una de las donaciones más "grandes" ha sido el ahora universal "Red Hat Package Manager" o RPM, el cual es distribuido en casi todas las distribuciones de Linux. RPM crea el concepto de un manifiesto de aplicaciones que simplifica la tarea de instalación y eliminación de aplicaciones en Linux. El proyecto actual de desarrollo de Red Hat es un nuevo GUI para Linux conocido como "Gnome". Gnome es la respuesta a las preocupaciones latentes con versiones que no son GPL de la interfaz de usuarios de X Windows. Características del Producto De los distribuidores comerciales de Linux, Red Hat tiene el conjunto más grande de SKU’s. En su producto más completo, Red Hat reúne lo siguiente en sus distribuciones de Linux: • • • Apache Web Server DBMaker DBMS por Casemaker Servidor de ventanas Xfree86. Distribuidor:: Red Hat Software INC. Durham NC; 800-454-5502 www.redhat.com ; ftp.redhat.com/pub (*) La última versión de Red Hat es la 6.2 , la cual salió mientras se preparaba esta publicación. En esta nueva versión se han mejorado algunos problemas con la versión anterior y se han incorporado nuevas versiones de servicios como Samba , Apache etc. Algunas nuevas características son las siguientes: - Instala específicamente los paquetes seleccionados durante la instalación, lo que no ocurría en la anterior versión (6.1) ya que en algunos casos instalaba componentes que no se seleccionaron. Instituto Nacional de Estadística e Informática 37 Introducción a LINUX - RedHat 6.2, además de traer nuevas versiones de aplicaciones muy usadas (samba 2.0.6, Apache 1.3.12, XFree 3.3.6, etc.), corrije finalmente problemas anteriores. - Se ha mejorado el X configurator , ahora se cuenta con mas opciones que antes. Ahora dentro de el men