Az Extremely Reliable Operating System (EROS) egy megbízáson alapuló operációs rendszer , amelyet úgy terveztek, hogy megfeleljen az aktív rendszerek biztonsági és megbízhatósági követelményeinek . Az aktív rendszerek felhasználói tetszőleges kódot írhatnak be és futtathatnak bármikor , beleértve a hibás vagy akár rosszindulatú kódokat is . Az aktív rendszerek megosztott platformok , amelyeknek egyszerre kell támogatniuk a potenciálisan versengő felhasználókat ugyanazon a gépen.
Mivel az aktív rendszerek a felhasználó által biztosított kódot hajtják végre, nem támaszkodhat túlságosan a rendszer széleinek védelmére a rosszindulatú kódok következményeinek megelőzése érdekében . Az ilyen kód végrehajtása esetén az EROS garantálja a biztonságot és a rendszer teljesítményét. A rosszindulatú kódokat (például vírusokat ) futtató alkalmazások nem okozhatnak kárt más felhasználóknak vagy a rendszer egészének, és nem használhatják fel a felhasználónak adott engedélyeket a felhasználó környezetének más részeire .
Az EROS projekt a KeyKOS , egy Norm Hardy és munkatársai által az IBM System/370 számára létrehozott operációs rendszer referencia megvalósításaként indult . Az EROS fő hozzájárulása az architektúra néhány alapvető biztonsági tulajdonságának formális tesztelése , konkrét teljesítményjellemzők megvalósításának tervezése . Ezeket a védelmi és teljesítményjellemzőket kétféleképpen sikerült elérni.
Először is, a rendszer alapvető architektúrájának létrehozásakor a fejlesztők szigorú elvekhez ragaszkodtak. Abban az esetben, ha a rendszer tervezett lehetősége ellentmondott a védelem elvének, azonnal lemondtak róla. Az eredmény egy kicsi, belsőleg konzisztens architektúra, amelynek viselkedése jól meghatározott, és amely alapos és megbízható megvalósításhoz vezet. Másodszor, a processzorok tervezésére használt rendszer vezető építészei. Ez lehetővé tette számunkra, hogy elkerüljünk egy bizonyos fajta absztrakciót, amely a modern operációs rendszereket megkülönbözteti, és a rendszert úgy terveztük meg, hogy az közvetlenül megfeleljen a modern hardvermegvalósítások által kínált funkcióknak; absztrakciók konvertálásakor a teljesítmény nagyon enyhén csökken.
Jeremy Salzer és Michael Schroeder számos EROS tervezési alapelvet dolgozott ki a Multics projektből , és más projektekben szerzett tapasztalataikból másokat is beépített. A teljesítmény és a rendszerarchitektúra összhangját kizárólag azáltal sikerült elérni, hogy megtalálták a legjobb módszereket ezen alapelvek pontos megvalósítására egészen az árnyalatokig, miközben a teljesítményt nem veszélyeztették.
Az EROS fejlesztői szigorúan betartották az architektúra alapelveit az EROS / KeyKOS ] tervezésekor, a következő három okból. Biztosnak kell lennie abban, hogy a rendszer működik, és tudnia kell, miért működik. Ha a rendszerkód egyes darabjaira nem lehet megmondani, hogy mi az a vezérelv vagy kötelező megkötés, amely garantálja a helyességet, akkor ezt a célt nagyon nehéz elérni. Az ilyen jellegű kommunikáció a rendszer teljesítményének nagyfokú biztonsággal való értékeléséhez is szükséges. Feltételezték, hogy a világos architektúra önmagában is hozzájárul a nagy teljesítményű megvalósításhoz. Az elvégzett teljesítménytesztek megerősítették az ilyen feltételezések helyességét.
Az EROS tervezési elveinek legközvetlenebb hatása a kernel szerkezetére és megvalósítására volt hatással. Egyes esetekben a tervezési elvek szigorú betartása váratlan építészeti döntésekhez vezetett.
Biztonságos rendszereken gondoskodnia kell arról, hogy a rendszer konzisztens és biztonságos állapotban legyen az újraindítás után. A legtöbb operációs rendszer rendelkezik egy kezdeti folyamatkészlettel, amelyet kifejezetten a kernel hoz létre. Ezek a folyamatok konzisztencia-ellenőrzést hajtanak végre, teljesítményüket a stabil módban feltételezettre korlátozzák, majd elindítják a rendszer többi programját. Ebben a helyzetben két probléma merül fel. A konzisztencia-ellenőrzés heurisztikus, ami megnehezíti a helyességének megállapítását. Például a Unix fsck parancsának meg kell határoznia, hogy mely fájlokat távolítsa el, és melyeket tartsa meg anélkül, hogy tudná, hogyan kapcsolódnak egymáshoz. Ezért előfordulhat, hogy a jelszófájlok és -csoportok állapota nem egyeztethető össze egymással. A kezdeti folyamatok a felhatalmazást olyan eszközökön keresztül szerzik meg, amelyek túlmutatnak a felhatalmazás megadásának vagy átruházásának szokásos mechanizmusain. A fejlesztőknek konkrét eszközöket kell létrehozniuk annak bizonyítására, hogy a rendszer megfelelően kezeli és csökkenti ezeket az engedélyeket. Ezen eszközök összetettsége összevethető a rendszer többi részének helyességét biztosító eszközök összetettségével.
Az EROS -ban mindkét probléma megoldható egy olyan rendszer használatával, amely ellenőrzőpontokat implementál a tranzakciók végrehajtása során. Ez a rendszer időszakonként racionális aszinkron pillanatfelvételeket készít a teljes gép állapotáról, ellenőrzi ennek az állapotnak a konzisztenciáját, majd egyetlen lemeztranzakció részeként írja ki. Mivel a rendszer a tranzakciós mechanizmus egészét támogatja, a teljes rendszer inkonzisztenciájának kialakulása lehetetlen. Újraindításkor a rendszer egyszerűen visszaállítja az utolsó befejezett tranzakciót .
Az EROS egy állapot nélküli kernel – a rendszer végrehajtási állapota a felhasználó által lefoglalt memóriában található. Az elfogadható kernelteljesítmény ennek az állapotnak a gyorsítótárazásával érhető el. A gyorsítótárazási architektúra támogatja az ellenőrzőpont-mechanizmust, és biztosítja a kernelben lévő függőségek szabályozását. Annak érdekében, hogy a felhasználó által lefoglalt memória mindig a megfelelő értékeket adja meg, amikor bejelöli, a kernelnek képesnek kell lennie arra, hogy igény szerint visszaállítsa állapotát. Ezek a függőségek az önellenőrzés valamilyen formáját kínálják. A kernel időnként össze tudja hasonlítani a gyorsítótárazott állapotát a felhasználói állapottal, hogy észlelje az inkonzisztenciákat, és ezáltal megakadályozza, hogy helytelen állapotot írjanak a lemezre.
Az EROS nem nyitja meg a memórialeképezés töredékeit, mivel ez sértené a kernel meg nem őrző állapotának elvét. Ehelyett az EROS megköveteli, hogy az alkalmazás pontosan lefoglalja a memórialeképezési struktúrát alkotó összes töredéket. Az alkalmazás kifejezetten lefoglal (általában felhasználói szintű hibakezelővel) minden csomópontot és oldalt a címtérben. A kernel úgy hozza létre a memória- és hardverleképezési táblákat, hogy becsomagolja ezt a struktúrát, és gyorsítótárazza az eredményeket a hardverleképezési táblákban.
Valós idejű operációs rendszerek | |
---|---|
| |
nyisd ki | |
Szabadalmazott |
|
történelmi |
|
|