El
kernel del sistema operativo es como un controlador de tráfico aéreo en un
aeropuerto. El kernel determina que programa obtiene que pedazos de memoria,
arranca y mata a los programas, y se encarga de mostrar texto en un monitor.
Cuando una aplicación necesita escribir en disco, debe pedir al sistema
operativo que lo haga. Si dos aplicaciones piden el mismo recurso, el kernel
decide cuál de las dos lo recibe y en algunos casos, mata a una de las
aplicaciones para salvar el resto del sistema.
El
kernel también se encarga de cambiar entre aplicaciones. Un equipo tendrá un
pequeño número de procesadores CPU y una cantidad finita de memoria. El kernel
se encarga de descargar una tarea y cargar una nueva si hay más tareas que
CPUs. Cuando la tarea actual se ha ejecutado una cantidad suficiente de tiempo,
la CPU detiene la tarea para que otra pueda ejecutarse. Esto se llama multitarea
preferente. Multitarea significa que la computadora realiza varias tareas a la
vez, preferente significa que el kernel decide cuándo cambia el enfoque entre
las tareas. Con las tareas de conmutación rápida, parece que el equipo está
haciendo muchas cosas a la vez. Cada aplicación puede pensar que tiene un
bloque grande de memoria en el sistema, pero es el kernel que mantiene esta
ilusión, reasignando bloques más pequeños de memoria, intercambiando bloques de
memoria con otras aplicaciones, o incluso sacando al disco bloques que aún no
se hayan tocado.
Cuando
el equipo arranca, carga un pequeño trozo de código llamado gestor de arranque.
El gestor de arranque debe cargar el kernel y arrancarlo. Si estás más
familiarizado con sistemas operativos como Microsoft Windows y Apple OS X,
probablemente nunca ves al gestor de arranque, pero en el ambiente de UNIX es
generalmente visible por lo que puedes modificar la manera en la que tu equipo
arranque.
El
gestor de arranque carga el kernel de Linux y luego transfiere el control.
Linux continúa con el funcionamiento de los programas necesarios para hacer que
el equipo sea útil, tales como conexión a la red o abrir un servidor web.