XNU - XNU
Udvikler | Apple Inc. |
---|---|
Skrevet i | C , C ++ |
OS familie | Unix-lignende , Unix |
Arbejdstilstand | Nuværende |
Kildemodel | Open-source |
Første udgivelse | December 1996 |
Depot | |
Tilgængelig i | Engelsk, andre |
Platforme | Nuværende: x86-64 , 64-bit ARM , 32-bit ARM (32-bit ARM-understøttelse er lukket kilde) Historisk: PowerPC (32-bit og 64-bit), IA-32 |
Kernel type | Hybrid |
Licens | Apple Public Source License 2.0 |
Forud af | Mach , Nukernel |
Officiel hjemmeside | opensource |
XNU er computerens operativsystem (OS) kerne udviklet på Apple Inc. siden december 1996 til brug i Mac OS X (nu macOS ) operativsystem og udgivet som gratis og open source software som en del af Darwin OS, som er grundlag for Apple TV Software , iOS , iPadOS , watchOS og tvOS OS'er. XNU er en forkortelse af X er Not Unix .
Oprindeligt udviklet af NeXT til NeXTSTEP -operativsystemet, XNU var en hybridkerne afledt af version 2.5 af Mach -kernen udviklet ved Carnegie Mellon University , selv en efterkommer af 4.3BSD og inkorporerede hovedparten af 4.3BSD -kernen sammen med en applikationsprogrammering interface (API) i Objective-C til skrivning af drivere med navnet Driver Kit.
Efter at Apple erhvervede NeXT, blev kernen opdateret med kode, der stammer fra OSFMK 7.3 fra OSF , og FreeBSD -projektet, og Driver Kit blev erstattet med en C ++ API til skrivning af drivere ved navn I/O Kit.
Kernel design
XNU er en hybrid kerne , som indeholder træk fra begge monolitisk kerne og microkernels , der forsøger at gøre bedst mulig brug af begge teknologier, såsom besked passerer evne microkernels muliggør større modularitet og større dele af OS til gavn af beskyttelse hukommelse , og fastholdelse hastigheden af monolitiske kerner til nogle kritiske opgaver.
Fra 2021 kører XNU på ARM64- og x86-64- processorer, både én processor og symmetrisk multiprocessing (SMP) -modeller. PowerPC -understøttelse blev fjernet fra versionen i Mac OS X 10.6 . Understøttelse af IA-32 blev fjernet fra versionen i Mac OS X 10.7 ; understøttelse af 32-bit ARM blev fjernet fra versionen i iOS 11 .
Mach
Grundlaget for XNU -kernen er en stærkt modificeret (hybrid) Open Software Foundation Mach -kerne ( OSFMK ) 7.3. Som sådan er det i stand til at køre kernen i et operativsystem som adskilte processer, hvilket giver en stor fleksibilitet (det kan køre flere operativsystemer parallelt over Mach-kernen), men dette reducerer ofte ydeevnen på grund af tidskrævende kerne/ brugertilstands kontekstskifte og overhead, der stammer fra kortlægning eller kopiering af meddelelser mellem adresserummet i kernen og servicedemonernes. Med macOS har designerne forsøgt at strømline nogle opgaver, og derfor blev BSD -funktioner indbygget i kernen med Mach. Resultatet er en stærkt modificeret (hybrid) OSFMK 7.3 -kerne, Apple -licenseret OSFMK 7.3, som er en mikrokerne, fra OSF. OSFMK 7.3 inkluderer gældende kode fra University of Utah Mach 4 -kernen og fra de mange Mach 3.0 -varianter, der er forgafflet fra den originale Carnegie Mellon University Mach 3.0 -mikrokerne.
BSD
Den Berkeley Software Distribution (BSD) del af kernen giver den bærbare Operating System Interface ( POSIX ) application programming interface (API, BSD systemkald), den Unix procesmodel toppen Mach opgaver, grundlæggende sikkerhedspolitikker, bruger- og gruppe-id'er, tilladelser, netværket protokol stakken (protokoller), det virtuelle filsystem kode (herunder en filsystem uafhængig journal lag), flere lokale filsystemer såsom Hierarchical File System (HFS, HFS Plus (HFS +)) og Apple File System (APFS), den Netværksfilsystem (NFS) -klient og -server, kryptografiske rammer, UNIX System V interprocess-kommunikation (IPC), revisionsundersystem, obligatorisk adgangskontrol og nogle af de låsende primitiver. BSD -koden i XNU er senest blevet synkroniseret med den fra FreeBSD -kernen. Selvom meget af det er blevet ændret betydeligt, forekommer der stadig kodedeling mellem Apple og FreeBSD -projektet fra 2009.
K32/K64
XNU i Mac OS X Snow Leopard , v10.6, ( Darwin version 10) findes i to varianter, en 32-bit version kaldet K32 og en 64-bit version kaldet K64 . K32 kan køre 64-bit applikationer i brugerlandet . Det nye i Mac OS X 10.6 var muligheden for at køre XNU i 64-bit kernerum . K32 var standardkernen for 10.6 Server, når den blev brugt på alle maskiner undtagen Mac Pro- og Xserve- modeller fra 2008 og fremefter og kan køre 64-bit applikationer. K64 har flere fordele i forhold til K32:
- Kan administrere mere end 32 GB RAM, da hukommelseskortet vil forbruge et uforholdsmæssigt stort område af 32-bit kernerummet.
- Cache-bufferstørrelser kan være større end hvad 32-bit kernerummet tillader, hvilket muligvis øger I/O-ydelsen.
- Ydeevnen øges ved brug af højtydende netværksenheder eller flere grafikprocessorenheder (GPU'er), da kernen kan kortlægge alle enhederne i 64-bit plads, selvom flere har meget store direkte hukommelsesadgang (DMA) buffere.
Opstart, mens du holder 6 og 4 nede, tvinger maskinen til at starte K64 på maskiner, der understøtter 64-bit kerner. K64 kører 32-bit applikationer, men det kører ikke 32-bit kerneudvidelser (KEXT'er), så disse skal portes til K64 for at kunne indlæses.
XNU i OS X Mountain Lion , v10.8, og senere giver kun en 64-bit kerne.
I/O -sæt
I/O Kit er enhedsdriverrammen , skrevet i et undersæt af C ++ baseret på Embedded C ++ . Ved hjælp af sit objektorienterede design leveres funktioner inden for alle førerklasser inden for rammen, der hjælper enhedsdrivere med at blive skrevet på kortere tid og kode. I/O-kittet er multi-threaded, symmetrisk multiprocessing (SMP) -sikkert og giver mulighed for hot-pluggbare enheder og automatisk, dynamisk enhedskonfiguration.
Mange drivere kan skrives til at køre fra brugerplads , hvilket yderligere forbedrer systemets stabilitet. Hvis en user-space-driver går ned, vil den ikke nedbryde kernen. Men hvis en kernel-space-driver går ned, vil den nedbryde kernen. Eksempler på kernel-space-drivere omfatter diskadapter- og netværksadapterdrivere, grafikdrivere, drivere til Universal Serial Bus ( USB ) og FireWire- hostcontrollere og drivere til virtuel maskinsoftware som VirtualBox , Parallels Desktop til Mac og VMware Fusion .
Se også
- Kerne (operativsystem)
- A/UX
- mkLinux
- OSF/1
- Darwin (operativsystem) - open source -operativsystem udgivet af Apple, Inc., med XNU som kerne
- macOS - operativsystem udgivet af Apple, Inc., med XNU som kerne
Referencer
- Loepere, Keith. "MK ++: A High Performance, High Assurance Microkernel" .
eksterne links
- Officielt websted , i Apple Open Source Browser
- darwin-xnu på GitHub , officielt spejl
- XNU: Kernen ved Wayback Machine (arkiveret 2. juni 2020) - en oversigt over komponenterne i XNU, skrevet af Amit Singh i december 2003
- Inde i Mac OS X -kernen - "Denne tale har til hensigt at rydde op i forvirringen ved at præsentere detaljer om Mac OS X -kernen"