Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Kernel MAC

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 6

Kernel

Palos Sánchez Leticia


Hernández Pontigo Erik Samuel
Aldan Ochoa Víctor Manuel
XNU… el kernel de la MAC
XNU es un núcleo que adquirió y desarrolló Apple para ser usado en

el sistema operativo Mac OS X. No es software libre, su licencia lo


marca como código abierto y forma parte del sistema operativo
Darwin. XNU es un acrónimo que significa X is Not Unix (X No es
Unix). Fue desarrollado originalmente por NeXT para el sistema
operativo NEXTSTEP. XNU era un núcleo híbrido que combinaba Mach
2.5 con componentes de BSD 4.3 y una API orientada a objetos para
escribir drivers llamada DriverKit.

Cuando Apple adquirió NeXT, actualizo los componentes Mach a la


versión 3.0, reemplazó los componentes BSD con código procedente


de FreeBSD y DriverKit fue sustituido por I/O Kit.


Diseño del núcleo
Como algunos otros núcleos modernos, XNU es un 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 una 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.

Componentes de XNU:
 Mach El "núcleo del núcleo" XNU. Realiza las operaciones críticas de
un microkernel, como son la gestión de procesador, la gestión de
memoria, la gestión de procesos y hilos, soporte para el reloj real-
time y el soporte para depuración del kernel.
Aunque el microkernel Mach 3.0 fue el núcleo en el que se basaron los

ingenieros de Apple, XNU no es en si un microkernel puro, ya que su


espacio de memoria está compartido con una parte de BSD y con
Kernel Extensions.
 BSD Una capa por encima de Mach que permite a los programadores
usar las conocidas llamadas al sistema POSIX de los sistemas UNIX.
Estas funciones nos permiten entre otras cosas la gestión de
procesos por ID, dar permisos a estos procesos, gestión de señales,
o el uso de sockets BSD. La principal ventaja que aporta BSD es que
permite migrar fácilmente aplicaciones UNIX a Mac OS X.
 Kernel Extensions Pequeños módulos C que extienden la
funcionalidad del núcleo de Mac OS X. Estos módulos se pueden
cargar y descargar dinámicamente.
Componentes de XNU:
 I/O Kit Proporciona un framework C++ para el desarrollo de drivers de
dispositivos mediante kexts. En concreto, usa un subconjunto del
lenguaje C++ llamado Embedded C++. Un I/O Kit driver es una
kext que, en vez de estar programada en C, está programada
enEmbeded C++.

El I/O Kit está formado por tres componentes principales:


◦ Families. Define una colección de abstracciones software


comunes a todos los dispositivos de una categoría. Apple
proporciona familias para protocolos como USB, SCSI y FireWire,
así como para dispositivos de almacenamiento y frame buffers.
◦ Nubs. Es un objeto que representa un dispositivo o servicio lógico
(un bus, un disco, una partición de disco o el teclado).
◦ Drivers. Es un objeto que se encarga de gestionar una
determinada pieza hardware, implementando las operaciones
de E/S para ese dispositivo. Mac OS X ya proporciona una
colección de drivers que gestionan los dispositivos más
comunes, como puedan ser discos duros o teclados.

Componentes de XNU:
 File System El sistema de ficheros de XNU se basa en el diseño de
VFS (Virtual File System), el cual se caracteriza porque nos permite
añadir fácilmente nuevos sistemas de ficheros, así como añadir
capas a un sistema de ficheros existentes.

Mac OS X viene con los sistemas de ficheros HFS, HFS+, UFS (Universal

File System) y ISO 9660


 Networking Mac OS X lleva implementada la pila de red en el núcleo,


el cual también tiene un sistema extensible que nos permite añadir
nuevos protocolos llamado NKE (Network Kernel Extensions).

También podría gustarte