You are on page 1of 4

Linux es un ncleo libre de sistema operativo basado en Unix.[2] Es uno de los principales ejemplos de software libre.

Linux est licenciado bajo la GPL v2 y est desarrollado por colaboradores de todo el mundo. El desarrollo del da a da tiene lugar en la Linux Kernel Mailing List Archive El ncleo Linux fue concebido por el entonces estudiante de ciencias de la computacin finlands, Linus Torvalds, en 1991. Linux consigui rpidamente desarrolladores y usuarios que adoptaron cdigos de otros proyectos de software libre para su uso en el nuevo sistema operativo. El ncleo Linux ha recibido contribuciones de miles de programadores. Normalmente Linux se utiliza junto a un empaquetado de software, llamado distribucin Linux.

Historia
Artculo principal: Historia de Linux En abril de 1991, Linus Torvalds, de 21 aos, empez a trabajar en unas simples ideas para un ncleo de sistema operativo. Comenz con un intento por obtener un ncleo de sistema operativo gratuito similar a Unix que funcionara con microprocesadores Intel 80386. Luego, el 25 de agosto de 1991, Torvalds escribi en el grupo de noticias comp.os.minix:[3] "Estoy haciendo un sistema operativo (gratuito, slo un hobby, no ser nada grande ni profesional como GNU) para clones AT 386(486). Llevo en ello desde abril y est empezando a estar listo. Me gustara saber su opinin sobre las cosas que les gustan o disgustan en minix, ya que mi SO tiene algn parecido con l.[...] Actualmente he portado bash(1.08) y gcc(1.40), y parece que las cosas funcionan. Esto implica que tendr algo prctico dentro de unos meses..." Despus de esto, muchas personas ayudaron con el cdigo. En septiembre de 1991 se lanz la versin 0.01 de Linux. Tena 10.239 lneas de cdigo. En octubre de ese ao, se lanz la versin 0.02 de Linux; luego, en diciembre se lanz la versin 0.11. Esta versin fue la primera en ser selfhosted (autoalbergada). Es decir, Linux 0.11 poda 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 versin, Torvalds adopt la GPL como su propio boceto de licencia, la cual no permita su redistribucin con otra licencia que no sea GPL. Se inici un grupo de noticias llamado alt.os.linux y el 19 de enero de 1992 se public en ese grupo el primer post. El 31 de marzo, alt.os.linux se convirti en comp.os.linux. XFree86, una implementacin del X Window System, fue portada a Linux, la versin del ncleo 0.95 fue la primera en ser capaz de ejecutarla. Este gran salto de versiones (de 0.1x a 0.9x) fue por la sensacin de que una versin 1.0 acabada no pareca estar lejos. Sin embargo, estas previsiones resultaron ser un poco optimistas: desde 1993 a principios de 1994, se desarrollaron 15 versiones diferentes de 0.99 (llegando a la versin 0.99r15). El 14 de marzo de 1994, se lanz Linux 1.0.0, que constaba de 176.250 lneas de cdigo. En marzo de 1995 se lanz Linux 1.2.0, que ya estaba compuesto de 310.950 lneas de cdigo. Mayo de 1996: Torvalds decidi adoptar al pingino Tux como mascota para Linux. 9 de junio de 1996: Se lanz la versin 2 de Linux, con una recepcin positiva. 25 de enero de 1999: Se lanz Linux 2.2.0 con 1.800.847 lneas de cdigo. 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. 4 de enero de 2001: se lanz Linux 2.4.0 con 3.377.902 lneas de cdigo. 17 de diciembre de 2003: se lanz Linux 2.6.0 con 5.929.913 lneas de cdigo.

24 de diciembre de 2008: se lanz Linux 2.6.28 con 10.195.402 lneas de cdigo.[4] 20 de octubre de 2010: se lanz Linux 2.6.36 con 13.499.457 lneas de cdigo.[5] 30 de mayo de 2011: Linus Torvalds anunci[6] que la versin del ncleo dar el salto a la 3.0 en la siguiente publicacin. 21 de julio de 2011: Torvalds public en su perfil en la red social Google+ que el ncleo versin 3.0 estaba listo con la frase "3.0 Pushed Out".[7] 22 de julio de 2011: Fue lanzada la versin 3.0 del ncleo en http://www.kernel.org/. Su cdigo fuente est disponible para descarga en el sitio web oficial: http://www.kernel.org.

Aspectos tcnicos
Arquitectura

Diagrama del ncleo 2.4.0. Actualmente Linux es un ncleo monoltico hbrido. Los controladores de dispositivos y las extensiones del ncleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. A diferencia de los ncleos monolticos tradicionales, los controladores de dispositivos y las extensiones al ncleo se pueden cargar y descargar fcilmente como mdulos, mientras el sistema contina funcionando sin interrupciones. Tambin, a diferencia de los ncleos monolticos tradicionales, los controladores pueden ser prevolcados (detenidos momentneamente por actividades ms importantes) bajo ciertas condiciones. Esta habilidad fue agregada para gestionar correctamente interrupciones de hardware, y para mejorar el soporte de multiprocesamiento simtrico. El hecho de que Linux no fuera desarrollado siguiendo el diseo de un microncleo (diseo que, en aquella poca, era considerado el ms apropiado para un ncleo por muchos tericos informticos) fue asunto de una famosa y acalorada discusin entre Linus Torvalds y Andrew S. Tanenbaum.[8]

Jerarqua de directorios
Artculo principal: Jerarqua de directorios en Linux En Linux existe un sistema de archivos que carga y contiene todos los directorios, redes, programas, particiones, dispositivos, etc. que el sistema sabe reconocer, o por lo menos, identificar. Este sistema de ficheros y directorios, tiene como base al carcter (/); ese mismo carcter sirve tambin para demarcar los directorios, como por ejemplo: "/home/usuario/imagen.jpg". El directorio especificado por una ruta consistente slo por este carcter contiene toda la jerarqua de los

directorios que constituyen todo el sistema. A este directorio suele llamrselo directorio raz. En Linux, a los discos no se les asigna una letra como en Windows (p.e. "C:"), sino que se les asigna un directorio de la jerarqua del directorio raz (/), como por ejemplo: "/media/floppy". Es prctica comn en el sistema de ficheros de Linux, utilizar varias sub-jerarquas de directorios, segn las diferentes funciones y estilos de utilizacin de los archivos.[9] Estos directorios pueden clasificarse en: Estticos: Contiene archivos que no cambian sin la intervencin del administrador (root), sin embargo, pueden ser ledos por cualquier otro usuario. (/bin, /sbin, /opt, /boot, /usr/bin...) Dinmicos: Contiene archivos que son cambiantes, y pueden leerse y escribirse (algunos solo por su respectivo usuario y el root). Contienen configuraciones, documentos, etc. Para estos directorios, es recomendable una copia de seguridad con frecuencia, o mejor an, deberan ser montados en una particin aparte en el mismo disco, como por ejemplo, montar el directorio /home en otra particin del mismo disco, independiente de la particin principal del sistema; de esta forma, puede repararse el sistema sin afectar o borrar los documentos de los usuarios. (/var/mail, /var/spool, /var/run, /var/lock, /home...) Compartidos: Contiene archivos que se pueden encontrar en un ordenador y utilizarse en otro, o incluso compartirse entre usuarios. Restringidos: Contiene ficheros que no se pueden compartir, solo son modificables por el administrador. (/etc, /boot, /var/run, /var/lock...)

Kernel panic
Artculo principal: Kernel panic

Kernel panic. En Linux, un panic es un error casi siempre insalvable del sistema detectado por el ncleo en oposicin a los errores similares detectados en el cdigo del espacio de usuario. Es posible para el cdigo del ncleo indicar estas condiciones mediante una llamada a la funcin de pnico situada en el archivo header sys/system.h. Sin embargo, la mayora de las alertas son el resultado de excepciones en el cdigo del ncleo que el procesador no puede manejar, como referencias a direcciones de memorias invlidas. Generalmente esto es indicador de la existencia de un bug en algn lugar de la cadena de alerta. Tambin pueden indicar un fallo en el hardware como un fallo de la RAM o errores en las funciones aritmticas en el procesador, o por un error en el software. En muchas ocasiones es posible reiniciar o apagar adecuadamente el ncleo mediante una combinacin de teclas como ALT+SysRq+RSEIUB.

Lenguajes de programacin
Linux est escrito en el lenguaje de programacin C, en la variante utilizada por el compilador GCC (que ha introducido un nmero de extensiones y cambios al C estndar), junto a unas pequeas secciones de cdigo 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 que permitiera compilarlo correctamente.

Asimismo se usan muchos otros lenguajes en alguna forma, bsicamente en la conexin con el proceso de construccin del ncleo (el mtodo a travs del cual las imgenes arrancables son creadas desde el cdigo fuente). Estos incluyen a Perl, Python y varios lenguajes shell scripting. Algunos drivers tambin pueden ser escritos en C++, Fortran, u otros lenguajes, pero esto no es aconsejable. El sistema de construccin de Linux oficialmente solo soporta GCC como ncleo y compilador de controlador.

You might also like