Que Es Un Kernel
perliixz17 de Febrero de 2012
949 Palabras (4 Páginas)1.263 Visitas
¿Que es un KERNEL?
En informática, un núcleo o kernel es un software que constituye la parte más importante del sistema operativo. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma más básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos 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 al programador.
El Kernel
El kernel de Linux es monolítico. Esto presenta una serie de problemas ya que en un núcleo con estas características, hay partes de él, dispositivos principalmente, que no vamos a utilizar y no hacen más que utilizar recursos. Por contra ofrecen una mayor rapidez y eficacia con respecto a los sistemas operativos del tipo micro kernel.
Sin embargo, una solución alternativa a este problema; los módulos. Estos módulos son trozos de código que pueden ser enlazados dinámicamente cuando se necesiten. Paralelamente también pueden ser desvinculados cuando no se los necesite.
Este sería un esquema general de la estructura interna del núcleo:
Básicamente, estas son sus tareas:
1. Interactuar con los dispositivos hardware del sistema: Discos, Tarjetas de Red, de Sonido, etc.
2. Administrar la memoria (y otros recursos),
3. Administrar los procesos (creación, destrucción y planificación),
4. Mantener el/los sistema/s de ficheros,
Interacción del núcleo con los dispositivos de hardware
La comunicación entre el sistema operativo y los componentes hardware del sistema se realiza mediante el uso de device drivers o controladores de dispositivos.
Uno de los propósitos del sistema operativo es esconder las peculiaridades del hardware a los usuarios. En definitiva, un Driver de dispositivo es un software que administra los controladores de hardware de los distintos dispositivos físicos del sistema. Estos drivers están en el núcleo de Linux como rutinas de manejo de hardware a bajo nivel. En Linux, cada dispositivo se representa como un archivo. Existen muchos tipos de drivers en Linux, pero todos cumplen una serie de características comunes:
Son código del kernel, pertenecen al propio núcleo y proveen al núcleo de una interfaz estándar para manejar distintos tipos de dispositivos;
Linux soporta tres tipos de dispositivo de hardware: de carácter, de bloque y de red. Los de carácter son escritos sin hacer uso de un buffer. Los de bloque solo pueden ser leídos y escritos en un múltiplo de tamaño de bloque; y permiten acceso aleatorio. Los drivers de red son accedidos mediante el interfaz de sockets BSD.
Los drivers también hacen uso de los servicios del núcleo como reservar memoria, manejo de interrupciones, y el uso de las colas de ejecución.
Administración de memoria
El administrador de memoria del núcleo de Linux se encarga de la asignación de memoria para los procesos del núcleo, del sistema y del usuario; manteniendo una memoria virtual para los procesos de usuario, con mapeado de memoria de intercambio (swapping). También asigna la memoria compartida para la comunicación entre los procesos.
La memoria usada por el núcleo y la de los programas se maneja de formas distintas.
Para la memoria del núcleo, el administrador reserva memoria según se necesitan cargar módulos o se necesita
...