Exokernel

I computing, udtrykket exokernel henviser til et system skabt til forskning på Massachusetts Institute of Technology på OpenBSD og lignende operativsystemer. Dens formål er at skabe en slags lag af software til andre virtuelle systemer.

Motivation

Traditionelt blev designere forsøger at gøre usynlige kerne hardware ressourcer til applikationer, der kræver hardware interagerer med nogle konceptuelle måde. Disse modeller omfatter filsystemer til disk opbevaring, virtuelle adresserum, Skedulere til styring opgaver og stikdåser til netværkskommunikation. Disse abstraktioner hardware gjort det lettere at skrive programmer i almindelighed, men begrænset ydeevne og undertrykt den eksperimentering af nye abstraktioner. En sikkerhed-orienteret program kan have behov for et filsystem, der ikke efterlader gamle data på disken, mens en pålidelighed-orienteret anvendelse ville brug for et system, som du lagrede, at data recovery i tilfælde af svigt.

Man kunne vælge helt at fjerne kernen og programmet direkte til hardwaren, men så hele maskinen skal være dedikeret til en enkelt opgave. Det kan nå til enighed løsning: Lad kernen til at afsætte de fysiske ressourcer af maskinen til at flere programmer, og lad hvert program beslutte, hvad de skal gøre med disse ressourcer. Programmet kunne forbinde et bibliotek operativsystem, der implementerer fælles abstraktioner, eller kunne gennemføre sine egne abstraktioner. Exokernel teoretisk-baseret system kunne give flere forskellige typer libOSes og operativsystem kunne køre under samme exokernel.

Oversigt

Ideen bag exonúcleos er at tvinge udviklere til at bruge færrest antal abstraktioner, der giver dem mulighed for at gøre så mange beslutninger som muligt på hardware abstraktioner. De exonúcleos er små, da deres funktionalitet er begrænset til at beskytte og multiplexing af ressourcer, som er meget enklere end implementeringer besked passerer abstraktioner og hardware af traditionelle monolitiske kerner.

Programmer kan anmode om specifikke hukommelse adresser, disk blokke mv Kernen kun sikrer, at ressourcen er gratis og giver programmet til at bruge. Dette lave niveau adgang til hardware tillader programmøren at implementere tilpassede abstraktioner og udelade unødvendige, ofte bidrage til en bedre anvendelse ydeevne. Dette giver også mulighed for programmører til at vælge, hvilket niveau af abstraktion ønsker.

De exonúcleos kan ses som en anvendelse af princippet om "ende til ende" til operativsystemet, i den forstand, at de ikke tvinger et program til at sætte sine abstraktioner i forskellige lag af, som blev designet med forskellige krav i tankerne. For eksempel MIT-projektet exokernel, Cheetah web server gemmer IP-pakker præformateret disk, og kernen sikrer pålidelige aflæsninger undgå diskadgang og utilladelige skrifter, men hvordan drevet operationen indvindes overlader valget af de biblioteker, ansøgningen bruger.

MIT exokernel

MIT udviklet to exokernel baserede operativsystemer, der beskæftiger to kerner: Aegis, en proof of concept med understøttelse begrænset opbevaring og XOK, som anvendt begrebet exokernel mere direkte. En væsentlig idé om exokernel MIT systemet var, at operativsystemet skal fungere som en løfteraket for små programmer fra programmet, som kun er underlagt kravet om, at exokernel skal kunne sikre, at den hardware anvendes sikkert.

Design

Den består af 3 lag, lag exokernel den LIBOS lag og applikationslaget, der kører på LIBOS. MIT exokernel styrer hardwaren på følgende måde:

CPU

Kerneprocessoren ressourcer repræsenterer en tidslinje, hvor programmerne kan placeres intervaller. Et program kan give resten af ​​hans tidsvindue til et andet program. Kernen meddeler programmer CPU begivenheder såsom interrupts, hardware undtagelser og i starten eller slutningen af ​​et tidsinterval. Hvis et program tager for lang tid at håndtere en begivenhed, vil kernen straffe i de efterfølgende tildelinger af tid, og i ekstreme tilfælde kernen kan afbryde programmet.

Hukommelse

Kernen allokerer fysisk hukommelse sider til programmer og styrer Translation Lookaside Buffer. Et program kan dele en side med en anden give tilladelse. Kernen er ansvarlig for at sikre, at programmerne nå kun sider, der har tilladt.

Disk opbevaring

Kernen identificerer disk blokerer applikationer gennem din fysiske adresse, så programmet for at optimere placeringen af ​​dataene. Når programmet initialiserer dens brug af disken, kernen indeholder en funktion, som det kan bruge til at bestemme, som blokerer programmet kontrol. Kernen bruger denne opfordring til at kontrollere, når du tildeler en ny blok, kun programmet anmoder blokken, der var ud over de allerede tildelte kontrolleret.

Netværk

Kernen implementerer en programmerbar filter pakker, der kører programmer i en byte kode sprog designet til nem sikkerhedstjek ved kernen.

Applikationer

Tilgængelige operativsystemer inkluderer den sædvanlige Exos exokernel-system og en emulator til BSD. Desuden skabte holdet Cheetah exokernel webserveren, ved hjælp af kernen direkte.

Ydeevne

Systemet er virkelig robust og fleksibel, fordi exokernel eneste opgave er at forhindre tilladelse fejl har hardware og konflikter mellem LIBOS. Eksempel på dette design er i Exos og Udvidet OpenBSD.

Historie

Exokernel konceptet blev introduceret omkring udgangen af ​​1994, men i 2005 exonúcleos fortsat en stor indsats inden for forskning og bruges ikke i nogen populære kommercielle operativsystem. Et operativsystem, der følger filosofien exokernel er Nemesis, som er skrevet af University of Cambridge, University of Glasgow, Citrix Systems og det svenske institut for datalogi. MIT har også udviklet flere exokernel systemer som Exos.

Forrige artikel En for alle
Næste artikel El Barraco