| Artículos | 01 SEP 1997

¿Qué es Linux 2.0 y para quién puede servir?

Tags: Histórico
Javier Cáceres.

Linux 2.0 es una alternativa cada vez más importante frente a los sistemas operativos tradicionales. Aprenda en este artículo sus características y en qué puede ayudarle.

Los actuales sistemas operativos nos han introducido conceptos como multitarea, multiusuario, multiplataforma, multiprocesador, orientado a redes, modo protegido, etc., que por muy novedosos que puedan parecernos son viejos conocidos de Unix, un sistema operativo con 30 años de desarrollo en el ámbito de la informática profesional, diseñado para el control de grandes plataformas informáticas. Linux, como versión de Unix que es, aprovecha al máximo las posibilidades que nos ofrecen los ordenadores personales de hoy día, pues fue diseñado inicialmente para aprovechar todas las posibilidades que entonces brindaba el procesador 386, por tanto, es enteramente un sistema de 32 bits (64 en plataforma Alpha).

Nació como proyecto personal de Linus Torvald, un estudiante de informática de la universidad de Helsinki, el cual, después de sacar la versión 0.11 hizo público el código hoy regido por la licencia pública de GNU (GPL). Esta licencia, entre otras cosas, asegura que este sistema operativo es gratis y que no incluye (ni Linux ni todo lo desarrollado a partir de Linux) una sola línea del código Unix original. En resumidas cuentas, Linux es un sistema operativo multiusuario, multitarea, multi-hilo (multithread), multiprocesador (soporta SMP en plataformas Intel, SPARC y pronto en Alpha), con un núcleo (kernel) capaz de ejecutar binarios tipo a.out y ELF (e incluso algunos binarios System V Release 3 y 4 mediante iBCS2), y una API totalmente compatible POSIX.1 con extensiones BSD y USL.

En cuanto a su potencia como sistema de red, además de TCP, IPv4 e IPv6, dispone adicionalmente una serie de protocolos de red como AX25, X.25, IPX/SPX (protocolo de las redes NetWare), SMB (o NetBEUI, protocolo de redes Lan Manager y WFWG), DDP (Appletalk), SLIP/PPP (protocolos de puertos serie). Además, es capaz de trabajar como cliente o como servidor de redes NetWare, Appletalk, NetBEUI y NFS (Network File System) de una forma totalmente transparente que permite la integración sencilla de un servidor Linux en la gran mayoría de las redes existentes.

Principales características de Linux

El núcleo (kernel) es el auténtico corazón de un sistema Unix, pues controla todos y cada uno de los recursos de la máquina. El núcleo de Linux, como la mayoría sus aplicaciones, está disponible en código fuente, lo que permite a cualquier programador analizar su funcionamiento e introducir sus propias modificaciones cuando sea preciso. Dispone soporte para una gran cantidad de dispositivos hardware (controladoras SCSI, discos duros MFM /IDE/EIDE/SCSI, tarjetas de red y sonido, chipsets diversos), la práctica totalidad de los protocolos de red (comentados anteriormente) y serie (PPP, SLIP, PLIP). Reconoce entre otros, los sistemas de archivos FAT16, FAT32, VFAT (Windows 95), NTFS (Windows NT), HPFS (OS/2), Xenix, Coherent, System V, HFS (Macintosh), xfs, ext, ext2 (Linux), UMSDOS (Linux en partición MS-DOS), ISO 9660 (CD-ROM); permitiendo montar estos sistemas como si formaran parte directamente de la estructura de archivos de nuestro sistema. Es realmente complicado encontrar algún dispositivo no soportado; cabe mencionar que el código fuente de las últimas versiones del núcleo supera los 20 MB de tamaño.

Sin duda, uno de los aspectos negativos de Unix es que si quisiéramos incluir un nuevo dispositivo, habríamos de recompilar el núcleo entero añadiendo el controlador de tal dispositivo. Esta tediosa tarea resulta sencilla en Linux, pues dispone de menús en modo texto o gráfico que dividen en grupos los distintos servicios que proporciona el núcleo, facilitando enormemente al administrador lo que antes resultaba una pequeña pesadilla de configuración. Por otro lado, también está permitida la carga mediante módulos, es decir, podemos compilar exclusivamente el controlador en cuestión y el propio núcleo se encargará de cargarlo cuando sea preciso. Esto conlleva tres importantes ventajas: la reducción de tamaño (un núcleo medio viene a ocupar comprimido entre 400 y 500 KB), la no necesidad de recompilar todo el núcleo cada vez que deseamos añadir un nuevo dispositivo y, por último, que no estamos malgastando memoria cuando no precisamos de un cierto servicio. Lamentablemente, no todos los servicios o dispositivos que proporciona el núcleo se pueden cargar de forma modular, pero si un buen número de los controladores, sistemas de archivos y protocolos.

De entre las características más notables de Linux podríamos destacar la ya mencionada multitarea, el soporte de binarios multi-hilo y la posible ejecución en multiproceso simétrico (SMP) -en este momento sólo disponible en plataformas Intel y SPARC (ya en desarrollo para otras plataformas)-. También, resaltar la ejecución de binarios iBCS2 estableciendo una alta compatibilidad con binarios Unix System V, como los de SCO ó Interactive a través de un módulo de emulación. Aparte de todo esto, se ejecuta en el modo protegido del x86, disponiendo de hasta 3GB de memoria por proceso (en x86). Todos los procesos gozan de protección de memoria entre ellos, que impide que un proceso cuelgue la máquina, y en caso de una improbable caída del sistema, nos almacena en un archivo el estado de la memoria para un posterior análisis. Tanto los programas como la caché de disco emplean la misma memoria unificada; en un principio, la caché tomará toda la memoria disponible y la irá cediendo a los programas cuando la vayan requiriendo, si bien solo se carga a memoria la parte de la aplicación imprescindible para su ejecución. Por último, es posible aumentar o disminuir el tamaño de la memoria virtual o swap en tiempo real; inmediatamente después de la asignación el sistema se ajusta a la nueva cantidad, que puede llegar hasta un límite teórico de 2 GB.

La seguridad es otro los aspectos que han mejorado. Las últimas versiones incorporan, aparte de la verificación de claves estándar de Unix, claves MD5, shadow passwords, claves largas, cifrado y el módulo PAM (Pluggable Authentication Module), que ofrece al sistema métodos adicionales de autentificación.

Linux y sus distribuciones

En todo Unix, solo una pequeña parte del sistema operativo está desarrollada en código máquina y el resto se recompila a partir de un código fuente para cada una de las plataformas, sin o con pequeñas modificaciones. Desde que viera la luz en 1991, Linux ha avanzado de una forma radicalmente distinta al de un sistema operativo convencional, el código es público bajo licencia GNU. Su modelo de desarrollo abierto y distribuido consiste en que cientos de grupos de desarrollo formados por un número de personas dispersas por todo el mundo, trabajan en proyectos comunes de forma totalmente altruista (aunque debido al éxito de Linux, casas de software comercial comienzan a desarrollar aplicaciones para él). Éste modelo favorece el que las áreas de noticias (news) en Internet que tratan Linux, sean de las más activas de la red.

Todo ello conlleva una evolución más rápida del trabajo que en el modelo convencional de un sistema de desarrollo cerrado y centralizado, aunque teóricamente esto desemboque en un producto final de menor calidad. No obstante, la versión de Linux (se suele asociar a la versión del núcleo) que se lanza en un momento dado es única y suele ser bastante estable; el resto son versiones de evaluación en espera de ser totalmente depuradas. Al ser estas versiones beta ampliamente distribuidas, la detección y eliminación de errores es muy rápida.

La versión del núcleo la conforman tres números separados por puntos. El primero es el major version number o número principal, seguido del minor version number o secundario, que si es impar indica que se trata de una versión beta y si es par co

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información