¿Qué es Linux?

De Wiki Espacio Linux
Saltar a: navegación, buscar

Linux (GNU/Linux) es un sistema operativo al igual que Windows o Mac OS, sólo que a diferencia de éstos su código es de libre acceso lo que permite una mayor libertad en su uso y que pueda ser desarrollado por un sin fin de personas, no limitándose a una empresa en particular.

Técnicamente hablando, Linux es el kernel o núcleo del sistema, el cual sería poco funcional si no se complementara con una gran cantidad de software, la mayoría liberado bajo alguna licencia del proyecto GNU (software libre).

Contenido

Lo correcto es llamarlo GNU/Linux

Logo del kernel Linux
Linux, o mejor dicho, GNU/Linux es un conjunto que comprende un kernel Linux y cientos de aplicaciones GNU que hacen utilizable el sistema.

Todo sistema se compone de una shell y un kernel, el kernel es desarrollado por Linus Torvalds y un conjunto de programadores de su confianza, mientras que la shell fue impulsada por el proyecto GNU y es hoy desarrollada por millones de programadores del mundo entero.

Cuando hablamos de kernel hablamos de un software que tiene por objetivo comunicarse con el hardware y con la shell , nadie directamente usa el kernel sino a través de la shell, que es por la que interactuamos con el kernel y con el hardware.

Es por eso que lo correcto es llamarlo GNU/Linux y no solo Linux ya que ambos proyectos se conjuntan para formar el total del sistema operativo.

Sin embargo, en la practica es mucho más común encontrar que es llamado Linux, por ser más corto y fácil de recordar, aunque incluir el GNU no implica nada más darle crédito a este proyecto, sino que para muchos es poner en evidencia la filosofía que hay detrás, aquella que ha hecho al sistema lo que es hoy.

GNU nació como un movimiento cuya filosofía pretendía impedir que las nuevas tecnologías fueran patentadas y apropiadas por una empresa o un particular y que estén a disposición de la comunidad.

Por lo tanto, cuando decimos GNU/Linux es hacer referencia a la libertad de las aplicaciones en términos de uso, distribución y desarrollo, mientras que decir sólo Linux es olvidar lo que permitió la creación y el desarrollo del sistema.

Distribuciones GNU/Linux

GNU/Linux es empaquetado en distribuciones, también conocidas popularmente como distros.

Una distribución GNU/Linux puede ser comercial o no, puede estar impulsada por una empresa, por una persona o comunidad, pero todas usan el kernel Linux y el conjunto básico de paquetes GNU (compilador, librerías, editores, etc).

Existen muchas distribuciones GNU/Linux cada una destinada a cierto grupo de usuarios y con ciertos objetivos específicos. Las diferencias entre una distribución y otra, son la forma en que se pre-compilan los paquetes (aplicaciones), la cantidad de software disponible, el criterio de elección del software, su filosofía, comunidad y en algunos casos la forma de administrar el sistema.

Ejemplo de distribuciones.

  • Arch Linux: Distribución construida desde los binarios su diseño esta abocado en la simpleza, en el sentido de evitar las capas de abstracción que ocultan los procesos del sistema.
  • CentOS: Distribución basada en Red Hat Enterprise Linux mantenida por una comunidad de desarrolladores voluntarios y orientada a servidores.
  • Debian: La madre de muchas distros populares, cuenta con una gran comunidad es desarrollada por voluntarios, distribución de propósito general, caracterizada por su estabilidad.
  • Fedora: Distribución patrocinada por la empresa Red Hat, desarrollada por la comunidad para garantizar su continuidad en todo momento. Esta distribución es secuela de la desaparecida Red Hat Linux.
  • Gentoo: Distribución que permite adaptarla al equipo donde se instala, ofreciendo un gran rendimiento. Generalmente es utilizada por usuarios avanzados.
  • Knoppix: La primera distribución LiveCD orientada a auditorías de seguridad.Basada en Debian.
  • Linux Mint: Una popular distribución derivada de Ubuntu con el objetivo de hacer el sistema más amigable para los usuarios nuevos en este sistema.
  • Mandriva: Distribución derivada de Red Hat Linux con el propósito de hacer un sistema de fácil uso para el usuario nuevo en este sistema, pero que bien puede ser aprovechado para usuarios más avanzados.
  • OpenSUSE: Originalmente basada en Slackware es patrocinada actualmente por la compañía Novell.
  • Red Hat Enterprise Linux: Distribución orientada a ofrecer soluciones empresariales y de negocios de la mano de la empresa Red Hat bajo una suscripción de pago.
  • Slackware: Una de las primeras distribuciones Linux, generalmente utilizada por usuarios avanzados.
  • Slax: Es un sistema Linux pequeño, moderno, rápido y portable orientado a la modularidad. Está basado en Slackware.
  • Ubuntu: Una popular distribución basada en Debian enfocada a los usuarios nuevos en el sistema, especialmente a aquellos proveniente de Windows.
  • Trisquel GNU/Linux: Una de las pocas distribución que sólo contiene software libre.
Ver Distribuciones para una lista más completa.

Historia

En los años 70' las computadoras personales estaban en fase de desarrollo, su uso se limitaba a laboratorios y universidades, la inmensa mayoría de los avances se llevaba a cabo por una comunidad de programadores que intercambiaba libremente el código fuente de los programas, a los cuales todos les aportaban cambios para el bien común.

Si bien Unix tenia copyright no había acciones que impidieran compartir, usar y mejorar el código fuente.

Por aquellos años programadores de la talla de Richard Stallman, Eric S. Raymond , pasaban inagotables horas tras la pantalla experimentando, desarrollando programas, sistemas operativos.Todo ello por el afán de ir mas allá, de implementar nuevas funciones y soluciones.

A principios de 1980 la comunidad de programadores recibió un duro golpe, las empresas comenzaron a licenciar e software e impedir la cooperación en la comunidad de programadores, lo que hasta unas años atrás era una practica saludable y cotidiana, paso a ser un delito, quedo prohibido compartir el software o modificarlo, para poder usarlo se debía firmar un contrato en el que se acordaba no compartir el software, en palabras de Richard Stallman, firmar un contrato de mala persona.

Este dilema moral al que se enfrento la comunidad de programadores de entonces, encontró una salida de la mano de Richard Stallman quien alrededor de 1983, renuncio a su trabajo y se dedico por completo a desarrollar un software que permitiera mantener la sociedad cooperadora.

Uno de los primeros frutos del proyecto GNU fue GCC, el compilador del lenguaje C de GNU. Su importancia es tal, que hoy en día no se concibe una máquina Unix decente sin este compilador y mucho del software Unix se desarrolla bajo gcc.

Alrededor de 1990 una vibrante comunidad de programadores integraba el Proyecto GNU, para entonces el sistema GNU estaba prácticamente completo (libc, bash, emacs, etc), sólo faltaba el kernel. Se comenzaron a desarrollar GNU Hurd

Pero en otra parte de forma paralela un joven programador Linus Torvalds realizo un llamado público a los programadores para que probasen y le enviaran sugerencias sobre su sistema operativo.

Según el era un hobby, nada profesional, al poco tiempo de enviado el llamado, cientos de programadores comenzaron a usar y modificar el código y para 1991 Torvalds publicó la primera versión de Linux bajo licencia GPL.

Cuando Linus Torvalds publico su sistema operativo la comunidad de programadores comenzó a ensamblar todo el software desarrollado por GNU y el Kernel desarrollado por Torvalds dando nacimiento a GNU/Linux

Efemérides

   La distribución más antigua que aún existe es Slackware, inicialmente lanzada en 1992. 
   Debian comenzó en agosto de 1993 gracias a Ian Murdock
   Alrededor de 1995, Mark Ewing y Bob Young crean Red Hat
   En Marzo de 1998 Netscape Communications libera el código fuente de Nescape Navigator(primer navegador web 
   comercial en el que se basa mozilla) influenciado por La Catedral y el Bazar de Eric S. Raymond.
   El concepto Open Source nació  en 1998 para evitar la ambigüedad del termino free que significa libre y gratis a la vez.

Características del sistema

GNU/Linux es un sistema multiusuario, multitarea y multiplataforma significa que puede ejecutar varios procesos en tiempo real que soporta múltiples usuarios conectados a la vez, corriendo sus propias aplicaciones de modo independiente y que es compatible con muchas arquitecturas (cpu).

Es un sistema de propósito general, la mayoría de las distribuciones pueden usare sin inconvenientes, como estaciones de trabajo o servidores.

Puede leer múltiples sistema de ficheros (NTFS FAT FAT32 XFS ReiserFS EXT2 EXT3 EXT4)

Cuenta con protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema

Carga de ejecutables por demanda: GNU/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 de memoria 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.

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 usar, modificar, distribuir libremente.

Ventajas e inconvenientes

Ventajas

  • Gran cantidad de software disponible para descarga e instalación desde los sitios oficiales de cada distribución y a través de instaladores integrados al sistema.
  • Gran compatibilidad entre versiones
  • Disponibilidad del código fuente para modificarlo y o distribuirlo de forma gratuita o no.
  • Una enorme comunidad de usuarios que están dispuestos a dar soporte técnico a los que recién se inician de forma voluntaria.
  • Una abundante documentación sobre cada software, manuales, libros, guías, desarrollos por las distintas comunidades de GNU/Linux
  • Excelente manejo de la seguridad, cada software que se libera es testado y dispuesto bajo estrictas normas de control
  • Robustez, el sistema es sólido y transparente
  • Flexibilidad, puedes configurarlo a tu antojo y necesidades para sacarle el mejor partido.
  • Enorme cantidad de opciones tanto en distribuciones como paquetes
  • La posibilidad de participar de un proyecto de tu agrado o de impulsar el tuyo propio e invitar a la comunidad a formar parte.
  • Tener el control absoluto del sistema

Inconvenientes

  • Falta de soporte a algunas piezas de hardware fabricadas exclusivamente para Windows.
  • Para quienes migran de plataforma (desde otro sistema), implica un breve periodo de adaptación - aprendizaje.
  • La mayoría de la veces la instalación del sistema tiene que ser hecha por el usuario, ya que no es tan común encontrar equipos nuevos con el sistema instalado.
Herramientas personales