Xnu

XNU är den operativsystemkärna som Apple förvärvade och utvecklade för att använda i sitt operativsystem Mac OS och har släppts som fri programvara och som öppen källkod som en del av Darwin.

Beteckningen "XNU" är en akronym för "X is not Unix" (X är inte Unix)

Ursprungligen utvecklades XNU av NeXT för deras operativsystem Nextstep. XNU var en monolitisk kärna som kombinerade version 2.5 av Mach med komponenter från version 3.4 av BSD och Driver Kit, ett objektorienterat API för att skriva drivrutiner.

Efter att NeXT hade köpts upp av Apple uppgraderades Mach-komponenten till 3.0 som var en mikrokärna, men Apple lade stora delar i samma adressutrymme av prestandaanledning så det är numera en hybridkärna, BSD-komponenterna uppgraderades med kod från FreeBSD-projektet, och Driver Kit ersattes av ett API som hette I/O Kit, baserat på C++.

Design av operativsystemskärnan

Precis som många andra moderna operativsystemskärnor är XNU en hybridkärna som innehåller funktioner från både mikrokärnor och monolitiska kärnor. På så vis kan man utnyttja en del fördelar och undvika en del nackdelar som finns i dessa båda teknologier.

Mach uppfattades från början som en enkel mikrokärna eftersom den kan köra ett operativsystems kärna som en separat process vilket tillåter flexibilitet (man kunde köra flera operativsystem parallellt ovanpå Mach-kärnan) men samtidigt försämrades prestandan. Därför valde Mac OS X utvecklare att implementera funktionalitet från BSD i kärnan tillsammans med Mach. Resultatet blev då alltså en kombination av Mach:s och BSD:s kärna med några fördelar och nackdelar från vardera.

XNU kan köras på Intel- och AMD-baserade datorer (med x86-processorer), såväl som på PowerPC-baserade och ARM-baserade datorer.

Mach

Kärnan av XNU operativsystemskärnan är Mach, och den tillför trådar, processer, hantering av virtuellt minne, väldigt mjukt realtidsstöd, skyddat minne, och konsol-I/O. Mach-komponenten gör det också möjligt för operativsystemet att ha binärer för flera skilda processorarkitekturer inuti samma fil – såsom x86 och PowerPC – eftersom den använder det binära formatet Mach-O.

En variant av Mach (GNU Mach) användes som utgångspunkt för Hurd-kärnan.

BSD

BSD-komponenterna av operativsystemskärnan tillför POSIX API, Unix processmodell ovanpå Machs arbetsuppgifter, grundläggande säkerhetspolicier, användare och grupp-id, tillstånd, nätverksstacken, kod till virtuellt filsystem, kryptografisk struktur, System V IPC och några låsfunktioner. BSD-koden som finns i XNU kom ursprungligen från FreeBSD:s operativsystemskärna. Denna kod har emellertid förändrats högst markant sedan starten, och Apple har tidigare fört en aktiv dialog med FreeBSD Foundation under vidareutvecklingen av XNU.

I/O Kit

I/O Kit beskriver strukturen över drivrutiner. Det är skrivet i C++ och sålunda objektorienterat till sin design, vilket gör att drivrutiner kan skrivas snabbare och med mindre kod än annars. I/O Kit är multi-trådat och SMP-säkert, samt tillåter automatisk, dynamisk enhetskonfiguration.

Många drivrutiner kan skrivas så att de körs från användarrymden, vilket ytterligare ökar stabiliteten av systemet: om en drivrutin kraschar i användarrymden så kommer detta inte medföra att själva operativsystemskärnan också kraschar.

Skydd av delade tillgångar

För att kunna köras säkert på maskiner med flera processorer så måste filer och datastrukturer särskiljas, så att inte trådar eller processer samtidigt försöker ändra samma källa. Exempel på metoder som kan användas för förhindra detta är atomiska operationer, spinlocks, kritiska sektioner, mutexer och särskiljande symboler.

Referenser

Externa länkar

Tags:

Xnu Design av operativsystemskärnanXnu MachXnu IO KitXnu Skydd av delade tillgångarXnu ReferenserXnu Externa länkarXnuAkronymApple IncDarwin (operativsystem)Fri programvaraMac OSOperativsystemOperativsystemkärnaUnixÖppen källkod

🔥 Trending searches on Wiki Svenska:

Ashley JuddIkeaSture BergwallViktor GyökeresHP SauceBjörn BorgTomas MitellMalte Gårdinger11 september-attackernaVäxjöLa Storia – ett krigsödeAmanda BynesCameron DiazGlimåkraPrins Carl PhilipHanna FribergMordet på Lisa HolmSvenskspråkiga WikipediaJulian AssangeCasino CosmopolKambodjaJohn F. KennedyArtificiell intelligensSrinivasa Aiyangar RamanujanMattias LöwBohemian GroveGenerationFreddie MercuryRafael BenítezSydafrikaThe CardigansKvalomgångarna i Uefa Champions League 2016/2017AustralienGöta kanalMora IKSibille AttarElin NordegrenSingaporeLista över fobierNorra kronanFilippinernaMinneapolisNikita UgglaAbraham LincolnRysslandDymmelonsdagHeliga BirgittaIslandLista över Sveriges statsministrarGustav II AdolfIngrid CarlqvistLista över Europas länder i storleksordningPingstMadeleine WestinLev TrotskijRocco SiffrediAndrev WaldenCarl von LinnéNigeriaPåskdagenNäbbdjurA Serbian FilmHöger- och vänstertrafikAlfred NobelUlrika EleonoraFridolina RolföPeter L. AbrahamssonJoakim LundellStockholmTeddi och FreddiWallenbergLista över clearingnummer till svenska bankerFelipe VI av SpanienLennart SöderbergSacha Baron CohenSystembolagetPriscilla PresleyHugh HefnerPompelmus🡆 More