Introducción: Entorno: Linux

Linux es probablemente el acontecimiento más importante del software gratuito desde el original Space War, o, más recientemente, Emacs. Se ha convertido en el sistema operativo para los negocios, educación, y provecho personal. Linux ya no es solo para gurús de UNIX que se sientan durante horas frente a la resplandeciente consola (aunque le aseguramos que un gran número de usuarios pertenece a esta categoría). Soporta un amplio rango de software, desde TEX a X Windows al compilador GNU C/C++ a TCP/IP. Es una implementación de UNIX versátil, distribuida gratuitamente en los términos de la Licencia GNU.

Linux puede convertir cualquier PC en una estación de trabajo. Le pondrá todo el poder de UNIX en la punta de sus dedos. En los negocios ya se instala Linux en redes enteras, usando el sistema operativo para manejar registros financieros y de hospitales, un entorno de usuario distribuido, telecomunicaciones, etc. Universidades de todo el mundo usan Linux para dar cursos de programación y diseño de sistemas operativos. Y, por supuesto, entusiastas de los ordenadores de todo el mundo están usando Linux en casa, para programar, entretenerse, y conocerlo a fondo.

Lo que hace a Linux tan diferente es que es una implementación gratuita de UNIX. Fue y aun es desarrollado por un grupo de voluntarios, principalmente en Internet, intercambiando código, comentando fallos, y arreglando los problemas en un entorno abierto. Cualquiera es bienvenido a sumarse al esfuerzo de desarrollo de Linux: todo lo que se pide es interés en producir un clónico gratuito de UNIX y algunos conocimientos de programación. El libro que tiene en sus manos es su guía de viaje.

Breve historia de Linux

UNIX es uno de los sistemas operativos más populares del mundo debido a su extenso soporte y distribución. Originalmente fue desarrollado como sistema multitarea con tiempo compartido para miniordenadores y mainframes a mediados de los 70, y desde entonces se ha convertido en uno de los sistemas más utilizados a pesar de su, ocasionalmente, confusa interfaz con el usuario y el problema de su estandarización. ¿Cuál es la verdadera razón de la popularidad de UNIX? Muchos hackers consideran que UNIX es el auténtico y único sistema operativo. El desarrollo de Linux parte de un grupo en expansión de hackers de UNIX que quisieron hacer su sistema con sus propias manos.

Existen numerosas versiones de UNIX para muchos sistemas, desde ordenadores personales hasta supercomputadores como el Cray Y-MP. La mayoría de las versiones de UNIX para ordenadores personales son muy caras. Linux es una versión de UNIX de libre distribución, inicialmente desarrollada por Linus Torvalds en la Universidad de Helsinki, en Finlandia. Fue desarrollado con la ayuda de muchos programadores y expertos de Unix a lo largo y ancho del mundo, gracias a la presencia de Internet. Cualquier habitante del planeta puede acceder a Linux y desarrollar nuevos módulos o cambiarlo a su antojo. El núcleo de Linux no utiliza ni una sola línea del código de AT&T o de cualquier otra fuente de propiedad comercial, y buena parte del software para Linux se desarrolla bajo las reglas del proyecto de GNU de la Free Software Foundation, Cambridge, Massachusetts.

El 5 de Octubre de 1991, Linus anunció la primera versión "oficial" de Linux, la 0.02. Ya podía ejecutar bash (el shell de GNU) y gcc (el compilador de C de GNU), pero no hacía mucho más. La intención era ser un juguete para hackers. No había nada sobre soporte a usuarios, distribuciones, documentación ni nada parecido.

Hoy Linux es ya un clónico de UNIX completo, capaz de ejecutar X Window, TCP/IP, Emacs, UUCP y software de correo y News. Mucho software de libre distribución ha sido ya portado a Linux, y están empezando a aparecer aplicaciones comerciales. El hardware soportado es mucho mayor que en las primeras versiones del núcleo. Mucha gente ha ejecutado tests de rendimiento en sus sistemas Linux 486 y se han encontrado que son comparables a las estaciones de trabajo de gama media de Sun Microsystems y Digital. Quién iba a imaginar que este "pequeño" clónico de UNIX iba a convertirse en un estándar mundial para los ordenadores personales?

Características del sistema

Linux implementa la mayor parte de las características que se encuentran en otras implementaciones de UNIX, más algunas otras que no son habituales. Linux es un sistema operativo completo con multitarea y multiusuario, esto significa que pueden trabajar varios usuarios simultáneamente en él, y que cada uno de ellos puede tener varios programas en ejecución.

El sistema Linux es compatible con ciertos estándares de UNIX a nivel de código fuente, incluyendo el IEEE POSIX.1, System V y BSD. Fue desarrollado buscando la portabilidad de los fuentes: encontrará que casi todo el software gratuito desarrollado para UNIX se compila en Linux sin problemas. Y todo lo que se hace para Linux (código del núcleo, drivers, librerías y programas de usuario) es de libre distribución. En Linux también se implementa el control de trabajos POSIX (que se usa en los shells csh y bash), las pseudoterminales (dispositivos pty), y teclados nacionales mediante manejadores de teclado cargables dinámicamente. Además, soporta consolas virtuales, lo que permite tener más de una sesión abierta en la consola de texto y conmutar entre ellas fácilmente.

Linux soporta diversos sistemas de ficheros para guardar los datos. Algunos de ellos, como el ext2fs, han sido desarrollados específicamente para Linux. Otros sistemas de ficheros, como el Minix-1 o el de Xenix también están soportados. Y con el de MS-DOS se podrán acceder desde Linux a los disquetes y particiones en discos duros formateados con MS-DOS. Además, también soporta el ISO-9660, que es el estándar seguido en el formato de los CD-ROMs.

Linux implementa todo lo necesario para trabajar en red con TCP/IP. Desde manejadores para las tarjetas de red más populares hasta SLIP/PPP, que permiten acceder a una red TCP/IP por el puerto serie. También se implementan PLIP (para comunicarse por el puerto de la impresora) y NFS (para acceso remoto a ficheros). Y también se han portado los clientes de TCP/IP, como FTP, telnet, NNTP y SMTP. El núcleo de Linux ha sido desarrollado para utilizar las características del modo protegido de los microprocesadores 80386 y 80486. En concreto, hace uso de la gestión de memoria avanzada del modo protegido y otras características avanzadas.

El núcleo soporta ejecutables con paginación por demanda. Esto significa que sólo los segmentos del programa que se necesitan se cargan en memoria desde el disco. Las páginas de los ejecutables son compartidas mediante la técnica copy-on-write, contribuyendo todo ello a reducir la cantidad de memoria requerida para las aplicaciones. Con el fin de incrementar la memoria disponible, Linux implementa la paginación con el disco: puede tener hasta 256 megabytes de espacio de intercambio o "swap" (3) en el disco duro. Cuando el sistema necesita más memoria, expulsará páginas inactivas al disco, permitiendo la ejecución de programas más grandes o aumentando el número de usuarios que puede atender a la vez. Sin embargo, el espacio de intercambio no puede suplir totalmente a la memoria RAM, ya que el primero es mucho más lento que ésta.

La memoria dedicada a los programas y a la cache de disco está unificada. Por ello, si en cierto momento hay mucha memoria libre, el tamaño de la cache de disco aumentará acelerando así los accesos. Los ejecutables hacen uso de las librerías de enlace dinámico. Esto significa que los ejecutables comparten el código común de las librerías en un único fichero, como sucede en SunOS. Así, los ejecutables serán más cortos a la hora de guardarlos en el disco, incluyendo aquellos que hagan uso de muchas funciones de librería. También pueden enlazarse estáticamente cuando se deseen ejecutables que no requieran la presencia de las librerías dinámicas en el sistema. El enlace dinámico se hace en tiempo de ejecución, con lo que el programador puede cambiar las librerías sin necesidad de recompilación de los ejecutables. Para facilitar la depuración de los programas, el núcleo de Linux puede generar volcados de la imagen de memoria de los programas (ficheros core). Entre esto y la posibilidad de compilar ejecutables con soporte de depuración, el programador podrá averiguar la causa de los fallos de su programa.

Algunas versiones de Distribución

Linux de Red Hat
http://www.redhat.com
Una de las versiones más populares de Linux que incluye una gran variedad de paquetes de valor añadido. El proceso de instalación ha sido optimizado y se puede instalar a través de una red de forma muy sencilla. Esta versión incluye muchas utilidades de personalización para administrar el sistema de forma gráfica.
Linux de Debian
http://www.debian.org
Esta es una versión no comercial y también muy popular. El soporte de esta versión lo ofrece la comunidad de desarrollo Debian, que está formada por cientos de personas de todo el mundo. Debian también ofrece su propio sistema de administración de versiones, que actualiza el sistema de forma muy simple. La versión de distribución Debian de Linux es la versión de distribución más flexible que existe, pero esta flexibilidad significa que los nuevos usuarios encontrarán el sistema mucho más complicado.
OpneLinux de Caldera
http://www.calderasystems.com
Esta es una versión comercial muy potente que incluye varios servidores de gama alta. El proceso de instalación es amigable, parecido al de Red Hat y que también utiliza el administrador de versiones RPM. Una característica de esta versiones que incluye el entorno KDE, que ofrece una interfaz muy amigable, similar a la de los sistemas operativos tradicionales. También incluye la serie de programas para oficina de StarOffice.
Linux S.u.S.E.
http://www.suse.com
Esta versión incluye 4 CD-Roms con aplicaciones, código fuente y una exhaustiva documentación impresa. Utiliza el sistema de administración RPM de Red Hat para facilitar las actualizaciones y además incluye sus propias herramientas de administración, muy fáciles de usar. También incluye servidores X Windows desarrollados por S.u.S.E para ser compatibles con los últimos modelos de tarjetas de video e implementa el entorno de escritorio KDE.

Manuales de Linux

Visitá la sección Manuales del Sitio Proyecto LuCAS

Lectura Complementaria

Linux, otra opcion en Sistemas Operativos Enlace
La historia de Linus Torvalds Enlace
Linux alcanza la edad adulta Enlace

Enlaces recomendados

Proyecto LuCAS http://lucas.hispalinux.es
Linux HQ http://www.linuxhq.com
Hispa Linux http://www.hispalinux.es
Linux Argentina http://www.linux.org.ar
Algo Sobre Linux http://www.algosobrelinux.com.ar
SOS Linux http://www.soslinux.net
Plug http://www.plug.org.ar
Aula Linux http://aula.linux.org.ar
Linux Preview http://:www.linuxpreview.org

Directores del Proyecto LuCAS

Juan José Amor Iglesias jjamor@hispalinux.es
César Ballardini cballard@santafe.com.ar
Alfonso Belloso Martínez alfon@bipv02.bi.ehu.es
Antonio Ismael Olea González olea@iname.com