Kernel: Diferenzas entre revisións

Na Galipedia, a Wikipedia en galego.
Contido eliminado Contido engadido
VolkovBot (conversa | contribucións)
Liña 33: Liña 33:
Frecuentemente prefírense os [[núcleo monolítico|núcleos monolíticos]] fronte aos micronúcleos debido ao menor nivel de complexidade que comporta o tratar con todo o código de control do sistema nun só espazo de direccionamiento. Por exemplo, [[XNU]], o núcleo de Mac VOS X, está baseado no núcleo Mach 3.0 e en FreeBSD, no mesmo espazo de direccionamiento para diminuír a latencia que comporta o deseño de micronúcleo convencional.
Frecuentemente prefírense os [[núcleo monolítico|núcleos monolíticos]] fronte aos micronúcleos debido ao menor nivel de complexidade que comporta o tratar con todo o código de control do sistema nun só espazo de direccionamiento. Por exemplo, [[XNU]], o núcleo de Mac VOS X, está baseado no núcleo Mach 3.0 e en FreeBSD, no mesmo espazo de direccionamiento para diminuír a latencia que comporta o deseño de micronúcleo convencional.


A principios dos [[anos 1990]], os núcleos monolíticos considerábanse obsoletos. O deseño de Linux como un núcleo monolítico en lugar de como un micronúcleo foi o tema dunha famosa disputa entre [[Linus Torvalds]] e [[Andrew Tanenbaum]] (hai dispoñible [http://www.dina.dk/abraham/Linus_vs_Tanenbaum.html un resumo] en [[Lingua inglesa|inglés]]). Os argumentos de ambas as partes nesta discusión presentan algunhas motivacións interesantes.
A principios dos [[anos 1990]], os núcleos monolíticos considerábanse obsoletos. O deseño de [[Linux]] como un núcleo monolítico en lugar de como un micronúcleo foi o tema dunha famosa disputa entre [[Linus Torvalds]] e [[Andrew Tanenbaum]] (hai dispoñible [http://www.dina.dk/abraham/Linus_vs_Tanenbaum.html un resumo] en [[Lingua inglesa|inglés]]). Os argumentos de ambas as partes nesta discusión presentan algunhas motivacións interesantes.


Os núcleos monolíticos adoitan ser máis fáciles de deseñar correctamente, e polo tanto poden crecer máis rapidamente que un sistema baseado en micronúcleo, pero hai casos de éxito en ambos os bandos. Os micronúcleos adoitan usarse en robótica embebida ou computadoras médicas, xa que a maioría dos compoñentes do sistema operativo residen no seu propio espazo de memoria privado e protexido. Isto non sería posible cos núcleos monolíticos, nin sequera cos modernos que permiten cargar módulos.
Os núcleos monolíticos adoitan ser máis fáciles de deseñar correctamente, e polo tanto poden crecer máis rapidamente que un sistema baseado en micronúcleo, pero hai casos de éxito en ambos os bandos. Os micronúcleos adoitan usarse en robótica embebida ou computadoras médicas, xa que a maioría dos compoñentes do sistema operativo residen no seu propio espazo de memoria privado e protexido. Isto non sería posible cos núcleos monolíticos, nin sequera cos modernos que permiten cargar módulos.

Revisión como estaba o 3 de maio de 2008 ás 10:41

O kernel ou núcleo é o compoñente central dos sistemas operativos modernos. É o software que traballa directamente co hardware do ordenador. Como componente básico dun sistema operativo, o kernel fornece a capa de abstracción de nivel máis baixo para os recursos (especialmente a memoria, os procesadores e os dispositivos de entrada e saída) que logo controla cada aplicación. Tipicamente, facilita estas operacións aos procesos das aplicacións mediante mecanismos de comunicación entre procesos e chamadas ao sistema.

Existen diferentes tipos de kernels e cada un afronta estas tarefas de modo distinto dependendo do seu deseño e realización. Os kernels monolíticos tentan logralas executando todo o código no mesmo espazo de enderezos para incrementar a potencia do sistema; os microkernels executan a maioría dos seus servizos no espazo do usuario, tentando mellorar a xestión e modularidade do código básico. O normal é que os kernels compartan características de ambos os dous modelos.

Tipos de Núcleos

Hai catro grandes tipos de núcleos:

  • Os núcleos monolíticos facilitan abstracciones do hardware subyacente realmente potentes e variadas.
  • Os micronúcleos (en inglés microkernel) proporcionan un pequeno conxunto de abstracciones simples do hardware, e usan as aplicacións chamadas servidores para ofrecer maior funcionalidad.
  • Os híbridos (micronúcleos modificados) son moi parecidos aos micronúcleos puros, excepto porque inclúen código adicional no espazo de núcleo para que se execute máis rapidamente.
  • Os exonúcleos non facilitan ningunha abstracción, pero permiten o uso de bibliotecas que proporcionan maior funcionalidad grazas ao acceso directo ou case directo ao hardware.

Micronúcleos

O enfoque micronúcleo consiste en definir unha abstracción moi simple sobre o hardware, cun conxunto de primitivas ou chamadas ao sistema que implementan servizos do sistema operativo mínimos, como a xestión de fíos, o espazo de direccionamiento e a comunicación entre procesos.

O obxectivo principal é a separación da implementación dos servizos básicos e da política de funcionamento do sistema. Por exemplo, o proceso de bloqueo de E/S pódese implementar cun servidor en espazo de usuario executándose encima do micronúcleo. Estes servidores de usuario, usados para xestionar as partes de alto nivel do sistema, son moi modulares e simplifican a estrutura e deseño do núcleo. Se falla un destes servidores, non se colgará o sistema enteiro, e poderase reiniciar este módulo independentemente do resto.

Algúns exemplos de micronúcleos:

Núcleos monolíticos en contraposición a micronúcleos

Frecuentemente prefírense os núcleos monolíticos fronte aos micronúcleos debido ao menor nivel de complexidade que comporta o tratar con todo o código de control do sistema nun só espazo de direccionamiento. Por exemplo, XNU, o núcleo de Mac VOS X, está baseado no núcleo Mach 3.0 e en FreeBSD, no mesmo espazo de direccionamiento para diminuír a latencia que comporta o deseño de micronúcleo convencional.

A principios dos anos 1990, os núcleos monolíticos considerábanse obsoletos. O deseño de Linux como un núcleo monolítico en lugar de como un micronúcleo foi o tema dunha famosa disputa entre Linus Torvalds e Andrew Tanenbaum (hai dispoñible un resumo en inglés). Os argumentos de ambas as partes nesta discusión presentan algunhas motivacións interesantes.

Os núcleos monolíticos adoitan ser máis fáciles de deseñar correctamente, e polo tanto poden crecer máis rapidamente que un sistema baseado en micronúcleo, pero hai casos de éxito en ambos os bandos. Os micronúcleos adoitan usarse en robótica embebida ou computadoras médicas, xa que a maioría dos compoñentes do sistema operativo residen no seu propio espazo de memoria privado e protexido. Isto non sería posible cos núcleos monolíticos, nin sequera cos modernos que permiten cargar módulos.

Aínda que Mach é o micronúcleo xeneralista máis coñecido, desenvolvéronse outros micronúcleos con propósitos máis específicos. L3 foi creado para demostrar que os micronúcleos non son necesariamente lentos. A familia de micronúcleos L4 é a descendente de L3, e unha das súas últimas implementaciones, chamada Pistachio, permite executar Linux simultaneamente con outros procesos, en espazos de direccionamiento separados.

QNX é un sistema operativo que estivo dispoñible desde principios dos anos 1980, e ten un deseño de micronúcleo moi minimalista. Este sistema conseguiu chegar ás metas do paradigma do micronúcleo con moito máis éxito que Mach. Úsase en situacións en que non se pode permitir que haxa fallos de software, o que inclúe desde brazos robóticos en naves espaciais, ata máquinas que púen cristal onde un pequeno erro podería custar moito diñeiro.

Véxase tamén


Modelo:Link FA