Está en la página 1de 10

Comunidad de Software Libre - UNAC

Qu es el Kernel?
El ncleo (tambin conocido en espaol con el anglicismo kernel, de races germnicas como kern) es la parte fundamental de un sistema operativo. Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma ms bsica, es el encargado de gestionar recursos, a travs de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, el ncleo tambin se encarga de decidir qu programa podr hacer uso de un dispositivo de hardware y durante cunto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los ncleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso para el programador. Las funciones ms importantes del mismo, aunque no las nicas, son:

Administracin de la memoria para todos los programas y procesos en ejecucin. Administracin del tiempo de procesador que los programas y procesos en ejecucin utilizan. Es el encargado de que podamos acceder a los perifricos/elementos de nuestro ordenador de una manera cmoda.

Tipos de Kernel
Tema: Trabajo Kernel Linux

Comunidad de Software Libre - UNAC

No necesariamente se necesita un ncleo para usar una computadora. Los programas pueden cargarse y ejecutarse directamente en una computadora vaca, siempre que sus autores quieran desarrollarlos sin usar ninguna abstraccin del hardware ni ninguna ayuda del sistema operativo. sta era la forma normal de usar muchas de las primeras computadoras: para usar distintos programas se tena que reiniciar y reconfigurar la computadora cada vez. Con el tiempo, se empez a dejar en memoria (an entre distintas ejecuciones) pequeos programas auxiliares, como el cargador y el depurador, o se cargaban desde memoria de slo lectura. A medida que se fueron desarrollando, se convirtieron en los fundamentos de lo que llegaran a ser los primeros ncleos de sistema operativo. Hay cuatro grandes tipos de ncleos: Los ncleos monolticos facilitan abstracciones del hardware subyacente realmente potentes y variadas. Los microncleos (en ingls microkernel) proporcionan un pequeo conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad. Los hbridos (microncleos modificados) son muy parecidos a los microncleos puros, excepto porque incluyen cdigo adicional en el espacio de ncleo para que se ejecute ms rpidamente. Los exoncleos no facilitan ninguna abstraccin, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware.

Microncleos (microkrenel)
Tema: Trabajo Kernel Linux

Comunidad de Software Libre - UNAC


El enfoque microncleo consiste en definir una abstraccin muy simple sobre el hardware, con un conjunto de primitivas o llamadas al sistema que implementan servicios del sistema operativo mnimos, como la gestin de hilos, el espacio de direccionamiento y la comunicacin entre procesos. El objetivo principal es la separacin de la implementacin de los servicios bsicos y de la poltica de funcionamiento del sistema. Por ejemplo, el proceso de bloqueo de E/S se puede implementar con un servidor en espacio de usuario ejecutndose encima del microncleo. Estos servidores de usuario, usados para gestionar las partes de alto nivel del sistema, son muy modulares y simplifican la estructura y diseo del ncleo. Si falla uno de estos servidores, no se colgar el sistema entero, y se podr reiniciar este mdulo independientemente del resto. Algunos ejemplos de microncleos: AIX La familia de microncleos L4 El microncleo Mach, usado en GNU Hurd y en Mac OS X Minix MorphOS QNX RadiOS VSTa Hurd

Tema: Trabajo Kernel Linux

Comunidad de Software Libre - UNAC

Ncleos monolticos en contraposicin a microncleos


Frecuentemente se prefieren los ncleos monolticos frente a los microncleos debido al menor nivel de complejidad que comporta el tratar con todo el cdigo de control del sistema en un solo espacio de direccionamiento. Por ejemplo, XNU, el ncleo de Mac OS X, est basado en el ncleo Mach 3.0 y en FreeBSD, en el mismo espacio de direccionamiento para disminuir la latencia que comporta el diseo de microncleo convencional. A principios de los aos 1990, los ncleos monolticos se consideraban obsoletos. El diseo de Linux como un ncleo monoltico en lugar de como un microncleo fue el tema de una famosa disputa entre Linus Torvalds y Andrew Tanenbaum. Los argumentos de ambas partes en esta discusin presentan algunas motivaciones interesantes. Los ncleos monolticos suelen ser ms fciles de disear correctamente, y por lo tanto pueden crecer ms rpidamente que un sistema basado en microncleo, pero hay casos de xito en ambos bandos. Los microncleos suelen usarse en robtica embebida o computadoras mdicas, ya que la mayora de los componentes del sistema operativo residen en su propio espacio de memoria privado y protegido. Esto no sera posible con los ncleos monolticos, ni siquiera con los modernos que permiten cargar mdulos. Aunque Mach es el microncleo generalista ms conocido, se han desarrollado otros microncleos con propsitos ms especficos. L3 fue creado para demostrar que los microncleos no son necesariamente lentos. La familia de microncleos L4 es la descendiente de L3, y una de sus ltimas implementaciones, llamada Pistachio, permite ejecutar Linux simultneamente con otros procesos, en espacios de direccionamiento separados. QNX es un sistema operativo que ha estado disponible desde principios de los aos 1980, y tiene un diseo de microncleo muy minimalista. Este sistema ha conseguido llegar a las metas del paradigma del microncleo con mucho ms xito que Mach. Se usa en situaciones en que no se puede permitir que haya fallos de software, lo que incluye desde brazos

Tema: Trabajo Kernel Linux

Comunidad de Software Libre - UNAC


robticos en naves espaciales, hasta mquinas que pulen cristal donde un pequeo error podra costar mucho dinero. Mucha gente cree que como Mach bsicamente fall en el intento de resolver el conjunto de problemas que los microncleos intentaban subsanar, toda la tecnologa de microncleos es intil. Los partidarios de Mach afirman que sta es una actitud estrecha de miras que ha llegado a ser lo suficientemente popular para que mucha gente la acepte como verdad.

Ncleos hbridos (microncleos modificados)


Los ncleos hbridos fundamentalmente son microncleos que tienen algo de cdigo no esencial en espacio de ncleo para que ste se ejecute ms rpido de lo que lo hara si estuviera en espacio de usuario. ste fue un compromiso que muchos desarrolladores de los primeros sistemas operativos con arquitectura basada en microncleo adoptaron antes que se demostrara que los microncleos pueden tener muy buen rendimiento. La mayora de sistemas operativos modernos pertenecen a esta categora, siendo el ms popular Microsoft Windows. XNU, el ncleo de Mac OS X, tambin es un microncleo modificado, debido a la inclusin de cdigo del ncleo de FreeBSD en el ncleo basado en Mach. DragonFly BSD es el primer sistema BSD que adopta una arquitectura de ncleo hbrido sin basarse en Mach. Algunos ejemplos de ncleos hbridos: Microsoft Windows NT, usado en todos los sistemas que usan el cdigo base de Windows NT XNU (usado en Mac OS X) DragonFly BSD ReactOS Hay gente que confunde el trmino ncleo hbrido con los ncleos monolticos que pueden cargar mdulos despus del arranque, lo que es un error. Hbrido implica que el ncleo en cuestin usa conceptos de arquitectura o mecanismos tanto del diseo monoltico como del microncleo, especficamente el paso de mensajes y la migracin de cdigo no esencial

Tema: Trabajo Kernel Linux

Comunidad de Software Libre - UNAC


hacia el espacio de usuario, pero manteniendo cierto cdigo no esencial en el propio ncleo por razones de rendimiento.

Exoncleos
Los exoncleos, tambin conocidos como sistemas operativos verticalmente estructurados, representan una aproximacin radicalmente nueva al diseo de sistemas operativos. La idea subyacente es permitir que el desarrollador tome todas las decisiones relativas al rendimiento del hardware. Los exoncleos son extremadamente pequeos, ya que limitan expresamente su funcionalidad a la proteccin y el multiplexado de los recursos. Se llaman as porque toda la funcionalidad deja de estar residente en memoria y pasa a estar fuera, en libreras dinmicas. Los diseos de ncleos clsicos (tanto el monoltico como el microncleo) abstraen el hardware, escondiendo los recursos bajo una capa de abstraccin del hardware, o detrs de los controladores de dispositivo. En los sistemas clsicos, si se asigna memoria fsica, nadie puede estar seguro de cul es su localizacin real, por ejemplo. La finalidad de un exoncleo es permitir a una aplicacin que solicite una regin especfica de la memoria, un bloque de disco concreto, etc., y simplemente asegurarse que los recursos pedidos estn disponibles, y que el programa tiene derecho a acceder a ellos. Debido a que el exoncleo slo proporciona una interfaz al hardware de muy bajo nivel, careciendo de todas las funcionalidades de alto nivel de otros sistemas operativos, ste es complementado por una biblioteca de sistema operativo. Esta biblioteca se comunica con el exoncleo subyacente, y facilita a los programadores de aplicaciones las funcionalidades que son comunes en otros sistemas operativos. Algunas de las implicaciones tericas de un sistema exoncleo son que es posible tener distintos tipos de sistemas operativos (p.e. Windows, Unix) ejecutndose en un solo exoncleo, y que los desarrolladores pueden elegir prescindir de o incrementar funcionalidades por motivos de rendimiento.

Tema: Trabajo Kernel Linux

Comunidad de Software Libre - UNAC


Actualmente, los diseos exoncleo estn fundamentalmente en fase de estudio y no se usan en ningn sistema popular. Un concepto de sistema operativo es Nemesis, creado por la Universidad de Cambridge, la Universidad de Glasgow, Citrix Systems y el Instituto Sueco de Informtica. El MIT tambin ha diseado algunos sistemas basados en exoncleos.

El Kernel Linux
UN POCO DE HISTORIA Linux es el ncleo o kernel del sistema operativo libre denominado GNU/Linux (tambin llamado Linux), que brinda una alternativa frente a sistemas operativos no libres como Unix y Windows. Este ncleo, escrito casi completamente en C con algunas extensiones GNU C, fue desarrollado por el hacker finlands 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 contena lo siguiente (se puede encontrar el texto original y completo del mensaje aqu):

Tema: Trabajo Kernel Linux

Comunidad de Software Libre - UNAC


"Estoy haciendo un sistema operativo (gratuito) (slo un hobby, no ser nada grande y profesional como GNU) para clones AT 386(486)..." Muy pronto, los hackers de Minix aportaron ideas y cdigo al ncleo Linux, y hasta hoy ha recibido contribuciones de miles de programadores. Originalmente Linux era solamente el nombre del ncleo. El trmino "ncleo" (en ingls kernel) propiamente dicho se refiere al software de sistema de bajo nivel que provee una capa de abstraccin sobre el hardware, control de discos y sistema de archivos, multitarea, balance de carga, comunicacin en red y medidas de seguridad. Un ncleo no es un sistema operativo completo (tal y como se entiende el trmino normalmente). El sistema completo construido alrededor del ncleo Linux es conocido usualmente como el sistema operativo Linux, aunque hay quienes prefieren llamar GNU/Linux al sistema completo. La gente confunde a menudo ncleo con sistema operativo, llegando a ciertas inferencias incorrectas, como suponer por ejemplo, que Torvalds programa/coordina otros componentes del sistema, adems del ncleo. Torvalds ha continuado liberando nuevas versiones del ncleo, consolidando aportes de otros programadores y haciendo cambios por su cuenta. Todas las versiones de Linux que tienen el nmero de sub-versin (el segundo nmero) 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 versin impar, como la serie 2.5.x, son versiones de desarrollo, es decir que no son consideradas de produccin. Mientras que Torvalds contina liberando las ltimas versiones de desarrollo, el mantenimiento de las rama "estables", siempre algo ms viejas, ha sido delegada a otros programadores, incluyendo a David Weinehall (2.0), Alan Cox (2.2), Marcelo Tosatti (2.4) y Andrew Morton (2.6). Adems de estas versiones "oficiales" del ncleo, es posible obtener versiones "alternativas" en otras fuentes. Los encargados de las Distribuciones de Linux, normalmente mantienen sus propias versiones del ncleo, que a veces incluyen por ejemplo, controladores que no han sido incorporados a la versin oficial. La rama estable actual es la 2.6.x. La serie 2.6 ya contiene muchas mejoras sobre la versin estable anterior: 2.4. Entre ellas se destaca la posibilidad de correr una nueva copia del ncleo

Tema: Trabajo Kernel Linux

Comunidad de Software Libre - UNAC


Linux sobre Linux, en Espacio de Usuario, de algn modo similar a una mquina virtual, usando Linux en Modo Usuario.

Arquitectura
Hoy por hoy, 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 sistema operativo 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 pre -volcados (detenidos momentneamente por actividades ms importantes) bajo ciertas condiciones. Esta habilidad fue agregada para manejar correctamente interrupciones de hardware, y para mejorar el soporte de Multiprocesamiento Simtrico. El hecho de que Linux no fue desarrollado siguiendo el diseo de un microkernel (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 Andy Tanenbaum Portabilidad An cuando Linus Torvalds no ide originalmente Linux como un sistema portable, ha evolucionado en esa direccin. Linux es ahora de hecho, uno de los ncleos de sistema operativo ms ampliamente portados (rigurosamente, NetBSD ha sido portado a un mayor nmero de plataformas), y funciona en sistemas muy diversos que van desde iPAQ (una handheld) hasta un zSeries (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.

Tema: Trabajo Kernel Linux

Comunidad de Software Libre - UNAC


De todos modos, es importante notar que los esfuerzos de Torvalds tambin estaban dirigidos a un tipo diferente de portabilidad. Segn su punto de vista, la portabilidad es la habilidad de compilar fcilmente en un sistema aplicaciones de los orgenes ms 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 Cdigo abierto. Linux funciona actualmente en las siguientes plataformas: Acorn: Archimedes, A5000 y las series RiscPC: (ARM, StrongARM, Intel XScale etc.) AMD64: Procesadores de AMD con tecnologa de 64-bits (conocidos inicialmente como x86-64) Axis Communications: CRIS Compaq: Alpha Hewlett Packard: familia PA-RISC Hitachi: SuperH (SEGA Dreamcast), H8/300 IA-64: PCs con teconnologa de 64-bits Intel Itanium zSeries: IBM zSeries (z800, z890, z900, z990, z9) y virtualizado bajo el sistema operativo z/VM. Intel: 80386 y superiores: IBM PCs y compatibles: 80386, 80486, la serie Pentium completa; AMD Athlon, Duron, Thunderbird; las series Cyrix. El soporte para microprocesadores Intel 8086, 8088, 80186, 80188 e 80286 est siendo desarrollado (vase el proyecto ELKS) Microsoft: Xbox MIPS: estaciones Silicon Graphics, Inc., ... Motorola: 68020 y superiores: modelos nuevos de Amiga Apple: algunas computadoras Apple: Varias versiones del iPod NEC Corporation: v850e PowerPC y POWER: la mayora de las nuevas Apple (todas las basadas en PCI Power Macintosh, soporte limitado para las viejas NuBus Power Macs), clones de Power Mac vendidos por Power Computing, UMAX y Motorola, Amigas mejorados con placas "Power-UP" (como Blizzard o CyberStorm), IBM RS/6000, sistemas iSeries y pSeries, numerosas plataformas PowerPC embebidas Sony: PlayStation 2 SPARC y UltraSparc: puestos de trabajo Sun, y sus clones hechos por Tatung y otros

Tema: Trabajo Kernel Linux

También podría gustarte