EROS (mikrokärna)

EROS
Utvecklare

University of Pennsylvania Johns Hopkins University The EROS Group, LLC
Skrivet i C
OS-familjen Kapacitetsbaserad
Arbetstillstånd Avvecklad
Initial release 1991 ; 32 år sedan ( 1991 )
Senaste släppningen Final / 2005 ; 18 år sedan ( 2005 )
Marknadsföringsmål Forskning
Tillgänglig i engelsk
Uppdateringsmetod Kompilera från källkod
Plattformar IA-32
Typ av kärna Mikrokärna i realtid

Standardanvändargränssnitt _
Kommandoradsgränssnitt
Föregås av KeyKOS
Efterträdde av CapROS

Extremely Reliable Operating System ( EROS ) är ett operativsystem som utvecklades från 1991 vid University of Pennsylvania och sedan Johns Hopkins University och The EROS Group, LLC. Funktionerna inkluderar automatisk data- och processbeständighet , viss preliminär support i realtid och kapacitetsbaserad säkerhet . EROS är ett rent forskningsoperativsystem och har aldrig implementerats i verklig värld. Från och med 2005 stoppades utvecklingen till förmån för ett efterföljande system, CapROS .

Nyckelbegrepp

Det övergripande målet för EROS-systemet (och dess anhöriga) är att ge starkt stöd på operativsystemnivå för effektiv omstrukturering av kritiska applikationer till små kommunicerande komponenter. Varje komponent kan kommunicera med de andra endast genom skyddade gränssnitt och är isolerad från resten av systemet. Ett skyddat gränssnitt , i detta sammanhang, är ett som upprätthålls av den lägsta nivån av operativsystemet, kärnan . Det är den enda delen av systemet som kan flytta information från en process till en annan. Den har också fullständig kontroll över maskinen och (om den är korrekt konstruerad) kan den inte förbigås. I EROS är den mekanism som tillhandahålls av kärnan, genom vilken en komponent namnger och anropar tjänster från en annan, en funktion som använder inter-process communication (IPC). Genom att upprätthålla kapacitetsskyddade gränssnitt säkerställer kärnan att all kommunikation till en process kommer via ett avsiktligt exporterat gränssnitt. Det säkerställer också att inget anrop är möjligt om inte den anropande komponenten har en giltig förmåga till den anropade komponenten. Skydd i kapacitetssystem uppnås genom att begränsa spridningen av kapacitet från en komponent till en annan, ofta genom en säkerhetspolicy som kallas inneslutning .

Kapacitetssystem främjar naturligtvis komponentbaserad mjukvarustruktur. Detta organisatoriska tillvägagångssätt liknar programmeringsspråkskonceptet objektorienterad programmering , men förekommer med större granularitet och inkluderar inte begreppet arv . När programvaran omstruktureras på detta sätt uppstår flera fördelar:

  • De enskilda komponenterna är mest naturligt uppbyggda som händelseloopar . Exempel på system som vanligtvis är uppbyggda på detta sätt inkluderar flygkontrollsystem för flygplan (se även DO-178B Software Considerations in Airborne Systems and Equipment Certification ) och telefonväxlingssystem (se 5ESS switch ). Händelsestyrd programmering väljs för dessa system främst på grund av enkelhet och robusthet, vilket är väsentliga egenskaper i livskritiska och verksamhetskritiska system.
  • Komponenter blir mindre och individuellt testbara, vilket hjälper till att lättare isolera och identifiera brister och buggar.
  • Isoleringen av varje komponent från de andra begränsar omfattningen av eventuella skador som kan uppstå när något går fel eller programvaran inte beter sig.

Tillsammans leder dessa fördelar till mätbart mer robusta och säkra system. Plessey System 250 var ett system som ursprungligen konstruerats för användning i telefoniväxlar, vilken kapacitetsbaserad design valdes specifikt av robusthetsskäl.

Till skillnad från många tidigare system är kapacitet den enda mekanismen för att namnge och använda resurser i EROS, vilket gör det till vad som ibland kallas ett rent kapacitetssystem. Däremot IBM i ett exempel på ett kommersiellt framgångsrikt kapacitetssystem, men det är inte ett rent kapacitetssystem.

Rena kapacitetsarkitekturer stöds av väl beprövade och mogna matematiska säkerhetsmodeller. Dessa har använts för att formellt visa att kapacitetsbaserade system kan göras säkra om de implementeras korrekt. Den så kallade "säkerhetsegenskapen" har visat sig kunna avgöras för rena kapacitetssystem (se Lipton ). Inspärrning, som är den grundläggande byggstenen för isolering, har formellt verifierats för att kunna tillämpas av rena kapacitetssystem, och reduceras till praktisk implementering av EROS-konstruktören och KeyKOS- fabriken . Det finns ingen jämförbar verifikation för någon annan primitiv skyddsmekanism. Det finns ett fundamentalt resultat i litteraturen som visar att säkerhet är matematiskt obestämbar i det allmänna fallet (se HRU , men observera att det naturligtvis är bevisbart för en obegränsad uppsättning begränsade fall). Av större praktisk betydelse har säkerheten visat sig vara falsk för alla primitiva skyddsmekanismer som skickas i nuvarande handelsvaruoperativsystem. Säkerhet är en nödvändig förutsättning för ett framgångsrikt genomförande av säkerhetspolicyer . Rent praktiskt innebär detta resultat att det i princip inte är möjligt att säkra nuvarande varusystem, men det är potentiellt möjligt att säkra förmågasbaserade system förutsatt att de implementeras med tillräcklig omsorg. Varken EROS eller KeyKOS har någonsin framgångsrikt penetrerats, och deras isoleringsmekanismer har aldrig framgångsrikt besegrats av någon inre angripare, men det är inte känt om de två implementeringarna var tillräckligt försiktiga. Ett mål med Coyotos-projektet var att visa att komponentisolering och säkerhet definitivt har uppnåtts genom att använda tekniker för mjukvaruverifiering.

L4.sec-systemet, som är en efterföljare till L4-mikrokärnfamiljen , är ett kapacitetsbaserat system och har påverkats avsevärt av resultaten från EROS-projektet. Inflytandet är ömsesidigt, eftersom EROS-arbetet med högpresterande anrop motiverades starkt av Jochen Liedtkes framgångar med L4-mikrokärnfamiljen .

Historia

Den primära utvecklaren av EROS var Jonathan S. Shapiro. Han var också den drivande kraften bakom Coyotos, vilket var ett "evolutionärt steg" bortom operativsystemet EROS.

EROS-projektet startade 1991 som en renrumsrekonstruktion av ett tidigare operativsystem, KeyKOS . KeyKOS utvecklades av Key Logic, Inc., och var en direkt fortsättning på arbetet med det tidigare Great New Operating System In the Sky ( GNOSIS )-systemet skapat av Tymshare, Inc. Omständigheterna kring Key Logics bortgång 1991 gjorde licensiering av KeyKOS opraktisk. Eftersom KeyKOS i alla fall inte körde på populära råvaruprocessorer togs beslutet att rekonstruera den från den allmänt tillgängliga dokumentationen.

I slutet av 1992 hade det blivit klart att processorarkitekturen hade förändrats avsevärt sedan introduktionen av kapacitetsidén, och det var inte längre självklart att komponentstrukturerade system var praktiska. Mikrokärnbaserade system, som på liknande sätt gynnar ett stort antal processer och IPC, stod inför allvarliga prestandautmaningar, och det var osäkert om dessa kunde lösas framgångsrikt. x86 - arkitekturen växte helt klart fram som den dominerande arkitekturen, men den dyra övergångslatensen för användare/handledare på 386 och 486 innebar allvarliga utmaningar för processbaserad isolering. EROS-projektet höll på att förvandlas till en forskningsinsats och flyttade till University of Pennsylvania för att bli fokus för Shapiros avhandlingsforskning. År 1999 hade en högpresterande implementering för Pentium- processorn demonstrerats som var direkt konkurrenskraftig med L4-mikrokärnfamiljen, som är känd för sin exceptionella hastighet inom IPC. EROS-inneslutningsmekanismen hade formellt verifierats, i processen skapade en generell formell modell för säkra kapacitetssystem.

År 2000 började Shapiro på fakulteten för datavetenskap vid Johns Hopkins University. På Hopkins var målet att visa hur man använder faciliteterna som tillhandahålls av EROS-kärnan för att konstruera säkra och försvarbara servrar på applikationsnivå. EROS , finansierat av Defense Advanced Research Projects Agency och Air Force Research Laboratory , användes som grund för ett pålitligt fönstersystem, en högpresterande, försvarbar nätverksstack och början på en säker webbläsare. Det användes också för att utforska effektiviteten av lättviktig statisk kontroll. Under 2003 upptäcktes några mycket utmanande säkerhetsproblem som är inneboende för alla systemarkitekturer baserade på synkrona IPC-primitiver (särskilt inklusive EROS och L4). Arbetet med EROS avbröts till förmån för Coyotos, vilket löste dessa problem. [ citat behövs ]

Från och med 2006 är EROS och dess efterföljare de enda allmänt tillgängliga kapacitetssystem som körs på råvaruhårdvara.

Status

Arbetet med EROS och Coyotos av den ursprungliga gruppen har stoppats, men det finns ett efterföljande system. CapROS - systemet bygger direkt från EROS-kodbasen. CapROS förväntas släppas i olika kommersiella distributioner. [ citat behövs ]

Se även

Tidskrifter

  1. Lipton, RJ; Snyder, L. (juli 1977). "En linjär tidsalgoritm för att bestämma ämnessäkerhet". Journal of the ACM . 24 (3): 455–464.
  2. Harrison, Michael A. ; Ruzzo, WL; Ullman, Jeffrey D. (augusti 1976). "Skydd i operativsystem". Kommunikation från ACM . 19 (8): 461–471.

externa länkar