Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SISTEMAS OPERATIVOS
“KERNEL”
UAEH – Escuela Superior de Tlahuelilpan. Ex Hacienda de San Servando, s/n. Col. Centro, C.P. 42780.
Tlahuelilpan, Hgo. Tel. (01-771) 717-2000, Ext. 5502. E-mail: ing_software@uaeh.edu.mx
INDICE
INDICE..............................................................................................ii
INTRODUCCION.............................................................................3
¿Qué es Kernel?...............................................................................4
DESARROLLO.................................................................................5
Funciones del Kernel.......................................................................5
Versiones de Kérneles.....................................................................6
Estructura Kernel.............................................................................7
Tipos de Kernel................................................................................8
El Kernel de Windows.....................................................................9
El Kernel de Linux.........................................................................10
El Kernel de Android.....................................................................11
El Kernel de iOS............................................................................12
CONCLUSION................................................................................13
Bibliografía.......................................................................................13
ii
INTRODUCCION
Hoy en día todos conocen qué es Android, y es que actualmente tiene el 82% de mercado frente al resto de
sistemas operativos para móviles y tabletas. El sistema operativo es el conjunto de todo el software que hace
funcionar un dispositivo. Sin embargo, aunque el sistema operativo es importante, existe un aspecto en el que
no se suele reparar, el kernel.
Kernel se puede traducir como núcleo, y en definitiva es eso, el núcleo de un terminal. Es el que se encarga de
realizar las comunicaciones entre hardware y software, y administrar sus recursos. Entonces, se puede concluir
que, es uno de los aspectos más importantes para tener en cuenta en un dispositivo. Se trata de una pieza
fundamental en el rendimiento del teléfono, y es donde se encuentran los controladores de la pantalla, cámara,
bluetooth, Wi-Fi, audio, procesador, etc.
En la imagen se ven las capas que forman la arquitectura de Android. El kernel se usa para que los componentes
de Android, las bibliotecas y las aplicaciones funcionen sobre un entorno que no dependa del hardware.
Android tiene como su núcleo a Linux, y por muchas cabezas puede pasar la pregunta: ¿Pero Linux no es otro
sistema operativo? Pues la respuesta es no, Linux es solamente el núcleo que usan otros sistemas operativos
para funcionar. Linux es un kernel libre y abierto, es así como cualquiera que quiera desarrollar un sistema
operativo puede usarlo como base.
3
¿Qué es Kernel?
Todo dispositivo se compone de dos grandes partes, el hardware (los componentes, las piezas) y el software (el
sistema operativo). Del óptimo entendimiento entre ambos depende el funcionamiento del dispositivo. Pues
bien, el kernel puede ser definido como el intermediario entre el hardware y el software, en tanto que el sistema
operativo envía una serie de órdenes que son recibidas por el kernel quien a su vez las envía al componente de
harware que corresponda con el fin de que sean ejecutadas. Por lo tanto, el kernel podría ser definido también
como el epicentro del sistema operativo, pues es un software que forma parte del él.
Además, existen varios tipos de kernel. El sistema operativo Android hace uso del Linux Kernel con soporte a
largo plazo (LTS) que es la última versión más estable, mientras que el GNU (o GNU/Linux) es el segundo más
popular y se suele utilizar con su última versión liberada (“vainilla”), que no es la más estable. Por ello puede
parecer que Android va más atrasado, pero no es así, simplemente prefiere la última versión estable.
4
DESARROLLO
Funciones del Kernel
Ahora sabemos que el kernel permite la comunicación entre el software y los dispositivos físicos de un
ordenador, tanto el hardware interno como la placa base, procesador, memoria y unidades de almacenamiento,
hasta aquellos que se consideran periféricos, como el ratón, teclado, monitor, llaves USB, cámaras, teléfonos,
etc.}
Además de esto, el núcleo kernel también debe hacer una gestión de la memoria RAM. La memoria debe ser
utilizada de manera eficiente, dividiéndola entre los distintos servicios y aplicaciones para que todo funcione de
forma fluida, ya que un sistema operativo actual es ‘multitarea’, por lo que se ejecutan todo el tiempo varias
aplicaciones y servicios al mismo tiempo.
5
Versiones de Kérneles
La principal característica del Kernel de Windows NT es que es bastante modular, y está basada en dos capas
principales, la de usuario y la de kernel. El sistema utiliza cada una para diferentes tipos de programa. Por
ejemplo, las aplicaciones se ejecutan en el modo usuario, y los componentes principales del sistema operativo
en el modo kernel. Mientras, la mayoría de los drivers
suelen usar el modo kernel, aunque con excepciones.
6
Estructura Kernel
Cuál es la estructura de kernel
- El sistema de archivos virtual o conmutador de sistema de archivos virtual (vfs, virtual filesystem switch).
Los kernels de Windows NT o Minix son de tipo micro-kernel, caracterizado porque proveen al sistema de un
estado mínimo necesario de funcionalidad, cargando el resto de funciones necesarias en procesos autónomos e
independientes unos de otros, comunicándose con este micro-kernel a través de una interfaz bien definida. Este
tipo de estructura es más fácil de mantener y el desarrollo de nuevos componentes es mucho más simple, dando
a su vez una mayor estabilidad al sistema. Por otro lado, debido a la estructura rígida del interfaz, estos tipos de
kernel son mucho más complicados de reestructurar, y además, debido a las arquitecturas del hardware actual,
el proceso de intercomunicación dentro del micro-kernel es mucho más que una simple llamada, por lo que hace
que esta estructura sea más lenta que los kernels de tipo monolíticos o macro-kernels.
En el caso de Linux, la gran parte del kernel está escrito en C, existiendo también instrucciones en ensamblador,
aunque estas últimas se usan mayoritariamente en los procesos de arranque y en el control de co-procesador. A
continuación, se muestra una tabla con la cantidad de lineas en C y ensamblador que se usan aproximadamente
en la versión 2.0 del kernel de Linux, el cual consta de unas 470.000 lineas de código (la versión 1.0 constaba
“únicamente” de 165.000 lineas):
7
Tipos de Kernel
No necesariamente se necesita un núcleo para usar una computadora. Los programas pueden cargarse y
ejecutarse directamente en una computadora «vacía», siempre que sus autores quieran desarrollarlos sin usar
ninguna abstracción 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 tenía que reiniciar y reconfigurar la
computadora cada vez.
Con el tiempo, se empezó a dejar en memoria (aún entre distintas ejecuciones) pequeños programas auxiliares,
como el cargador y el depurador, o se cargaban desde memoria de sólo lectura. A medida que se fueron
desarrollando, se convirtieron en los fundamentos de lo que llegarían a ser los primeros núcleos de sistema
operativo.
8
El Kernel de Windows
En la década de los noventa Microsoft estaba basando sus sistemas operativos en los kernel Windows 9x, donde
el código básico tenía muchas similitudes con MS-DOS. De hecho necesitaba recurrir a él para poder operar.
Paralelamente, Microsoft también estaba desarrollando otra versión de su sistema dirigido a los
servidores llamada Windows NT, que nació el 26 de julio de 1993.
La principal característica del Kernel de Windows NT es que es bastante modular, y está basada en dos capas
principales, la de usuario y la de kernel. El sistema utiliza cada una para diferentes tipos de programa. Por
ejemplo, las aplicaciones se ejecutan en el modo usuario, y los componentes principales del sistema operativo
en el modo kernel. Mientras, la mayoría de los drivers suelen usar el modo
kernel, aunque con excepciones.
Es por eso que se refieren a él como Kernel híbrido, pero sobre todo también
porque permite tener subsistemas en el espacio del usuario que se
comunicaban con el kernel a través de un mecanismo de IPC.
Cuando ejecutas una aplicación, esta accede al modo usuario, donde Windows
crea un proceso específico para la aplicación. Cada aplicación tiene su
dirección virtual privada, ninguna puede alterar los datos que pertenecen a otra
y tampoco acceder al espacio virtual del propio sistema operativo. Es por lo
tanto el modo que menos privilegios otorga, incluso el acceso al hardware está
limitado, y para pedir los servicios del sistema las aplicaciones tienen que
recurrir a la API de Windows.
El modo núcleo en cambio es ese en el que el código que se ejecuta en él tiene acceso directo a todo el
hardware y toda la memoria del equipo. Aquí todo el código comparte un mismo espacio virtual, y puede
incluso acceder a los espacios de dirección de todos los procesos del modo usuario. Esto es peligroso, ya que si
un driver en el modo kernel toca lo que no debe podría afectar al funcionamiento de todo el sistema operativo.
Este modo núcleo está formado por servicios executive, como el controlador de caché, el gestor de
comunicación, gestor de E/S, las llamadas de procedimientos locales, o los gestores de energía y memoria entre
otros. Estos a su vez están formados por varios módulos que realizan tareas específicas, controladores de
núcleo, un núcleo y una Capa de Abstracción del Hardware o HAL
La principal diferencia entre el Kernel de los sistemas operativos Windows y el de Linux está en su filosofía. El
desarrollado por el equipo de Linus Torvalds es de código abierto y cualquiera puede cogerlo y modificarlo,
algo que le sirve para estar presente en múltiples sistemas operativos o distros GNU/Linux. El de Microsoft en
cambio es bastante más cerrado, y está hecho por y para el sistema operativo Windows.
Sin embargo, al ser Microsoft una empresa y su sistema operativo el que domina el escritorio, le cuesta menos
que se asocien para trabajar con ellos implementando controladores. Eso hace, por ejemplo, que en temas de
compatibilidad de hardware Windows vaya siempre un poco por delante, por lo menos en aspectos clave como
el de los drivers de las tarjetas gráficas.
[ CITATION Yub17 \l 2058 ]
9
El Kernel de Linux
El Kernel de Linux, es el corazón del sistema operativo. Sin el Kernel, sencillamente no podríamos realizar
ninguna tarea, ya que se encarga principalmente de que el software y el Hardware de nuestro PC funcionen
correctamente y puedan interactuar entre ellos.
Administrar la memoria RAM, para que puedan funcionar todos los programas y procesos en ejecución.
Administrar el tiempo de procesador, que es utilizado por los procesos en ejecución.
Gestionar el acceso y uso de los diferentes periféricos conectados al ordenador.
10
El Kernel de Android
La realidad es que esta parte de nuestro smartphone es la que hace que funcionen correctamente todos sus
componentes. De hecho, en lo que respecta a modificación los usuarios root, suelen jugar con este apartado para
intentar sacarle más provecho a su smartphone.
l Kernel, también conocido núcleo, es una parte fundamental del sistema operativo. En concreto, el Kernel es el
encargado de comunicar al software con el hardware de un dispositivo. Una de sus principales funciones es
traducir lo que el software pide y comunicárselo al hardware para que el sistema operativo pueda funcionar.
Estas órdenes son traducidas mediante los que conocemos como drivers, que básicamente es un “libro” con las
instrucciones para un determinado hardware. De esta manera, cámara, USB, altavoz, Wi-Fi o carga, serían
controlados por el Kernel, a través del driver.
Por esta razón, algunos de los usuarios roots que creen que se le puede sacar más partido a su smartphone,
crean custom Kernels que únicamente pueden ser instalados con un custom recovery y los suben a internet con
el fin de que otros usuarios se beneficien de sus mejoras. De hecho, hace unos días os hablamos de Kernel
Adiutor en las mejores aplicaciones para el root.
Así mismo, las compañías saben los puntos fuertes y débiles de sus smartphones y por eso deberíamos de tener
cuidado modificando nuestro Kernel, ya que podríamos inutilizar nuestro smartphone.
11
El Kernel de iOS
Como algunos núcleos modernos, XNU tiene una funcionalidad equivalente a un núcleo híbrido y tiene
características tanto de los núcleos monolíticos como de los micronúcleos. Intenta hacer un mejor uso de las dos
tecnologías, como la capacidad de pasar mensajes de los micronúcleos, permitiendo un mayor modularidad y
que grandes porciones del SO se beneficien de la protección de memoria. Asimismo, permite mantener la
velocidad de los núcleos monolíticos para desempeñar determinadas tareas.
Actualmente, XNU funciona en procesadores basados en ARM, x86, x86-
64 y PowerPC, tanto en modelos de un único procesador como
modelos SMP.
El corazón de XNU, Mach, fue originalmente concebido como un
micronúcleo. Como tal, es capaz de hacer funcionar la base de un sistema
operativo como procesos separados, lo que permite una mayor flexibilidad
(se podrían ejecutar varios sistemas operativos en paralelo sobre la base de
Mach), pero a menudo reduce el rendimiento debido al tiempo consumido
para cambiar del contexto kernel al contexto usuario, y al trabajo que se
deriva de mapear o copiar mensajes entre el espacio de direcciones del
micronúcleo y el de los demonios de servicios. Con Mac OS X, los
diseñadores han intentado hacer más sencillas algunas tareas, y las
funcionalidades de BSD se han implementado en espacio privilegiado
junto con Mach. El resultado es una combinación de Mach y un clásico núcleo BSD, con algunas ventajas y
desventajas de ambos.
GNU Hurd también hace uso de Mach, sin embargo, toda la funcionalidad aparte de Mach que XNU
implementa en espacio privilegiado, Hurd lo hace en espacio de usuario (los servidores o) junto con la
biblioteca de tiempo de ejecución (la biblioteca del lenguaje C). GNU Hurd es fiel a un diseño de micronúcleo.
12
CONCLUSION
Con esta práctica aprendí sobre la arquitectura del Kernel de distintos Sistemas Operativos. Se puede observar
que básicamente en cualquier Sistema Operativo el Kernel es el encargado de administrar todos los procesos
que ocurren en el sistema.
Bibliografía
culturacion. (28 de 04 de 2020). culturacion. Obtenido de https://culturacion.com/que-es-y-que-funcion-tiene-
el-kernel-de-linux/
EcuRed. (28 de 04 de 2020). EcuRed. Obtenido de
https://www.ecured.cu/Kernel#Arquitectura_del_k.C3.A9rnel_Linux
Espinosa, A. (28 de 04 de 2020). ProAndroid. Obtenido de https://www.proandroid.com/que-es-el-kernel-
como-afecta-movil-android/
FM, Y. (16 de Enero de 2017). genbeta. Obtenido de https://www.genbeta.com/a-fondo/como-es-el-kernel-de-
windows-y-cuales-son-sus-diferencias-con-el-de-linux
Gamarra, G. (04 de Enero de 2018). profesionalreview. Obtenido de
https://www.profesionalreview.com/2018/01/04/que-es-el-kernel-y-como-funciona/
Wikipedia. (13 de Septiembre de 2019). Wikipedia. Obtenido de https://es.wikipedia.org/wiki/XNU
13