Stručné rekapitulaci operačním systému Sprite Network


Original: http://www.stanford.edu/~ouster/cgi-bin/spriteRetrospective.php

Sprite byloperační systém výzkumu vyvinutý mé výzkumné skupiny na UC Berkeley v letech 1984 a 1994. Čtyři postgraduální studenty a začal jsem projekt na podzim roku 1984, protože jsme cítili, že stávající operační systémy byly nevěnuje dostatečnou pozornost místní sítích. Zdálo se nám, že v síti podpora byla přidána v rychlém a špinavé způsobem, aby systémy, které byly navrženy tak, aby spuštění v samostatném režimu. Jako výsledek, propojené stanice nefungovalo dobře dohromady. V té době jsme začali Sprite nebyly dobré síťové souborové systémy ( i NFS ještě neexistoval ) a správu sítě stanic bylanoční můra.

 

Hlavní úspěchy

Naším cílem pro Sprite bylo ” se sítí právo ” vybudováním nového jádra operačního systému od nuly a navrhování podporu ze strany sítě do systému od začátku. Doufali jsme, že k vytvoření systému, kdesbírka propojených pracovních stanic by se chovat jako jeden systém s oběma skladování a zpracování výkonu sdílené rovnoměrně mezi pracovními stanicemi. Doufali jsme, že uživatelé budou moci využít výkon celé sítě při zachování jednoduchého chování a administrativní jednoduchost tradiční časově sdílený systém.

Myslím, že jsme dosáhli těchto cílů. Čtyři technické úspěchy stojí v mé mysli. V první řadě byl síťový souborový systém Sprite je, které prokázaly, že síťové souborové systémy mohou poskytnout pohodlný uživatelský model bez omezení výkonu. Souborový systém Sprite je povoleno sdílení souborů a zároveň zcela skrývá sítě. To za předpokladu, že stejné chování v síťovém prostředí, že uživatelé by se zjistit, zda všichni běželi na tradičním systému sdílení času. I já / O zařízení mohou být přístupné unformly po síti, a uživatelské procesy mohly rozšířit souborový systém, kterým se provádí jeho I / O a pojmenování protokolů pomocí pseudo zařízení a pseudo souborové systémy. Ve stejné době, Sprite používají agresivní souboru do mezipaměti pro dosažení vysokého výkonu. Síťový souborový systém sprite bylnejrychlejší na světě až do studny do roku 1990.

Sprite je druhý klíčový úspěch byl jeho proces migrace mechanismus, který dovolil procesy, které mají být přesunuty transparentně mezi pracovními stanicemi kdykoliv. Při procesu migracejeden uživatel mohl využít sílu mnoha pracovních stanic současně, dosažení speedups ze čtyř nebo více z běžných systémových úloh, jako je rekompilace. Mechanismus migrace sledoval nečinnosti zařízení, který se používá je pro migraci, a vypudil migrovaných procesy, kdy majitel vrátí pracovní stanice je, aby přechod nebyl mít vliv na dobu odezvy aktivních uživatelů. Vystěhované procesy byly remigrated různých prostojů stroje nebo popraven na svém domácím počítači. Sprite byl jeden z mála systémů, kde se proces migrace byly použity na den – to-day velkou uživatelské komunity.

( Upřímně řečeno, to stojí za to zmínit, že proces migrace bylo složité implementovat a těžko se udržují v provozu jakosystém se vyvinul, to není překvapující, že migrace nikdy našel svou cestu do hlavního proudu operačních systémů Nejlepší implementace procesů migrace se nyní nacházejí ve virtuálním stroji. monitory:.API pro virtuální stroj je jednodušší zapouzdření, než že pro moderní operační systém jeden z realizátorů virtuální migrace stroj mechanismu na VMware byl Mike Nelson, který byl jedním ze zakládajících členů projektu Sprite ).

Sprite je třetím klíčovým úspěchem byl jeho jediný obraz systému. Systém souborů a proces migrace za předpokladu, že nejvíce zřejmý důkaz o obrázku jediného systému, protože z úložiště a výpočetní výkon dělitelný mezi pracovními stanicemi. Ale v mnoha jinými způsoby Sprite vypadal a cítil se stejně jako v jediném systému. Tam byl jeden kořenový adresář, jeden soubor s hesly, jedna z oblastí, pro swap ( v souborovém systému sítě), jeden login databáze, a tak dále. Příkaz ” prst ” hlásil všechny uživatele na všech stanicích v clusteru Sprite, a to nejen ty, na pracovní stanici, kde byl vyvolánpříkaz. Správa systému nebylo těžší s padesáti strojů v síti, než tomu bylo u deseti, a přidání nového zařízení nebylo obtížnější než přidáním nového uživatelského účtu.

Jeden obraz systému Sprite je podporován také různé architektury stroje ve stejném clusteru. Vyvinuli jsme rámec pro oddělování architektuře nezávislé informace z architektury specifické informace. Veškeréinformace pro všechny architektury byl viditelný za všech okolností, které zjednodušených křížový vývoj, ale každý stroj použít odpovídající architektuře závislé informace, když to bylo potřeba.

Čtvrtý klíč úspěch Sprite byl jeho systém souborů log – strukturované ( VŠPS), které prokázaly radikální nový přístup k souboru návrhu systému. LFS zacházeno disk spíše jako pásky, psaní informací postupně ve velkých běhů, které umožňují velkou účinnost. Vyvinuli jsme nový garbage collection mechanismus, který neustále otevírá velké rozsahy volného místa na disku. Výsledkem bylsystém, který napsal malé soubory na disk řádově rychleji než jakýkoli jiný existující systém souborů. Zároveň je se ovládal další operace, jako je čtení a velké zápisy, přinejmenším stejně jako jiné systémy. Přihlásit strukturované souborové systémy mají mnoho dalších výhod, stejně, jako je například využití rychlého havárie, schopnost ukládat informace o disku v komprimované podobě, a schopnost měnit velikost bloku ze souboru do souboru. Techniky z LFS byly přijaty v komerčních produktů, jako je souborový systém, jako jsou z NetApp a jsou také používány pro nové zařízení, jako jsou flash paměti.

V průběhu celého projektu Sprite jsme se snažili charakterizovat chování systému a použít tyto informace jako vodítko pro budoucí vývoj. Některé z našich nejdůležitějších výsledků bylo měření jsme udělali. Založení projektu byl založen z části na měření souborového systému provedených na časově sdílené systémy v roce 1984 a 1985. Udělali jsme další měření Sprite použití v roce 1991, aby viděli, jak se vzory změnit a analyzovat potenciální použití energeticky nezávislé paměti v síťových systémů.

Snadnejvýznamnější úspěch ze všeho je, že jsme byli schopni, aby systém fungoval, a to nejen pro sebe, ale pro komunitu uživatelů, kteří očíslovaných jak vysoce jak 80 nebo více na vrcholu projektu. Mnoho z těchto uživatelů závisel na Sprite pro všechny jejich den – to-denní výpočetní potřeby, jako jsou pošty a tisku. Po dobu několika let bylo běžné vidět 25 až 35 současných přihlášení z nichž jenpůl tuctu byli vývojáři Sprite. Vím pouze s jedním dalším univerzitním projektu, který vyvinul novou jádra operačního systému od nuly a používal to, aby podpořila uživatelskou komunitu tento velký tak dlouho, že projekt byl Multics, která byla provedena na MIT vpozdní 1960.

Dále jsme postavili Sprite ( více než 200 tisíc řádků nového kódu ve všech ) s malým týmem, který průměrně jen asi čtyři postgraduální studenty a jeden nebo dva pracovníky nebo vysokoškolské asistenty. Nikdy jsme se dostali příliš velké, aby se setkání projektu v mé kanceláři, i když tam byly chvíle, kdy jsme museli půjčit další dvě židle na doplnění šest již v mé kanceláři.
Historie projektu

Historie Sprite dělí do zhruba tří fází: počáteční vývoj, konsolidace a LFS rozvoje a nových podniků a výprodej.

První fáze Sprite, počáteční vývoj, trvalo od založení projektu na podzim roku 1984 až o konci roku 1987. Začali jsme kódování na Sun – 2 stanicích v brzy 1985 a měl systém, který by mohl spustit příkazy shellu podle na jaře roku 1986. V létě roku 1986 jsme začali vyvíjet na ” skutečné ” Sprite souborový systém ( jsme to použili starší síťového souborového systému s názvem BNFS až do tohoto bodu ). O té doby jsme začali na proces migrace a portování X Window System. Na podzim roku 1987 všechny tyto věci pracovali, spolu s Internet Protocol sever. Měli jsme také portován Sprite do Sun – 3 je. Na tomto místě bychom kopírovat zdrojové texty jádra se k Sprite a začal dělat vše našeho vývoje jádra na Sprite sám.

Druhá etapa v historii Sprite je trvala od konce roku 1987 do konce roku 1990. Tato fáze se skládala převážně z konsolidace. Na začátku roku 1988 jsme provedli zásadní revizi systému souborů. Podpora vzdáleného zařízení se zlepšila, realizacepseudo zařízení byl přepsán, ajednoduchý protokol zotavení byl zaveden, abysystém mohl zotavit elegantně od serveru pády. Proces migrace prošla zásadní zlepšení také, a koncem roku 1988 se stal dostatečně stabilní, abychom ji používat denně při vývoji systému. V roce 1988 jsme se přenést Sprite na motivují výzkum víceprocesorové (SPUR projektu za předpokladu, hodně brzy financování Sprite ), a v roce 1989 jsme se přenést do DECstation – 3100 a Sun – 4 platformách. Port na počítači Sequent symetrie byla carred při Sequentu na konci roku 1989 a počátku roku 1990.

Na konci roku 1988 jsme začali podporovat jiné než vývojáři Sprite uživatelům. Uživatelská komunita postupně rostla ve velikosti, vrcholit u asi 80 v roce 1990 a 1991. Také jsme připraveni distribuční pásku tak, že bychom mohli udělat Sprite k dispozici lidem mimo Berkeley. První pásky byly rozeslány na konci roku 1989 ; po celou dobu trvání projektu Sprite má běžet na asi deset různých místech. Nicméně, instalaci Sprite z distribuce nikdy nebylo snadné, a to omezené použití systému mimo Berkeley.

Nejvýznamnější novinkou v průběhu Sprite druhé fázi bylaimplementace LFS. Udělali jsme předběžných návrhů a studií v roce 1988, ale nebyl zpevnit konstrukci prototypu až do roku 1989 ( jako součást nově začal RAID projektu ). Kódování začala na konci roku 1989. Na jaře roku 1990 LFS byla vykazuje známky života, a to zadalo využití produkce na podzim roku 1990. Do konce roku 1991 prakticky všechny Sprite je tucet disky byly pomocí LFS.

Závěrečná fáze projektu byla zahájena koncem roku 1990 a pokračoval dokud ne asi 1995. V této fázi jsme zahájili několik nových projektů, z nichž většina odráží rostoucí zaměření projektu v otázkách týkajících se správy ukládání dat. V zimě roku 1990 jsme začali analyzovat chování zotavení po souborových serverů havaruje ; To vedlo k řadě experimentů s lepšími technikami využití, jako například pro server řízený obnovu a využívání energeticky nezávislé paměti. V roce 1991 jsme zahájili projekt, aby zjistil, jestli Sprite mohla být znovu zavedena jako proces na úrovni uživatele serveru s operačním systémem 3.0 jádře Mach ; Tento projekt dokončen v létě roku 1992 se značnou funkčností, ale neuspokojivé výsledky. V roce 1991 a 1992 jsme také vyvinuli pásku knihovní systém Jaquith, který dělal roboticky řízené páskové systémy k dispozici jak pro Sprite a dalších systémů UNIX. Během stejného období jsme začali projekty experimentovat s striping souborů napříč více souborových serverů ( Zebra ) a aplikovat techniky LFS na diskových polí ( Pilařské ).

Stejně jako většina softwaru,Sprite jádro se stal těžší a těžší udržet, jak to ve věku. Časté revize a změny v personálu projektu vedly ke zvýšení složitosti systému, přes naši snahu udržet věci čisté a jednoduché. Kromě toho jsme zjistili, že těžší a těžší udržet krok s vývojem v komerčních operačních systémů. V roce 1990 tam bylo několik komerčních verzí systému UNIX s masivní podporou týmy, jako je System V, Solaris a OSF. Tyto systémy byly přidávání funkcí rychlým tempem a naši uživatelé chtěli přístup k těmto funkcím pod Sprite. Přidali jsme nové funkce, jako sdílené knihovny a binární kompatibilitu se SunOS a Ultrix, ale my jsme se ocitli tráví více a více času na úkoly, které nebyly výzkum orientovaných.

Na konci roku 1991 jsme se rozhodli přinést projekt Sprite k postupnému konci. Poté, co jsme se nespustí žádné nové významné vývoj a připojil se k žádné nové postgraduálních studentů na projektu. Zastavili jsme se podporou nových uživatelů pracovat na Sprite, takžeuživatelská komunita se pomalu ustoupil na pouhých týmu Sprite. Sprite sloužil nám dlouho a dobře jako výzkumný vozidla; že je čas přejít na jiné věci.

 

Zklamání

Mým největším zklamáním o projektu Sprite je, že jsme nebyli schopni přenést technologie Sprite na použití proudu. Udělali jsme distribuci open- source Sprite, ale bylo to těžké pro instalaci Sprite z distribuce. Kromě toho, jak se lidé k přepnutí na jiný operační systém, bylo těžké: komerční Unixové systémy přidané funkce rychlostí jsme nemohli odpovídat, a to bylo obtížné udržet přenositelnost aplikací. Tam byl žádný způsob, jak používat některé z technologií, Sprite (např. jeho systému souborů ), aniž by přijetí celého systému. V důsledku toho, další souborové systémy, jako je NFS a AFS, stal se široce používána, zatímco Sprite je ne.

Některé z Sprite myšlenek se postupně nacházejí cestu do širší použití, jako je například proces migrace ( propagován v podobě virtuální migrace stroje ) a LFS ( používané v komerčních produktech, jako je NetApp a řídících systémů pro flash paměti ). Nicméně, tyto myšlenky musely být reimplemented ; nebylo možné pro ostatní lidi prostě vzít Sprite kód a použít ji. Možná by bylo lepší, kdybychom postavili Sprite jako rozšíření stávajícího operačního systému, spíše než stavět nový operační systém od nuly ; To by se zjednodušil transfer technologií. Nicméně, to by pravděpodobně držel nás ze zkoumání single -system – obrazové aspekty systému, které by bylo obtížné realizovat v existujícím systému.

 

Sprite Přispěvatelé

Mnoho lidí přispělo k Sprite v průběhu let. Nemůžu doufat, že seznam každý významný přínos, ale budu se snažit tak jako tak. Níže uvedený seznam shrnuje práci z hlavních členů projektu ( můj výzkum studentů a zaměstnanců, kteří uvedli přímo na mě ). Lidé jsou uvedeny v chronologickém pořadí podle data, kdy začal pracovat na Sprite souvisejících věcí, a projekty jsou uvedeny s těch nejdůležitějších ( podle mého názoru ) jako první.

Brent Welch ( léto 1984 – jaro 1990): vzdálené volání procedur ; souborový systém ( Storage Manager, souborový systém spínače, předpony, název vyhledávání, vzdálená zařízení, crash protokol zotavení, formátování disku, dump a obnovení, podpora migrace ) ; pseudo zařízení ; pseudo souborové systémy ; BNFS souborový systém ; Podpora NFS ; ovladače zařízení ; jádra profilování ; Bootstrapping.
Andrew Cherenson ( podzim 1984 – podzim 1987 ): Internet protokol sever ; Konstrukce okenní systém a X10 portování ; časovač ; sériové rozhraní ; uživatelské úrovně ladění ; pseudo – zařízení; init proces ; Příkaz portování ( příkazy sítě, login ) ; Proces související systémová volání ; Kompatibilita UNIX ; manuální formátování vstup ; C knihovna.
Fred Douglis ( podzim 1984 – podzim 1990 ): Proces migrace a program pmake ; Kompatibilita UNIX a příkaz portování ; Systém volání rozhraní ; synchronizace, plánování a podpora procesu ; portování a podpora velkých programů, jako je emacs a tex ; manipulace past a podpora UART pro SPUR ; brzy projekční práce pro souborové systémy log – strukturované ; experimenty s optickými disky.
Mike Nelson ( podzim 1984 – podzim 1988 ): Virtuální paměť ; souborový systém ( ukládání do mezipaměti, disk checker, VM interakce, podpora migrace, obnova crash, výběr) ; ladění jádra ; Sun – 3 a DECstation – 3100 porty ; zařízení a síťových ovladačů ; zpracování signálů ; SPUR port ( virtuální paměť, pasti manipulátory, atd. ) ; Příkaz portování.
John Ousterhout ( podzim 1984 – léto 1994): Přidělení paměti ; C knihovna ; ovladač terminálu ; přepínání kontextu ; gcc portování, mkmf programu.
Adam de Boor ( podzim 1986 – léto 1988): Program Pmake ; X11 portování ( např. ovladače zařízení a kód oblasti ) ; xman a mkmf programů ; swat debugger.
Mendelova Rosenblum (zima 1988 – podzim 1992): Přihlásit strukturovaný souborový systém ; SPUR portu ; ladění nástroje ; ovladače disků ; Sun – 4 porty ; X11R4 portování.
Mary Baker (zima 1988 – podzim 1994): Analýza využití a redesign ; Řízení přetížení pro vzdálené volání procedur ; box zotavení ; Sun – 4, SPARCstation, SPARCstation – 2 porty ; soubor měření systému ; Analýza NVRAM používá ; RPC byte – swapping ; Ovladač SCSI zařízení ; převod multi – procesor.
Bob Bruce ( podzim 1988 – podzim 1990, podzim 1991 – zima 1992 ): Zařazování démony ; dump a obnovení nástroje ; Sprite distribuce pásky ; podpora kompilace a ladění nástrojů ; profilování na úrovni uživatele ; s plovoucí desetinnou čárkou podporu ; DECstation – 3100 a následné porty ; Kompatibilita UNIX ; Operace Pouštní bouře podpora ; X11R5 portu.
John Hartman ( podzim 1988 – podzim 1994 ): Zebra pruhy souborový systém ; soubor měření systému ; port SPUR multiprocesor ; měření Sprite běží na Spur víceprocesorové ; zařízení a síťové ovladače ( FDDI a Ultranet ) ; Analýza synchronizace ; disk checker, skládky a jiné diskové nástroje ; Podpora více procesorů ; Bootstrapping ; Podpora debugger ; Podpora LFS ; plánovač.
Don Reeves ( jaro 1989): ARP a reverzní ARP.
Ken Shirriff ( léto 1989 – jaro 1995): Vysokorychlostní přenos souborů pomocí RAID ; souborový systém stopy ; analýza jméno ukládání do mezipaměti ; sdílené virtuální paměti ; mapované soubory ; Synchronizace System- V ; prosazování bezpečnosti ; mailová podpora ; Kompatibilita UNIX ; dynamické propojení ; síťové démony ; DECstation – 3100 příkaz portování ; dump / restore utility.
Mike Kupfer ( léto 1990 – léto 1992): Sprite jako proces serveru Mach ; Měření pro analýzu papíru Sprite ; vnitřní kontroly chyb v jádře ; podpora Pmake, X, dump / restore utility a další nástroje pro správu.
Jim Mott – Smith (zima 1991 – podzim 1992): Jaquith páska archiv systém ; Ovladače SCSI ; Podpora NFS ; podpora internetového protokolu serveru ; dump / restore utility ; podpora sendmail.
Geoff Voelker ( podzim 1991 – léto 1992): Disk utility ; Síťový ovladač FDDI ; síťové nástroje.
Matt Secor ( léto 1992): Podpora Debugger.

Kromě osob uvedených výše, tam bylo mnoho dalších, kteří se významně přispěla k pohyblivému symbolu, i když neměli hlásit přímo ke mně. Zde jsouněkteré z ” externích pomocníků ” ; Omlouvám se někdo, že jsem přehlédl.

Bob Beck ( Sequent port), Ann Chervenak ( ovladače zařízení ), Doug Johnson ( SPUR ladění ), Ed Lee ( RAID driver striping ), Dean Long ( kernel bug, kterým se stanoví, bootstrapping, SPARCstation port), Ethan Miller ( podpora RAID řadič ), Srinivasan Seshan ( podpora Ultranet ), Thorsten Von Eicken ( X11R4 port), Jay Vosburgh ( Sequent port).

Poznámka: Tato stránka byla původně napsána na začátku 1990 ; Znovuobjevil jsem to v únoru roku 2011 a aktualizován k výrobě této stránky.