Linux es un sistema operativo, compatible Unix. Dos características muy
peculiares lo diferencian del resto de los sistemas que podemos
encontrar en el mercado, la primera, es que es libre, esto significa que
no tenemos que pagar ningún tipo de licencia a ninguna casa
desarrolladora de software por el uso del mismo, la segunda, es que el
sistema viene acompañado del código fuente. El sistema lo forman el
núcleo del sistema (kernel) mas un gran numero de programas / librerías
que hacen posible su utilización. Linux se distribuye bajo la GNU Public
License: Ingles , por lo tanto, el código fuente tiene que estar
siempre accesible.
El sistema ha sido diseñado y programado por multitud de programadores
alrededor del mundo. El núcleo del sistema sigue en continuo desarrollo
bajo la coordinación de Linus Torvalds, la persona de la que partió la
idea de este proyecto, a principios de la década de los noventa. Día a
día, más y más programas / aplicaciones están disponibles para este
sistema, y la calidad de los mismos aumenta de versión a versión. La
gran mayoría de los mismos vienen acompañados del código fuente y se
distribuyen gratuitamente bajo los términos de licencia de la GNU Public
License.
Las plataformas en las que en un principio se puede utilizar Linux son
386-, 486-. Pentium, Pentium Pro, Pentium II, Amiga y Atari, también
existen versiones para su utilización en otras plataformas, como Alpha,
ARM, MIPS, PowerPC y SPARC.
Reseña
Historia del Linux: Linux fue creado originalmente por Linus Torvald en
la Universidad de Helsinki en Finlandia, siendo él estudiante de
informática. Pero ha continuado su desarrollado con la ayuda de muchos
otros programadores a través de Internet.
Linux originalmente inicio el desarrollo del núcleo como su proyecto
favorito, inspirado por su interés en Minix, un pequeño sistema Unix
desarrollado por Andy Tannenbaum. Él se propuso a crear lo que en sus
propias palabras seria un "mejor Minix que el Minix".
El 5 de octubre de 1991, Linux anuncio su primera versión "oficial" de
Linux, versión 0.02. Desde entonces , muchos programadores han
respondido a su llamada, y han ayudado a construir Linux como el sistema
operativo completamente funcional que es hoy.
¿QUÉ ES LINUX?
Linux es un sistema operativo diseñado por cientos de programadores de
todo el planeta, aunque el principal responsable del proyecto es Linus
Tovalds. Su objetivo inicial es propulsar el software de libre
distribución junto con su código fuente para que pueda ser modificado
por cualquier persona, dando rienda suelta a la creatividad. El hecho de
que el sistema operativo incluya su propio código fuente expande
enormemente las posibilidades de este sistema. Este método también es
aplicado en numerosas ocasiones a los programas que corren en el
sistema, lo que hace que podamos encontrar muchisimos programas útiles
totalmente gratuitos y con su código fuente. Y la cuestión es que,
señores y señoras, Linux es un sistema operativo totalmente gratuito.
Mi máquina corre Linux, y puedo asegurar que es uno de los sistemas que
más aprovecha mi computadora, es decir, con el consigo ejecutar tareas
mucho más rápido que con otros sistemas operativos comerciales. Y es que
Linux no requiere grandes prestaciones para funcionar.
Las funciones principales de este magnífico sistema operativo son:
- Sistema multitarea. En Linux es posible ejecutar varios programas a la vez sin necesidad de tener que parar la ejecución de cada aplicación.
- Sistema multiusuario. Varios usuarios pueden acceder a las aplicaciones y recursos del sistema Linux al mismo tiempo. Y, por supuesto, cada uno de ellos puede ejecutar varios programas a la vez (multitarea).
- Shells programables. Un shell conecta las ordenes de un usuario con el Kernel de Linux (el núcleo del sistema), y al ser programables se puede modificar para adaptarlo a tus necesidades. Por ejemplo, es muy útil para realizar procesos en segundo plano.
- Independencia de dispositivos. Linux admite cualquier tipo de dispositivo (módems, impresoras) gracias a que cada una vez instalado uno nuevo, se añade al Kernel el enlace o controlador necesario con el dispositivo, haciendo que el Kernel y el enlace se fusionen. Linux posee una gran adaptabilidad y no se encuentra limitado como otros sistemas operativos.
- Comunicaciones. Linux es el sistema más flexible para poder conectarse a cualquier ordenador del mundo. Internet se creó y desarrollo dentro del mundo de Unix, y por lo tanto Linux tiene las mayores capacidades para navegar, ya que Unix y Linux son sistemas prácticamente idénticos. Con linux podrá montar un servidor en su propia casa sin tener que pagar las enormes cantidades de dinero que piden otros sistemas.
Linux no sacrifica en ningún momento la creatividad, tal y como lo hacen
algunas compañías informáticas. Linux es una ventana abierta por la que
es posible huir hacia un mundo donde la verdadera informática puede ser
disfrutada sin limites ni monopolios.
Linux es distribuido mediante una serie de distribuciones como RedHat,
Slackware, Debían ... las cuales se diferencian por su método de
instalación y por los paquetes (software) que viene incluido. Es posible
que encuentre a la venta versiones de Linux y piense: "si, si....
decían que era gratis..." No se asuste, todo el software de Linux esta
regido por la licencia de GNU, con la cual cualquier persona puede
modificar un programa y venderlo según el desee, con la condición que la
persona que compra ese producto puede realizar la misma acción o
simplemente hacer copias para todos aquellos que lo quieran sin tener
que pagar más (por lo tanto no se extrañe si encuentra distribución
comerciales). Esta licencia es la garantía que afirma la
absolutalibertad de este sistema operativo. Si no desea ni siquiera
pagar esa mísera cantidad puede descargárselo de Internet totalmente
gratis (bueno, sólo tendrá que pagar la factura de teléfono ).
Características de Linux:
Versiones
- Multiplataforma: corre en muchas CPUs distintas, no sólo Intel.
- Funciona en modo protegido 386.
- Tiene protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema.
- Carga de ejecutables por demanda: Linux sólo lee de disco aquellas partes de un programa que están siendo usadas actualmente.
- Política de copia en escritura para la compartición de páginas entre ejecutables: esto significa que varios procesos pueden usar la misma zona dememoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la página (4Kb de memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria.
- Memoria virtual usando paginación (sin intercambio de procesos completos) a disco: una partición o un archivo en el sistema de archivos, o ambos, con la posibilidad de añadir más áreas de intercambio sobre la marcha (se sigue denominando intercambio, es en realidad un intercambio de páginas). Un total de 16 zonas de intercambio de 128Mb de tamaño máximo pueden ser usadas en un momento dado con un límite teórico de 2Gb para intercambio.
- La memoria se gestiona como un recurso unificado para los programas de usuario y para el caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y éste puede a su vez ser reducido cuando se ejecuten grandes programas.
- Librerías compartidas de carga dinámica (DLL's) y librerías estáticas también, por supuesto.
- Se realizan volcados de estado (core dumps) para posibilitar los análisis post-mortem, permitiendo el uso de depuradores sobre los programas no sólo en ejecución sino también tras abortar éstos por cualquier motivo.
- Casi totalmente compatible con POSIX, System V y BSD a nivel fuente.
- Mediante un módulo de emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a nivel binario.
- Todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario; además todo ello se puede distribuir libremente. Hay algunos programas comerciales que están siendo ofrecidos para Linux actualmente sin código fuente, pero todo lo que ha sido gratuito sigue siendo gratuito.
- Control de tareas POSIX.
- Pseudo-terminales (pty's).
- Emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su propia emulación matemática. Cualquier máquina que ejecute Linux parecerá dotada de coprocesador matemático. Por supuesto, si tu ordenador ya tiene una FPU (unidad de coma flotante), será usada en lugar de la emulación, pudiendo incluso compilar tu propio kernel sin la emulación matemática y conseguir un pequeño ahorro de memoria.
- Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos dinámicamente.
- Consolas virtuales múltiples: varias sesiones de login a través de la consola entre las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente del hardware de video). Se crean dinámicamente y puedes tener hasta 64.
- Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos los sistemas de archivo típicos de System V, y tiene un avanzado sistema de archivos propio con una capacidad de hasta 4 Tb y nombres de archivos de hasta 255 caracteres de longitud.
- Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un sistema de archivos especial: no necesitas ningún comando especial para usar la partición MS-DOS, parece un sistema de archivos normal de Unix (excepto por algunas graciosas restricciones en los nombres de archivo, permisos, y esas cosas). Las particiones comprimidas de MS-DOS 6 no son accesibles en este momento, y no se espera que lo sean en el futuro. El soporte para VFAT (WNT, Windows 95) ha sido añadido al núcleo de desarrollo y estará en la próxima versión estable.
El desarrollo inicial Linux ya aprovechaba las características de
conmutación de tareas en modo protegido del 386, y se escribió todo en
ensamblador.
Linus nunca anunció la versión 0.01 de Linux (agosto 1991), esta versión
no era ni siquiera ejecutable, solamente incluía los principios del
núcleo del sistema, estaba escrita en lenguaje ensamblador y asumía que
uno tenia acceso a un sistema Minix para su compilación.
El 5 de octubre de 1991, Linus anunció la primera versión "Oficial" de
Linux, - versión 0.02. Con esta versión Linus pudo ejecutar Bash (GNU
Bourne Again Shell) y gcc (El compilador GNU de C) pero no mucho mas
funcionaba. En este estado de desarrollo ni se pensaba en los términos
soporte,documentación, distribución.
Después de la versión 0.03, Linus salto en la numeración hasta la 0.10,
más y más programadores a lo largo y ancho de internet empezaron a
trabajar en el proyecto y después de sucesivas revisiones, Linus
incremento el numero de versión hasta la 0.95 (Marzo 1992). Mas de un
año después (diciembre 1993) el núcleo del sistema estaba en la versión
0.99 y la versión 1.0 no llego hasta el 14 de marzo de 1994.
La versión actual del núcleo es la 2.2 y sigue avanzando día a día con la meta de perfeccionar y mejorar el sistema.
La ultima versión estable es la versión 2.2, que soporta muchos más
periféricos, desde procesadores hasta joysticks, sintonizadores de
televisión, CD ROMs no ATAPI y reconoce buena cantidad de tarjetas de
sonido. Incluye también soporte para tipos de archivos para Macintosh
HFS, Unix UFS y en modo de lectura, HPFS de OS/2 y NTFS, de NT.
¿Qué es el kernel?
El kernel o núcleo de linux se podría definir como el corazón de este
sistema operativo. Es el encargado de que el software y el hardware de
tu ordenador puedan trabajar juntos.
Las funciones mas importantes del mismo, aunque no las únicas, son:
- Administración de la memoria, para todos los programas en ejecución.
- Administración del tiempo de procesador, que estos programas en ejecución utilizan.
- Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.
Existen dos versiones del Linux kernel:
Versión de producción: La versión de producción, es la versión
estable hasta el momento. Esta versión es el resultado final de las
versiones de desarrollo o experimentales.
Cuando el equipo de desarrollo del kernel experimental, decide que ha
conseguido un kernel estable y con la suficiente calidad, se lanza una
nueva versión de producción o estable. Esta versión es la que se debería
utilizar para un uso normal del sistema, ya que son las versiones
consideradas mas estables y libres de fallos en el momento de su
lanzamiento.
Versión de desarrollo: Esta versión es experimental y es la que
utilizan los desarrolladores para programar, comprobar y verificar
nuevas características, correcciones, etc. Estos núcleos suelen ser
inestables y no se deberían usar, a no ser que sepas lo que haces.