Usuario:Larocka/Linux kernel

Linux es el núcleo de sistema operativo libre más popular y constituye la base del sistema operativo Linux (también llamado GNU/Linux), que ha comenzado a competir con sistemas operativos proprietarios como Unix y Windows.

El núcleo Linux, escrito casi completamente en C con algunas extensiones GNU C, fue desarrollado por el hacker finlandés Linus Torvalds en un intento por obtener un sistema operativo libre similar a Unix que funcionara con microprocesadores Intel 80386. El proyecto nació en 1991 con un famoso mensaje en el grupo comp.os.minix de Usenet, que contenía esta oración:

 "Estoy haciendo un sistema operativo (libre) (sólo un hobby, no 
  será nada grande y profesional como gnu) para
  clones AT 386(486)..."

Puedes encontrar el texto completo del mensaje aquí.

Muy pronto, los hackers de Minix aportaron ideas y código al núcleo Linux, y hasta hoy ha recibido contribuciones de miles de programadores.

Originalmente Linux era solamente el nombre del núcleo. El término "núcleo" (en inglés kernel) propiamente dicho se refiere al software de sistema de bajo nivel que provee una capa de abstracción sobre el hardware, control de discos y sistema de archivos, multitarea, balance de carga, comunicación en red y medidas de seguridad. Un núcleo no es un sistema sperativo completo (tal y como se entiende el término normalmente). El sistema completo construído alrededor del núcleo Linux es conocido usualmente como el sistema operativo Linux, aunque hay quienes prefieren llamar GNU/Linux al sistema completo. La gente confunde a menudo núcleo con sistema operativo, llegando a ciertas inferencias incorrectas, como suponer por ejemplo, que Torvalds programa/coordina otros componentes del sistema, además del núcleo.

Torvalds ha continuado liberando nuevas versiones del núcleo, consolidando aportes de otros programadores y haciendo cambios por su cuenta. Todas las versiones de Linux que tienen el número de sub-versión (el segundo número) par, pertenecen a la serie "estable", por ejemplo: 1.0.x, 1.2.x, 2.0.x, 2.2.x, 2.4.x y actualmente 2.6.x, mientras que las versiones con sub versión impar, como la serie 2.5.x, son versiones de desarrollo, es decir que no son consideradas de producción. Mientras que Torvalds continúa liberando las últimas versiones de desarrollo, el mantenimiento de las rama "estables", siempre algo mas viejas, ha sido delegada a otros programadores, incluyendo a David Weinehall (2.0), Alan Cox (2.2) y Marcelo Tosatti (2.4). Además de estas versiones "oficiales" del núcleo, es posible obtener versiones "alternativas" en otras fuentes. Los encargados de las Distribuciones de Linux, normalmente mantienen sus propias versiones del núcleo, que a veces incluyen por ejemplo, controladores que no han sido incorporados a la versión oficial.

La versión inestable actual, 2.5, ha llegado a su final, con la creación de la serie llamada 2.6.0-test (a Noviembre de 2003). Cuando finalice la serie 2.6.0-test, será liberado el núcleo 2.6.0 oficial. La serie 2.6 ya contiene muchas mejoras sobre la versión estable anterior: 2.4. Entre ellas se destaca la posibilidad de correr una nueva copia del núcleo Linux sobre Linux, en Espacio de Usuario, de algún modo similar a una máquina virtual, usando Linux en Modo Usuario.

La mascota de Linux es un pingüio llamado Tux, creado por Larry Ewing.

Arquitectura editar

Hoy por hoy, Linux es un núcleo monolítico híbrido. Los controladores de dispositivos y las extensiones del núcleo normalmente corren en anillo 0 (ring 0), con acceso completo al hardware, aunque algunas corren en espacio de usuario. A diferencia de los núcleos monolíticos, los controladores de dispositivos se cargan fácilmente como módulos, y pueden cargarse y quitarse con el sistema funcionando. También a diferencia de los núcleos monolíticos estándar, los controladores pueden ser pre-volcados bajo ciertas condiciones. Esta habilidad fue agregada para manejar correctamente interrupciones de hardware, y para mejorar el soporte de Multiprocesamiento Simétrico.

El hecho de que Linux no es un microkernel fue asunto de una famosa y acalorada discusión entre Linus Torvalds y Andy Tanenbaum; puede verse un resumen de la discusión en http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html

El código fuente completo de varias versiones del núcleo Linux puede encontrarse en http://lxr.linux.no.

Portabilidad editar

Aún cuando Linus Torvalds no ideó originalmente Linux como un sistema portable, ha evolucionado en esa dirección. Linux es ahora de hecho, uno de los núcleos de sistema opertivo mas ampliamente portados (rigurosamente, NetBSD ha sido portado a un mayor número de plataformas), y funciona en sistemas tan diversos que van desde iPAQ (una handheld) hasta IBM S/390 (un mainframe masivo, muy costoso). Está planeado que Linux sea el sistema operativo principal de las nuevas supercomputadoras de IBM, Blue Gene cuando su desarrollo se complete.

De todos modos, es importante notar que los esfuerzos de Torvalds también estaban dirigidos a un tipo diferente de portabilidad. Según su punto de vista, la portabilidad es la habilidad de compilar fácilmente en un sistema aplicaciones de los orígenes más diversos; así, la popularidad original de Linux se debió en parte al poco esfuerzo necesario para tener funcionando las aplicaciones favoritas de todos, ya sean GPL o de Código Abierto.

Linux funciona actualmente en las siguientes plataformas:

Términos de la Licencia editar

Inicialmente, Torvalds liberó Linux bajo una licencia que prohibía la explotación comercial. Pero pronto fue cambiada por la Licencia Pública General de GNU (versión 2 exclusivamente). Esta licencia permite la distribución e incluso la venta de copias o incluso modificaciones, pero requiere que todas esas copias sean liberadas bajo los mismos términos y acompañadas con el código fuente.

Torvalds se ha referido públicamente a la adhesión a la licencia GPL como "la mejor cosa que hice nunca". [1]

Véase también editar

Recursos editar