罗源县妇联党支部创新“两学一做”学习活动载体

O kernel ou núcleo é o software que actúa como compo?ente central dos sistema operativos, e que ten capacidade de control de todas as compo?entes do sistema.[1] é o primeiro elemento que se inicia no arrinque do hardware do computador, que xestiona o resto de procesos, e o que traballa directamente con estes. Como compo?ente básico dun sistema operativo, o kernel fornece a capa de abstracción de nivel máis baixa 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
[editar | editar a fonte]Hai catro grandes tipos de kernel:
- Kernel monolítico. Potente kernel que facilita a abstracción do hardware. Existe unha gran variedade de kernels monolíticos.
- Microkernel. Proporciona un pequeno conxunto de abstraccións simples do hardware, e usa as aplicacións chamadas servidores para ofrecer unha maior funcionalidade.
- Kernel híbrido. Parecido ao microkernel, excepto porque inclúe código adicional no espazo de núcleo para que se execute máis rapidamente.
- Exokernel. Non facilita ningunha abstracción, pero permite o uso de bibliotecas que proporcionan unha maior funcionalidade grazas ao acceso directo ou case directo ao hardware.
Microkernels
[editar | editar a fonte]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 das regras 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 microkernel. 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 microkernels son AIX, BeOS, L4, Mach, Minix, MorphOS, QNX, RADIOS, VSTa e GNU Hurd.
Aínda que Mach é o microkernel xeneralista máis co?ecido, desenvolvéronse outros microkernels con propósitos máis específicos. L3 desenvolveuse para demostrar que os microkernels non son necesariamente lentos. A familia de microkernels L4 é a descendente de L3, e unha das súas últimas implementacións, chamada Pistachio, permite executar GNU/Linux simultaneamente con outros procesos, en espazos de direccionamiento separados.
QNX é un sistema operativo que estivo dispo?ible desde principios dos 80, e ten un dese?o de microkernel moi minimalista. Este sistema conseguiu chegar ás metas do paradigma do microkernel 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.
Kernels monolíticos
[editar | editar a fonte]Frecuentemente prefírense os kernels monolíticos fronte aos microkernels debido ao menor nivel de complexidade que comporta o tratar con todo o código de control do sistema nun só espazo de direccionamiento.
A principios dos 90, os kernels monolíticos considerábanse obsoletos. O dese?o de Linux como un kernel monolítico no canto de como un microkernel deu lugar a unha famosa disputa entre Linus Torvalds e Andrew S. Tanenbaum[2]. Os argumentos de ambas as partes nesta discusión presentan algunhas motivacións interesantes.
Os kernels monolíticos adoitan ser máis fáciles de dese?ar correctamente, e polo tanto poden crecer máis rapidamente que un sistema baseado nun microkernel, pero hai casos de éxito en ambos os dous bandos. Os microkernels 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.
Notas
[editar | editar a fonte]- ↑ "Kernel". Linfo. Bellevue Linux Users Group. Consultado o 29 de abril de 2017.
- ↑ Existe un resumo desta disputa Arquivado 08 de xu?o de 2015 en Wayback Machine. (en inglés).