¿Qué es Linux?


Una introducción a sus principales características


por: Fernando A. Cuenca

Introducción

Disponibilidad de Linux

Hardware soportado

Software disponible

Conectividad y Convivencia

Bibliografía recomendada

Recursos en Internet

Linux es uno de los tantos flavors de Unix. Se trata de un sistema operativo de 32 bits de libre distribución, desarrollado originalmente por Linus Torvalds, un estudiante de la universidad finlandesa de Helsinki, quien, en 1991, se abocó a la tarea de reemplazar a Minix, un clon de Unix de pequeñas proporciones y finalidad académica desarrollado años antes por Andrew Tannenbaun.

A medida que avanzaba en su desarrollo, Linus fue dejando el código fuente de las sucesivas versiones del kernel y utilidades de Linux a disponibilidad de los usuarios de Internet. Este fue sin duda un gran acierto, ya que hizo posible que una multitud de desarrolladores de todo el mundo se familiarizaran con el código, lo cual en primera instancia significó un gran aporte de sugerencias, evolucionado luego hacia un espectacular ejemplo de desarrollo distribuido de software: centenares de desarrolladores independientes, desde diferentes puntos del planeta tomaron a su cargo la producción de software para Linux, ya sea escribiéndolo desde cero o portándolo desde otras plataformas Unix. Esta modalidad de desarrollo continua aún hoy y ha permitido a Linux alcanzar un alto nivel de desarrollo y madurez, así también como un amplio grado de aceptación.

Actualmente, Linux posee todas las características que pueden encontrarse en cualquier sistema Unix moderno, incluyendo direccionamiento lineal de 32 bits, memoria virtual, multitarea real, shared libraries, módulos de kernel cargables on-demand, soporte TCP/IP (incluyendo SLIP, PPP, NFS, etc.), y sistema X-Windows (incluyendo servidores X para los adaptadores de video más populares, y clones de Motif, OpenLook, NextStep y Windows95 como window managers).

Disponibilidad de Linux

Linux es distribuido bajo la Licencia General Pública de GNU, lo cual significa que puede ser distribuido, copiado y modificado gratuitamente, a condición de no imponer ninguna restricción en sucesivas distribuciones. En pocas palabras: Linux es un sistema operativo gratuito.

Obtención del software

Si se dispone de una conexión eficiente y segura a la Internet (y de una buena cuota de paciencia), un paquete Linux completo (kernel + utilidades + aplicaciones) puede obtenerse gratuitamente de muchos servidores FTP públicos; el único costo será en este caso el costo de la conexión a la Internet.

Otra opción es comprar alguno de los libros sobre Linux que han sido editados en los últimos tiempos, los cuales suelen venir acompañados de uno o dos CDs conteniendo el software; el costo de libros de ese tipo oscila entre los $50 y $120, aproximadamente.

Sin embargo, la mejor opción es adquirir alguna de las muchas ediciones en CD-ROM disponibles en el mercado; la mayoría de ellas incluye varios CDs conteniendo no solo el paquete Linux, sino también extractos de servidores FTP dedicados a Linux, con lo que se obtiene el beneficio adicional de varios megabytes de software. El costo en este caso varía según la edición de que se trate; cabe destacar, a manera de ejemplo, la edición InfoMagic, conformada por 6 CDs, con un costo aproximado de $40.

Hardware soportado

Procesador

Linux fue inicialmente concebido como sistema operativo para computadoras personales con procesador Intel 80386 o superior, con al menos 8 Mbytes de RAM. Versiones mas recientes (aún en estado experimental), han incorporado soporte para multiprocesamiento simétrico con hasta 16 procesadores siguiendo la especificación Intel MP.

Existe una versión de Linux para el procesador de 64-bits Alpha/AXP de DEC, y esta siendo portado a procesadores PowerPC, Sparc, MIPS, y Motorola de la serie 68000.

Dispositivos

Linux puede ejecutarse en cualquier PC con arquitectura ISA, EISA, VESA Local Bus o PCI, e incluso en notebooks con tecnología PCMCIA, soportando gran parte del hardware usualmente usado en dichos sistemas: discos y CD-ROMS IDE; controladoras y dispositivos SCSI (Adaptec, NCR, BusLogic, etc.); tarjetas de video SuperVGA (Trident, Cirrus, ATI, etc.); tarjetas de sonido (SoundBlaster, AdLib, Logitech, etc.); controladoras Ethernet (NE2000, Intel, etc.); modems y mouses seriales; impresoras chorro de tinta y laser (Epson, HP, etc.); scanners (HP, Genius, Epson, etc.); etc.

Software disponible

Linux cuenta con el habitual conjunto de la interpretes de comando y utilidades que son standard en ambientes Unix. En su mayoría son provenientes de GNU y, al igual que Linux en sí mismo y todo el software que a continuación se menciona, son de distribución libre y gratuita.

Software para Servicios Internet

En particular, en lo referido a software para Servicios Internet, cabe mencionar que en Linux está disponible exactamente el mismo software que utilizan (o de los cuales tomaron elementos) muchas de las versiones comerciales de Unix. Han sido portados a Linux sendmail (servidor de e-mail SMTP, en sus versiones IDA y v8); Taylor UUCP (transferencia de mail y news bajo protocolo UUCP); CERN NCSA y Apache (servidores de WWW); INN y Cnews (servidores de news); BIND (servidor DNS de Berkeley); etc.

También están disponibles versiones Linux de servidores PPP, SLIP, bootp, Telnet, FTP, Gopher, POP e IMAP, IRC

En lo referente a seguridad, puede mencionarse que el kernel de Linux tiene el soporte necesario para construir firewalls basados en filtrado de paquetes; también existe una versión para Linux de SOCKS, software de firewalling muy popular en los ambientes Unix.

Herramientas de desarrollo

Múltiples lenguajes de programación están disponibles bajo Linux. Sin duda el principal de ellos es GNU C/C++, pero también es posible desarrollar en Java, Objective-C, Pascal, LISP, BASIC, Perl, Ada, Eiffel, FORTRAN, Forth, Prolog, Oberon, Simula, Modula-2 y Modula-3, Smalltalk, y algunos otros.

Igualmente, existen varios motores de bases de datos que pueden utilizarse bajo Linux; algunos de ellos son motores relacionales (tales como mBase, Thypoon, MiniSQL, Ingres y Postgres), y otros orientados a objetos (tal como LINCKS). La mayoría de ellos son de carácter experimental o académico, por lo que no igualan las prestaciones de los motores de base de datos comerciales, en especial las relacionadas con performace; sin embargo, el hecho de que su costo sea nulo hace que sea una opción a tener en cuenta al desarrollar un servidor de Intranet de pequeñas proporciones. Cabe mencionar nuestra muy favorable experiencia con un servidor Postgres utilizado actualmente en la UTN FC, el cual tiene, además, soporte para ser utilizado desde programas Java (vía la especificación JDBC) o desde aplicaciones Windows (vía un driver ODBC).

Capacidad de Conectividad y Convivencia

Conectividad

Linux ofrece una variada gama de posibilidades a la hora de interconectarse con otros servidores.

Como es usual en plataformas Unix, Linux cuenta con soporte nativo de TCP/IP, incluyendo la capacidad para actuar como cliente o servidor NFS (Network File System).

El kernel incluye soporte para IPX, lo que le permite funcionar como ruteador en redes Novell; incluso es posible configurar un sistema Linux para aparentar ser un servidor Novell 3.11 y permitir a clientes DOS mapear directorios y utilizar impresoras utilizando el shell y comandos standard de Novell (NETx y CAPTURE). También es posible montar en el file system de una máquina Linux volúmenes de un servidor Novell y acceder a sus colas de impresión.

Por medio de la utilización del paquete Samba, Linux puede interactuar con servidores Windows NT y estaciones Windows For Workgroups y Windows95. Esto incluye la capacidad para acceder desde Linux a recursos compartidos desde maquinas Windows (directorios e impresoras), como también la posibilidad de exportar directorios e impresoras desde Linux y accederlas desde Windows.

Convivencia

Linux es capaz de convivir en el mismo disco duro con otros sistemas operativos tales como DOS, Windows u OS/2, permitiendo la selección en el arranque del sistema operativo a bootear. Además de soportar su sistema de archivos nativo (ext2fs), Linux tiene soporte para acceder en modo de lectura/escritura a sistemas de archivo FAT (DOS) y VFAT (Windows95) y en modo de solo lectura a sistemas de archivo NTFS (Windows NT).

Documentación y Soporte

Existe una gran cantidad de bibliografía acerca de Linux, abarcando temas como la instalación y configuración del sistema operativo, administración de redes, uso del sistema y sus aplicaciones, instalación de sitios Internet y BBSs, etc. Todas las distribuciones importantes de Linux incluyen un juego completo de la documentación en línea (man pages) e instructivos muy completos y detallados (llamados HOW-TOs) acerca de temas puntuales tales como configuración de TCP/IP, servidores DNS, acceso PPP, impresión, firewalls, configuración de X-Windows, etc.

Debe tenerse en cuenta, además, que Linux es, fundamentalmente, un sistema Unix en el que se utiliza software Unix standard, por lo que resulta aplicable a su caso prácticamente toda la bibliografía y know-how existente sobre Unix. Son especialmente recomendables los volúmenes de la colección "A Nutshell Handbook" de O’Reilly & Associates, Inc. (ver referencias bibliográficas, mas abajo).

La falta de soporte formal es uno de los temores usuales acerca de Linux. Esto es una verdad a medias. En primer lugar, debido a que (por la razón dada en el párrafo anterior) cualquier consultor en Unix puede convertirse en consultor Linux (y viceversa); y en segundo lugar, porque como se mencionó al comienzo de éste informe, Linux es un producto de la Internet. Es mas: Linux no habría sido posible sin ella. Es resultado del esfuerzo combinado de mucha gente alrededor del mundo en donde el principal componente ha sido el soporte mutuo. Existen numerosos newsgroups y mailing-lists en donde todo administrador de un sistema Linux puede recurrir para buscar la solución o pedir ayuda, con la certeza de que, aún en el peor de los casos, será orientado en la dirección correcta.

Información de referencia

Libros

  • "Essential Systems Administration", "TCP/IP Network Administration", "DNS and BIND", "Sendmail", "Managing UUCP and Usenet", O’Reilly & Associates Inc.
  • "Using Linux" QUE

Sitios en Internet