XNU
# XNU

XNU è un kernel ibrido, basato su un'unione del codice del microkernel Mach e del kernel monolitico BSD, utilizzato nel sistema operativo macOS e nel sistema operativo open source Darwin, entrambi sviluppati per Apple Inc. Il nome XNU è un acronimo ricorsivo che sta per XNU's Not Unix ("XNU non è Unix").

Le funzioni primitive e i servizi fondamentali del kernel XNU si basano su microkernel Mach 3.0. Apple ha modificato ed esteso Mach per raggiungere la funzionalità e gli obiettivi prestazionali di Mac OS X.

Originariamente, Mach 3.0 è stato concepito come un microkernel semplice ed estensibile. In questo modo, riesce ad eseguire il nucleo del sistema operativo come un processo separato, il che permette una grande flessibilità (si possono eseguire svariati sistemi operativi in parallelo sul microkernel Mach), ma questo riduce le prestazioni a causa delle traduzioni tra Mach e gli altri sistemi operativi.

Poiché il comportamento del sistema è conosciuto in anticipo, le funzionalità di BSD con Mac OS X sono state inserite nel microkernel con Mach. Il risultato è una combinazione dei vantaggi di Mach e BSD. La parte del microkernel Mach è responsabile del gestore della memoria, della comunicazione tra processi e del sistema input/output e permette protezione della memoria, pre-emptive multitasking e una gestione avanzata della memoria virtuale. La parte del kernel BSD gestisce gli utenti e i permessi, contiene lo stack di rete, offre un virtual file system (VFS) e osserva la compatibilità con le specifiche POSIX.

