Capítulo 1
1.1 Sobre este libro
1.2 Breve historia de Linux
1.3 Características del sistema
1.4 Software
1.4.1 Comandos
y utilidades básicas
1.4.2 Formateado y proceso de textos
1.4.3 Lenguajes de programación y utilidades
1.4.4 El sistema X Window
1.4.5 Redes
1.4.6 Programas de comunicaciones y BBS
1.4.7 Enlazando con MS-DOS
1.4.8 Otras aplicaciones
1.5 Acerca del Copyright
1.6 Diseño y filosofía de Linux
1.6.1 Consejos
para novatos en UNIX
1.6.2 Consejos para los gurús
1.7 Diferencias Entre Linux y Otros Sistemas Operativos
1.7.1 ¿Por qué
usar Linux?
1.7.2 Linux vs. MS-DOS
1.7.3 Linux vs. Otros Sistemas Operativos
1.7.4 Otras implementaciones de UNIX
1.8 Requerimientos de Hardware
1.8.1 Requisitos
de Placa Base y de CPU
1.8.2 Requisitos de memoria
1.8.3 Requisitos de la controladora de disco duro
1.8.4 Requisitos de espacio en disco
1.8.5 Requisitos de monitor y adaptador de vídeo
1.8.6 Hardware diverso
1.8.7 Tarjetas Ethernet
1.9 Fuentes de información sobre Linux
1.9.1 Documentación
On-Line
1.9.2 Linux en el WWW
1.9.3 Libros y otras publicaciones
1.9.4 Grupos de NEWS USENET
1.9.5 Listas de correo en Internet
Introducción
a Linux
Anterior-
Siguiente - Índice
Linux es probablemente el acontecimiento más
importante del software gratuito desde el original Space War, o, mas 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 numero de usuarios pertenece a esta categoría). Este libro le
ayudara a sacarle el máximo partido.
Linux (pronunciado con una i corta, como
en LIH-nucs) es un clónico del sistema operativo UNIX que corre en ordenadores
Intel 80386 y 80486. 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 (vea el
Apéndice F).
Linux puede convertir cualquier PC 386
o 486 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.
1.1
Sobre este libro:
Anterior-
Siguiente - Índice
Este libro es una guía de instalación
e iniciación al sistema Linux. El objetivo es conseguir que los nuevos
usuarios se adapten y hagan funcionar el sistema, condensando tanto material
importante como sea posible dentro de un libro. En lugar de abarcar muchos de
los volátiles detalles técnicos, esas cosas que tienden a cambiar
con el veloz desarrollo, le ofrecemos una base suficiente con la que podrá
buscar mas por Ud. mismo.
Linux no es difícil de instalar
y usar. Sin embargo, como cualquier implementación de UNIX, a menudo
hay algo de magia negra implicada para conseguir que todo funcione correctamente.
Esperamos que este libro le introduzca
en el mundo del Linux y le muestre cuan atractivo puede llegar a ser este sistema
operativo.
En este libro se tratan los
siguientes temas.
o ¿Qué es Linux? El diseño
y la filosofía de este sistema operativo único, y lo que puede
hacer por Ud.
o Todos los detalles de lo que
es necesario para correr Linux, incluyendo sugerencias sobre que tipo de configuración
hardware se recomienda para un sistema completo.
o Como obtener e instalar Linux.
Hay muchas distribuciones del software de Linux. Presentamos una discusión
general de las distribuciones de software de Linux, como obtenerlas, e instrucciones
genéricas para instalar el software (que deberían ser aplicables
a cualquier distribución). Esta edición también contiene
instrucciones especificas para la distribución Slackware de Linux.
o Un breve tutorial de introducción
a UNIX, para aquellos usuarios que nunca antes hayan tenido contacto con UNIX.
Este tutorial debería proporcionar, esperamos, material suficiente para
que completos novatos consigan los conocimientos básicos de como moverse
por el sistema.
o Una introducción a la
administración de sistemas con Linux. Esto abarca las tareas más
importantes con las que los nuevos administradores de Linux necesitaran familiarizarse,
tales como crear usuarios, manejar los sistemas de ficheros, y muchas más.
o Información sobre configuración
de aspectos mas avanzados de Linux, como el Sistema X-Window, redes con TCP/IP
y SLIP, y la puesta en marcha del correo electrónico y sistemas de news.
Este
libro es para el usuario de ordenador personal que desea iniciarse en Linux.
No se asume experiencia previa de UNIX, pero se espera que los novatos busquen
mas materiales sobre la marcha.
Para los no familiarizados con UNIX, se
da una lista de fuentes de información útiles en el Apéndice
A.
En general, se pretende que este libro
se lea junto con otro libro sobre conceptos básicos de UNIX.
1.2
Breve historia de Linux:
Anterior-
Siguiente - Índice
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 mas 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 autentico
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. Cuando se escribía este libro, una copia para una maquina
386 del UNIX System V de AT&T costaba unos 1500 dólares estadounidenses.
Linux es una versión de UNIX de
libre distribución, inicialmente desarrollada por Linus Torvalds (torvalds@kruuna.helsinki.fi)
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.
Inicialmente, solo fue un proyecto de
aficionado de Linus Torvalds. Se inspiraba en Minix, un pequeño UNIX
desarrollado por Andy Tanenbaum, y las primeras discusiones sobre Linux surgieron
en el grupo de News comp.os.minix. Estas discusiones giraban en torno al desarrollo
de un pequeño sistema UNIX de carácter académico dirigido
a aquellos usuarios de Minix que querían algo mas.
El desarrollo inicial de Linux ya aprovechaba
las características de conmutación de tareas en modo protegido
del 386, y se escribió todo en ensamblador. Linus dice, "Comencé
a utilizar el C tras escribir algunos drivers, y ciertamente se acelero el desarrollo.
En este punto sentí que mi idea de hacer un `un Minix mejor que Minix'
se hacia mas seria. Esperaba que algún día pudiese recompilar
el gcc bajo Linux. . .
"Dos meses de trabajo, hasta que tuve
un driver de discos (con numerosos bugs, pero que parecía funcionar en
mi PC) y un pequeño sistema de ficheros. Aquí tenia ya la versión
0.01 [al final de Agosto de 1991]: no era muy agradable de usar sin el driver
de disquetes, y no hacia gran cosa. No pense que alguien compilaría esa
versión."
No se anuncio nada sobre esa versión,
puesto que las fuentes del 0.01 jamas fueron ejecutables: contenían solo
rudimentos de lo que seria el núcleo, y se asumía que se tenia
acceso a un Minix para poderlo compilar y jugar con el.
El 5 de Octubre de 1991, Linus anuncio
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 hacia mucho
mas. La intención era ser un juguete para hackers. No había nada
sobre soporte a usuarios, distribuciones, documentación ni nada parecido.
Hoy, la comunidad de Linux aun trata estos asuntos de forma secundaria. Lo primero
sigue siendo el desarrollo del kernel.
Linus escribía en comp.os.minix,
"¿Suspiráis al recordar aquellos días de Minix-1.1, cuando los
hombres eran hombres y escribían sus propios drivers? ¿Os sentís
sin ningún proyecto interesante y os gustaría tener un verdadero
S.O. que pudierais modificar a placer? ¿Os resulta frustrante el tener solo
a Minix? Entonces, este articulo es para vosotros.
"Como dije hace un mes, estoy trabajando
en una versión gratuita de algo parecido a Minix para ordenadores At-386.
He alcanzado la etapa en la que puede ser utilizable y voy a poner las fuentes
para su distribución. Es solo la versión 0.02. . . pero he conseguido
ejecutar en el bash, gcc, gnu-make, gnu-sed, compress, etc.
Tras la versión 0.03, Linus salto
a la versión 0.10, al tiempo que mas gente empezaba a participar en su
desarrollo. Tras numerosas revisiones, se alcanzo la versión 0.95, reflejando
la esperanza de tener lista muy pronto una versión "oficial". (Generalmente,
la versión 1.0 de los programas se corresponden con la primera teóricamente
completa y sin errores). Esto sucedía en Marzo de 1992. Año y
medio después, en Diciembre del 93, el núcleo estaba en la revisión
0.99.pl14, en una aproximación asintótica al 1.0. Actualmente,
el núcleo se encuentra en la versión 1.1 parche 52, y se acerca
la 1.2.2
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?
1.3
Características del sistema:
Anterior-
Siguiente - Índice
Linux implementa la mayor parte de las características
que se encuentran en otras implementaciones de UNIX, mas algunas otras que no
son habituales. En esta sección nos daremos una vuelta por todo ello.
Linux es un sistema operativo completo
con multitarea y multiusuario (como cualquier otra versión de UNIX).
Esto significa que pueden trabajar varios usuarios simultáneamente en
el, 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:
encontrara 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 mas de una sesión abierta en la consola de texto
y conmutar entre ellas fácilmente. A los usuarios del programa "screen"
les resultara familiar esto.
_____________________________________________
2 N. del T.: En el momento de traducir estas líneas la versión estable del núcleo es la 1.2.13, pero el desarrollo continua por la 1.3.47 en versión beta . . .
El núcleo es capaz de emular por su cuenta
las instrucciones del coprocesador 387, con lo que en cualquier 386 con coprocesador
o sin el se podrán ejecutar aplicaciones que lo requieran.
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. Hablaremos mas sobre
los sistemas de ficheros en los capítulos 2 y 4.
Linux implementa todo lo necesario para
trabajar en red con TCP/IP. Desde manejadores para las tarjetas de red mas 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. Hablaremos mas acerca de esto en el capitulo
5.
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. Cualquiera que
conozca la programación del 386 en el modo protegido sabrá que
este modo fue diseñado para su uso en UNIX (o tal vez Multics). Linux
hace uso de esta funcionalidad precisamente.
El núcleo soporta ejecutables con
paginación por demanda. Esto significa que solo los segmentos del programa
que se necesitan se cargan en memoria desde el disco. Las paginas 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
mas memoria, expulsara paginas inactivas al disco, permitiendo la ejecución
de programas mas grandes o aumentando el numero 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 mas lento que esta.
La memoria dedicada a los programas y
a la cache de disco esta unificada. Por ello, si en cierto momento hay mucha
memoria libre, el tamaño de la cache de disco aumentara 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 mas
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
_____________________________________________
3 El nombre swap es inadecuado: no se intercambian procesos completos, sino paginas individuales. Por supuesto, en muchos casos se expulsan al disco procesos completos, pero no siempre ocurre 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.
1.4
Software:
Anterior-
Siguiente - Índice
En esta sección le haremos una breve introducción sobre las muchas aplicaciones software disponibles para Linux y sobre tareas típicas con ordenadores. Después de todo la parte mas importante del sistema radica en la cantidad de software disponible que existe. El hecho de que la mayor parte de ese software sea gratis lo hace aun mas impresionante.
1.4.1 Comandos
y utilidades básicas:
Anterior-
Siguiente - Índice
Prácticamente cada utilidad que espere
encontrar en un sistema UNIX estándar ha sido trasladada a Linux. Esto
incluye comandos básicos como ls, awk, tr, sed, bc, more, y muchos mas.
Diga el nombre de una. Es seguro que Linux la tiene. En Linux puede esperar
encontrar un entorno de trabajo que le será familiar si procede de entornos
UNIX. Todos los comandos estándar y utilidades están ahí.
(Los usuarios novatos de Linux deberían ver el Capitulo 3 para una introducción
a los comandos básicos del UNIX.)
Hay disponibles numerosos editores de
texto, incluyendo vi, ex, pico, jove, GNU Emacs y sus variantes como Lucid Emacs
(el cual incorpora extensiones para usarlo bajo X Window), y joe. Sea cual sea
el editor que este acostumbrado a usar, es prácticamente seguro que habrá
sido portado a Linux.
La elección de un editor de texto
es un asunto interesante. Muchos usuarios de UNIX siguen usando editores "simples",
como vi (de hecho, el autor escribió este libro usando vi sobre Linux.
Pero vi tiene muchas limitaciones debido
a su antigüedad, por lo que están ganando popularidad editores mas
modernos (y complejos) como Emacs. Emacs proporciona un completo lenguaje de
macros basadas en LISP con su interprete, una poderosa sintaxis de órdenes
y multitud de otras opciones interesantes. Existe un conjunto de macros de Emacs
para leer correo electrónico y 'news', moverse por el árbol de
directorios, e incluso tener una sesión de psicoterapia con un psicoterapeuta
de inteligencia artificial (indispensable para Linuxeros estresados :-))
Un punto interesante es que la mayoría
de las utilidades básicas para Linux son programas GNU. Estas utilidades
GNU proporcionan características avanzadas que no se encuentran en las
versiones estándar para BSDo AT&T. Por ejemplo, la versión
de GNU del editor vi, elvis, incluye un lenguaje de macros estructurado que
difiere de la versión inicial de AT&T. De cualquier modo, las utilidades
GNU se esfuerzan por mantenerse compatibles con sus equivalentes BSD y System
V.
Mucha gente considera las versiones GNU
de estos programas superiores a las originales. La utilidad mas importante para
la mayoría de los usuarios es el interprete de comandos. El interprete
de comandos es un programa que lee y ejecuta órdenes del usuario. Además,
muchas proporcionan características como control de procesos (permitiendo
al usuario manejar varios procesos corriendo a la vez), redirección de
entrada/salida, y un lenguaje de órdenes para escribir scripts. Una script
es un fichero que contiene un programa en el lenguaje de órdenes del
interprete de comandos, similar a los ficheros "batch" de MS-DOS.
Hay varios tipos de interpretes de comandos
disponibles para Linux. La principal diferencia entre ellos es el lenguaje de
comandos. Por ejemplo, el C Shell (csh) usa un lenguaje de comandos muy parecido
al lenguaje de programación C. El clásico Bourne Shell usa un
lenguaje de comandos diferente. Un argumento para la elección de un determinado
interprete de comandos es el lenguaje de comandos que proporciona. El interprete
de comandos que use, definirá su entorno de trabajo bajo Linux.
No importa el interprete de comandos que
este acostumbrado a usar, alguna versión de este habrá sido probablemente
llevada a Linux. La mas popular es el GNU Bourne Again Shell (bash), que es
una variante del Bourne clásico que incluye muchas características
avanzadas como control de procesos, historial de órdenes, terminación
de comandos y ficheros, edición de la línea de comandos al estilo
Emacs y poderosas extensiones al lenguaje de comandos del Bourne clásico.
Otro interprete de comandos muy popular es el tcsh, una versión del C
Shell con funcionalidad avanzada similar a la encontrada en bash. Otros interpretes
de comandos son zsh, un pequeño interprete similar al Bourne; el Korn
(ksh); BSD's ash y rc, el interprete de comandos de Plan 9.
Linux le da la oportunidad única
de configurar el sistema a su gusto según sus necesidades. Por ejemplo,
si usted es la única persona que usa el sistema, y prefiere el editor
vi, y el interprete de comandos bash, no es necesario que instale otros editores
e interpretes de comandos. La actitud "hágaselo usted mismo" es la que
se impone entre los usuarios de Linux.
1.4.2 Formateado
y proceso de textos:
Anterior-
Siguiente - Índice
Casi la totalidad de los usuarios de ordenadores
tiene la necesidad de usar un sistema de preparación de documentos de
algún tipo. (¿Cuantos entusiastas de los ordenadores conoces que todavía
usen papel y lápiz?. No demasiados, apostamos por ello). En el mundo
de los PC, procesado de textos es la norma: esto implica edición y manipulación
de texto (a menudo en un entorno WYSIWYG 4 y la producción de copias
impresas del texto con dibujos, tablas y otros adornos.
En el mundo UNIX, el formateado de textos
es mucho mas común. Es bastante diferente del clásico concepto
de proceso de textos. Con un sistema de formateado de textos, el texto es introducido
por el autor usando un "lenguaje de composición", que describe como debe
ser formateado el texto. En lugar de introducir el texto dentro de un entorno
de proceso de textos especial, los fuentes del texto pueden ser modificados
con cualquier editor de textos como vi o Emacs. Una vez el texto fuente esta
completo (en el lenguaje de composición), el usuario formatea el texto
con un programa separado, que convierte el texto fuente a un formato adecuado
para la impresión. Esto es en cierta forma análogo a programar
en un lenguaje como C, y "compilar" el documento a una forma imprimible.
Hay
muchos formateadores de textos disponibles para Linux. Uno es groff, la versión
GNU del clásico nroff originalmente desarrollado por Bell Labs y todavía
usado en muchos sistemas UNIX por todo el mundo. Otro sistema de formateado
de textos moderno es TEX, desarrollado por Donald Knuth de gran popularidad.
Dialectos de TEX, como LATEX, también están disponibles. Formateadores
de texto como TEX y groff difieren entre si principalmente en la sintaxis del
lenguaje de composición. La elección de un sistema de formateo
frente a otro estará basada en las utilidades disponibles para satisfacer
sus necesidades, así como en su gusto personal.
_____________________________________________
4 N. del T.: WYSIWYG: "What-You-See-Is-What-You-Get". "Lo-que-ves-es-lo-que-obtienes"
Por ejemplo, algunas personas consideran que
el lenguaje de composición de groff es un poco oscuro por lo que usan
TEX, que es mas legible para humanos. Pero, groff es capaz de producir salida
en ASCII llano, visualizable en un terminal, mientras que TEX esta destinado
principalmente para salida a impresora. Por lo tanto, existen varios programas
para producir salida ASCII de documentos formateados con TEX, o para convertir
TEX a groff.
Otro sistema de formateo de texto es texinfo,
una extensión de TEX usada para la documentación de programas
por la 'Free Software Foundation'. texinfo es capaz de producir documentos impresos
o un documento "Info" con hiperenlaces por los que nos podemos mover desde un
único fichero fuente. Los ficheros Info son el formato principal de documentación
usado por paquetes de GNU como Emacs.
Los formateadores de texto son usados
ampliamente en la comunidad informática para producir informes, tesis,
artículos de revistas y libros (de hecho, este libro ha sido producido
con LATEX). La capacidad de procesar el lenguaje fuente como un fichero de texto
llano abre la puerta a muchas extensiones al formateado de texto en si, puesto
que los documentos no son guardados en un oscuro formato, legible solo por un
procesador de textos particular, los programadores tienen la posibilidad de
escribir analizadores y traductores para el lenguaje de composición y
extender el sistema.
¿Que aspecto tiene el lenguaje de composición?
En general, el texto fuente consiste principalmente en el texto en si mismo,
junto con "códigos de control" para producir efectos particulares, como
cambio de tipo de letra, seleccionar márgenes, crear listas, etc. Como
ejemplo, tomemos el siguiente texto:
Sr. Torvalds:
Estamos muy preocupados con sus planes actuales
de añadir sugestión post-hipnótica en el código
del terminal de Linux. Nos sentimos así por tres razones:
1. Mostrar mensajes subliminales en
el terminal no es solo inmoral, sino una pérdida de tiempo;
2. Ha sido probado que las sugestiones
post-hipnóticas no son efectivas cuando se usan sobre `UNIX hackers'
desprevenidos;
3. Ya hemos añadido descargas
eléctricas de alto voltaje como medida de seguridad en el código
de login.
Esperamos que lo reconsidere.
Este texto aparecería en el lenguaje de formateo de LATEX como sigue:
\begin{quote}
Sr. Torvalds:
Estamos muy preocupados con sus planes
actuales de a\~nadir
{\em sugesti\'on post-hipn\'otica\/}
en el c\'odigo del
terminal de {\bf Linux}. Nos sentimos
as\'{\i} por tres razones:
\begin{enumerate}
\item Mostrar mensajes subliminales
en el terminal no es solo
inmoral, sino una p\'erdida de tiempo;
\item Ha sido probado que las sugestiones
post-hipn\'oticas
no son efectivas cuando se usan sobre
`UNIX hackers'
desprevenidos;
\item Ya hemos a\~nadido descargas
el\'ectricas de alto voltaje
como medida de seguridad en el c\'odigo
de {\tt login}.
\end{enumerate}
Esperamos que lo reconsidere.
\end{quote}
El autor escribe el texto `fuente' anterior
usando un editor de texto y genera la salida formateada procesando el texto
con LATEX. A primera vista, el lenguaje de composición puede parecer
oscuro, pero es realmente fácil de aprender. Usar un sistema de formateo
de textos hace cumplir las normas topográficas en la escritura. Por ejemplo,
todas las listas enumeradas dentro del documento tendrán el mismo aspecto,
aunque el autor modifique la definición del `entorno' de la lista enumerada.
La meta principal es permitir al autor concentrarse en la escritura del texto
en lugar de preocuparse por las convenciones topográficas.
Los procesadores de texto WYSIWYG son
atractivos por muchas razones; proporcionan un poderoso (y a veces complejo)
interface visual para la edición del documento. Pero este interface esta
inherentemente limitado por aquellos aspectos de la estructura del texto que
son accesibles al usuario. Por ejemplo, muchos procesadores de texto proporcionan
un 'lenguaje de formateado' especial para producir expresiones complicadas como
pueden ser las formulas matemáticas. Esto es idéntico al formateado
de textos, aunque en una escala mucho menor.
El sutil beneficio del formateado de textos
es que el sistema te permite especificar exactamente lo que quieres. También,
los formateadores de texto permiten editar el texto fuente con cualquier editor
de texto y el fuente es fácilmente convertible a otros formatos. Esta
flexibilidad y potencia la obtenemos a cambio de renunciar al interface WYSIWYG.
Muchos usuarios de procesadores de texto
están acostumbrados a ver el texto formateado tal y como lo editaron.
Por otra parte, cuando se escribe con un formateador de texto, generalmente
no nos preocupamos sobre el aspecto que tendrá una vez formateado. El
escritor aprende a imaginarse el aspecto que tendrá el texto una vez
formateado a partir de las órdenes de formateado usadas en el fuente.
Hay programas que permiten ver el documento
formateado en una pantalla gráfica antes de imprimirlo. Por ejemplo,
xdvi visualiza un fichero `independiente de dispositivo' generado por TEX en
X-Windows. Otras aplicaciones, como xfig proporcionan interfaces gráficos
WYSIWYG para dibujar, los cuales son posteriormente convertidos al lenguaje
de formateo de textos para su inclusión en el documento.
Los formateadores de texto como nroff
están disponibles desde mucho antes de que apareciesen los procesadores
de texto. Sin embargo, mucha gente todavía prefiere el uso de los formateadores
de texto porque son mas versátiles e independientes del entorno gráfico.
En cualquier caso, el procesador de textos idoc esta también disponible
en Linux y no pasara mucho tiempo hasta que también veamos procesadores
de texto comerciales disponibles. Si de ninguna forma quieres renunciar al proceso
de texto en favor del formateo de textos, siempre puedes ejecutar MS-DOS o algún
otro sistema operativo además de Linux.
Hay disponibles muchas otras utilidades
relacionadas con el formateo de textos. El potente sistema METAFONT, usado para
diseñar fuentes para TEX, esta incluido el la distribución de
TEX para Linux. Otros programas incluyen ispell, un corrector ortográfico
interactivo; makeindex, usado para generar índices en documentos LATEX;
así como muchos paquetes de macros para groff y TEX para el formateo
de diferentes tipos de documentos y textos matemáticos. Hay disponibles
programas de conversión entre fuentes de TEX y groff a miles de otros
formatos.
1.4.3 Lenguajes
de programación y utilidades:
Anterior-
Siguiente - Índice
Linux proporciona un completo entorno de programación
UNIX, incluyendo todas las librerías estándar, herramientas de
programación, compiladores, depuradores y todo aquello que esperarías
encontrar en otro sistema UNIX. En el mundo del desarrollo de programas UNIX,
las aplicaciones y sistemas suelen ser programados en C o C++. El compilador
estándar de C y C++ para Linux es el GNU gcc, el cual es un avanzado
y moderno compilador que permite multitud de opciones. Es también capaz
de compilar C++ (incluyendo las características de AT&T 3.0) así
como en Objetive-C y otros dialectos de C orientados a objetos.
Además de C y C++ han sido llevados
a Linux muchos otros lenguajes de programación tanto interpretados como
compilados, como Smalltalk, FORTRAN, Pascal, LISP, Scheme, Ada (si es tan masoquista
como para programar en Ada, no le detendremos). Además hay disponibles
varios ensambladores para escribir código del 80386 en modo protegido.
Los lenguajes favoritos de UNIX como Perl (el lenguaje de guiones para terminar
con todos los lenguajes de guiones) y Tcl/Tk (un procesador de órdenes
al estilo del interprete de comandos incluyendo soporte para desarrollar aplicaciones
simples para X-Window).
El depurador avanzado gdb también
ha sido llevado a Linux. Permite examinar los programas para localizar errores,
o examinar la causa de un "cuelgue" usando un volcado del sistema (core dump).
gprof utilidad de perfilado que permite obtener estadísticas de prestaciones
de sus programas, permitiendo saber en que parte de su programa se va la mayor
parte del tiempo de ejecución.
El editor Emacs proporciona un entorno
interactivo de edición y compilación para varios lenguajes de
programación. Otras herramientas incluyen GNU make e imake, usados para
dirigir el proceso de compilación de aplicaciones grandes o RCS, sistema
de control de revisiones.
Linux dispone de librerías compartidas
enlazadas dinámicamente, lo que permite a los ejecutables ser mucho menores
al enlazar el código de las librerías en tiempo de ejecución.
Estas librerías DLL (Dinamically Linked Library) también permiten
al programador de aplicaciones sustituir funciones ya definidas con su propio
código. Por ejemplo, si un programador desea escribir su propia versión
de la función de librería malloc(), el editor de enlaces usaría
la nueva rutina del programador en lugar de la que se encuentra en las librerías.
Linux es ideal para desarrollar aplicaciones
UNIX, proporciona un moderno entorno de programación con todos los detalles
y funcionalidad necesarios. Se soportan varios estándares como POSIX.1,
permitiendo a los programas escritos para Linux ser fácilmente llevados
a otros sistemas.
Los programadores profesionales de UNIX
y administradores de sistemas pueden usar Linux para desarrollar programas en
casa y luego transferir los programas a los sistemas UNIX del trabajo.
Esto no solo puede ahorrar una gran cantidad
de tiempo y dinero, sino que también le permitirá trabajar con
la comodidad de su propia casa.5 Los estudiantes de informática pueden
usar Linux para aprender la programación en UNIX y explorar otros aspectos
del sistema como la arquitectura del núcleo.
Con Linux, no solo tienes acceso a un
conjunto completo de librerías y utilidades de programación, también
tiene acceso al código fuente completo del núcleo y las librerías.
1.4.4 El sistema
X-Window:
Anterior-
Siguiente - Índice
El sistema X-Window es un interface gráfico
estándar para maquinas UNIX. Es un potente entorno que soporta muchas
aplicaciones. Usando X-Windows, el usuario puede tener múltiples terminales
a la vez en ventanas sobre la pantalla, cada una conteniendo una sesión
diferente. Un dispositivo apuntador como el ratón es usado a menudo en
el interface X, pero no es indispensable.
Han sido escritas muchas aplicaciones
específicamente para X, como juegos, utilidades gráficas, herramientas
de programación y documentación, y muchas mas. Con Linux y X,
su sistema es una autentica estación de trabajo. Junto con una red TCP/IP
puede incluso visualizar aplicaciones que se están ejecutando en otras
maquinas en su pantalla local, tal y como es posible con otros sistemas corriendo
X.
El sistema X-Window fue desarrollado originalmente
en el MIT y es de libre distribución. A pesar de esto muchas empresas
han distribuido sus mejoras particulares al diseño original de X-Window.
La versión de X-Window disponible para Linux es conocida como XFree86,
una adaptación de X11R56 de libre distribución para sistemas UNIX
basados en 80386, como es Linux. XFree86 soporta una gran variedad de tarjetas
de vídeo, incluyendo VGA, Super VGA y gran cantidad de tarjetas aceleradoras
de vídeo. Esta es una distribución completa de X Windows conteniendo
el servidor de X, muchas aplicaciones y utilidades, librerías de programación
y documentación.
Aplicaciones X estándar incluyen
xterm (emulador de terminal usado por la mayoría de las aplicaciones
en modo texto dentro de X); xdm (el gestor de sesiones, maneja los 'login');
xclock (un reloj simple); xman (un lector de paginas de manual para X) y muchos
mas. El numero de aplicaciones disponibles para X-Windows en Linux es demasiado
numeroso como para mencionarlas aquí, pero la distribución básica
de XFree86 incluye las aplicaciones `estándar' que se encontraban en
la versión original del MIT. Muchas otras están disponibles separadamente
y teóricamente cualquier aplicación escrita para X Windows debería
compilar limpiamente bajo Linux.
El aspecto
y comportamiento del interface de las X Windows esta controlado por el controlador
de ventanas. Este amigable programa es el encargado de la situación de
las ventanas, redimensionado, iconización, movimiento de las ventanas,
aspecto de los marcos de las ventanas, etc. La distribución estándar
XFree86 incluye twm, el clásico controlador de ventanas del MIT, aunque
hay disponibles controladores mucho mas avanzados como Open Look Virtual Window
Manager (olvwm).
_____________________________________________
5 El autor usa su sistema Linux para desarrollar y probar aplicaciones X Window en casa, que pueden ser directamente compiladas en estaciones de trabajo en cualquier parte.
6 N. del T.: Linux dispone en la actualidad de la versión X11R6 de X Window
Un controlador de ventanas muy popular entre
los usuarios de Linux es el fvwm. Es un pequeño controlador que requiere
menos de la mitad de la memoria usada por twm. Proporciona aspecto de 3D para
las ventanas, así como un escritorio virtual si el usuario desplaza el
ratón al borde de la pantalla, la pantalla entera es desplazada como
fuese mucho mas grande de lo que realmente es. fvwm es altamente configurable
y permite acceso a todas las funciones tanto desde el teclado como desde el
ratón. Muchas distribuciones de Linux usan fvwm como controlador de ventanas
estándar.
La distribución XFree86 contiene
librerías para programación y ficheros de cabecera para aquellos
programadores mañosos que deseen desarrollar aplicaciones para X. Están
soportados varios conjuntos de controles como los de Athena, Open Look y Xaw3D.
Todas las fuentes estándar, mapas de bits, paginas de manual y documentación
esta incluida. PEX (interface de programación para gráficos 3D)
también esta soportado.
Muchos programadores de aplicaciones para
X usan el conjunto comercial de controles Motif para el desarrollo. Algunos
vendedores proporcionan licencias simples o multiusuario de una versión
ejecutable de Motif para Linux, pero como Motif en si, es bastante caro, no
lo poseen demasiados usuarios de Linux. A pesar de todo, ejecutables estáticamente
enlazados con las librerías de Motif pueden ser libremente distribuidos.
Por lo tanto, si escribes un programa usando Motif y deseas distribuirlo libremente,
deberás de proporcionar un ejecutable con las librerías enlazadas
estáticamente para que los usuarios que no posean Motif puedan usar el
programa.
La única advertencia con las X-Windows
son los requerimientos de maquina y memoria. Un 386 con 4 Mb de RAM es capaz
de ejecutar las X, pero para usarlo adecuadamente serán necesarios 8
Mb o mas. También es recomendable usar un procesador rápido, pero
tener mayor cantidad de memoria física es mucho mas importante. Además,
para conseguir realmente buenas prestaciones de vídeo, es muy recomendable
usar una tarjeta aceleradora (como las tarjetas local bus con aceleradores gráficos
S3). Se han conseguido índices de prestaciones por encima de los 140.000
Xstones con XFree86 y Linux. Con suficiente hardware, encontrara que ejecutar
X en Linux es tan rápido o mas rápido que ejecutar X en otras
estaciones de trabajo UNIX.
En el Capitulo
5 se tratara sobre como instalar y usar las X en su propio sistema.
1.4.5 Redes:
Anterior-
Siguiente - Índice
¿Esta interesado en comunicarse con el mundo?
¿Si? ¿No? ¿Quizás? Linux dispone de los dos principales protocolos de
red para sistemas UNIX: TCP/IP y UUCP. TCP/IP (para los aficionados a los acrónimos,
Transmission Control Protocol/Internet Protocol) es un conjunto de protocolos
de red que permite a sistemas de todo el mundo comunicarse en una única
red conocida como Internet.
Con Linux, TCP/IP y una conexión
a la red, puede comunicarse con usuarios y maquinas por toda Internet mediante
correo electrónico, noticias (USENET news), transferencias de ficheros
con FTP y mucho mas. Actualmente hay muchos sistemas Linux conectados a Internet.
La mayoría de las redes TCP/IP
usan Ethernet como tipo de red física de transporte. Linux da soporte
a muchas tarjetas de red Ethernet e interfaces para ordenadores personales,
incluyendo el adaptador Ethernet D-Link de bolsillo para ordenadores portátiles.
Pero dado que no todo el mundo tiene una
conexión Ethernet en casa, Linux también proporciona SLIP 7 (Serial
Line Internet Protocol), el cual permite conectarse a Internet a través
de un módem.
Para poder usar SLIP, necesitara tener
acceso a un servidor de SLIP, una maquina conectada a la red que permite acceso
de entrada por teléfono. Muchas empresas y universidades tienen servidores
SLIP disponibles. De hecho, si su sistema Linux dispone de conexión Ethernet
y de módem, puede configurarlo como servidor de SLIP para otros usuarios.
NFS (Network File System) permite fácilmente
compartir ficheros con otras maquinas de la red.
FTP (File Transfer Protocol) permite la
transferencia de ficheros entre maquinas. Otras aplicaciones incluyen sendmail,
sistema para enviar y recibir correo electrónico usando el protocolo
SMTP; Sistemas de noticias (news) basados en NNTP como C-News e INN; telnet,
rlogin y rsh, que permiten iniciar una sesión y ejecutar órdenes
en otras maquinas de la red; y finger, que permite obtener información
de otros usuarios de Internet. Hay literalmente cientos de aplicaciones basadas
en TCP/IP y protocolos disponibles por la red.
Todos los lectores de correo y noticias
están disponibles para Linux, como elm, pine, rn, nn y tin. Sea cual
sea tus preferencias, puedes configurar tu sistema Linux para enviar y recibir
correo electrónico y noticias por todo el mundo.
Si tienes experiencia con aplicaciones
TCP/IP en otros sistemas UNIX, Linux te será muy familiar. El sistema
proporciona el interface estándar de programación por 'sockets',
lo que virtualmente permite que cualquier programa que use TCP/IP pueda ser
llevado a Linux. El servidor Linux de X también soporta TCP/IP, permitiendo
ver aplicaciones que están corriendo en otros sistemas sobre tu pantalla.
En el Capitulo 5 trataremos sobre la configuración
y puesta en marcha de TCP/IP, incluyendo SLIP para Linux.
UUCP (UNIX-to-UNIX Copy) es un viejo mecanismo
usado para transferir ficheros, correo electrónico y noticias entre maquinas
UNIX. Clásicamente las maquinas UUCP conectan entre ellas mediante líneas
telefónicas y módem, pero UUCP es capaz de funcionar también
sobre una red TCP/IP. Si no tienes acceso a una red TCP/IP o a un servidor SLIP,
puedes configurar tu sistema para enviar y recibir ficheros y correo electrónico
usando UUCP. Ver el Capitulo 5 para mas información.
1.4.6 Programas
de comunicaciones y BBS:
Anterior-
Siguiente - Índice
Si tienes un módem serás capaz de comunicarte con otras maquinas usando alguno de los paquetes de comunicaciones disponibles para Linux. Mucha gente usa programas de comunicaciones para acceder a BBSs, así como a servicios comerciales en línea, como Prodigy, CompuServe y America On-Line. Otras personas usan sus módems para conectar a un sistema UNIX en el trabajo o escuela. Puedes usar incluso tu módem y sistema Linux para enviar y recibir FAX. Los programas de comunicaciones para Linux son muy parecidos a los que se pueden encontrar para MS-DOS y otros sistemas operativos. Todo aquel que haya usado alguna vez un paquete de comunicaciones encontrara un equivalente familiar en Linux.
_____________________________________________
7 N. del T.: Linux también dispone, entre otros, de soporte PPP: Point to Point Protocol.
Uno de los paquetes de comunicaciones mas populares
para Linux es Seyon, una aplicación para X que proporciona un interface
configurable y ergonómico con soporte incorporado de varios protocolos
de transferencia de ficheros como Kermit, ZModem y otros. Otros programas de
comunicaciones incluyen C-Kermit, pcomm y minicom. Estos últimos son
similares a programas de comunicaciones que se pueden encontrar en otros sistemas
operativos y son muy fáciles de usar.
Si no tienes acceso a un servidor de SLIP
(ver la sección anterior), puedes usar term para multiplexar la línea
serie. term te permitirá abrir múltiples sesiones a través
de la conexión por módem a una maquina remota. term también
te permitirá redireccionar las conexiones de un cliente X a tu servidor
local de X, a través de la línea serie, permitiéndote visualizar
aplicaciones X remotas en tu terminal local. Otro paquete disponible, KA9Q,
proporciona un interface similar al SLIP.
Mantener un sistema de BBS es el hobby
favorito de mucha gente. Linux proporciona una gran variedad de programas de
BBS, la mayoría de los cuales son mas potentes que los disponibles para
otros sistemas operativos. Con una línea telefónica, un módem
y Linux, puedes convertir tu sistema en una BBS, proporcionando acceso telefónico
a tu sistema a usuarios de todo el mundo.
Los programas de BBS para Linux incluyen
XBBS y UniBoard BBS.
La mayoría de los programas de
BBS mantienen al usuario en un sistema basado en menús donde solo hay
disponibles ciertas funciones y programas. Una alternativa a este acceso a la
BBS es el acceso UNIX completo, lo que significa que el usuario llama y entra
en el sistema como un usuario regular (a través de un "login"). Aunque
este procedimiento requiere mayor mantenimiento y atención por parte
del administrador del sistema, puede hacerse, y proporcionar acceso publico
a UNIX desde el sistema Linux no es difícil. Junto con una red TCP/IP,
puedes proporcionar acceso a correo electrónico y noticias a los usuarios
del sistema.
Si no tienes acceso a una red TCP/IP o
UUCP, Linux también te permitirá comunicarte con la gran cantidad
de redes de BBS, como FidoNet, en la cual puedes intercambiar correo electrónico
y noticias por la línea telefónica. En el Capitulo 5 encontraras
mas información sobre programas para comunicaciones y BBS bajo Linux.
1.4.7 Enlazando
con MS-DOS:
Anterior-
Siguiente - Índice
Existen varias utilidades para enlazar con el
mundo de MS-DOS. El mas conocido es el emulador de MS-DOS para Linux, que permite
ejecutar muchas aplicaciones de MS-DOS directamente desde Linux. Aunque Linux
y MS-DOS son dos sistemas operativos totalmente diferentes, el modo protegido
del 80386 permite que ciertas tareas se comporten como si estuviesen en un 8086
tal y como hacen las aplicaciones de MS-DOS.
El emulador de MS-DOS esta todavía
bajo desarrollo, aunque muchos de los programas mas populares corren sobre el.
Por lo tanto, es comprensible que programas MS-DOS que usan características
extrañas o esotéricas del sistema, puede que nunca estén
soportados, puesto que solo es un emulador. Por ejemplo, no espere que sea posible
ejecutar programas que usan las características del 80386 en modo protegido
como Microsoft Windows (en modo mejorado de 386). Aplicaciones que corren sin
problemas bajo el emulador de MS-DOS incluyen 4DOS (interprete de comandos),
Foxpro 2.0, Harvard Graphics, MathCad, Stacker 3.1, Turbo Assembler, Turbo C/C++,
Turbo Pascal, Microsoft Windows 3.0 (en modo real) y WordPerfect 5.1. Los comandos
y utilidades estándar de MS-DOS (como PKZIP,... etc) funcionan también
con el emulador.
El emulador de MS-DOS es principalmente
una solución `ad-hoc' para aquellos usuarios que necesitan MS-DOS solo
para unas pocas aplicaciones, pero usan Linux para todo lo demás. Eso
no significa que no sea una implementación completa de MS-DOS. Por supuesto,
si el emulador no satisface tus necesidades, siempre se puede usar MS-DOS junto
con Linux en el mismo sistema.
Usando el gestor de arranque LILO puedes
especificar en el arranque que sistema operativo se desea arrancar. Linux puede
coexistir con otros sistemas operativos, como OS/2, etc.
Linux proporciona un interface sin fisuras
para transferir ficheros entre Linux y MS-DOS. Se puede montar una partición
MS-DOS o disco flexible bajo Linux y acceder directamente a los ficheros MS-DOS
como se haría con ficheros de Linux.
Actualmente existe en desarrollo un proyecto
conocido como WINE_ que es un emulador de Microsoft Windows para X-Windows bajo
Linux. Cuando WINE este completado, los usuarios podrán ejecutar aplicaciones
MS-Windows directamente desde Linux, similar al emulador de Windows WABI de
Sun Microsystems. Al tiempo de escribir este texto, WINE esta todavía
en las primeras etapas del desarrollo, pero tiene muy buenas perspectivas.
En
el Capitulo 5 hablaremos de las herramientas MS-DOS disponibles para Linux.
1.4.8 Otras aplicaciones:
Anterior-
Siguiente - Índice
Tal y como se podría esperar de tal mezcolanza
de sistema operativo, hay una gran cantidad de miscelánea disponible
para Linux. La intención primaria de Linux es, actualmente, el uso personal
de UNIX, pero esto esta cambiando rápidamente. Programas de negocios
y científicos se están expandiendo y los vendedores de programas
comerciales están comenzando a contribuir al crecimiento del numero de
aplicaciones disponibles para Linux.
Están disponibles para Linux varias
bases de datos relacionales, incluyendo Postgres, Ingres y Mbase. Estas tienen
todas las características de aplicaciones de bases de datos cliente/servidor
similares a las que se pueden encontrar en otras plataformas UNIX. /rdb, un
sistema de base de datos comercial9 esta también disponible.
Aplicaciones de calculo científico
incluyen FELT (herramienta de análisis de elementos finitos); gnuplot
(aplicación de análisis y representación gráfica
de datos); Octave (matemática simbólica, similar a MATLAB); xspread
(hoja de calculo); fractint, versión para X del popular generador de
fractales Fractint; xlispstat (paquete estadístico), y muchos mas. Otras
aplicaciones incluyen a Spice (herramienta de diseño y análisis
de circuitos) y Khoros (proceso de señales imágenes/digital y
sistema de visualización).
_____________________________________________
8 N. del T.: Determinadas aplicaciones Windows 3.1 funcionan, aunque en fase experimental, bajo diversos emuladores
9 N. del T.: En el momento de realizar esta
traducción ya existían varios paquetes de Bases de Datos comerciales
portadas a Linux. Van desde compatibilidad con Clipper 5.x hasta soporte SQL
entre otros
Por supuesto, hay muchas mas
aplicaciones que han sido y pueden ser llevadas a Linux. Sea cual sea su campo
de trabajo, trasladar aplicaciones UNIX a Linux debería ser bastante
directo.
Linux proporciona un completo entorno
de programación UNIX, suficiente para servir de base a aplicaciones científicas.
Como con cualquier sistema operativo,
Linux tiene su porción de juegos. Estos incluyen juegos clásicos
en modo texto como Nethack y Moria; MUDs (dragones y mazmorras multiusuario,
que permiten que los usuarios interaccionen en una aventura en modo texto) como
DikuMUD y TinyMUD; así como juegos para X-Windows como tetris, netrek,
y Xboard (la versión para X11 de gnuchess). El popular juego `arcade'
de masacrar enemigos Doom también ha sido llevado a Linux.
Para audiófilos, Linux tiene soporte
para tarjetas de sonido y programas relacionados como CD-player (programa que
permite escuchar CD musicales en el lector de CD-ROM), secuenciadores MIDI y
editores (permiten componer música para sintetizadores o cualquier instrumento
con controlador MIDI) y editores de sonidos digitalizados.
¿No puedes encontrar el programa que estas
buscando?. El `Linux Software Map' descrito en el Apéndice A contiene
una lista con gran cantidad de programas que han sido escritos o llevados a
Linux. Ciertamente, la lista esta lejos de ser completa, pero contiene una gran
cantidad de programas. Otra forma de encontrar aplicaciones para Linux, si tiene
acceso a Internet, es buscar en los ficheros INDEX que se encuentran en los
`Linux FTP sites'. A poco que hurgue a su alrededor, encontrara gran cantidad
de programas esperando a ser usados.
Si de ninguna forma puede encontrar lo
que necesita, siempre puede tratar de hacer una adaptación de la aplicación
desde otra plataforma a Linux. La mayoría de los programas de libre distribución
para UNIX compilaran en Linux sin ningún problema. O si todo falla, puede
escribirse Vd. mismo el programa. Si lo que esta buscando es un programa comercial,
puede que exista un `clon' de libre difusión disponible. O puede sugerir
a la empresa que considere el lanzamiento de una versión de su programa
para Linux. Algunas personas han contactado con empresas de programación
pidiéndoles que lleven sus aplicaciones a Linux, y han obtenido varios
grados de éxito.
1.5
Acerca del Copyright:
Anterior-
Siguiente - Índice
Linux esta regido por lo que se conoce como
la Licencia Publica General de GNU, o GPL, General Public License. La GPL fue
desarrollada para el proyecto GNU por la Free Software Foundation, que podemos
traducir como "Fundación por el Software Gratuito". La licencia hace
una serie de previsiones sobre la distribución y modificación
del "software gratis". "Gratis" en este sentido se refiere a libertad, y no
solo coste. La GPL puede ser interpretada de distintas formas, y esperamos que
este resumen le ayude a entenderla y como afecta a Linux. Se incluye una copia
completa de la Licencia al final del libro, en el apéndice F.
Originalmente, Linus Torvalds lanzo Linux
bajo una licencia mas restrictiva que la GPL, que permitía que el software
fuera libremente distribuido y modificado, pero prohibía su uso para
ganar dinero. Sin embargo, la GPL autoriza que la gente venda su software, aunque
no le permite restringir el derecho que su comprador tiene a copiarlo y venderlo
a su vez.
En primer lugar, hay que aclarar que el
"software gratis" de la GPL no es software de dominio publico. El software de
dominio publico carece de copyright y pertenece literalmente al publico.
El software regido por la GPL si tiene
el copyright de su autor o autores. Esto significa que esta protegido por las
leyes internacionales del copyright y que el autor del software esta declarado
legalmente. No solo porque un programa sea de libre distribución puede
considerársele del dominio publico.
El software regido por la GPL tampoco
es "shareware". Por lo general, el "shareware" es propiedad del autor, y exige
a los usuarios que le paguen cierta cantidad por utilizarlo después de
la distribución. Sin embargo, el software que se rige por la GPL puede
ser distribuido y usado sin pagar a nadie.
La GPL permite a los usuarios modificar
el software y redistribuirlo. Sin embargo, cualquier trabajo derivado de un
programa GPL se regirá también por la GPL. En otras palabras,
una compañía nunca puede tomar Linux, modificarlo y venderlo bajo
una licencia restringida. Si un software se deriva de Linux, este deberá
regirse por la GPL también.
La GPL permite distribuir y usar el software
sin cargo alguno. Sin embargo, también permite que una persona u organización
gane dinero distribuyendo el software. Sin embargo, cuando se venden programas
GPL, el distribuidor no puede poner ninguna restricción a la redistribución.
Esto es, si usted compra un programa GPL, puede a su vez redistribuirlo gratis
o cobrando una cantidad.
Esto puede parecer contradictorio. ¿Por
que vender software cuando la GPL especifica que puede obtenerse gratis? Por
ejemplo, supongamos que una empresa decide reunir una gran cantidad de programas
GPL en un CD-ROM y venderlo. La empresa necesitara cobrar por el hecho de haber
producido el CD, y asimismo querrá ganar dinero. Esto esta permitido
por la GPL.
Las organizaciones que vendan el software
regido por la GPL deben tener en cuenta algunas restricciones. En primer lugar,
no pueden restringir ningún derecho al comprador del programa. Esto significa
que si usted compra un CD-ROM con programas GPL, podrá copiar ese CD
y revenderlo sin ninguna restricción. En segundo lugar, los distribuidores
deben hacer saber que el software se rige por la GPL. En tercer lugar, el vendedor
debe proporcionar, sin coste adicional, el código fuente del software
a distribuir. Esto permite a cualquiera comprar el software y modificarlo a
placer.
Permitir a una empresa distribuir y vender
programas que son gratis es bueno. No todo el mundo tiene acceso a Internet
para llevarse los programas, como Linux, gratis. La GPL permite a las empresas
vender y distribuir programas a esas personas que no pueden acceder al software
con un coste bajo. Por ejemplo, muchas empresas venden Linux en disquetes o
CD-ROM por correo, y hacen negocio de esas ventas. Los desarrolladores de Linux
pueden no tener constancia de estos negocios. Por ejemplo, Linus sabe que ciertas
compañías venden Linux, y el no va a cobrar nada por esas ventas.
En el mundo de los programas gratis, lo
importante no es el dinero. El objetivo es permitir desarrollar y distribuir
software fantástico asequible a cualquiera. En la siguiente sección,
hablaremos de como esto se aplica al desarrollo de Linux.
1.6
Diseño y filosofía de Linux:
Anterior-
Siguiente - Índice
En ocasiones, los nuevos usuarios de Linux se
crean falsas expectativas acerca de este. Linux es un sistema operativo único,
y es importante entender su filosofía y diseño para usarlo eficientemente.
Aunque usted sea un experimentado "guru"
del UNIX, lo que viene a continuación le interesara con total seguridad.
En versiones comerciales de UNIX, el sistema
es desarrollado siguiendo una rigurosa política de mantenimiento de la
calidad, con sistemas de control de revisiones para las fuentes y documentación,
etc. Los desarrolladores no pueden añadir cosas nuevas por su cuenta:
cualquier cambio será en respuesta a un informe de bug detectado, y será
cuidadosamente registrado en el sistema de control de versiones, de manera que
podrá volverse atrás sin problemas. Cada desarrollador tiene asignada
una o mas partes del código, y solo ese desarrollador puede alterar esas
secciones del código.
Internamente, el departamento de calidad
realiza conjuntos de tests para cada versión del sistema operativo, e
informa de los errores. Es responsabilidad de los desarrolladores corregir esos
errores.
Se utiliza un complicado sistema de análisis
estadístico para asegurarse de que cierto porcentaje de los errores son
corregidos antes de la próxima versión.
Como vemos, el proceso seguido por los
desarrolladores de UNIX comercial para mantenerlo y darle soporte es muy complicado,
pero razonable. La compañía debe tener cierta seguridad de que
la próxima revisión del sistema ya esta lista para ser comercializada,
a través de las pruebas que hemos comentado. Esto supone un gran trabajo
que involucra a cientos (si no miles) de programadores, betatesters, redactores
de documentación y personal administrativo. Por supuesto, no todos los
fabricantes de UNIX trabajan así, pero esto da una idea de la panorámica
habitual.
Con Linux, hay que olvidarse del concepto
de desarrollo organizado, sistemas de control de versiones, información
de errores estructurada o análisis estadísticos. Linux es un sistema
operativo hecho por "hackers"10 Linux ha sido desarrollado principalmente por
un grupo de programadores de todo el mundo unidos por Internet. A través
de Internet, cualquiera tiene la oportunidad de unirse al grupo y ayudar al
desarrollo y depuración del núcleo, portar nuevo software, escribir
documentación o ayudar a los nuevos usuarios. La comunidad de Linux se
comunica principalmente mediante diversas listas de correo y grupos de USENET.
Existen algunos acuerdos en el desarrollo, como que cualquiera que desee que
su código sea incluido en la versión "oficial" del núcleo
deberá ponerse en contacto con Linus Torvalds, quien comprobara el código
y lo incluirá en el núcleo. Por lo general, estará encantado
en hacerlo, siempre que no estropee otras cosas.
El sistema se ha diseñado siguiendo
una filosofía abierta y de crecimiento. Por regla general hay una nueva
versión del núcleo cada dos meses (a veces cada menos tiempo)11
Esto depende del número de errores a corregir, la cantidad de información
recibida de los usuarios, y lo que haya dormido Linus esta semana.
Por
lo tanto, es difícil decir que todos los errores hayan sido corregidos
en cierta fecha. Pero conforme el sistema va apareciendo libre de errores críticos
o manifiestos, se considera "estable" y se lanzan nuevas revisiones. Hay que
recordar que no se pretende realizar un sistema perfecto, sin errores. Simplemente,
se pretende desarrollar una implementación gratuita de UNIX. Linux esta
hecho para desarrolladores, mas que para otro tipo de personas.
_____________________________________________
10 Por "hacker" queremos referirnos a programadores fervientemente dedicados, por hobby, a explotar sus ordenadores al máximo, con resultados útiles para otras personas. Este concepto es contrario al habitualmente aceptado, que dice que un "hacker" es un pirata informático.
11 N. del T.: Actualmente nos consta la aparición semanal de al menos una revisión de las versiones experimentales.
Si alguien desarrolla una aplicación
o nueva característica para el núcleo, se añade inicialmente
en una etapa "alfa", es decir, pensada ser probada por usuarios atrevidos que
aceptan los fallos que tenga. Dado que la comunidad de Linux se basa sobre todo
en Internet, el software "alfa" es enviado, normalmente, a servidores FTP dedicados
a Linux (vea el apéndice C) y anunciado mediante un mensaje puesto en
un grupo USENET dedicado a Linux. Los usuarios que se llevan el software lo
prueban e informan sobre errores o sugerencias al autor por correo electrónico.
Una vez que se corrigen los problemas
iniciales, el código pasa a una etapa "beta", en la que se considera
estable pero incompleto (o sea, funciona, pero no incluye todas las funcionalidades
previstas). También se puede pasar a una etapa "final" en la que el software
se considera terminado.
Para el código del núcleo,
una vez que se ha terminado, el desarrollador puede pedir a Linus que lo incluya
en el núcleo estándar, o bien que lo ponga como código
optativo.
Recordar que lo anterior son solo convenciones,
y no leyes. Algunos programas pueden no necesitar fases "alpha". Es el desarrollador
quien tomara las decisiones al respecto.
Estará sorprendido de que un grupo
de programadores y aficionados voluntarios, relativamente desorganizados, hayan
podido hacer algo. Sin embargo, este grupo constituye uno de los mas eficientes
y motivados. Todo el núcleo de Linux ha sido escrito de la nada, sin
emplear ningún código de fuentes propietarias. Todo el software,
librerías, sistemas de ficheros y drivers han sido desarrollados o portados
desde otros sistemas; y se han programado drivers para los dispositivos mas
populares.
Normalmente, Linux es distribuido junto
con otro software en lo que se conoce como distribución, que es un paquete
de software que permite poner a punto un sistema completo. Dado que es difícil
para los usuarios noveles el crear un sistema UNIX partiendo del núcleo
y programas de diversas fuentes, se crearon las distribuciones con el fin de
facilitar esta tarea: con la distribución, usted solo tiene que coger
el CD-ROM o los disquetes e instalar para tener un sistema completo con programas
de aplicación incluidos. Como es de esperar, no hay ninguna distribución
"estándar". Hay muchas, cada una con sus ventajas y desventajas. Hablaremos
mas sobre distribuciones en la sección 2.1.
A pesar de lo anterior, necesitara cierto
conocimiento de UNIX para poder instalar y usar un sistema completo. No hay
distribución que no tenga fallos, por lo que requerirá de su habilidad
al teclado para corregir los pequeños problemas que se presenten. Ejecutar
un sistema UNIX no es fácil, ni siquiera en las versiones comerciales.
Hay que andarse con cuidado en cualquier UNIX, y Linux no es una excepción.
1.6.1 Consejos
para novatos en UNIX:
Anterior-
Siguiente - Índice
Instalar y utilizar su propio sistema Linux
no requiere grandes conocimientos de UNIX. De hecho, muchos novatos de UNIX
instalan con éxito sus sistemas. Es una experiencia de la que se aprende,
pero de la que se pueden generar frustraciones. Si tiene suerte, podrá
instalar y usar Linux sin conocimiento alguno de UNIX. Sin embargo, cuando quiera
introducirse en tareas mas complejas (instalar nuevo software, recompilar el
núcleo, etc.) el conocimiento de UNIX empieza a ser necesario.
Por suerte, ejecutando su propio sistema
Linux podrá aprender las cosas esenciales de UNIX para llevar a cabo
esas tareas. Este libro contiene información que intentara ayudarle (vea
el capitulo 3, que es un tutorial sobre UNIX; y el capitulo 4, que le enseñara
cosas sobre la administración de Linux). Quizás le parezca interesante
leer esos capítulos antes de instalar Linux. En este caso, se ahorrara
algunos problemas.
Nadie puede esperar hacerse experto administrador
de la noche a la mañana. No hay implementación alguna que este
libre de mantenimiento. Por lo tanto, prepárese si es novato, pero no
se desespere ante los problemas. El que escribe esto12 tampoco tenia mucha idea
antes de empezar.
1.6.2 Consejos
para los gurus:
Anterior-
Siguiente - Índice
La
gente con años de experiencia programando y administrando sistemas UNIX
también puede necesitar ayuda al querer instalar Linux. Existen aspectos
con los que los magos del UNIX tendrán que familiarizarse antes de entrar
en materia. Por un lado, Linux no es un sistema UNIX comercial.
No intenta seguir exactamente el mismo estándar de otros sistemas. En
otras palabras, este factor no es el único factor que interesa en el
desarrollo de Linux.
Es mas importante, sin embargo, su funcionalidad. En muchos casos, el nuevo
código introducido en el núcleo aun tendrá errores o estará
incompleto. Se acepta que es mas importante lanzar el código cuanto antes
para que los usuarios lo puedan probar. Por ejemplo, el emulador WINE (emulador
de Microsoft Windows para Linux) tiene una versión alfa "oficial" mientras
la prueban los usuarios.
En este sentido, la comunidad de Linux tiene derecho a trabajar con este código,
probarlo y ayudar a su desarrollo. Los UNIX comerciales, raramente siguen esta
política.
Si ha sido administrador de UNIX durante mas de diez años, y ha usado
diferentes sistemas comerciales, vera que este sistema es muy moderno y dinámico.
Se crea un nuevo núcleo cada dos meses aproximadamente. Se lanza nuevo
software permanentemente. Un día puede creer que su sistema esta a la
ultima, y al día siguiente creer que esta en la Edad de Piedra.
Con toda esta actividad dinámica, ¿como puede mantenerse al día?
La mayor parte de las veces, es mejor actualizarse el software de manera incremental;
o sea, actualizar aquellas partes del sistema que necesita actualizar. Por ejemplo,
si nunca va a usar Emacs, no hay motivo para que se actualice continuamente
ese programa. Incluso siendo usuario de Emacs, no hay necesidad de actualizarlo
cada vez, a menos que haya alguna característica nueva que le interese.
No hay razón para estar siempre cambiándose las versiones del
software.
Esperamos que Linux satisfaga sus expectativas de un sistema UNIX. El corazón
de Linux alberga el espíritu del software gratuito y el desarrollo constante.
La comunidad de Linux favorece su expansión, y es difícil creer
en su fiabilidad, especialmente cuando se procede del UNIX comercial.
Tampoco puede esperarse que Linux sea perfecto, ya que no lo es ningún
otro software. Sin embargo, creemos que Linux es tan útil y completo
como cualquier otra implementación de UNIX.
_____________________________________________
12 N. del T.: al igual que el que lo traduce
1.7
Diferencias Entre Linux y Otros Sistemas Operativos:
Anterior-
Siguiente - Índice
Es importante entender las diferencias entre
Linux y otros sistemas operativos, tales como MS-DOS, OS/2, y otras implementaciones
de UNIX para ordenador personal. Antes de nada, conviene aclarar que Linux puede
convivir felizmente con otros sistemas operativos en la misma maquina: es decir,
Ud. puede correr MS-DOS y OS/2 en compañía de Linux sobre el mismo
sistema sin problemas.
Hay incluso formas de interactuar entre
los diversos sistemas operativos como veremos.
1.7.1 ¿Por que
usar Linux?:
Anterior-
Siguiente - Índice
¿Por que usar Linux en lugar de un sistema operativo
comercial conocido, bien probado, y bien documentado? Podríamos darle
miles de razones. Una de las mas importantes es, sin embargo, que Linux es una
excelente elección para trabajar con UNIX a nivel personal. Si Ud. es
un desarrollador de software UNIX, ¿por que usar MS-DOS en casa? Linux le permitirá
desarrollar y probar el software UNIX en su PC, incluyendo aplicaciones de bases
de datos y X Window. Si es Ud. estudiante, la oportunidad esta en que los sistemas
de su universidad correrán UNIX. Con Linux, podrá correr su propio
sistema UNIX y adaptarlo a sus necesidades. La instalación y uso de Linux
es también una excelente manera de aprender UNIX si no tiene acceso a
otras maquinas UNIX.
Pero no perdamos la vista. Linux no es
solo para los usuarios personales de UNIX. Es robusto y suficientemente completo
para manejar grandes tareas, así como necesidades de computo distribuidas.
Muchos negocios especialmente los pequeños se están cambiando
a Linux en lugar de otros entornos de estación de trabajo basados en
UNIX. Las universidades encuentran a Linux perfecto para dar cursos de diseño
de sistemas operativos. Grandes vendedores de software comercial se están
dando cuenta de las oportunidades que puede brindar un sistema operativo gratuito.
Las siguientes secciones deberían
destacar las diferencias mas importantes entre Linux y otros sistemas operativos.
Esperamos que encuentre que Linux puede cubrir sus necesidades, o (al menos)
mejorar su entorno actual de trabajo. Tenga en mente que la mejor manera de
saborear Linux es simplemente probándolo, ni siquiera necesita instalar
un sistema completo para tener una muestra de él. En el Capitulo 2, le
mostramos como.
1.7.2 Linux vs.
MS-DOS:
Anterior-
Siguiente - Índice
No es raro tener ambos, Linux y MS-DOS, en el
mismo sistema. Muchos usuarios de Linux confían en MS-DOS para aplicaciones
tales como procesadores de texto. Aunque Linux proporciona sus propios análogos
para estas aplicaciones (por ejemplo, TEX), existen varias razones por las que
un usuario concreto desearía correr tanto MS-DOS como Linux. Si toda
su tesis esta escrita en WordPerfect13 para MS-DOS, puede no ser capaz de convertirla
fácilmente a TEX o algún otro formato. Hay muchas aplicaciones
comerciales para MS-DOS que no están disponibles para Linux, y no hay
ninguna razón por la que no pueda usar ambos.
Como
puede saber, MS-DOS no utiliza completamente la funcionalidad de los procesadores
80386 y 80486. Por otro lado, Linux corre completamente en el modo protegido
del procesador y explota todas las características del este. Puede acceder
directamente a toda su memoria disponible (e incluso mas allá de la disponible,
usando RAM virtual). Linux proporciona un interface UNIX completo no disponible
bajo MS-DOS, el desarrollo y adaptación de aplicaciones UNIX bajo Linux
es cosa fácil, mientras que, bajo MS-DOS, Ud. esta limitado a un pequeño
subgrupo de la funcionalidad de programación UNIX. Al ser Linux un verdadero
sistema UNIX, Ud. no tendrá estas limitaciones.
_____________________________________________
13 N. del T.: El ejemplo del autor se ha quedado obsoleto: Ya existe un WordPerfect 6.1 nativo para Linux
Podríamos debatir los pros y contras
de MS-DOS y Linux durante paginas y paginas. Sin embargo, baste decir que Linux
y MS-DOS son entidades completamente diferentes. MS-DOS no es caro (comparado
con otros sistemas operativos comerciales), y tiene un fuerte asentamiento en
el mundo de los PC's. Ningún otro sistema operativo para PC ha conseguido
el nivel de popularidad de MS-DOS básicamente porque el coste de esos
otros sistemas operativos es inaccesible para la mayoría de los usuarios
de PC's. Muy pocos usuarios de PC pueden imaginar gastarse 100000 ptas. o mas
solamente en el sistema operativo. Linux, sin embargo, es gratis, y por fin
tiene la oportunidad de decidirse.
Le permitiremos emitir sus propios juicios
de Linux y MS-DOS basados en sus expectativas y necesidades. Linux no esta destinado
a todo el mundo. Si siempre ha querido tener un sistema UNIX completo en casa,
si es alto el coste de otras implementaciones UNIX para PC, Linux puede ser
lo que estaba buscando.
Se dispone de herramientas que permiten
interactuar entre Linux y MS-DOS. Por ejemplo, es fácil acceder a los
ficheros MS-DOS desde Linux. También hay disponible un emulador de MS-DOS,
que permite ejecutar muchas aplicaciones populares de MS-DOS. Actualmente se
esta desarrollando un emulador de Microsoft Windows.
1.7.3 Linux vs.
Otros Sistemas Operativos:
Anterior-
Siguiente - Índice
Están surgiendo un gran numero de sistemas
operativos avanzados en el mundo del PC. Concretamente, OS/2 de IBM y Windows
NT de Microsoft comienzan a tener popularidad a medida que los usuarios de MS-DOS
migran a ellos.
Ambos, OS/2 y Windows NT son sistemas
operativos completamente multitarea, muy parecidos a Linux. Técnicamente,
OS/2, Windows NT y Linux son bastante similares: Soportan aproximadamente las
mismas características en términos de interfaz de usuario, redes,
seguridad, y demás. Sin embargo, la diferencia real entre Linux y los
otros es el hecho de que Linux es una versión de UNIX, y por ello se
beneficia de las contribuciones de la comunidad UNIX en pleno.
¿Que hace a UNIX tan importante? No solo
es el sistema operativo mas popular para maquinas multiusuario, también
es la base de la mayoría del mundo del software de libre distribución.
Si tiene acceso a Internet, casi todo el software de libre distribución
disponible esta específicamente escrito para sistemas UNIX. (Internet
en si esta profundamente basada en UNIX.)
Hay muchas implementaciones de UNIX, de
muchos vendedores, y ni una sola organización es responsable de su distribución.
Hay un gran pulso en la comunidad UNIX por la estandarización en forma
de sistemas abiertos, pero ninguna corporación controla este diseño.
Por eso, ningún vendedor (o, como parece, ningún hacker) puede
adoptar estos estándares en una implementación de UNIX.
Por otro lado, OS/2 y Windows NT son sistemas
propietarios. El interface y diseño están controlados por una
sola corporación, y solo esa corporación puede implementar ese
diseño. (No espere encontrar una versión gratis de OS/2 en un
futuro cercano.) De alguna forma, este tipo de organización es beneficiosa:
establece un estándar estricto para la programación y el interfaz
de usuario distinto al encontrado incluso en la comunidad de sistemas abiertos.
OS/2 es OS/2 vaya donde vaya lo mismo ocurre con Windows NT.
Sin embargo, el interface UNIX esta constantemente
desarrollándose y cambiando. Varias organizaciones están intentando
estandarizar el modelo de programación, pero la tarea es muy difícil.
Linux, en particular, es en su mayoría
compatible con el estándar POSIX.1 para el interface de programación
UNIX. A medida que pase el tiempo, se espera que el sistema se adhiera a otros
estándares, pero la estandarización no es la etapa primaria en
la comunidad de desarrollo de Linux.
1.7.4 Otras implementaciones
de UNIX:
Anterior-
Siguiente - Índice
Hay otras implementaciones de UNIX para el 80386
y 80486. La arquitectura 80386 se presta al diseño de UNIX y buen un
numero de vendedores han sacado ventaja de este factor.
Hablando de características, otras
implementaciones de UNIX para PC son bastante similares a Linux. Podrá
ver que casi todas las versiones comerciales de UNIX soportan básicamente
el mismo software, entorno de programación, y características
de red. Sin embargo, hay algunas fuertes diferencias entre Linux y las versiones
comerciales de UNIX.
En primer lugar, Linux soporta un rango
de hardware diferente de las implementaciones comerciales. En general, Linux
soporta la mayoría de dispositivos hardware conocidos, pero el soporte
esta aun limitado a ese hardware al que los desarrolladores tengan acceso actualmente.
Sin embargo, los vendedores de UNIX comercial por lo general tienen una base
de soporte mas amplia, y tienden a soportar mas hardware, aunque Linux no esta
tan lejos de ellos. Cubriremos los requerimientos hardware de Linux en la Sección
1.8.
En segundo, las implementaciones comerciales
de UNIX suelen venir acompañadas de un conjunto completo de documentación,
así como soporte de usuario por parte del vendedor. Por contra, la mayoría
de documentación para Linux se limita a documentos disponibles en Internet
y libros como este. En la Sección 1.9 se listan fuentes de documentación
de Linux y otra información.
En lo que concierne a estabilidad y robustez,
muchos usuarios han comentado que Linux es al menos tan estable como los sistemas
UNIX comerciales. Linux esta aun en desarrollo, y algunas características
(como redes TCP/IP) son menos estables, pero mejora a medida que pasa el tiempo.
El factor mas importante a considerar
por muchos usuarios es el precio. El software de Linux es gratis, si tiene acceso
a Internet (o a otra red de ordenadores) y puede traérselo. Si no tiene
acceso a tales redes, tiene la opción de comprarlo pidiéndolo
por correo en disquetes, cinta o CD-ROM (vea el Apéndice B). Por supuesto,
Ud. puede copiarse Linux de un amigo que puede tener ya el software, o compartir
el coste de comprarlo con alguien mas. Si planea instalar Linux en un gran numero
de maquinas, solo necesita comprar una copia del software. Linux no se distribuye
con licencia para "una sola maquina".
El valor de las implementaciones comerciales
de UNIX no debería ser rebajado: conjuntamente con el precio del software
en si, uno paga generalmente por la documentación, el soporte, y una
etiqueta de calidad. Estos factores son muy importantes para grandes instituciones,
pero los usuarios de ordenadores personales pueden no necesitar esos beneficios.
En cualquier caso, muchos negocios y universidades encuentran que correr Linux
en un laboratorio con ordenadores baratos es preferible a correr una versión
comercial de UNIX en un laboratorio de estaciones de trabajo. Linux es capaz
de proporcionar la funcionalidad de una estación de trabajo sobre hardware
de PC a una fracción de su coste.
Como un ejemplo del "mundo real" sobre
el uso de Linux dentro de la comunidad informática, los sistemas Linux
han viajado hasta los grandes mares del Pacifico Norte, encargándose
de las telecomunicaciones y análisis de datos para en un buque de investigación
oceanográfica. Los sistemas Linux se están usando en estaciones
de investigación en la Antártida. Como ejemplo mas mundano, quizá,
varios hospitales están usando Linux para mantener registros de pacientes.
Esta probando ser tan fiable y útil como otras implementaciones de UNIX.
Hay otras implementaciones gratuitas o
baratas de UNIX para el 386 y 486. Una de las mas conocidas es 386BSD, una implementación
y adaptación del UNIX BSD para el 386. 386BSD es comparable a Linux en
muchos aspectos, pero cual de ellos es "mejor" depende de las necesidades y
expectativas personales. La única distinción fuerte que se puede
hacer es que Linux se desarrolla abiertamente (donde cualquier voluntario puede
colaborar en el proceso de desarrollo), mientras 386BSD se desarrolla dentro
de un equipo cerrado de programadores que mantienen el sistema.
Debido a esto, existen diferencias filosóficas
y de diseño serias entre los dos proyectos. Los objetivos de los dos
proyectos son completamente distintos: el objetivo de Linux es desarrollar un
sistema UNIX completo desde el desconocimiento (y divertirse mucho en el proceso),
y el objetivo de 386BSD es en parte modificar el código de BSD existente
para usarlo en el 386.
NetBSD es otra adaptación de la
distribución NET/2 de BSD a un numero de maquinas, incluyendo el 386.
NetBSD tiene una estructura de desarrollo ligeramente mas abierta, y es comparable
al 386BSD en muchos aspectos.
Otro proyecto conocido es HURD, un esfuerzo
de la Free Software Foundation (Fundación de Software gratuito) para
desarrollar y distribuir una versión gratis de UNIX para muchas plataformas.
Contacte con la Free Software Foundation (la dirección se da en el Apéndice
F) para obtener mas información sobre este proyecto. Al tiempo de escribir
este documento, HURD aun esta en los primeros pasos de su desarrollo.
También existen otras versiones
baratas de UNIX, tales como Coherent (disponible por cerca de $99) y Minix (un
clónico de UNIX académico, pero útil, en el que se basaron
los primeros pasos del desarrollo de Linux). Algunas de estas implementaciones
son de interés en mayor parte académico, mientras otras son sistemas
ya maduros para productividad real. No hace falta decir, sin embargo, que muchos
usuarios de UNIX de PC se están pasando a Linux.