Linux. Nuevo Manual de Administración y uso. Índice General 1. Introducción 1.1 Linux 1.2 Este libro 1.2.1 Notas sobre esta versión preliminar 2. Conociendo a Linux 2.1 Algo de historia 2.1.1 UNIX 2.1.2 Los computadores personales 2.1.3 El proyecto GNU 2.1.4 Hackers 2.1.5 Linux 2.2 El desarrollo de Linux 2.3 La licencia de Linux 2.4 Distribuciones 2.5 El sistema X Window 2.6 Requerimientos de Hardware 2.7 Características de Linux 3. Instalación de Linux 3.1 Preparando la Instalación 3.1.1 UMSDOS 3.1.2 Linux en una partición 3.1.3 Linux en un disco duro 3.2 La instalación 3.3 Programas disponibles para Linux 3.3.1 Programas esenciales 3.3.2 Programas de consola 3.3.3 Herramientas de desarrollo 3.3.4 Emacs 3.3.5 LATEX 3.3.6 Tcl 3.3.7 Herramientas para un servidor 3.3.8 X Window 3.3.9 Programas para X 3.3.10 Administradores de Ventanas 3.4 Reiniciando su sistema 4. Configuración de Linux 4.1 La consola ROOT 4.2 Recompilar el kernel 4.2.1 Configurar las opciones 4.2.2 Compilación del kernel 4.3 Configurar su Hardware 4.3.1 Los dispositivos ISA Plug&Play 4.3.2 Los dispositivos PCI 4.3.3 Impresora 4.4 Configurar X Window Bibliografía Sobre este documento... 1. Introducción Así como en los entornos empresariales, el valor agregado de un sistema se incrementa al estar eficientemente integrado con los otros sistemas. Un computador incrementa su valor agregado al instalarle un sistema operativo que aproveche eficientemente las capacidades de su hardware; y uno con un sistema operativo o un software ineficiente, o que necesite de más hardware que el instalado en el equipo, disminuye su valor y su capacidad práctica. Por esta razón, los administradores de sistemas deben conocer bien las capacidades de los sistemas operativos para saber cual es el más adecuado para cada tarea específica. Un viejo dicho en la industria de los computadores dice: “Si tienes que programar algo, hazlo en un PC, si tienes que conectarlo, hazlo en UNIX, y si tienes que verlo, hazlo en un MAC”. Este dicho sigue siendo válido hasta nuestros días. Con algunas diferencias. Ahora los PCs pueden ejecutar varias clases de sistemas operativos. Un sistema operativo escrito originalmente para computadores Apple Machintosh, llamado BeOS, ahora tiene una versión para PC, y tiene poderosas capacidades gráficas, multimedia y edición de video. También hay distintas versiones de UNIX disponibles para PC’s. Entre estos, hay uno que sobresale entre los demás. Este sistema operativo se llama Linux. 1.1 Linux Linux es esencialmente una versión de libre distribución de UNIX para computadores personales o de escritorio. Esto quiere decir que tiene todas las ventajas de interconexión en redes, multitarea, multiusuario, seguridad, portabilidad y eficiencia de los sistemas UNIX, pueden tener varios usuarios usando el sistema al mismo tiempo, y cada usuario puede tener varios programas en ejecución simultáneamente. También, que no hay que comprar licencias costosas para poderlo instalar en varios computadores, con un solo disco de instalación (que puede ser una copia) es legal instalarlo en todos los computadores de una empresa o universidad, y se puede bajar sin costo de la red. Y finalmente, que funciona en prácticamente todos los computadores vendidos en la actualidad, incluyendo el suyo. Se explica la licencia de Linux en la sección 2.3. Linux no es el único sistema operativo de libre distribución, existen además GNU1.1 el proyecto de un sistema operativo que comenzó todo este movimiento en 1985, FreeBSD que es una versión de UNIX para supercomputadores, 386BSD que es otra versión de UNIX para computadores compatibles con IBM, y recientemente la empresa Be Inc. anunció la versión gratuita para uso personal de su sistema operativo BeOS 5.0. Como una comparación, los únicos sistemas operativos comerciales que tienen algunas características sobresalientes de Linux, son Windows NT y recientemente Windows 2000 de Microsoft y también las distintas versiones de UNIX. Aunque Linux no es aún muy fuerte en ambientes de escritorio, un estudio sobre Internet da un resultado de 6.4 millones de servidores en Abril del 2000, y algunos autores estiman que 3 millones de estos servidores usan Linux. Como ejemplos extremos del uso de Linux, éste ha viajado hasta los mares del pacífico norte, encargándose de las telecomunicaciones y análisis de datos en un buque de investigación oceanográfica. Así mismo se usa en estaciones de investigación en la Antártica. 1.2 Este libro Uno de los problemas de Linux, es que después de tener el sistema Linux instalado en su computador, un usuario no sabe qué hacer después. Cosas simples, como ver un archivo en un disquete, crear una carta o compilar un programa en lenguaje C, son sustancialmente diferentes de hacer en un sistema Linux, y la curva de aprendizaje es lo suficientemente elevada para que muchos usuarios no quieran usar Linux simplemente por “no tener tiempo para aprender a manejar un computador de nuevo”. Para llenar esa necesidad existe este libro, enseñándole como usar un sistema Linux, desde el uso de algunos comandos hasta la administración de un sistema completo. Este libro asume que Ud. es un usuario avanzado o un administrador de sistemas. Debe saber como instalar algún otro sistema operativo, debe conocer el hardware de su computador y debe tener experiencia solucionando algunos problemas de configuración (si desea aprender más sobre esto, lea un libro sobre hardware[1]). Este libro asume también que Ud. es nuevo en cuanto al mundo de Linux o de UNIX en general e intentará explicarle como se hacen cosas habituales en este sistema operativo. Sin embargo, este libro está escrito de la manera más clara posible y podría servirle incluso si no está familiarizado con algún otro sistema operativo. En el primer capítulo hay una introducción a Linux, su historia, las distribuciones y algunos detalles importantes acerca del sistema operativo que debe saber antes de involucrarse más a fondo con cosas complicadas del sistema. En el segundo capítulo se trata de la instalación de Linux, lo que debe conocer de su computador antes de la instalación, las diferentes maneras de hacerlo, la preparación que debe realizar antes de la instalación y la escogencia de que software instalar. En el tercer capítulo se trata la configuración del sistema recién instalado. Primero se ve como recompilar un kernel personalizado para su sistema. Posteriormente se trata como configurar los diferentes dispositivos de hardware de su computador. 1.2.1 Notas sobre esta versión preliminar Este libro es el resultado de 2 meses de trabajo. El libro final será el resultado de 12 meses de trabajo o más. Falta mucho para que el autor considere que el libro está listo. Los planes actuales sobre los contenidos del libro son: Un capítulo (no se si antes o después del capítulo sobre la instalación) que explique los conceptos fundamentales de Internet y trabajo en redes, cuentas de usuarios, el sistema de archivos y otros conceptos básicos de Unix y Linux. Un capítulo de tutorial para uso de la consola y de las aplicaciones de consola existentes. Un capítulo sobre el uso de LATEX para producir documentos con complicadas ecuaciones matemáticas y otras cosas (este libro se está escribiendo con LATEX). Un capítulo de tutorial sobre los administradores de ventanas Gnome y KDE. Es muy probable que cuando el libro esté listo ya esté disponible KDE versión 2.0, que incluirá Koffice, la primera suite de aplicaciones de oficina completamente open source. (Si algún ingeniero lee esto, le pido que se una al proyecto y nos ayude, vea la dirección http://www.kde.org/koffice). Esta suite de aplicaciones y la alta productividad del entorno KDE serán el evento fundamental que impulsarán la migración desde Windows hacia Linux y es probable que esto ocurra a finales del año 2000 o en el 2001. Un capítulo sobre la administración del sistema. Un capítulo con un tutorial sobre la programación de sitios web interactivos usando PHP 4.0 y PostgreSQL (Un trabajo que tuve que realizar usando estas herramientas dilató bastante mi trabajo en el libro durante el último mes, así que hay que aprovecharlo). Un capítulo sobre la programación en Linux, incluyendo tutoriales de uso de las herramientas Autoconf, AutoMake, las librerías Qt, y probablemente una aplicación de ejemplo que funcione con KDE. Un capítulo sobre la seguridad del sistema, sobre todo para los ataques en las redes e Internet. Es probable que se incluyan algunas cosas más, según sea necesario. No hay planes de que este libro se base en ninguna distribución particular de Linux, pero si se incluye algún CD en la portada es posible que uno de los apéndices sea el manual de instalación y configuración de esa distribución en particular, probablemente RedHat o Caldera. 2. Conociendo a Linux La historia de Linux es algo compleja, y se ve influenciada por una serie de factores que ocurrieron en el momento adecuado, como el proyecto GNU, el sistema operativo Minix y el creciente uso de Internet. 2.1 Algo de historia En un principio, los sistemas operativos se creaban para cada plataforma de hardware diferente, así, cada fabricante de hardware era también el fabricante de su propio sistema operativo y estos se escribían en lenguaje ensamblador. Hasta que llego el sistema operativo UNIX. 2.1.1 UNIX El sistema operativo UNIX fue creado por Ken Thompson y Dennis Ritchie en los laboratorios Bell (ahora conocidos como Laboratorios AT&T Bell) en el año de 1969. Su filosofía de diseño consiste en crear un ambiente que promueva el desarrollo eficiente de programas y además que el propio sistema operativo sea pequeño, con un inteligente uso de la memoria y que sea fácil de mantener. UNIX fue el primer sistema operativo que podía correr en diferentes plataformas de hardware. Esto fue logrado gracias al lenguaje de programación de alto nivel C (que fue creado especialmente para codificar este sistema operativo), y al hecho de que el sistema fue diseñado para no depender de ninguna característica específica del hardware donde sería desarrollado. En pocos años había versiones de UNIX corriendo en todas las plataformas existentes. Las cuentas de usuario, la seguridad del sistema, el protocolo de Internet, las páginas Web, el correo electrónico, los grupos de noticias, los procesadores de texto, los compresores de archivos y la memoria virtual, entre otras cosas, fueron creados en los sistemas UNIX. Por estas y otras razones, algunos Hackers2.1 consideran que UNIX es el único y auténtico sistema operativo. Pero UNIX tiene también algunas desventajas, y entre ellas, la más importante para las décadas de 1970 y 1980: el costo. Tanto los supercomputadores como las versiones de UNIX que andaban en ellos eran demasiado costosas para casi todos, excepto para las grandes empresas y las universidades. Ahora sabemos que la confiabilidad de un sistema operativo es más importante que su costo, porque el valor de reparar una falla en un sistema funcionando es incluso un orden de magnitud más grande que el costo del propio sistema operativo, pero en esta época la industria de los computadores era todavía inmadura y faltaba mucho por aprender. 2.1.2 Los computadores personales En enero de 1975 empezó la moda de los computadores personales con el kit para armar Altair, que fue el artículo de portada de la revista Popular Electronics. Es considerado el primer computador personal en la historia y tenía un procesador Intel 8080, una fuente de electricidad, un panel frontal con muchas luces y 256 bytes (no kilo-bytes) de memoria. En poco tiempo Bill Gates y su amigo Paul Allen, ambos estudiantes universitarios en Harvard, crearon un sistema operativo para estos computadores. El primer computador personal de IBM también salió a la venta en 1975. Sin embargo su elevado precio de $9.000 dólares lo hizo un fracaso en ventas. En 1976 una nueva compañía llamada Apple Computer introdujo el Apple I, que solamente incluía un circuito integrado, no tenia fuente de poder. El Apple II introducido en 1977 creó los estándares de los computadores personales de esa época, con una agradable interfaz gráfica y el uso del ratón, siendo ampliamente aceptado desde entonces. También había otros sistemas basados en procesadores Z80 y con sistema operativo CP/M. Luego de su primer fracaso, IBM decidió competir en serio en la creciente industria de los computadores personales. El IBM PC apareció a finales de 1981. IBM Diseño el sistema adecuado para el mercado de ese tiempo[1]. Contrató a MicroSoft, la empresa creada por Bill Gates y Paul Allen, para que construyera un sistema operativo que funcionara en disquetes, llamado DOS, que era muy similar al CP/M, y también tenía una que otra característica de UNIX. Poco tiempo después de su lanzamiento, las ventas del PC se dispararon más allá de las previsiones de todo el mundo, incluido IBM. Más tarde los nuevos PC’s tendrían discos duros y poco a poco se convirtieron en el estándar en los hogares y en las empresas pequeñas y medianas. Se han escrito más programas para estos computadores que para cualquier otro sistema en el mercado. Específicamente el chip 80386 de Intel, creado en 1985 (y todos los que le siguen) tiene las características avanzadas que permiten crear un sistema operativo multitarea y multiusuario, como memoria protegida, varios niveles de seguridad para el código que está siendo ejecutado, y soporte para usar memoria virtual. Y gracias a este chip evolucionaron Linux y todos los demás sistemas operativos modernos para PC’s compatibles. 2.1.3 El proyecto GNU El creador del programa Emacs, Richard Stallman, quien trabajaba en el laboratorio de inteligencia artificial del MIT (Massachusetts Institute of Technology), es el creador del proyecto GNU (Gnu’s Not Unix). El proyecto GNU comenzó en 1984, con el objetivo de crear un sistema operativo completo, y que además fuera completamente libre2.2. Cualquier persona tiene el derecho de distribuirlo, modificarlo, venderlo, o si lo desea, copiarlo gratuitamente sin ningún problema legal. El manifiesto GNU fue publicado en marzo de 1985, un año después de haber sido ideado, para tener evidencia de que es un modelo válido, con algunos programas GNU funcionando ya. La idea del proyecto GNU no es “Heavy, aquí tenemos unos programas que pueden copiar gratis, y son mejores que sus equivalentes comerciales”. La idea fundamental del proyecto GNU es que todo el software debería ser de libre distribución, y que esta libertad de distribución es algo que vale la pena defender. Un año después de publicar su manifiesto, Stallman creo la FSF (Free Software Foundation), para apoyar a su proyecto y defender al software de libre distribución. La FSF ha creado una gran cantidad de programas GNU que son vitales para el funcionamiento de Linux. El primero fue GNU Emacs. Luego existieron Bash, el intérprete de comandos y GCC (GNU C Compiler) el compilador de C. La cantidad de programas GNU existentes ahora es demasiado grande para ser nombrada por completo. Sin embargo el proyecto GNU aun está distante de ser terminado. El kernel que están haciendo para su sistema operativo no está listo aún, y no hay una fecha aproximada de cuando pueda estar listo. Si no existiera Linux, el proyecto GNU todavía sería desconocido, excepto para la comunidad UNIX. 2.1.4 Hackers A finales de la década de 1950, un grupo de estudiantes del MIT, que disfrutaban con los retos que ofrecían los primeros computadores gigantes de la universidad, comenzaron a llamarse a sí mismos Hackers. Hacían programas complejos y los podían usar libremente. Richard Stallman es directo descendiente de estos primeros hackers. [5] Un hacker es en esencia, un programador. Y hackear es en esencia, programar. Pero un hacker solamente hace buenos programas. En la comunidad GNU Linux, los programadores se consideran hackers en algún grado, o son considerados así por los demás. Aquel que pueda hacer el código más eficiente, más pequeño, que pueda resolver más problemas, es aquel que tiene más prestigio. Gracias a gente como ellos, los proyectos de fuentes abiertas2.3, son más estables y eficientes que sus equivalentes comerciales. Hay hackers de más de 120 países ayudando a los proyectos de fuentes abiertas. Y en algunos países Linux esta creciendo más rápido que el mismo Internet. Algunos hackers han sido llevados por el lado oscuro de la fuerza, y han sido rebautizados crackers. Son estos los que entran ilegalmente al departamento de defensa de Estados Unidos, o se dedican a hacer los virus de computador. Afortunadamente son una pequeña minoría. Sin embargo, en el mundo Linux, todos sus ataques son contrarrestados en cuestión de horas, y es probable que Linux sea el sistema operativo más seguro que existe, siendo usado en la actualidad por instituciones gubernamentales y proyectos donde la confiabilidad y estabilidad del sistema son más importantes que cualquier pequeña diferencia de velocidad. La velocidad también es importante para los hackers, cuando ya se han alcanzado la estabilidad y confiabilidad suficientes. 2.1.5 Linux Linus Torvalds es un hacker que aprendió muchas cosas de programación a bajo nivel, es decir, programación en lenguaje ensamblador, en un computador Sinclair QL. Este computador fue lanzado en 1984 con pocas virtudes, pero una en especial: era un verdadero sistema multitarea. El evento clave que llevaría a la eventual creación de Linux ocurrió en el otoño de 1990, donde Linus tomó un curso sobre UNIX en la universidad de Helsinki donde estudió ciencias de la computación. En ese entonces, la universidad había instalado una máquina MicroVAX corriendo Ultrix. Ultrix es una versión más de UNIX. El problema para Linus, es que el hardware de la universidad no podía tener sino 16 usuarios al tiempo. Él tenía que esperar en línea para acceder a una terminal. Uno de los libros que tuvo que leer en la universidad era “Sistemas Operativos: Diseño e Implementación”, de Andrew Tanenbaum, el cual incluía una guía para una clase de sistema operativo Unix, muy pequeño, llamado Minix. Andrew Tanenbaum es profesor de ciencias de la computación en la Vrije Universiteit en Amsterdam. En ese entonces Linus compró un sistema PC y le instaló Minix. No lo había hecho antes, porque no le gustaba el sistema operativo DOS. Minix era muy pequeño, diseñado simplemente para la enseñanza. Pero era bastante usado a pesar de sus limitadas características. A dos meses de su lanzamiento en 1987, ya existía un grupo de noticias con más de 40.000 usuarios. Muchos usuarios de Minix querían más capacidades, pero Tanenbaum no las aceptaba, porque esto haría a Minix demasiado complejo para ser usado en docencia. Para Linux, todo comenzó con dos procesos que imprimían AAAAA... y BBBBB... en una terminal. En 1991, Linus Torvalds tuvo la necesidad de crear un programa de emulación para leer los grupos de noticias. Según palabras del propio Linus, fue simplemente cuestión de cambiar las Aes y Bes en algo diferente. Un proceso leía del teclado y enviaba datos al módem y el otro leía del módem y enviaba datos a la pantalla. Había algo más que necesitaba, controladores de dispositivos (drivers), para poder usar diferentes pantallas, o diferentes teclados. En verano de 1991, Linus tuvo que bajar algunos archivos de la red. Pero antes de que pudiera leer y escribir en el disco, tenía que crear un controlador de dispositivo para el disco duro, y un sistema de archivos, para comunicarse con el sistema de archivos en los discos usados por Minix. Y así lo hizo. Con un sistema de tiempo compartido, controladores de dispositivos y un sistema de archivos, se tiene un UNIX. O por lo menos un kernel de UNIX. En ese momento Linux había nacido. [3] Para probar el interés en su proyecto, Linus publicó un mensaje en el grupo de noticias comp.os.minix con las siguientes palabras (en su idioma original): Hello everybody out there using minix I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. Linus no adaptó los programas GNU para su kernel, sino que adaptó el kernel para funcionar con los programas GNU existentes. De esta manera, desde su creación ya existían programas que podían ser usados en Linux. El 5 de Octubre de 1991, fue anunciada la primera versión oficial de Linux, la 0.02. Podía ejecutar el intérprete de comandos bash y el compilador de C gcc, ambos programas GNU. De la versión 0.03 saltó a la versión 0.10 en noviembre de 1991. El tamaño de Linux en ese entonces era de unas 10.000 líneas de código. A partir de esa versión Linux esta disponible a través de Internet. Esa versión solamente la bajaron unas 10 personas, y solamente enviaron reportes de errores con correcciones 5 personas. Linux era solo el nombre interno que Linus Torvalds usaba para el proyecto. Él pensó que si lo hubiera usado como el nombre oficial, la gente lo hubiera tildado de egocéntrico. Así que el nombre oficial que escogió fue “Freax”. Al encargado del sitio FTP de la universidad no le gustó el nombre, así que uso Linux en su lugar. Le siguió rápidamente la versión 0.11 en diciembre de 1991. Luego de un tiempo, cuando Linux estuvo muy cerca de ser un sistema estable y confiable, Linus decidió que la versión 0.13 debería llamarse a partir de ese momento la versión 0.95. Además se le añadió el sistema XFree86 que le dio un aspecto gráfico a Linux. Esto ocurría en 1992. Ya Linux tenía 1.000 usuarios y 40.000 líneas de código. En 1993, la versión de Linux ya era 0.99, el número de usuarios más de 20.000 y las líneas de código 100.000. La revisión del código creado por el grupo de aproximadamente 100 programadores que ayudaban a la creación de Linux, fue delegada a 5 programadores líderes. En 1994, se le añadieron capacidades de red a Linux y se crea la versión 1.0. Los usuarios ya son 100.000 y el número de líneas de código 170.000. A partir de este momento Linux se consigue esencialmente en forma de distribuciones. En 1995, el número de usuarios es de 500.000. La versión de Linux es 1.2 y el código tiene 250.000 líneas. En esta época Linux ya funciona en procesadores diferentes a Intel, como Digital y SUN Sparc. En 1996, con la versión estable de Linux 2.0, simplemente uniendo máquinas Linux y aprovechando sus capacidades de computación distribuida, se creó un supercomputador que podía ejecutar miles de millones de instrucciones cada segundo. En esa época era el computador #315 más rápido en el mundo. En 1998, el número de usuarios ya ascendía a 7.5 millones, el número de programadores a 10.000, y el código del kernel a 1.5 millones de líneas, con un número de versión de 2.1.110. Linux sigue evolucionando continuamente. El sistema de numeración del kernel es el siguiente: si el segundo número de la numeración es par, el kernel está en una versión estable, como en la versión 1.0.7 y si es impar, está en una versión de desarrollo, con nuevas características, que puede ser inestable, como la versión 1.1.37. Así sigue creciendo y en el momento de escribir este libro el kernel de Linux está en la versión estable 2.2.14 y su versión de desarrollo está en 2.3.x, con x cambiando aproximadamente cada mes. El número actual de usuarios de Linux es desconocido, pero se estima que sea de unos 15 a 20 millones de usuarios y con el crecimiento que lleva en el año 2000, podría llegar a 30 o 40 millones al finalizar el año. Como una comparación, el número de usuarios de sistemas Windows es de más de 130 millones de usuarios, y el de sistemas Apple es de más de 50 millones. Notas al pie ...Hackers2.1 Vea la sección 2.1.4, donde se explica el concepto de Hackers. ... libre2.2 En inglés, esto se describe generalmente como free software, sin embargo, free significa no solo libre, sino gratis. El software libre no es necesariamente software gratuito. Afortunadamente en español hay palabras diferentes para ambas ideas. ... abiertas2.3 Conocidos en inglés como proyectos Open Source 2.2 El desarrollo de Linux Prácticamente todos los sistemas operativos, incluyendo algunos gratuitos como FreeBSD, son creados por un grupo experto de ingenieros que se aísla a programar y diseñar características, y los usuarios de los programas pueden solamente usarlas. Para tener nuevas características deben pedirle al grupo de expertos que las implementen y esperar, tal vez durante mucho tiempo, una nueva versión. A este modelo de desarrollo usado durante mucho tiempo se le conoce como “la catedral”. Linux por su parte, fue creado en su mayoría por sus propios usuarios, bajo la guía y supervisión de Linus Torvalds. Si alguien desea una característica en especial, debe programarla él mismo. Generalmente se une con otras personas que tienen el mismo interés y luego de un tiempo hacen que esta característica funcione y se le incluya en el kernel. Los cambios que realice un usuario, si son aprobados, se distribuyen inmediatamente por Internet para que todos los que lo deseen puedan probar las nuevas características. A este modelo de desarrollo, creado con Linux, se le conoce como “el bazar”, por su aparente desorden. [4] Muchas teorías se han dicho acerca de estas maneras de hacer software, y en la década de 1980, nadie hubiera apostado un centavo por el modelo bazar. Pero el éxito del desarrollo de Linux y su confiabilidad han rebatido todas las teorías. Además de esto, el modelo bazar permite una velocidad impresionante para la adición de nuevas características y corrección de errores. Dos semanas después de que Intel sacara al mercado su procesador Xeon, un usuario de Linux ya había modificado el kernel y podía correr Linux en una máquina con cuatro procesadores Xeon simultáneamente. Un cracker malicioso en Internet creo el llamado “ping de la muerte”, que aprovechaba un agujero en el protocolo TCP/IP, y atacó a cientos de computadores. Sólo 24 horas después del reporte, el kernel de Linux ya era inmune a este ataque, gracias a otro usuario que generó una corrección. Ningún otro sistema es corregido tan rápido. 2.3 La licencia de Linux A diferencia de las licencias de casi todos los demás sistemas operativos, que tienen como único objetivo que solamente software “original” pueda ser instalado legalmente en los equipos, y que cuestan desde cientos hasta miles de dólares por equipo, la licencia de Linux no cuesta nada y solamente existe para garantizar que esto siga siendo así. Antes del proyecto GNU, los programadores que querían distribuir gratuitamente sus programas los ponían bajo el dominio público. El problema de esto, es que empresas comerciales podían tomar el programa, modificarlo un poco, y ponerle licencia comercial, argumentando que ellos habían hecho todo el trabajo. Esto ocurrió muchas veces. Algunas empresas hicieron esto, incluso con el software comercial de otras empresas. La diferencia fundamental es que las empresas afectadas pueden demandar y mover recursos para defender su software, pero el software en dominio público no tiene a nadie quien lo defienda. El primer navegador de páginas Web para Internet estaba en el dominio público, y se llamaba Mosaic. Al no existir restricciones de copyright, una empresa comercial tomo el software, le añadió algunas características y lo volvió un producto comercial, creando Netscape Navigator. Una clasificación de las licencias se ve en la siguiente tabla. Licencia Gratuita Redistribuible Uso sin restricción Código Fuente disponible Código fuente modificable Correcciones públicas Todos los derivados deben ser libres Comercial Evaluación X No comer. X X Shareware X X Freeware X X X Lib. grat. X X X X BSD X X X X X Apache X X X X X X GNU GPL X X X X X X X Estas categorías de licenciamiento de Software se describen a continuación: Comercial: Debe ser comprado, no puede ser distribuido, y solamente está disponible como código binario para los usuarios finales. Un ejemplo de este software es Microsoft Office. Software de Evaluación: Son versiones con características limitadas de software comercial, que pueden ser distribuidas libremente y que intentan ser propaganda para el software comercial. Uso no Comercial: Es software que es se puede usar gratuitamente por individuos e instituciones educativas. Las corporaciones deben comprar una licencia. Ejemplos son StarOffice y Netscape. Shareware: Son versiones completas y de libre distribución, pero tienen una licencia que obliga a ser pagada para un uso prolongado del software. Ejemplos de esto son WinZip y WinAmp. Freeware: Consisten en software que puede ser libremente usado y distribuido, pero está disponible solamente en forma binaria. Ejemplos de esto son Internet Explorer y Netmeeting. Librerías Gratuitas: Son software que puede ser libremente usado y distribuido como código fuente y como binario, pero no puede ser modificado sin violar la licencia. Un ejemplo son las librerías de clases de C++. Software de Fuentes Abiertas, estilo BSD: Un grupo cerrado de individuos crea el software y permite la libre distribución de los binarios y del código fuente. Aunque los usuarios pueden modificar el código, el grupo de desarrollo generalmente no usa las modificaciones de los usuarios. Software de Fuentes Abiertas, estilo Apache: Es como el BSD, pero el grupo de desarrollo puede usar las modificaciones de los usuarios si son útiles. Software de Fuentes Abiertas, estilo GNU GPL: Además de las características del estilo Apache, la licencia GPL (General Public License) requiere que todos los trabajos derivados del software deben estar también bajo esta licencia. Esta característica adicional, ideada por Stallman, es la que protege al software GNU de las empresas comerciales. Originalmente Linus distribuía su kernel bajo una licencia particular que permitía su libre uso y distribución, pero prohibía su uso comercial o cualquier manera de usarlo para ganar dinero. El kernel de Linux actualmente se distribuye bajo la licencia GNU GPL. Esto significa que el kernel se puede copiar, cambiar, distribuir, y cobrar una suma de dinero por él si se desea, pero no se le pueden quitar estos derechos a nadie. La persona que adquiera Linux tiene estos mismos derechos. Todo el código que está bajo la licencia GPL tiene copyright y no puede ser utilizado en ningún programa comercial, ni en ningún programa que no se distribuya también con el código fuente. Los programas que se basen en el código de un programa GNU también deberán estar bajo este copyright, de lo contrario se estarían violando los derechos de autor del software original. Cada uno de los programas en un sistema Linux tiene una licencia diferente y su autor original conserva el copyright, incluso si una gran cantidad de programadores lo ha modificado y mejorado. Cuando esto sucede, no ocurren problemas legales, sino que varios autores comparten el copyright. Casi todo el software para Linux está bajo la licencia GPL o una licencia gratuita similar, como el servidor X que está bajo la licencia MIT X. 2.4 Distribuciones Todas las distribuciones de Linux tienen en común el kernel, que es la parte más importante del sistema. Las distribuciones recolectan versiones de varias aplicaciones junto con el kernel en una instalación de Linux, que funciona y solamente necesita algo de configuración. Aunque en un inicio Linus no permitió que Linux fuera usado en una distribución comercial, sin embargo, cambió de parecer y ahora las distribuciones comerciales son las que más impulso le han dado a Linux, gracias a sus facilidades de instalación. Hace ya bastante tiempo (1993), una distribución de Linux era algo que se bajaba de la red y ocupaba un par de disquetes. Hoy en día ocupan un par de CDs2.4 o más. En las distribuciones, no se cobra por el programa propiamente dicho, sino por el soporte técnico2.5 que se recibe de parte de la empresa, y por los manuales. En casi todas las distribuciones, se puede bajar la versión gratuita por medio de Internet, y la única diferencia entre la versión gratuita y la versión comercial, es que la versión gratuita no incluye el soporte técnico, ni los manuales impresos2.6. Hay también unas pocas distribuciones que sólo se pueden comprar en CDs. Estas incluyen software comercial, aunque también es posible bajar versiones de evaluación en la red. Gracias a la licencia GPL una persona puede comprar una distribución de Linux, hacer todas las copias que quiera de los CDs y venderlas al precio que desee sin ningún problema legal. Esto es especialmente cierto con la distribución Debian, ellos apoyan esta forma de distribución siempre y cuando se distribuyan también los códigos fuente de los programas. Cualquier persona que lo desee puede crear también su propia distribución, solamente tiene que reunir el kernel y los programas que desee incluir. Si desea información sobre cómo construir su propia instalación de Linux, usando solamente códigos fuentes de los programas que va a instalar y personalizando hasta el más mínimo detalle de su configuración, vea la página Linux from Scratch en la dirección http://huizen.dds.nl/~glb/. A continuación hay una breve reseña de algunas de las distribuciones más conocidas: Slackware: Esta distribución fue la más popular en el mundo hace algún tiempo. Es relativamente fácil de instalar, aunque su sistema de instalación sea en modo texto. Viene con prácticamente todo el software que cualquier usuario medio o avanzado pueda necesitar (Viene en 4 CDs de los cuales 2 son recopilaciones de software de los sitios ftp://sunsite.unc.edu y ftp://tsx-11.mit.edu). Red Hat: Creada por Red Hat Software. Su principal ventaja es la instalación en modo gráfico y el fácil manejo de los paquetes de programas por medio del RPM (RedHat Package Manager). La mayoría del software que se consigue actualmente para Linux incluye una versión en formato RPM. Es la distribución líder del mercado. Caldera: Es una buena distribución que incluye manejadores de ventanas comerciales y StarOffice. Hay cosas que tiene Caldera que no tiene ninguna otra distribución. Se integra muy fácilmente con NetWare, así que si se desea instalar en una red NetWare, esta es la distribución a escoger. Debian: Es la versión de la FSF. Usa el kernel de Linux y el software GNU y se distribuye con el código fuente de todos los programas. El objetivo a largo plazo de la FSF es tener una distribución completamente creada por ellos bajo la licencia GPL, pero mientras terminan su propio kernel, llamado Hurd, usan el kernel de Linux. Hurd funciona hace varios años, pero no está listo aún para ser usado por el público en general. La mayoría del software para Linux (incluso el usado en otras distribuciones) fue creado por ellos. Corel Linux: Es una distribución basada en Debian, con algunas adiciones, como autodetección del hardware y algunas aplicaciones Corel basadas en KDE. Corel está ayudando activamente al desarrollo del entorno KDE y del emulador WINE. El objetivo de Corel es tener una plataforma para su suite comercial de aplicaciones Corel WordPerfect. SuSE: Es una versión alemana, que en poco tiempo se ha puesto a la vanguardia del mercado junto con RedHat, gracias al activo desarrollo que llevan. Es la distribución líder en Europa. Han contribuido con mejoras a los drivers del sistema X Window para Linux, entre otras cosas; y aparentemente siempre están al día. 2.5 El sistema X Window El primer sistema operativo gráfico para computador viene del PARC (Palo Alto Research Center) de Xerox Corporation. Ellos estuvieron trabajando en computadores Parc y Star durante la segunda mitad de la década de 1970. Ninguno de los computadores que construyeron salió a la venta. Tres series de computadores con Smalltalk 80 demostraron la interfaz WIMP (Windows, Icons, Menus, Pointer; Ventanas, Iconos, Menús y puntero), y desde entonces, el interés por este tipo de interfaces no ha cesado. Los computadores Apple, en 1977, fueron los primeros computadores personales con una interfaz similar, siendo adaptado el sistema para los PCs varios años después con la aparición de OS/2 y MS Windows. X Window fue desarrollado en el Laboratorio de Ciencias de la Computación en el MIT y está disponible desde 1984. En septiembre de 1987 fue el lanzamiento del X11 tal y como se conoce hoy en día. Con el lanzamiento de X11R2, el control paso del MIT al X Consortium, formado en enero de 1988. Desde que existe X11 los computadores UNIX tienen una interfaz gráfica estándar disponible para sus aplicaciones, y el sistema X Window es usado en las estaciones de trabajo avanzadas desde entonces. El sistema X funciona, como todos los programas serios para UNIX, aprovechando las conexiones de red del sistema. Puede ver y manipular la interfaz gráfica de programas que se están ejecutando en otros computadores. Esto permite, por ejemplo, usar un computador potente de su red para una aplicación muy grande y usar su computador local para todo lo demás, como si todo se estuviera ejecutando en su computador local. Xfree86 es la versión de X Window disponible para Linux. Es una colección de servidores X para sistemas operativos similares a UNIX que funcionen con computadores 386 o superiores. Está basado en el software X386 y gracias a Linux ha tenido un activo desarrollo. Algunos cambios recientes al sistema, incluyen el soporte para tarjetas aceleradoras gráficas. Esto puede verse y aprovecharse al máximo en juegos como Quake III Arena. Empresas distribuidoras de Linux, especialmente SuSE, han ayudado notablemente al desarrollo de Xfree86 y recientemente se anunció la nueva versión, XFree86 4.0, con creciente número de tarjetas de video soportadas y optimizaciones a la arquitectura del sistema. 2.6 Requerimientos de Hardware Estos son los elementos mínimos que debe tener un sistema para ejecutar Linux (en un sistema compatible 80x86): 1. Un procesador 803862.7 o superior: Linux con sus características actuales no funciona en procesadores 8086 u 802862.8. Un coprocesador matemático no es necesario pero sí es recomendado. 2. 4 MB de memoria RAM: Esto sirve para ejecutar aplicaciones en la consola de texto. Si desea ejecutar X Window, necesitará 16 MB de memoria RAM, además de 8 MB adicionales por cada usuario que vaya a usar el sistema al mismo tiempo (recuerde que Linux es multiusuario) y si desea usar StarOffice y/o Netscape necesitará 64 MB de memoria RAM. 3. Espacio en Disco: 1 GB para las distribuciones actuales. 2 GB son lo recomendado (por ahora, recuerde que entre más espacio, mejor). Se puede tener una instalación básica desde 400 MB con X Window y desde 100 MB usando solamente aplicaciones de consola. Los requerimientos de hardware para otras plataformas pueden ser similares. 2.7 Características de Linux Se pueden destacar como características más importantes las siguientes: Seguridad: Otros sistemas operativos para computadores de escritorio simplemente dejan que cualquier usuario borre programas esenciales para el funcionamiento del sistema si así lo desea. Linux tiene avanzadas características de seguridad que protegen a su sistema, no solo de esto, sino también de ataques desde Internet, acceso sin autorización a los equipos, monopolio de recursos del sistema por parte de algún usuario o aplicación y además es invulnerable a los virus. Estabilidad: Otros sistemas operativos se vuelven cada vez más lentos en su ejecución, cada vez que se inician o cierran programas. Es necesario reiniciarlos incluso varias veces al día y además su sistema de archivos tiene que ser defragmentado periódicamente. También es común que tengan errores graves que bloqueen el sistema con una pantalla azul, haciendo perder tiempo y datos a los usuarios. Linux no tiene ninguno de estos problemas, y varias personas han reportado que han mantenido a Linux funcionando continuamente por varios meses, incluso años. No es necesario detener los programas que están en ejecución o reiniciar el sistema para instalar nuevos programas. Esto es muy importante para los servidores en empresas y en Internet. Portabilidad: Linux corre en casi todas las plataformas de hardware conocidas. Actualmente hay versiones de Linux para la familia 80x86, los PowerPC, Alpha, Sparc, ARM, Power Mac, incluyendo además arquitecturas de 64 bits como DEC Alpha e Intel Merced. Compatibilidad POSIX: Linux sigue el estándar POSIX para aplicaciones de UNIX, por lo tanto para usar un programa POSIX en Linux, casi siempre, solamente es necesario recompilarlo. Virtualmente el 99.9% de los programas UNIX tienen una versión para Linux. Compatibilidad con otros sistemas: Linux puede ser instalado en una partición MS-DOS, y puede coexistir junto con MS-DOS, OS/2, Windows 95, Windows 98, Windows NT y cualquier sistema operativo que use este tipo de particiones. También puede leer y escribir datos en particiones DOS, OS/2 y FAT322.9. Además usando los emuladores DOSEMU y WINE (o algún otro) se pueden ejecutar la mayoría de los programas de DOS y de Windows en un sistema Linux2.10. Linux no necesita estos sistemas para funcionar, es un sistema operativo completo y puede ser usado sin necesidad de ningún otro sistema operativo. El sistema de archivos: El sistema de archivos de Linux, llamado ext2fs, no necesita ser defragmentado como los sistemas de archivos de otros sistemas. Incluso si esta lleno a más del 95% y con alta carga del sistema (leyendo y escribiendo continuamente archivos) la fragmentación de los archivos se mantiene por debajo del 10%. También permite nombres muy largos de archivo, que pueden contener signos de puntuación. Y el límite del numero de directorios que pueden estar uno dentro de otro es suficientemente amplio. VFS (Virtual File Sistem): Linux puede “montar” sistemas de archivos diferentes en su directorio de archivos, incluyendo particiones de otros sistemas operativos, sistemas de archivos de red, diskettes, CD-ROMs, e incluso un sistema de archivos que representa información en memoria. Los dispositivos de hardware también se representan como archivos. De esta manera las aplicaciones no tienen que preocuparse por como comunicarse con otros sistemas de archivos, unidades de disco, dispositivos de hardware, ni con el propio kernel, solo necesitan saber leer y escribir archivos normales. Java y ELF: El kernel de Linux tiene soporte para ejecutar programas en Java, incluso puede ejecutar applets como si fueran aplicaciones, aunque para esto último necesita tener instalado el JDK (Java Developer Kit). También soporta ELF (Executable and Linking Format) que es el último estándar para ejecutables en UNIX. 32 y 64 bits con multiprocesamiento: Linux usa extensamente el procesamiento de 32 bits de los micro-chips 80386 y superiores. Además puede usar todas las características adicionales de los últimos Pentium y AMD (que incluyen el uso de la instrucción halt para ahorro de energía e incremento de la vida útil del procesador), así como soporte para cualquier cantidad de procesadores que soporte el hardware en el mismo computador. En arquitecturas de 64 bits Linux es un sistema operativo que soporta todas las características del hardware, y ya funciona como sistema operativo para los nuevos procesadores Intel Merced de 64 bits. TCP/IP (Transmission Control Protocol / Internet Protocol): Es el protocolo de Internet. Linux existe gracias a Internet. Servicios como el correo electrónico, el chat y los grupos de noticias son elementos estándar en UNIX y Linux tiene las implementaciones más seguras y estables de estos protocolos. El sistema X Window: Es un sistema gráfico poderoso y completo, con muchas aplicaciones. Tiene a su vez la posibilidad de usar varios sistemas administradores de ventanas, cambiando totalmente la apariencia del escritorio de Linux con sólo cambiar el administrador y se puede configurar para que se vea como cualquier otro sistema operativo. StarOffice: Esta suite de aplicaciones permite leer y escribir los documentos de otras suites como Microsoft Office y funciona muy bien con Xfree86. StarOffice no es parte de las distribuciones, excepto Caldera, pero se puede bajar gratuitamente de la red. Software Comercial Disponible: Actualmente hay gran cantidad de software comercial para Linux disponible, algunos de los más importantes son: INFORMIX y ORACLE que son administradores de bases de datos SQL, BB Stock para análisis del mercado de valores y bolsa, MAPLE V, Mathematica, Mathlab y Symulink para análisis matemático y complejas manipulaciones simbólicas, SPICE, herramienta para diseño y análisis de circuitos, y finalmente Corel WordPerfect 8, ApplixWare Office Suite y Axenne Office, que son Suites de aplicaciones de oficina. Continuo desarrollo: Es la más importante característica de Linux, que le permite evolucionar al mismo tiempo y tal vez más rápido que otros sistemas operativos. Hay aproximadamente una versión nueva del kernel cada mes y medio, e incluso una versión cada semana, en algunas ocasiones. Sin embargo Linux también tiene sus desventajas, entre las cuales se encuentran las siguientes: Dificultad de uso: Algunas de las opciones y comandos de Linux (y de UNIX) no son fáciles de entender, sobre todo si se usa exclusivamente la consola de texto. Poca documentación: Toda la documentación que existe sobre Linux está fraccionada en muchas partes en las distribuciones de Linux y en la red. Es muy difícil configurar algo correctamente sin acceso a Internet y muchos documentos asumen que el lector es un experto en sistemas UNIX, cuando en realidad está migrando desde una plataforma Windows. Falta de soporte para nuevo hardware: Casi todos los controladores de dispositivos para Linux han sido creados por usuarios que tienen hardware que inicialmente no funcionaba en Linux y con mucha dedicación y constantes pruebas han logrado hacerlo funcionar. Los controladores de dispositivos para otros sistemas operativos son fabricados por un acuerdo entre el fabricante del hardware y el del sistema operativo y están listos antes de poner a la venta el producto. Linux no tiene soporte todavía para las tecnologías USB (Universal Serial Bus) y DVD (Digital Versatile Disc). No hay una gran cantidad de programas para Linux: La principal carencia de Linux actualmente no solo son programas que funcionen nativamente en Linux, sino, especialmente, software de productividad, como son las suites de oficina. Aunque hay suites de oficina para Linux, como StarOffice, estas no son de Fuentes Abiertas, como el proyecto Linux, y aunque ya hay proyectos para una suite de aplicaciones de Fuentes Abiertas, llamada KOffice, no esta lista todavía para uso general. 3. Instalación de Linux Antes de comenzar a instalar Linux, debe leer completamente este capítulo. La instalación de Linux no es un proceso trivial, y fácilmente puede perder los datos de su actual sistema operativo si se apresura a tomar decisiones importantes. Lo primero que debe hacer, es saber que clase de computador tiene, y necesitará esta información para poder instalar Linux correctamente. Use su sistema operativo actual, o los manuales que vienen con su hardware, para conocer estos detalles y escriba en papel todo lo que encuentre. Estas son las cosas que necesita saber, en general: Procesador: Puede ser 386, 486, 586, Pentium, Pentium MMX, Pentium II, Pentium III, Celeron, Cyrix, AMD, AMD-K5, AMD-K6, AMD-K6II, AMD-K6III o alguno similar. Si es un procesador 386 o 486 deberá saber también si tiene un coprocesador matemático o no. Velocidad del procesador: En MHz. Puede ir desde 25 MHz hasta más de 700 Mhz en los procesadores actuales. Tipo del Bus: ISA, EISA, VESA, PCI, MCA, etc. Cuanta memoria hay en el sistema, 4 MB o más. Si desea o no usar el interfaz gráfico X Window. Puertos seriales: Cuantos hay en su PC. Si desea o no añadir terminales a su PC, y cuantas (Recuerde que Linux es multiusuario, así que puede tener varios usuarios usando el sistema al mismo tiempo, dependiendo del numero de terminales que tenga). Ratón: Qué tipo de mouse usa: Microsoft, Busmouse, PS/2, u otro. A que puerto esta conectado su mouse. Que IRQ usa, si hay alguno. CD-ROM: Cual es el fabricante de su unidad y que tipo de conexión usa. Qué conexión usa. Generalmente es IDE-0 o IDE-1 esclavo. Unidades de disquete: Cuantas unidades de disquete tiene. De qué capacidad son las unidades. Disco duro: Que tipo de controlador usa (IDE, SCSI, RLL, MFM...). Cuantas particiones hay en su disco duro. Si se puede o no reparticionar su disco duro (Toda la información actual puede perderse). Si se tomar usar particiones ya hechas para usarlas con Linux. Cuanto espacio puede usar Linux (Mínimo absoluto 50 MB). Las mismas preguntas para los demás discos duros que tenga, si existen. Video: Que clase de monitor tiene (Monocromático, EGA, VGA, SVGA ...). Tamaño del monitor (14”, 15”, 17”, 19” ...). Cuales son las resoluciones posibles en este monitor (600x480, 800x600, ...). Cual es la frecuencia vertical de refresco de la pantalla. Puede ser un rango. Cual es la frecuencia horizontal de refresco de la pantalla. Puede ser un rango. Tarjeta de video. Que marca y modelo. Que chipset usa. Cuanta memoria de video tiene. Red: Qué tipo de tarjeta de red ethernet usa (10base2 o 10baseT). Si va a estar conectado a una red local. Dirección IP. Máscara de red. Dirección IP de la puerta de enlace (Gateway). Dirección IP del servidor o servidores DNS. Nombre de dominio. Nombre del host. Módem: Que clase de módem esta usando. Puede ser interno o externo. Que marca de módem es. A que puerto COM está conectado. Que IRQ usa. Cual es la velocidad del módem. Si es un módem sólo para Windows (WinModem). Si va a estar conectado a Internet por medio de la red telefónica. Si esto es cierto también necesitará la información de su proveedor de Internet. Impresora: Qué marca y modelo de impresora tiene. Otros: Su teclado usa un conector PS/2 (el pequeño) o un conector DIN-5 (el grande). Si desea usar una configuración de teclado especial, como español o latinoamericano. Qué dispositivos Plug&Play usa. Qué tarjeta de sonido usa. Qué direcciones de entrada/salida usa. Qué IRQs y DMAs usa. Que otro tipo de hardware usa y que recursos del sistema necesita. Teniendo todos estos datos recopilados, debe decidir dónde y cómo instalará Linux. Existen las siguientes posibilidades: 1. UMSDOS: Esta opción sirve para familiarizarse con Linux, se instala encima de un sistema DOS existente (como un directorio más), y no necesita cambiar ni crear particiones. UMSDOS es bastante lento comparado con un sistema de archivos real. En realidad es así en cualquier partición FAT32 y en particiones FAT que usen nombres largos de archivo (MS-DOS 7.0 y posteriores3.1). En particiones FAT normales, sin nombres largos de archivo (MS-DOS 6.22 y anteriores) es tan rápido como un sistema de archivos ext2fs. Si tiene la distribución Slackware, es nuevo en el mundo Linux, y solamente piensa instalar una pequeña parte de Linux para familiarizarse con algunos de sus comandos, esta es una muy buena opción. 2. En una partición MS-DOS: Esta es la manera más popular de instalar Linux. Se usa una partición en su disco duro actual y puede convivir junto con el sistema o sistemas operativos que tenga instalados actualmente. Sin embargo cambiar o crear particiones en un disco duro generalmente borra todos los datos de esa partición. Hay maneras no destructivas de cambiar el tamaño de una partición con un sistema de archivos FAT, pero no está garantizado que no dañen sus particiones actuales. Linux en una partición usa el sistema de archivos ext2fs, lo que permite una máxima eficiencia en el acceso a los archivos. Es también conveniente usar una partición adicional, de menor tamaño, para la memoria virtual de Linux. 3. En un disco duro completo: Esta es otra manera de instalar Linux, usando todo el espacio disponible, y borrando completamente cualquier sistema operativo que exista en el disco duro. Es recomendable, aunque no necesario, reservar una partición para usarla como memoria virtual. Algunas distribuciones, como RedHat, llaman a este método Server o Servidor. Tome su tiempo para decidir qué tipo de instalación usará. Si tiene un computador viejo con un disco duro de por lo menos 1 GB, puede usar ese disco duro para instalar Linux, sin arriesgar el contenido de su disco duro actual. Con un BIOS moderno, solamente necesitará cambiar una opción para escoger de que disco va a arrancar su sistema, e incluso puede usar el administrador de arranque de Linux, llamado LILO (Linux Loader) para cargar su otro sistema operativo. Esto último también es cierto si instala Linux en una partición. Después de decidir que tipo de instalación usará, debe preparar la instalación, incluyendo las particiones, instalación del hardware (discos duros) y demás. Notas al pie ... posteriores3.1 Este es el sistema de archivos introducido con Windows 95 3.1 Preparando la Instalación Los pasos previos a la instalación dependen de que tipo de instalación usará. En general es preparar el espacio donde se instalará Linux, y la manera de iniciar el programa de instalación. 3.1.1 UMSDOS No todas las instalaciones ofrecen la posibilidad de usar UMSDOS, la distribución Slackware ofrece esta posibilidad por lo que se detallarán las instrucciones para esta distribución. Antes de proceder a la instalación es recomendable defragmentar su sistema de archivos DOS, como debe hacerse antes de instalar cualquier programa. También debería hacerlo después de la instalación. Todos los archivos de Linux quedan instalados en el directorio C:\LINUX, y los directorios de Linux son subdirectorios de éste. Cuando Linux se está ejecutando, aparecen estos directorios normalmente en el directorio raíz, y los datos de los demás directorios aparecen dentro del directorio /DOS. Deberá crear dos disquetes, uno de arranque y uno con el sistema de archivos para ser montado. Si tiene la versión en caja de Slackware, que viene con dos disquetes, puede usar el disquete de arranque que viene con esta versión. El disquete de arranque se puede crear con la siguiente orden desde el indicador de DOS (Suponiendo que su unidad de CD sea D:): D:\BOOTDSKS.144\> RAWRITE BARE.I A: Si necesita otro disquete de arranque (por ejemplo, con soporte SCSI), lea la documentación en este directorio. El disquete con el sistema de archivos lo crea con la siguiente orden desde el indicador DOS: D:\ROOTDSKS\> RAWRITE.EXE UMSDOS.GZ A: Use estos disquetes para iniciar su sistema y siga las instrucciones normales de instalación. Otra posibilidad es usar Zipslack. Solamente descomprima este archivo .ZIP en la carpeta \LINUX y ya tiene un sistema Linux instalado y funcionando. Para iniciar Linux deberá usar el programa de DOS LOADLIN.EXE, lea la documentación incluida con él. La orden que deberá usar en la mayoría de los casos es: C:\LOADLIN\> LOADLIN.EXE C:\LINUX\VMLINUZ root=/dev/hda1 rw Puede incluir esta orden en un archivo .BAT, como LINUX.BAT y usarla para iniciar su sistema Linux. 3.1.2 Linux en una partición Para instalar Linux en una partición deberá escoger que partición usará y si la partición no existe, deberá crearla. Si puede arrancar su computador desde una unidad de CD, no necesitará crear disquetes de arranque. Si necesita crearlos lea la documentación de su distribución, lo más probable es que necesite ejecutar comandos muy similares a los de la sección 3.1.1. Hay tres tipos de particiones: primarias, extendidas y lógicas. En el esquema de particionamiento DOS solamente pueden existir 4 particiones primarias. Por esta razón se crearon las particiones extendidas y las lógicas. Una partición extendida es como una partición primaria, excepto que no contiene datos, sino particiones lógicas. Una partición extendida puede contener varias particiones lógicas. Linux puede ser instalado tanto en particiones primarias como en particiones lógicas. Si no va a usar más de 4 particiones en su disco duro, es recomendable usar particiones primarias. Sin embargo los sistemas operativos basados en el sistema de archivos FAT solamente pueden usar una partición primaria3.2. Para usar más particiones en estos sistemas operativos es necesario que sean particiones lógicas en una partición extendida. Linux no tiene estas limitaciones. Si va a instalar Linux en un disco duro que tiene varias particiones, lo más probable es que sean una partición primaria y las demás sean lógicas. Si alguna de esas particiones tiene el tamaño adecuado para instalar Linux (1 GB o más) y desea instalar Linux en esa partición, no necesita arriesgar los datos de su sistema operativo actual ni cambiar las particiones. Debe tener en cuenta que todos los datos de esa partición serán borrados al instalar Linux, por lo que deberá moverlos a otras particiones o a una copia de seguridad. Lo único que deberá hacer en este caso cuando esté instalando Linux, es escoger esa partición, reformatearla para Linux e instalarlo. Esa partición no será visible desde su otro sistema operativo y aparentemente tendrá una unidad de disco duro menos, pero Linux estará allí, y podrá ver todas sus particiones desde Linux (montadas como subdirectorios). Si no hay particiones disponibles para Linux deberá cambiar el tamaño de sus particiones actuales. La manera normal de hacer esto se describe a continuación: 1. Haga una copia de seguridad completa de todo su sistema. 2. Cree un disquete de arranque desde su sistema operativo y pruébelo. 3. Copie los archivos FDISK.EXE y FORMAT.COM al disquete. 4. Reinicie su computador desde el disquete. 5. Usando FDISK.EXE borre la partición o particiones a las que desea cambiar el tamaño. Esto borrará todo lo que contienen. Cree una nueva partición o particiones de menor tamaño, y deje el espacio sin utilizar para Linux. Las particiones para Linux se deben crear en la instalación de Linux, no desde DOS. 6. Usando FORMAT.COM inicialice sus particiones para ser usadas con su sistema operativo. 7. Si es necesario para restaurar su sistema desde la copia de seguridad, reinstale su sistema operativo. 8. Restaure sus archivos desde la copia de seguridad. Como se puede ver, es un proceso largo y si hay problemas en la copia de seguridad puede perder sus archivos. Hay otra posibilidad, que es usar algún programa que pueda cambiar los tamaños de las particiones FAT sin dañar su contenido. Uno de esos programas es FIPS (First nondestructive Interactive Partition Splitting program)3.3. Este programa fue inspirado por el proyecto Linux y existe desde 1993. Es recomendable hacer una copia de seguridad del sistema y deberá defragmentar completamente la partición o particiones a las que desee cambiar de tamaño para poder usarlo. Copie el programa a un disquete de arranque y úselo desde ese disquete. FIPS trabaja solamente con particiones primarias, pero como casi todos los discos duros tienen solamente una gran partición primaria, esto no debe ser inconveniente. Este programa viene con algunas distribuciones de Linux. Otra posibilidad es usar un programa comercial para hacer esto. Partition Magic es un programa que permite cambiar el tamaño de las particiones DOS sin dañarlas, no necesita que las particiones estén defragmentadas (si están fragmentadas solamente se demorará más), permite mover particiones a diferentes partes del disco duro y permite hacer otras cosas útiles con ellas, como convertir particiones FAT a FAT32 y cambiar el tamaño de los clusters. Las versiones más recientes pueden cambiar también el tamaño de las particiones ext2fs usadas por Linux. Tiene una interfaz gráfica muy similar a la de Windows 95 y también incluye una versión de texto más pequeña que puede usar desde un disquete. Este programa viene en una versión especial con algunas distribuciones de Linux. Hay también una versión shareware disponible. Para más información visite su sitio web en http://www.powerquest.com. Si desea iniciar su sistema Linux desde DOS, necesitará copiar los archivos de Loadlin desde Linux hasta Windows, preferiblemente en el directorio DOS C:\LOADLIN\. Además necesitará copiar su kernel a este directorio (el archivo llamado vmlinuz). Luego puede iniciar su sistema Linux con una orden parecida a la siguiente: C:\LOADLIN\> LOADLIN.EXE C:\LINUX\VMLINUZ root=/dev/hda2 ro Cambie /dev/hda2 por la partición donde instaló Linux. Puede poner esta orden en un archivo .BAT. Si tiene Windows 95, puede también crear un acceso directo a este archivo. Asegúrese de crearlo con la opción “Ejecutar en modo MS-DOS” activada. Así podrá cargar su sistema Linux con solo hacer doble clic a este archivo. Puede configurar LILO para cargar Linux o Windows automáticamente si lo desea, y el otro sistema operativo se carga al mantener presionada la tecla Shift en el arranque del sistema y escribir la opción adecuada. 3.1.3 Linux en un disco duro Para instalar Linux en un disco duro sin ningún otro sistema operativo solamente necesita poder iniciar el programa de instalación. Si su computador puede arrancar desde una unidad de CD solamente configure el BIOS para esto y reinicie el sistema. Si no puede hacer esto, deberá usar los disquetes que vienen con su distribución. Si no tiene los disquetes, o si los disquetes no sirven con su hardware (si tiene un disco duro SCSI o una unidad de CD no estándar) deberá crear los disquetes adecuados desde otro sistema operativo. Lea la documentación de su distribución y cree los disquetes. Es muy probable que deba escribir comandos parecidos a los de la sección 3.1.1. Si el disco duro donde va a instalar Linux es un disco duro adicional al que ya tiene (por ejemplo, de su viejo computador) y tiene problemas para instalarlo, consulte un libro sobre hardware [1]. Teniendo todos los datos sobre el hardware de su computador escritos, y el espacio en disco reservado, se puede proceder a la instalación. Notas al pie ... primaria3.2 Eso dice la documentación oficial; si se crean varias particiones primarias DOS con un programa que no sea FDISK para DOS, es posible usar varias particiones primarias. Es una característica no documentada y no soportada de estos sistemas operativos. ... program)3.3 Disponible gratuitamente desde http://metalab.unc.edu/pub/Linux/system/install 3.2 La instalación Los detalles de la instalación dependen ampliamente de la distribución que esté usando y generalmente tienen ayuda en línea sobre la propia instalación, así que esos detalles no se tratarán en este libro. El proceso de instalación inicia con el arranque del programa de instalación. Para esto modifique la información de su BIOS para iniciar su computador desde el CD-ROM o utilice los disquetes de arranque de la instalación. Algunas distribuciones detectan su hardware y configuran todo de manera automática. En otras tendrá que introducir esta información manualmente. Si hay problemas con la detección de su hardware también deberá corregir estos problemas manualmente. En el proceso de instalación deberá crear las particiones para Linux, que son una partición para instalar el software y una partición más pequeña, de aproximadamente 1.5 veces la memoria que tenga instalada en su sistema; para ser usada como memoria virtual. La memoria disponible para Linux es la suma de su memoria real y su memoria virtual. Si por ejemplo, tiene 16 MB de memoria real y piensa instalar StarOffice, necesitará por lo menos 48 MB de memoria virtual. La memoria virtual es mucho más lenta que la memoria real, si puede instalar más memoria real es mucho mejor. Si tiene varios discos duros, es recomendable crear la partición para memoria virtual en un disco duro diferente al que usa para el sistema de archivos raíz. El programa de instalación creará los sistemas de archivos necesarios en estas particiones. En Linux, las particiones tienen nombres especiales como dispositivos del sistema. El primer disco duro IDE o similar se llama /dev/hda. Las particiones primarias en este disco duro tienen nombres desde /dev/hda1 hasta /dev/hda4. Las particiones secundarias se llaman /dev/hda5, /dev/hda6 y así sucesivamente. El segundo disco duro IDE, unidad de CD-ROM o dispositivo que tenga conectado como esclavo junto al primer disco duro se llama /dev/hdb y así mismo se numeran todos los discos duros IDE. El primer disco duro SCSI se llama /dev/sda y el resto de la numeración es análoga a la numeración de los discos duros IDE. Así mismo las unidades de disquetes tienen nombres similares: /dev/fd0 la primera unidad y así sucesivamente. También puede crear particiones para partes específicas del sistema de archivos, que se verán como subdirectorios. Puede hacer esto para, por ejemplo, tener una partición con todos los datos de los usuarios. De esta manera puede controlar más eficientemente el espacio en disco usado por cada uno de ellos con el software Quota o puede reinstalar o actualizar su sistema Linux sin arriesgar los datos de sus usuarios. Si es la primera vez que instala Linux es recomendable que su sistema de archivos esté en una sola partición. En la mayoría de las distribuciones, la configuración del teclado se escoge en el momento de la instalación. Deberá buscar el código de idioma que corresponde a su teclado, por ejemplo, el teclado con los símbolos para español como la Ñ, se llama “es”. Luego deberá escoger que software para Linux desea instalar en su sistema. Es necesario saber que significa cada uno de los paquetes de software que se van a instalar, y para que se pueden usar. Lo más recomendable que debe hacer es escribir en papel todo lo que hace en la instalación, eso le servirá para saber que hizo, si cometió algún error, y para recordarle posteriormente que software debe configurar en su sistema. 3.3 Programas disponibles para Linux Se clasifican en varias categorías: los esenciales para su funcionamiento, los programas de consola y los programas para X. Algunos programas para X son solamente interfaces gráficas para los programas de consola. Otros programas para X requieren un manejador de ventanas específico. Para la mayoría de los usuarios es mucho más fácil usar programas de X que programas de consola, tenga esto en cuenta a la hora de escoger qué desea instalar. 3.3.1 Programas esenciales La instalación de Linux tiene algunos programas marcados como esenciales para el funcionamiento de su sistema. Además de esos, es recomendable tener otros, dependiendo de como va a usar su sistema Linux. Es muy importante, sobre todo para los usuarios que van a instalar Linux por primera vez, instalar todos los HOW-TO, los mini-HOW-TO, y los FAQ (Frequently Asked Questions). Estos documentos contienen información importante para solucionar toda clase de problemas, e información de última hora que generalmente no está en los manuales escritos. Todos estos documentos están disponibles también en versión electrónica en Internet, en la dirección http://sunsite.unc.edu/LDP/HOWTO/. Si piensa usar el sistema como un servidor de red, deberá aprender a manejar a fondo las aplicaciones de consola. Todos los servicios de red funcionan de esta manera, y así se evita la sobrecarga de procesamiento que implica usar el sistema gráfico X. Esto hace que su servidor de red sea más eficiente y esto es muy importante, permitiendo usar computadores no tan modernos como servidores. Si solamente piensa usar aplicaciones de consola (lo cual es poco probable) es recomendable que instale gpm (General Purpose Mouse Server), esto le permitirá usar el ratón en estas aplicaciones. LILO (Linux Loader) deberá ser instalado, es necesario para iniciar el sistema operativo. También hay programas comerciales para esto, pero por el momento configure correctamente el cargador estándar de Linux. Si tiene particiones o discos duros con un sistema operativo DOS o Windows, es recomendable instalar el programa loadlin, que permite iniciar el sistema Linux desde esos sistemas operativos. Si usa la instalación UMSDOS es obligatorio este programa. Deberá instalar una versión del kernel de Linux que tenga controladores para el disco duro donde está Linux. Así mismo deberá instalar módulos del kernel para todo el hardware que tenga. También deberá instalar Ghostscript, el cual es un programa que permite imprimir documentos PostScript en impresoras que no son PostScript, y es necesario para visualizar documentos PostScript en X. PostScript es el estándar de impresión en Linux (y en UNIX) y prácticamente todos los programas para Linux (como Netscape y StarOffice) pueden generar salida en PostScript. Ispell es el corrector ortográfico para Linux. Puede corregir ortografía en varios idiomas, puede ser usado desde emacs y soporta archivos LATEX. A diferencia de otros correctores ortográficos que solamente almacenan palabras completas, este corrector almacena las raíces, prefijos y sufijos de las palabras, lo cual lo hace muy eficiente y preciso. Si tiene tarjetas ISA Plug&Play, deberá instalar el software isapnp, es probable que su distribución decida esto automáticamente. Así mismo, si tiene tarjetas PCI, deberá instalar el software pciutils, también es probable que su distribución decida esto automáticamente. Si está instalando Linux en un portátil, deberá instalar el software pcmcia. Si está instalando Linux usando el método UMSDOS, deberá instalar el software umsprogs. 3.3.2 Programas de consola Los siguientes son programas que tal vez quiera instalar, tienen bastante utilidad, sobre todo si usa exclusivamente la consola, o si usa terminales de texto en su computador para usarlo en modo multiusuario. 3.3.2.1 GNU bc Es una calculadora que soporta expresiones complejas y procesamiento de archivos, con una sintaxis similar a la del lenguaje C. 3.3.2.2 Lynx Es el navegador de Internet para consola. No soporta Frames. 3.3.2.3 Mailx Es el programa original para ver mail en la consola. En estos días es mejor usar Pine. 3.3.2.4 NN Es un programa para ver los grupos de noticias en la consola. 3.3.2.5 Pine Es un cliente de correo electrónico y grupos de noticias para ser usado en la consola. Es muy fácil de usar y tiene muchas características. Incluye también PICO (Pine Composer) un editor de textos muy fácil de usar y Pilot, un administrador de archivos para la consola. 3.3.2.6 Midnight Commander Es un clon del Norton Commander. Tiene una interfaz similar y permite navegar en los archivos .tar.gz y .rpm como si fueran directorios (Útil para instalar programas). También permite navegar de la misma manera por sitios FTP. 3.3.2.7 Sox Es una utilidad que le permite convertir archivos de audio entre varios formatos, además de reproducirlos. 3.3.2.8 Tin Es otro cliente para grupos de noticias. 3.3.2.9 Workbone Es un reproductor de CDs de música. 3.3.2.10 BSD games Son viejos juegos para consola de texto. Incluyen fortune que le da una frase interesante o una cita graciosa cada vez que entra al sistema. 3.3.3 Herramientas de desarrollo Estas herramientas incluyen los compiladores de C, C++, Objective-C, Assembler y Fortran. Incluyen además intérpretes para los lenguajes LISP, Perl, phyton, scheme y slang. Las utilidades son Autoconf, AutoMake, Bison, Byacc, Flex, m4, p2c, pmake, rcs, strace y cualquier otra que incluya su distribución. Incluye también una serie de librerías necesarias para compilar algunos programas. Aunque no piense hacer programas para Linux, necesitará instalar el compilador de C y los programas mínimos para la compilación. La mayoría de los programas para Linux se distribuyen como código fuente y para instalarlos necesitará compilarlos exitosamente. Lea la documentación de cada programa antes de instalarlo, en ella dice además que librerías y utilidades son necesarias para la compilación e instalación del programa. Para compilar programas en C, necesitará por lo menos el compilador de C, las utilidades binutil, gmake, y las librerías glibc y linuxinc. Para compilar el kernel necesitará además el compilador de Assembler bin86. Instale el código fuente de Linux si desea compilar una versión personalizada del kernel. Es recomendable conocer todo el hardware de su equipo, todos los servicios que desea instalar, drivers para red, etc., y compilar un kernel para su computador una sola vez, de manera que no tenga que recompilarlo de nuevo; por lo menos hasta que realice una actualización del kernel. Esto se explica en la sección 4.2 en la página . Para ahorrar espacio en disco instale solamente las herramientas de programación que realmente necesite. Recuerde que puede instalar cualquiera de estos programas más tarde y que no necesita reiniciar el sistema ni interrumpir ningún programa para instalar aplicaciones en Linux. 3.3.4 Emacs Es un editor de textos para Linux. Fue el primer programa que existió con la licencia GNU. Su autor, Richard Stallman, es el creador de la fundación FSF y del proyecto GNU. GNU Emacs fue creado después de que las versiones comerciales de emacs se consideraran un estándar y es mejor que estas. Sin embargo emacs es bastante confuso de manejar para quien está acostumbrado a otros editores. 3.3.5 LATEX LATEX es un software para producir documentos impresos de alta calidad3.4. Los documentos se escriben en ASCII en cualquier editor de texto, como Pine o Emacs, y luego se procesan para producir la salida impresa, salida a pantalla o a cualquier dispositivo que se desee. Los archivos LATEX usan órdenes especiales para especificar el formato de los documentos. 3.3.6 Tcl Es un lenguaje para escribir scripts interactivos gráficos que funcionan en X Window. Es usado entre otras cosas, por las utilidades de configuración de servidor X Window y para la selección de las opciones de compilación de el emulador de DOS DOSEMU. 3.3.7 Herramientas para un servidor Deberá instalar drivers para todo el hardware de red que tenga, así como los programas para TCP/IP y los servidores para lo que desee. Estos servidores se describen a continuación. 3.3.7.1 Apache Web Server Es el servidor HTTP (Hyper Text Transfer Protocol) para sitios Web más usado en todo el mundo, más de la mitad de los servidores de Internet son Apache. Tiene una gran cantidad de características y tiene un API (Aplication Program Interface) extensible, para satisfacer las necesidades de los usuarios más fácilmente. 3.3.7.2 Bind Es el servidor DNS (Domain Name Server), encargado de convertir las direcciones de Internet como www.linux.org en direcciones IP como 123.50.80.12. Todas las empresas que ofrecen acceso telefónico a Internet y las que administran sitios Web deben tener un servidor DNS. 3.3.7.3 DIP Es el administrador de conexiones telefónicas para Internet. Administra las llamadas entrantes o salientes y sus respectivas conexiones SLIP o CSLIP. 3.3.7.4 Fetchmail Es el programa encargado de bajar correo electrónico de otros servidores y mandarlo al sistema de entrega de la máquina local. 3.3.7.5 Imapd Es un servidor para que otros sistemas puedan bajar el correo electrónico desde su máquina Linux para verlo localmente. 3.3.7.6 INN InterNet News es el programa que administra todas las conexiones de los grupos de discusión de Internet. 3.3.7.7 Metamail Implementa las extensiones MIME (Multipurpose Internet Mail Extensions), el estándar para correo electrónico con contenido multimedia en Internet. Este estándar es muy usado en los clientes modernos de correo, como Netscape Messenger y Outlook Express. 3.3.7.8 Netatalk Es un servidor de archivos e impresión para redes Appletalk. 3.3.7.9 Netpipes Es un software que permite usar los flujos de datos de Internet en scripts de Linux. Esto permite realizar complejas operaciones sobre los datos muy fácilmente. 3.3.7.10 PPP Es un paquete para administrar conexiones PPP (Peer to Peer, o Punto por Punto) en un sistema Linux. 3.3.7.11 Procmail Es el programa encargado de procesar el correo electrónico. Sirve para crear servidores de correo, listas, organizar el mail entrante en directorios (útil para mandarlo a las carpetas de los usuarios del sistema, entre otras cosas) y también automáticamente reenviar correo entrante hacia alguien más. 3.3.7.12 Quota utilities Son utilidades para controlar automáticamente el espacio que usa en disco cada uno de los usuarios. Es indispensable para un servidor que tenga gran cantidad de usuarios, tal como un servidor de correo electrónico o de páginas Web en Internet. 3.3.7.13 Rdist Es un software de distribución remota de archivos. Distribuye copias de los archivos a varios servidores, y si el sistema remoto lo soporta, también sus características y atributos, como dueño, grupo, modo, y hora. 3.3.7.14 Rsync Es un reemplazo para RCP. Es usado para actualizar archivos a través de la red. Es más rápido que RCP porque no envía todo el archivo sino solamente las diferencias entre el actual y la otra versión. 3.3.7.15 Samba Es un servidor de archivos e impresión para clientes SMB (Session Message Block). Esto incluye redes locales con DOS, Windows 95, Windows NT, OS/2 y varios más. Es el servidor SMB más estable que existe, funcionando eficientemente incluso con un elevado número de usuarios. 3.3.7.16 Sendmail Es el software usado para enviar mail a otros equipos. Es el programa más completo y complejo que existe para esta tarea. Es indispensable para un servidor de correo electrónico. 3.3.7.17 Trn Es un lector de grupos de noticias. Puede usarlo para actualizar los grupos de noticias que estén en el servidor local. 3.3.7.18 UUCP Es un protocolo y un software de conexión entre máquinas UNIX. Es análogo a TCP/IP. 3.3.7.19 Wget Es un programa que sirve para bajar archivos de Internet, usando los protocolos HTTP o FTP. Puede continuar bajando archivos que llegaron incompletos y puede bajar sitios enteros de Internet si se desea. 3.3.7.20 Xntp Usa el protocolo NTP (Network Time Protocol) para sincronizar el reloj del sistema con otros equipos en la red. 3.3.8 X Window El sistema X Window en la mayoría de las distribuciones se instala simplemente como una opción más, o se instala automáticamente. Deberá instalar el servidor acelerado para su tarjeta de video, si existe. Si no existe deberá instalar el servidor SVGA. Es recomendable instalar también el servidor Vesa Framebuffer, tiene como ventaja que cualquier tarjeta de video compatible VESA 2.0 puede ser utilizada con altas resoluciones y elevado numero de colores, sin problemas. Y su desventaja es que es bastante más lento que los servidores SVGA. Si desea utilizar la utilidad de configuración incluida con X instale el programa Xset. También deberá instalar el servidor VGA16, el cual es usado por esta utilidad de auto configuración. Después de esto, tiene que decidir que software para X quiere instalar. Su distribución generalmente tiene indicado cuales son los programas básicos para ejecutar X. Deberá escoger un administrador de ventanas para usar en su equipo. Si su equipo tiene poca memoria o desea un muy rápido desempeño, es recomendable usar los administradores de ventanas que incluye la distribución de X. Son pequeños y necesitan pocos recursos, además de ser extremadamente rápidos. Si desea que su computador Linux tenga un aspecto gráfico sobresaliente y el administrador de ventanas tenga muchas características, instale uno como Gnome o KDE. Estos incluyen una interfaz gráfica que hace palidecer a otros sistemas operativos, un navegador de web integrado y muchas características. Después de instalar X instale los programas que desee para X. Es probable que con un administrador de ventanas avanzado ya tenga programas equivalentes y mejorados respecto a los que vienen con X. 3.3.9 Programas para X Algunos de estos programas vienen con la propia distribución de X. Otros se pueden conseguir fácilmente desde sus sitios Web. 3.3.9.1 GNU Chess Es un programa para jugar ajedrez. El programa en sí es para consolas de Texto, pero incluye un frontend para X con el que puede jugar en una ventana. 3.3.9.2 ImageMagic Es un programa para manipulación de imágenes digitales en varios formatos, como Gif y Jpeg. 3.3.9.3 Xdvi y Xpdf Son visores de archivos para estos formatos. Dvi es el formato usado por LATEXy Pdf es el formato usado por Adobe Acrobat. 3.3.9.4 GhostView Es un visor de archivos PostScript y Pdf. Necesita GhostScript para funcionar. 3.3.9.5 Netscape Communicator Es el navegador de Internet más usado en el mundo para sistemas Linux, Windows, Apple, Unix y en general cualquier plataforma. Incluye soporte para Java certificado por SUN, un cliente de correo electrónico, un cliente para grupos de noticias, un compositor de páginas Web y muchas más características. Es incluido en muchas distribuciones y se puede bajar gratuitamente de su sitio Web. 3.3.9.6 StarOffice Es la suite de aplicaciones para Linux. Incluye las siguientes aplicaciones: StarWriter, el Procesador de palabras (Análogo a Word). StarCalc, la hoja de cálculo (Análogo a Excel). StarImage, el editor de presentaciones (Análogo a PowerPoint). StarDraw, un programa similar a Corel Draw. StarChart, un programa para dibujar diagramas, tales como organigramas. StarMath, un editor matemático. StarOffice es gratis para uso personal. Para uso comercial requiere una licencia. Viene incluido en la distribución Caldera OpenLinux, así que puede usarlo comercialmente si compra e instala esta distribución. La instalación de StarOffice 4.0 no presenta ningún problema, pero requiere tener X instalado y funcionando. Solamente siga las instrucciones que vienen con el software. 3.3.10 Administradores de Ventanas Hay una gran cantidad de administradores de ventanas para X. La siguiente es una lista ordenada respecto a la cantidad de recursos que necesitan y las cosas que hace cada administrador. Los dos primeros usan muy pocos recursos, y pueden ser instalados en una red cliente/servidor como clientes. De KDE en adelante son sistemas completos con aplicaciones incluidas y necesitan bastante memoria para funcionar. 3.3.10.1 FVWM Es un administrador de ventanas pequeño y eficiente, que funciona bien incluso con sistemas a 256 colores. Hay varias versiones incluyendo una llamada FVWM95 que tiene el look & feel de Windows 95. 3.3.10.2 OpenLook El OpenLook Window Manager fue desarrollado por SUN Microsystems como un intento de estandarizar los administradores de ventanas para X. Hay versiones compatibles disponibles gratuitamente. 3.3.10.3 KDE Desktop Environment KDE fue el primer administrador de ventanas que no solamente administraba las ventanas de otros programas sino que también incluía aplicaciones estándar que incluso superan a las que incluyen las distribuciones de X. Todas las aplicaciones KDE trabajan juntas y se complementan bastante bien. Esta basado las librerías QToolkit, las cuales son comerciales, pero últimamente han cambiado su licencia a una que puede llamarse software libre, compatible con la filosofía de Linux. Su sitio web es http://www.kde.org. 3.3.10.4 Gnome: GNU Object Model Environment Es el entorno de ventanas del proyecto GNU. Al igual que KDE es un sistema completo, con aplicaciones integradas y una interfaz consistente. Sin embargo, es un sistema portable, que no depende de un administrador de ventanas específico y funciona en varias plataformas gracias a que usa CORBA (Common Object Resource Broker Architecture). Su sitio web es http://www/gnome.org. 3.3.10.5 Window Maker Es un administrador para X que funciona con Gnome, y tiene un aspecto similar al elegante NEXTSTEP, que es comercial. También funciona con KDE. 3.3.10.6 AfterStep Es un administrador de ventanas que inicio siendo un emulador de NEXTSTEP, pero ha cambiado notablemente para acomodarse a las necesidades de sus usuarios, y es un sistema completo con grandes capacidades gráficas. 3.3.10.7 Enlightenment Es el administrador de ventanas con más capacidades gráficas. Puede tener ventanas de formas irregulares, entre otras cosas y es completamente configurable. Es también el administrador de ventanas por defecto de Gnome, mostrando también como implementar un sistema de ventanas que aproveche todas las capacidades de éste. Notas al pie ... calidad3.4 Este libro se escribió usando LATEX. 3.4 Reiniciando su sistema Después de instalar el software, deberá reiniciar Linux porque el sistema de archivos que se monta en la instalación es generalmente el del segundo disquete o el del CD-ROM de la instalación. Luego de iniciar su sistema Linux por primera vez, el sistema de archivos que queda montado es el que tiene todos sus programas y archivos de configuración y no necesitará reiniciarlo en condiciones normales así instale o borre programas. Esto no es cierto con el kernel de Linux, si recompila el kernel deberá reiniciar su sistema para que los cambios tengan efecto. Vea la sección 4.2.2 para más detalles. Reiniciar el sistema es muy sencillo. Si usa X, puede usar el administrador de acceso para escoger la opción de reiniciar. Si usa la consola simplemente use la orden >Transfer interrupted! Este proceso de instalación, deberá pasar a configurar el sistema. 4. Configuración de Linux Ya tiene su sistema Linux instalado. Ahora deberá personalizarlo para el hardware de su computador y su gusto personal. Así como lo hizo en la instalación, deberá escribir todo lo que haga durante la configuración del sistema. En la mayoría de los casos, deberá usar la consola del sistema para esto. La consola del sistema es la que se ve al iniciar el sistema en modo texto, o con un emulador de consola para X, como xterm. 4.1 La consola ROOT Lo primero que debe hacer es crear discos de arranque para su sistema. Es muy probable que los haya hecho en la instalación. Son necesarios para iniciar su sistema, si algo sale mal en la configuración. Si su computador puede iniciar desde CD-ROM, no necesita hacer los disquetes. El programa de instalación de CD debe tener opciones para reparar su sistema o puede darle una línea de comandos desde la cual puede ejecutar estas tareas de administración. Teniendo una manera de reiniciar su sistema en caso de errores, puede proceder a recompilar el kernel para el hardware de su computador. 4.2 Recompilar el kernel Es necesario para usar varios dispositivos de hardware que no están en el kernel que se instala por primera vez. También puede optimizar el kernel para su procesador, lo más probable es que tenga un procesador Pentium o superior y su kernel esté compilado para un 386 o 486. A su vez permite escoger algunas características especiales y puede decidir cuáles características se compilarán como módulos y cuáles no. Las opciones que se compilen como módulos se cargan en memoria solamente cuando se necesiten o cuando se haga explícitamente con una orden. Algunos dispositivos de hardware funcionan solamente con controladores compilados estáticamente en el kernel, mientras que otros funcionan solamente como módulos cargables. Para poder compilar el kernel deberá tener instaladas las herramientas de desarrollo indicadas, como el compilador, y las librerías, lo mismo que el código fuente del kernel. Recompilar correctamente el kernel es algo cuidadoso. Si falla en esta sección deberá reinstalar el kernel desde sus CDs de distribución. Primordialmente deberá asegurarse de compilar soporte para el disco duro que tiene su sistema raíz de archivos, que puede ser IDE, EIDE, SCSI o algo similar. Antes de proceder con la compilación del kernel, debe leer la documentación que se encuentra en el código fuente del mismo, y buscar todo lo que pueda decir sobre su hardware. Generalmente esta documentación esta en el directorio /usr/src/linux/Documentation. Los subdirectorios más importantes de este directorio se relacionan a continuación, lea solamente información del hardware que posea. En particular es útil la sección sobre tarjetas de sonido. cdrom Contiene información sobre controladores para unidades de CD-ROM. Incluye documento en LATEX con información acerca de los estándares de CD-ROM para Linux. fb Información sobre los FrameBuffers, incluyendo Vesa, Matrox y TGA. filesystems Información sobre los tipos de sistemas de archivos que puede usar Linux. isdn Dispositivos ISDN (Integrated Services Digital Network). En español son conocidos como RDSI, Red Digital de Sistemas Integrados. sound Información sobre como configurar el kernel de Linux para trabajar con diferentes tarjetas de sonido. video4linux Información sobre dispositivos de captura de video y tarjetas sintonizadoras de radio AM o FM. Si desea información aún más detallada sobre las opciones de configuración del kernel, lea el archivo /usr/src/linux/Documentation/Configure.help. No es mala idea leer este archivo incluso después de haber escogido las opciones de compilación del kernel, puede aclararle dudas e informarle acerca de aspectos que no había tomado en cuenta. Después de leer la documentación sobre su hardware, y tener el código fuente instalado, puede proceder a la compilación. 4.2.1 Configurar las opciones El primer paso, y tal vez el más importante, es configurar qué controladores desea incluir en el kernel. Hay diferentes maneras de configurar el kernel, y aunque producen los mismos resultados la interfaz con el usuario es diferente. La manera que funciona en todos los casos, y la de interfaz más simple, se activa con la orden de consola: make config Con esto aparece un script de línea de comandos que le hace preguntas sobre que desea incluir y que no. Si desea utilizar un script más interactivo de modo texto, deberá tener instalado el software ncurses, y usar la orden: make menuconfig Si está muy acostumbrado a X, puede usar un script interactivo gráfico, pero deberá tener instalado el software Tcl con el toolkit Tk. La orden es: make xconfig Puede configurar el kernel las veces que desee antes de proceder a la compilación. La primera vez usa opciones por omisión que funcionan en todos los sistemas. Posteriormente usa las opciones grabadas en la última sesión. Si desea saber que hace cada una de las características del kernel que está instalando, hay una opción marcada con ? que explica qué hace la opción en cuestión. Algunos controladores solamente pueden ser compilados como módulos y otros solamente estáticos (o no compilados). 4.2.1.1 Aspectos generales Tener controladores innecesarios hace el kernel más grande, y en algunas condiciones puede llevar a problemas, porque las rutinas de prueba de algunos controladores de hardware que no está instalado en su equipo pueden confundir al hardware que sí está instalado o pueden bloquear al sistema. Tenga en cuenta que configurar el kernel para un tipo de procesador hace que el kernel no funcione con un procesador inferior. Por ejemplo configurarlo para un 486 hace que no funcione en un 386 y configurarlo para 586 o Pentium hace que no funcione en 386 y 486. La emulación de un coprocesador matemático es innecesaria para los equipos actuales. Si se escoge esta opción de todas maneras el kernel usará el coprocesador matemático del sistema si existe uno. La activación de la opción “kernel hacking” generalmente hace el kernel más grande y lento y lo puede hacer incluso inestable configurando ciertas rutinas para tratar de encontrar errores en el kernel. Para cualquier uso serio de Linux esta característica debe estar desactivada. Debe activar soporte para redes (Networking Support), aunque no vaya a estar conectado a una red. Muchos programas para Linux, incluyendo X, requieren soporte para redes. Recuerde que Linux nació en Internet. System V IPC es necesario para que los procesos corriendo en un sistema Linux se puedan comunicar entre sí. Configúrelo como activado. Si desea conectarse de alguna manera a Internet deberá activar la opción Network device support, o soporte para dispositivos de red. Asimismo deberá activar el controlador para el método que vaya a usar. Puede ser un controlador para su tarjeta de red o Slip o Ppp para conectarse por medio de módem. Los controladores de dispositivos de caracteres (Character devices) son para dispositivos que pueden comunicarse byte por byte con el procesador. La mayoría de dispositivos pertenecen a esta categoría. Los controladores de dispositivos de bloques (Block devices) son para dispositivos que solamente pueden comunicarse por bloques de bytes, usualmente 512 bytes o algo semejante (el tamaño de los bloques varía para cada dispositivo). Estos dispositivos son los discos duros. 4.2.1.2 Sistemas de archivos Los controladores para sistemas de archivos le permiten montar estos sistemas de archivos como subdirectorios en su sistema Linux y los más importantes se describen a continuación: Minix: Es un sistema de archivos que ya no se usa en las instalaciones de Linux, pero es muy usado en disquetes de rescate y otras utilidades en disquetes. No es mala idea activarlo. Ext2fs: Es el sistema de archivos que debe estar usando en este momento. Seleccione simplemente la opción Yes. msdos y todos los relacionados, como vfat: Si tiene otras particiones en su disco duro con MS-DOS o Windows 95 o Windows 98, instalando este controlador podrá leer y escribir información en esas particiones. De la misma manera podrá leer y escribir disquetes formateados con este sistema de archivos, por lo que es buena idea tenerlo activado. Proc filesystem: este sistema de archivos le permite comunicarse con el kernel usando los archivos del subdirectorio /proc. Estos archivos no existen en realidad en el disco duro, solo en la memoria y algunos programas del sistema necesitan esto. Selecciónelo activo. NFS: Si desea usar sistemas de archivos de otros computadores en una red local, seleccione esta opción. ISO9660: Es el sistema de archivos de los CD-ROMs, si tiene unidad de CD seleccione esta opción. 4.2.1.3 Sonido Para configurar el sonido siga las instrucciones de su tarjeta de sonido, que debe haber leído en el directorio /usr/src/linux/Documentation. Si su tarjeta de sonido no está en ese directorio y está seguro de que no es una de las tarjetas no soportadas por Linux, es posible que sea compatible con Sound Blaster. Pruebe con estos controladores. En la mayoría de los casos es preferible instalar estos controladores como módulos. Si desea saber más sobre los controladores de sonido, vea la dirección del proyecto Free OSS en http://www.linux.org.uk/OSS/ y si desea tener sonido incluso con hardware no soportado oficialmente por Linux, vea la página comercial de Open Sound System en http://www.opensound.com/. 4.2.2 Compilación del kernel Después de configurar las opciones y controladores puede proceder a compilar el kernel. Es un proceso largo, incluso para computadores modernos. Para esto deberá usar la siguiente orden: make dep modules bzImage Cuando la compilación haya finalizado, deberá probar su nuevo kernel. La manera segura, sin arriesgar su kernel actual, de probar un kernel recién compilado, usando LILO, es añadiendo unas líneas al final de su archivo /etc/lilo.conf. Puede hacer esto con las siguientes órdenes: cat >> /etc/lilo.conf image = /usr/src/linux/arch/i386/boot/bzImage label = new_kernel optional ^d lilo El símbolo ^d significa tener presionada la tecla Ctrl y presionar la tecla d. Este es el carácter de fin de archivo en Linux. La línea optional quiere decir que la opción new_kernel no debe estar disponible si el archivo con el nuevo kernel no existe. La orden lilo actualiza el sector de arranque. Con esto podrá escoger el nuevo kernel teniendo presionada la tecla Shift cuando inicia el sistema y escribiendo new_kernel como etiqueta. Si su kernel funciona bien puede instalarlo satisfactoriamente. Para probar un nuevo kernel, si Ud. inicia su sistema usando loadlin, copie el archivo /usr/src/linux/arch/i386/boot/bzImage a su partición DOS y use este archivo como opción para loadlin.exe en lugar de vmlinuz. Si está completamente seguro de lo que ha escogido, puede compilar e instalar su kernel en una sola orden. Se pueden usar las siguientes órdenes para instalar el kernel de Linux al mismo tiempo que realiza la compilación: rm -r /lib/modules/2.2.13 make dep modules modules_install bzlilo depmod -a La orden rm sirve para borrar los módulos actualmente instalados en su sistema. Deberá reemplazar 2.2.13 por su versión de Linux. Es necesario para evitar problemas de compatibilidad. La orden make es la que actualmente compila e instala el kernel en el sistema. Depmod sirve para actualizar las dependencias entre módulos. Esto sólo funciona si las siguientes condiciones son ciertas: El cargador de Linux LILO es el cargador del sistema operativo y está correctamente instalado, el kernel actual es el archivo /vmlinuz, lilo está en el directorio /sbin, y el archivo de configuración /etc/lilo.conf está de acuerdo con todo lo anterior. Para instalar el kernel manualmente después de haberlo compilado, ejecute las siguientes órdenes: rm -r /lib/modules/2.2.13 cp /usr/src/linux/arch/i386/boot/bzImage /vmlinuz make modules_install depmod -a lilo Igualmente deberá reemplazar 2.2.13 por su versión de Linux. Vmlinuz es el nombre del kernel que usa actualmente, si su distribución usa otro nombre para el kernel escriba el que usa su distribución. Si Ud. usa loadlin para iniciar Linux desde un sistema DOS, deberá copiar también el kernel al directorio donde está loadlin, puede hacerlo con una orden similar a la siguiente: cp /vmlinuz /dos/loadlin/vmlinuz Esto es correcto si su kernel actual, recién compilado y funcionando está en el archivo estándar /vmlinuz, su sistema de archivos DOS está montado en el directorio /dos y loadlin está instalado, o está configurado para leer en la carpeta loadlin. Si no es así modifique la orden para que concuerde con su configuración. Ahora tiene un kernel optimizado para su sistema. No es recomendable actualizar el kernel a menos que añada nueva funcionalidad al sistema, como, por ejemplo si el nuevo kernel incluye soporte para USB y Ud. tiene hardware USB. En cualquier otro caso, compilar un nuevo kernel, por ejemplo para tener siempre el último que exista en Internet, es impráctico y puede llevar a problemas. 4.3 Configurar su Hardware 4.3.1 Los dispositivos ISA Plug&Play Para inicializar correctamente esta clase de dispositivos, es necesario configurar el archivo /etc/isapnp.conf. En la mayoría de las distribuciones, si este archivo existe, se carga automáticamente. Para crear el archivo con todas las posibilidades que existen en su sistema, use la orden pnpdump. Si hace esto deberá editar este archivo a mano. Si desea crear un archivo /etc/isapnp.conf automáticamente, que pueda ser usado por isapnp, use la siguiente orden: pnpdump—config > /etc/isapnp.conf Esto creará un archivo con algunas opciones seleccionadas. En algunos casos, esta orden es suficiente para inicializar sus dispositivos. Solo deberá usar la orden: isapnp /etc/isapnp.conf En la mayoría de las distribuciones, esta orden se ejecuta automáticamente si el archivo /etc/isapnp.conf existe. En algunos casos, esto es suficiente para inicializar correctamente los dispositivos. En otros, es necesario editar el archivo /etc/isapnp.conf manualmente para que coincida con los IRQ que estén libres o con la configuración que tengan estos dispositivos en Windows. 4.3.2 Los dispositivos PCI 4.3.3 Impresora 4.3.1 Los dispositivos ISA Plug&Play Para inicializar correctamente esta clase de dispositivos, es necesario configurar el archivo /etc/isapnp.conf. En la mayoría de las distribuciones, si este archivo existe, se carga automáticamente. Para crear el archivo con todas las posibilidades que existen en su sistema, use la orden pnpdump. Si hace esto deberá editar este archivo a mano. Si desea crear un archivo /etc/isapnp.conf automáticamente, que pueda ser usado por isapnp, use la siguiente orden: pnpdump—config > /etc/isapnp.conf Esto creará un archivo con algunas opciones seleccionadas. En algunos casos, esta orden es suficiente para inicializar sus dispositivos. Solo deberá usar la orden: isapnp /etc/isapnp.conf En la mayoría de las distribuciones, esta orden se ejecuta automáticamente si el archivo /etc/isapnp.conf existe. En algunos casos, esto es suficiente para inicializar correctamente los dispositivos. En otros, es necesario editar el archivo /etc/isapnp.conf manualmente para que coincida con los IRQ que estén libres o con la configuración que tengan estos dispositivos en Windows. 4.3.2 Los dispositivos PCI 4.3.3 Impresora 4.4 Configurar X Window La mayoría de las distribuciones tienen una herramienta para configurar el sistema X Window. Es probable que Ud. solamente necesite configurar su administrador de ventanas a su gusto. Si así es, no necesita leer esta sección. Si su distribución no dispone de un método personalizado para configurar X, o si el método que viene en su distribución no funciona por alguna razón, puede usar las herramientas de configuración que vienen con el sistema X. Si no sabe que tarjeta gráfica tiene, puede usar el programa SuperProbe para averiguarlo. Sin embargo este programa no funciona en todos los casos, si esto ocurre es necesario mirar los manuales del sistema, mirar la configuración en Windows, o destapar el computador y mirar la tarjeta. La configuración de X en modo gráfico se realiza por medio del programa Xf86Setup. Este programa usa el servidor VGA16, y necesita además tener instalado el software Tcl para funcionar. El programa se inicia con una resolución de 640x480 a 16 colores, lo cual funciona en todos los monitores y todas las tarjetas. Durante la configuración, deberá escoger todos los dispositivos de hardware que usa. El teclado seguramente es Generic 102-key PC (intl) y es mejor no cambiarlo aquí (Es mejor cambiarlo globalmente para todas las aplicaciones, incluyendo las de consola). Su ratón deberá estar configurado en el dispositivo /dev/mouse y X tratará de usar el ratón al que ese dispositivo señale. Puede escoger el protocolo del ratón que usa, si es de dos botones probablemente el protocolo es Microsoft, y si es de tres botones probablemente es MouseSystems. Luego configure su tarjeta de video. Si su tarjeta de video no tiene un servidor acelerado, use el servidor SVGA, este servidor funciona con una gran cantidad de tarjetas. Deberá seleccionar su tarjeta de la lista. Seleccione su monitor de acuerdo a la lista que presenta el programa. Si no sabe cual es puede probar los valores uno por uno. Es posible que este método no funcione. En algunos casos y con algunas configuraciones de hardware el servidor X VGA16 no funciona. En este caso tendrá que usar el script de consola de texto xf86config. Básicamente hace lo mismo que Xf86Setup, haciendo preguntas individuales sobre su hardware. En algunos casos extremos, el servidor XSVGA no funciona con su hardware, o funciona incorrectamente, incluso si todas las opciones son las correctas. Si esto ocurre puede intentar configurar el servidor VesaFrameBuffer. Bibliografía 1 Mueller, Scott: Upgrading & Repairing PCs Eighth Edition, Macmillan Computer Publishing, 1997. 2 The Linux Documentation Project. http://sunsite.unc.edu/LDP/. 3 Wired Magazine. Moody, Glyn. The Greatest OS that (N)ever was http://www.wired.com/wired/5.08/linux.html. 4 Erich Raymond. The Cathedral and the Bazaar http://www.tuxedo.org/~esr/writings/cathedral-bazaar/. 5 Forbes Magazine. http://www.forbes.com/forbes/98/0810/6203094s1.htm Sobre este documento... Linux Nuevo Manual de Administración y Uso This document was generated using the LaTeX2HTML translator Version 99.2beta6 (1.42) Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds. Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney. The command line arguments were: latex2html -top_navigation -bottom_navigation llinux.tex The translation was initiated by Nicolay Giraldo on 2000-05-11