Definicion
Linux es un núcleo de sistema operativo libre de tipo Unix. Actualmente es utilizado por la familia de sistemas operativos GNU/Linux. Lanzado bajo la licencia pública general de GNU y desarrollado gracias a contribuciones provenientes de programadores de todo el mundo, siendo esta uno de los ejemplos más notables de software libre. Linux fue creado por Linus Torvalds en 1991. Muy pronto, la comunidad de Minix (un clon de Unix) contribuyó en el código y en ideas para el núcleo Linux. Por aquel entonces, el Proyecto GNU ya había creado muchos de los componentes necesarios para obtener un sistema operativo libre, pero su propio núcleo (GNU Hurd) era incompleto y por lo tanto no podían conseguir un sistema libre totalmente funcional. Es por esto que a pesar de las funcionalidades limitadas de la primera versión, rápidamente Linux fue acumulando desarrolladores y usuarios que adoptaron el código de estos proyectos para usar con el nuevo sistema operativo. Hoy en día el núcleo Linux ha recibido contribuciones de miles de programadores. Linux actualmente posee una cuota de mercado del 0,96% a nivel mundial.
Historia
En abril de 1991, Linus Torvalds, de 21 años, empezó a trabajar en el diseño de en unas simples ideas para un núcleo de sistema operativo. Comenzó con un intento por obtener un núcleo de sistema operativo gratuito similar a Unix que funcionara con microprocesadores Intel 80386.
El 25 de agosto de 1991, dejaba claro en comp.os.minix sobre el diseño del sistema operativo emulando GNU para clones AT 386(486).
En septiembre de 1991 se lanzó la versión 0.01 de Linux. En la cual contenía Tenía 10.239 líneas de código. En ese mismo año, se lanzó la versión 0.02 de Linux.
Luego, en diciembre se lanzó la versión 0.11. Esta versión fue la primera en ser self-hosted (autoalbergada). Es decir, Linux 0.11 podía ser compilado por una computadora que ejecutase Linux 0.11, mientras que las versiones anteriores de Linux se compilaban usando otros sistemas operativos.
Cuando lanzó la siguiente versión, Torvalds adoptó la GPL como su propio boceto de licencia, la cual no permitía su redistribución con otra licencia que no sea GPL. Se inició un grupo de noticias llamado alt.os.linux
El 31 de marzo, alt.os.linux se convirtió en comp.os.linux. XFree86, una implementación del X Window System, fue portada a Linux, la versión del núcleo 0.95 fue la primera en ser capaz de ejecutarla. Este gran salto de versiones (de 0.1x a 0.9x) fue por la sensación de que una versión 1.0 acabada no parecía estar lejos. Sin embargo, estas previsiones resultaron ser un poco optimistas:
La versión 2 de Linux se lanzó el 9 de junio de 1996 y fue un gran éxito. A éste se le sumo grandes desarrollos:
2. 18 de diciembre de 1999: se publicaron parches de IBM Mainframe para 2.2.13, permitiendo de esta forma que Linux fuera usado en ordenadores corporativos.
La Arquitectura de Linux.
Actualmente Linux es un núcleo monolítico híbrido. Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware. A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al núcleo se pueden cargar y descargar fácilmente, mientras el sistema continúa funcionando sin interrupciones. También, a diferencia de los núcleos monolíticos tradicionales, los controladores pueden ser prevolcados (detenidos momentáneamente por actividades más importantes) bajo ciertas condiciones. Esta habilidad fue agregada para gestionar correctamente interrupciones de hardware, y para mejorar el soporte de multiprocesamiento.
El hecho de que Linux no fuera desarrollado siguiendo el diseño de un micronúcleo (diseño que, en aquella época, era considerado el más apropiado para un núcleo por muchos teóricos informáticos).
Linux está escrito en el lenguaje de programación C, en la variante utilizada por el compilador GCC (que ha introducido un número de extensiones y cambios al C estándar), junto a unas pequeñas secciones de código escritas con el lenguaje Ensamblador. Por el uso de sus extensiones al lenguaje, GCC fue durante mucho tiempo el único compilador capaz de construir correctamente Linux. Sin embargo, Intel afirmó haber modificado su compilador C de forma de poder compilarlo correctamente.Asimismo se usan muchos otros lenguajes en alguna forma, básicamente en la conexión con el proceso de construcción del núcleo (el método a través del cual las imágenes boteables son creadas desde el código fuente). Estos incluyen a Perl, Python y varios lenguajes shell scripting. Algunos drivers también pueden ser escritos en C++, Fortran, u otros lenguajes, pero esto no es aconsejable. El sistema de construcción de Linux oficialmente solo soporta GCC como núcleo y compilador de controlador.
Portabilidad
Aun cuando Linus Torvalds no ideó originalmente Linux como un núcleo portable, ha evolucionado en esa dirección. Linux es ahora de hecho, uno de los sistemas operativos más ampliamente portados, y funciona en sistemas muy diversos que van desde iPAQ (una handheld) hasta un zSeries (un mainframe masivo). Está planeado que Linux sea el sistema operativo principal de las nuevas supercomputadoras de IBM
Arquitectura de máquina virtual
El núcleo Linux puede correr sobre muchas arquitecturas de máquina virtual, tanto como host del sistema operativo o como cliente. La máquina virtual usualmente emula la familia de procesadores Intel x86, aunque en algunos casos también son emulados procesadores de PowerPC o AMD.
Formatos binarios soportados
Linux 1.0 admitía sólo el formato binario a.out. La siguiente serie estable (Linux 1.2) agregó la utilización del formato ELF, el cual simplifica la creación de bibliotecas compartidas (usadas de forma extensa por los actuales ambientes de escritorio como GNOME y KDE). ELF es el formato usado por defecto por el GCC desde alrededor de la versión 2.7.0. El formato a.out actualmente no es usado, convirtiendo a ELF en el formato binario utilizado por Linux en la actualidad.Linux tiene la capacidad de permitir al usuario añadir el manejo de otros formatos binarios. También binfmt_misc permite correr el programa asociado a un archivo de datos.
Versiones
Más allá de haber desarrollado su propio código y de integrar los cambios realizados por otros programas, Linus Torvalds continua lanzando nuevas versiones del núcleo Linux. Estos son llamados núcleos “vanilla”, lo que significa que no han sido modificados por nadie. Muchos desarrolladores de distribuciones Linux modifican dicho núcleo en sus productos, principalmente para agregarle soporte a dispositivos o herramientas que no fueron oficialmente lanzadas como estables, mientras que algunas distribuciones, como Slackware, mantienen el núcleo vanilla.
|
Historia de UNIX
A mediados de los de la decada de los 60′ varias grandes empresas norteamericanas se juntaron para tratar de hacer un sistema operativo de gran potencia al que denominaron MULTICS. El proyecto fue un fracaso pero uno de los programadores del MIT que había trabajado en el proyecto, Ken Thompson, y un grupo de colaboradores decidieron escribir una versión miniatura de MULTICS. Unos de los compañeros de Ken, Brian Kernigham, en una reunión de equipo, bromeando llamó al sistema de Ken Thompson UNICS..
Las más importantes de todas las versiones de UNIX fueron la BSD (Berkeley Software Distribution), de la Universidad de California en Berkeley, que contenía una serie de mejoras que hicieron a UNIX un sistema operativo más amigable, y la System V. Actualmente el System V es considerado el estándar de UNIX, ya que toda la industria se ha agrupado entorno a él.
La aparición de Minix
A pesar del éxito comercial de UNIX y de su aceptación como sistema operativo, el código fuente de UNIX no podía ser explicado en aulas universitarias, de modo que el desarrollo de sistemas operativos volvía a ser una ciencia restringida a un reducido grupo de empresas y personas.
Ante esta situación, el conocido profesor Andrew Tanenbaum decidió imitar a Ken Thompson cuando escribió el código de UNIX basándose en MULTICS, e inspirándose en UNIX llevó a cabo un nuevo sistema operativo mucho más reducido, al que llamó MINIX (de Mini-UNIX). MINIX había sido desarrollado en una IBM PC y ofrecía las mismas llamadas al sistema que UNIX V7. Tanenbaum hizo público el código de MINIX, y su texto aún se usa en la mayoría de las universidades del planeta para enseñar las bases del diseño de sistemas operativos.
Linus Torvalds empieza a desarrollar Linux
A principios de los 90 Linus Torvalds, un estudiante universitario, decidió crear su propia versión de Unix, que superara las limitaciones del sistema minix. Este sistema lo llamó Linux (Contracción de Linus y Unix). Pocos meses después publicó su primera versión, numerada como versión 0.01. Esta versión solamente contenía un kernel (núcleo del sistema operativo) muy rudimentario.
El 5 de Octubre de 1991 fue creada y públicada la versión 0.02 cuando Torvalds logró ejecutar programas como el Bash y el Gcc (básicos para un sistema unix). Por aquel entonces decidió difundirlo pública y gratuitamente (bajo la licencia GNU, de la que hablaremos mas adelante) e invitó a todo aquel que pudiera a aportar ideas nuevas y a mejorar el código via Internet. Gracias a estos aportes Linux comenzó a evolucionar rápidamente.
A partir de ese momento, y a pesar de que Linus sigue teniendo la última palabra sobre el contenido del kernel o núcleo del sistema operativo, el proyecto se a ido abriendo a la comunidad con la participación de programadores de todo el mundo, que reproduciendo a una escala mucho mayor el esquema seguido por gran parte de las aplicaciones GNU.
Con el paso del tiempo se han ido sucediendo las versiones, y Linux ha ido tomando cuerpo como una muy seria alternativa a los demas sistemas operativos, tanto Unix tradicionales como Windows. Así, los sistemas Linux actualmente representan una gran amenaza competitiva para los desarrolladores de sistemas operativos propietarios. Microsoft ha comenzado a advertir la creciente popularidad de Linux y el riesgo que esto representa para su dominio del mercado. Linux se encuentra actualmente en el segundo lugar de las mayores amenazas para Microsoft, según lo anunció la empresa, siendo las condiciones económicas su amenaza número uno.
La creciente popularidad de Linux se debe -entre otras razones- a su extraordinaria estabilidad, al acceso libre al código fuente (lo que permite personalizar el funcionamiento) y a la abundancia de documentación relativa a los procedimientos. Dia a dia, más y más programas están disponibles para este sistema, y la calidad de los mismos aumenta de versión a versión. La gran mayoria de los mismos vienen acompañados del código fuente y se distribuyen gratuitamente bajo terminos similares a los del núcleo.
Hoy en dia Linux es distribuido a través de múltiples «distribuciones». Existen numerosas distribuciones de Linux (también conocidas como «distros»), ensambladas por empresas (caso de SuSE, RedHat), como fundaciones (caso de Debian o Gentoo) e incluso administraciones públicas (caso de Linex y Guadalinex en España). Cada distribución suele incluir software adicional, incluyendo software que facilita la instalación del sistema.
La base del sistema de cada distribución es muy parecida, incluyendo varios paquetes básicos del proyecto GNU, incluyendo un intérprete de comandos y utilidades como bibliotecas, compiladores y editores de texto. Estos componentes (esenciales para un sistema funcional) provienen del proyecto GNU, anterior a Linux. Es por esto que Richard Stallman (fundador del proyecto) pide a los usuarios que se refieran a dicho sistema como GNU/Linux. A pesar de esto, la mayoría de los usuarios continúan llamando al sistema simplemente «Linux» y las razones expuestas por Richard Stallman son eterno motivo de discusión.