Narrative.togaSwinehart,June21,19859:50:14amPDT1.TitleSlideMostofyou'veseenCedarsystem--demos,perhapsTeitelmantalkorvideotape.Wewantedtosaysomethingabouthowitwasputtogether.Cedaris...ProgrammingEnvironment....Dorado...Dandelion.Itisbynowquitealargesystem(example--size,effort).OurpaperontheSofCincludesanoverviewofthesystemwhich,giventhepagelimitfortheproceedings,readslikeReadersDigestversionofEncyclopediaBrittanica.DecidednottoattempttheX'sNotesversionofthepaperhere,although...2.Overview...willnamemajordivisionsandcomponentsbywayofintroduction.Instead,willtouchonacoupleofmajorpointscoveredin2dpartofpaper:contributionsCedarhasmadetoevolutionof(whatwe'vetermed)openarchitecture;andsomeactualexamplesofthetaxonomyofsomeacualcomponentsinCedar.Namely,thecomponentssupportingTiogatexteditor.WillalsomentionsomeoftheplanswehaveforCedarincomingyears.[that'sajoke,folks]3.WholeHouseofCardsThispicture(andoneinpaper)arederivativesofdiagramknownaffectionatelyasCedar"HouseofCards".Inearlygoing,termmighthavereferredbothtodependenciesofuppersectionsonthosebelowandtotendencyofentirestructuretocollapseinarubblewhenlow-levelfails(orweakens).Astimehasgoneonhaveincreasedconfidencethatfoundationsaresolid.Cedar's4majordivisions,frombottomupinpicture,areCedarvirtualmachine,Low-levelnucleus,Vitaluser-levelcomponentsknownasLife-supprt,andOpen-endedsetofapplications.Inbitmoredetail,4.CedarMachineCedarmachineincludesmicrocodesupportingCedarprog.lang.andsupportrequiredtocallprocedures,raiseandhandleexceptions,andtthelike--alsodevicedrivers.5.NucleusNucleuscontainscomponentsnormallyassociatedwithoperatingsystem--memorymanagement(virtualmemoryandsupportforgarbage-collectedstorage),filesystem,flexibleI/O,accesstokeyboardanddisplay,communications(stillbasedonprototypeprotocolknownasPupprotocols).Wepackageallnucleus&belowandreleaseasawhole.6.LifeSupportLifeSupportdivisionrepresentsindividualpackagesandtoolsneededtoprovidethebasicsetofdocumentmanagementandprogrammingdevelopmentfeaturesforCedaruser.Standardsetprovidedwithsystem,althoughusercanreconfiguretosomeextent.Includesinadditiontoeditor-basedstuffdescribedlater,programdevelopmenttoolsandsimpleUnix-likecommandinterpreter.7.ApplicationsApplicationsnotofficiallypartofCedar,ofcourse,thoughwedosupportreleasemethodologyforwidely-usedones.pï_:î g ï]’îx î7îlî©îïî"Øî%#ïZCî gî ôî1qïXœîxîîºîî9îQî#Ìî%Cî)õî/"î5¤î8Zî: ïVôîxîîÌîzîÙî |î$]î'bî(¸î+dî-åïUMîxî�îüî‡ î$ î&urî(WïUMïUMî)jqïUMî-Jî.Õ ïS¥îxîðî[îWî[îäîîuî"ðî(ãî*Zî-]ïQþîxî[î=îCî¢îîî§î)î#Œî%}î+Mî-î/eî3áî8Gî;ûî>ZîA¡ïPVîKîˆîè îÖîuî" î'mî+½î0…î2= î:° ïN¯îxîòîgîî"î‚î!ëî%æî*®î,gî.Æî2¨î6î;×pïMî gî ôqïK`îxîî®înîdî î"Ë î*wî,sî/Kî1 ïI¸îxî¤îPî'î-îWî!Èî#�î'wî+›î0¼î2jî4eî7Iî9ïHî‰ îçîÿîtî#4î$âî*õî,®î0…î4Zî9‡î<ù ïFiî‰îAîÔî×î Ôî"�î$ìî+Mî-î0™î4- î;Ùî=‡ïDÂî‰îîp î  î'î*âî-šïCîxî‡îSîÁîTî î!mî% î'3î*yî,·î0Ïî2}î7[î;;î?Iî@rïAsîKpï?Ëî gî ôîDî~î"qï>$îxî’î;îlîîÅî" î$t î+Nî-î2^î6ä î?bîAï<|îKîLîï:ÕîxîGî®îÑîîî"Uî'—î*Óî,‚ î5î6¹î:¼î?ÝîAãï9-îKîXîî¾î›îTî#@î(ýî*«î/âî1�î2ºî7 î:Õî@°îCžï7†îKï5ßîxî‰î®î#îî†îÌî$Õ î+Æî.” î6î8sï47îxîmî¡î˜ îŸî"î&Ðî(âî*�î/‘ï2�î‰î¡îüï0èî‰îéï/@î‰îæ î î!Æî&Lî'ú î/†ï-™î‰ îmîŠîC ï+ñîxîGîeîøpï*Jî‰îîqï(¢îšî³î7î!›î(I î//î3Gî6Úî:5î<íï&ûîmîýî¬î6 î$–î'Ñî*ˆî/ î6!î8Øî;¦î>Rî?ÉîB•ï%Tîmpï#¬î‰îqï"îšî÷î[ î%î*× î1Cî4^î:}î>øî@oï ]îm î‡î [î%Èî(€î-Œî/Éî:›î@ï¶îmîAî*î Oî$\î& î,î.Êî3Õ î> îA'îEïîmî®îî#¢rî%Pïïî&8qî((ïïî(î ïgîšî%îgîWî!Xî"ðî&üî)´î.:î/èî1pïÀî‰îîúqïîšîˆî×î  î&„ î-î2Íî5„î8Õî=žî?MîDXïqîmîàîýî¶î!# î)=î+ô î4‡ î<¸îAäïÉîmî…ï"îšîxî•î gî#‚î(Uî.î1 î3– î:Þî<�î@ ïzîmîòî î î!½ î)–î,Çî2òî6oî;þ ïÓîmî¿îvîÛî#øî*Y pï,î‰î qï „îš î”î î"¸î%œî'Uî+Åî-~î2&î6Úî9î;î@ï Ýîm î³îñ î%‡ðTVm$Ä2[4minutestohere??]8.PrincipalsofOrganizationCanlearnalotabouthowCedarisputtogetherfromtheHofCpictureandanunderstandingoftheseattributes,whichwe'vealwaysreferredtoasanopenarch.informersystemsthatwerebuiltmoreorlessthisway.[!][Repeatpointsfromslide8;needsfleshingout]9.PrincipalsofOrganizationCanlearnalotabouthowCedarisputtogetherfromtheHofCpictureandanunderstandingoftheseattributes,whichwe'vealwaysreferredtoasanopenarch.informersystemsthatwerebuiltmoreorlessthisway.[!][Repeatpointsfromslide8;needsfleshingout]10.EvolutionofCedarSowhat'snew?You'veseenXDE,oneonehand,representingevolutionfromtypelessC-likelanguagethroughPascal-likeMesa--andST&Interlispsystemsonother.AmajorgoalofCedarhasbeentoachievetheconvenienceandsafetyoftheselattersystemsinacompiled,strongly-typedlanguage,andwebelievewe'velargelysucceededinthat.[Needwayhere,andhereonly,toindicateancestry.]11.Cedarcontributionstoopenarch.Iwanttoemphasizethesafety(thusreliability)aspectthroughsomeexamples.Bysafetyareexplicitlyconcernedwithcollapseintorubbleofbits,destroyingmemeory-mgmtsystemand/ordebuggingtools.Let'sseehowCedar'sancestorshavedealtwithacommonprogrammingmethod--we'lllookatobject-styleprocedureinvocationsinBCPL,Mesa,andCedar.[Eliminatethisportion]12.Simplemulti-levelapplicationdiagram13.2dpartofsameBeforeshowingyousomeexamplesfromtheactualCedarsystem,usesimpleronetoshowhowapplicationsarestructured:[fleshoutwords--pointforthisconference--lang.featureseliminateneedforhardwareandOSfeaturestodothissortofthing.][Inotherwords--samesortofthingyou'ddowithinyourownprograms--systemandlangmakeitreasonabletoworkthiswayw/systemfunctions--callitdetourapproach,indicatehowitcompensatesformodulereplacement.Showthatifmodificedpackagemustexportdifferentinterface,underlyingMesaconfigcontrolcankeepnamesspacesseparated.]14.Tioga/ViewersExampleHowdoesthisworkinrealapplication--willshowyouasexamplethatwillelaboratelatertoindicatehowthedetourapproachworks.Ifyousawdemo,thiswillbefamiliar--Tiogaisstructuredtexteditorthatcanmanipulategalley-formattedtextdocumentsorinfactanytextviewer.ViewersareCedar'smeansfordividingupthestandarddisplayscreen;theviewersatthetop-leveltilethescreenwiththevisibleproductsofthevariosuapplicationsthatarerunning.Viewerscanalsobenestedinordertocombinerectangularregionsofdifferenttypesintocoherentview--forinstance,thebannerscontainingmenuitemsaresubviewersofthisone.Therearestandardclassesofviewers--text,tioga,illustrations,...sïg/îEÉpï_,îxîî#îÈï[Ýî gî ô îLîï qïZ5îxîfîãî îîîî#î$ˆî' î,mî/Ôî24î3Øî5‘î7î;¼î>sïXŽîK îNîî� î#ýî( î+áî0Eî5‡î76î8äî:Ôî>GîA®ïVçîKîÜîÛîªîûî"Bî%Õî'™î*.î,Ðtî0ƒïVçïVçî0ÓqïU?îxî�î²îîTî î#ãî)pïQðî gî ô îLîï qïPIîxîfîãî îîîî#î$ˆî' î,mî/Ôî24î3Øî5‘î7î;¼î>sïN¡îK îNîî� î#ýî( î+áî0Eî5‡î76î8äî:Ôî>GîA®ïLúîKîÜîÛîªîûî"Bî%Õî'™î*.î,Ðtî0ƒïLúïLúî0ÓqïKRîxî�î²îîTî î#ãî)pïHî gî¤îÉîlqïF\îxîî¸ïD´îxî5îOî;îçî’î#i î+Aî1Tî4»î9Üî=ÿïC îKîƒ îFîðî gî#î%Q î+Þî0Ýî2ãïAfîxîîûîôî¬îÅî:î"–î$Eî)/î+Ž î3[î6î9ÿî;¸î?Aï?¾îKîKîùî"îx î&†î,¤î/[î1ƒî65î: î>…îE ï>îKï¥îAQîBÿï*=îKîO îæî9 tï(–îxîoîgî¤îÐî¶î€î› î$(î%Tî(î,'î0òî3¢î5mî:AîSîBvîCÎï&ïîKîfî’îóï%Gîxî:î î]î‰îTî€îáî ½î#Ïuî%nï%Gï%Gî&'tï%Gî(¹î+Oî-¸î2”î3Àî7Vî9‚î;ìî>âî?ô îEfï# îKîî0îvîdî 0î!\î#dî$vî'ûî- î11î3›î4¬ î;î<Øï!øîK î0î9îxî’î!¾î%óî(­î,î0¤ î5o î:üî=êîABï QîKîTîüîeîÆ îòpïî gî¤ î»qïZîxîÕîî§î$îÒî‰ î&›î(î*½î.Fî0ýî2«î8#î:òî=�îC�ï³îKîùî&î*pîŠï³ï³î:qï³î»î%ºï îxîúî±î]î‹î,îØî Èî%èî'_î+?î,« î3/î5çî9éî<·î?B ïdîKî�îDî#6î$úî&¨î)Tî+õî.­ï½îxî®îîöî:î!xî&Ûî(íî+Lî0çî5šî:Mî<¬îA•îC.ïîKîûîZîºîóî!î#mî'¼î-cî/î1{î6C î=Úî@¨ïnîKïÇîxî®î:îî÷îGî õî$©î&Xî+ò î3î7âî9›î?AîBÕïîKîñî,î£îàî!†î#åî) î/Ëî3¬î7Uî9© î@¤îB]ï xîKï ÐîxîzîÎîiîÃî |î%eî&Üî)ìî-« î5m zTVm$63OneofthemoreunsungheroesofCedaristhepowerfuldevice-independentgraphicspackage,calledtheImager.Discussionwouldfillatalkinitself,butsupporttext,shapes,gray-scaleimages,w/arbitrarytransformationsandclipping.Color,B/W,printerfile,directlytoprinter.ProgramscanuseviewerswithoutusingtheImager,writingdirectlytotheviewer'sbitmap,butvirtuallynonedo.AllstandardviewersuseImager.AtbottomofdisplayhierarchyispackagecalledTerminal,givesappearanceofseveralindependentsetsofB/Wandcolordisplays(w/privatebitmaps),kbd,mouse,whichcanbeassignedtotherealoneoneatatime.ProgramthatwishestoeschewViewersandfriendscangetaseparateterminalandhaveatit,w/orw/outassistanceofImager.Thereexistssimilarhierarchyofkeyboardinputpackages--high-leveleventinterpreter(TIP),low-levelpackagethatbufferskeyboardactions(Inscript),andTerminalatbottomdeterminingwhichVT'sinterruptroutinegetsthekbdinterrupt.We'vealsoincludednamesoftypicalkernelinterfaces--IO,FS,andthelike--thatareusedbyallthesepackagesatalllevels.[TalkaboutCommander,Debugger,ascascadedapplications?ExhibitsakindoflinkageanalogoustoPipes,really--Tiogafeedscommandinputfeedsinterpreter,notthroughlanguagepathatall.]Thefinalexamplewashandedtomeonaplatter,forwhichIamdulygrateful.WehadbeenlookingforheavyweightexamplesofCedarasdevelopmentenvironmentwhenDougWyattwalkeduptomeandrecountedthefunhehadbeenhaving.Sinceitmademanyofpointshereexactly,Idecidedtorecountittoyou.PicturehererepresentsCedarasitistoday.Previousversionwasverysimilar,exceptthatinplaceofboxmarkedImagerwaspackagecalledCedarGraphics.Imagerisnewerandmuchmorewonderful(isdevice-independent,forinstance),soitsinterfaceshavechanged.Imagerwasthoughttoworkprettywell,butneededsubstantially-revisedViewers,henceTioga.Unfortunately,source-leveldebugingtoolsrequireworkingversionsofallthesethings.Inearlierdays,we'vehadtousearemote-debuggingfacility,eitherbyprobingthetestsystemoverthenetworkfromaworkingsystem,orbyexaminationofsuspendedmemory-imagesondisk.OccurredtoDoug,correctlyasitturnedout,thatcombinationofCedarlanguagefeaturesandcapabilitiesofTerminalpackagewouldlethimusetheoldversionsofallthesetingstodebugthenewones.Methodwasatleastconceptuallyquitesimple.15.New/OldViewersExampleThispictureshowstheresultingdevelopmentenvironment.Thescreenattopleftrepresentsold,workingsystem,includingdebuggingandprogrameditingtools.Screenattoprightrepresentsnewsystemunderdevelopment,withitsenhancedimagingcapabilities.Oldandnewscreensareassignedtoseparatevirtualterminals;usercanswitchbetweenthemmanually.PictureatlowerleftdepictsoldCedarsystem,includingobsoleteCedarGraphicspackage.Toproducethenewenvironment,thoscomponentsthathavechanged--Imager,Viewers,Tioga--aswellascopiesofthosethatarenotsufficientlyreentranttosupportbothversions--inthiscase,theinputpackage--arebundledintoasinglepackage,orconfiguration,soconstructedthatnoconflictsarisewithsimilarly-namedprogramsintheremainderofthesystem.ThedeveloperwasabletoloadthisconfiguraitonandconnectittothespareVT,usingthedebuggingtoolsintheolddevelopmentenvironmenttocalltheappropriateproceduresandcontroltheirprogress.Asitbegantorunreasonablywell,hecouldtoggletheviewsïg/îEÉqï_,îxî|î5î”î(îüî"Vî$î('î)“î+òî1Äî=ìï]…îKîåîÝî<î F î' î+Nî-uî.Ÿî1Vî3î6¹î9:î>FîAUï[ÝîK î î‰ î!Ýî+¥î.\ïZ6îxî°î…îîÙî"Îî$|ïXŽîxî–î!î–îî#‹î'5î)”î.žî3Pî8Fî9ôîî$·î'nî*´î,Mî-ûî1mî5‘ î;Æî=ïN¢îxîzî/î´î Èî"�î(Šî,4î1ûî3r î9Óî=ˆ ïLûîKîXî3îuî!Cî%öî+ÿî0› î6òî9©î?›îA3ïKSîK îîîVî$î(æî+³î.î0à ïI¬îxî±î}î$îgî! î%‘î)Ê î/ôî1kî3ßî6jî9!î;�î>,î?£îBrïHîKî‡îƒîsîüîÂî![î#KtïF]îxîTîo î î nî!Æî&] î-Lî1›î2‰î5î6wî:Jî?mî@ÅïD¶îKîSîî™îuî�î!î$[ î*î, î09î4Øî7]î8¤qïCîxîPî€îùî¥î!�î#>î%‘î'˜î(Áî-uî/²î3Àî4Èî7î:BïAgîxîîºîî îH î&+î,(î-áî1ùî3¨ î;Ø ï?¿îKîîÖîïî¡î!³î#aî%µî(lî.Ùî19î3Äî5µî8lî;ÉîA îDÖï>îKî îÕîŽî²îÌî$Áî%Êî*ìî,šî1›î2ñî4ŸïñîCAï:ÉîKîùî�îFîýîýî"¯î%Zî*�î.”î2¬ï9!îxî*î–î®îeî<î"Ïî)gî+Lî7Íî: î@)îAíï7zîK îuî¼ï5Óîxî*îÖîøî§î #î$&î'lî)íî.¶î;Aî@Ðï4+îKï2„îx î½ îGî%Pî(¡î-jî2Áî8 î9Æî;¶î??ï0ÜîxîGî‹îîÞî–î Dî"¹î#ãî/9î4î8î9ÿî?+îA‹ï/5îKîÆîàî@î—î!þî#(î(î-Rî/î1 î8Þî:—ï-ŽîK î>îDï+æîxî‚î0î^î î!²î#î'zî*Gî- î5î6½î:Õî@›ï*?îKî îîØî Êî& î*:î,6î/î1ƒî3ãî6Lî;˜î=Qî?AîBËï(—îKîùî(îˆîvï&ðîxî°î[îôî î#î&�pï%Hîxîµî§î²qï#¡îxî’î;îHî§î"M î*} ï!ùîxîPîŠî"î—î î"�î%Qî*¨î/{î5�îîìîî Óî$rî'@î)”î, î3î9î:±î?½ïîKî—îî¼î^î¤î î#®î(ñî*hî,»î2*î5î6,î:î?²ïoîK îîÚ î!/î#ýî&î+rî.­î1Èî;ÝîAðîCžïÈîKîãîœîûï îxîPî¦îRîKîùî" î$ª î-î/Ôî4ëî6Aî7ïî:Oî=íî@¯îDYï yîKîîVîîcîÍ î'þ î0 î1»î4Eî6¥ î> ï ÒîKîîµîüî Eî"Vî#¬î'¹î)hî+þ î2Øî6î8î;Úî?òîBQÿ TVm$ï4andinteractwithit.(Lateron,infact,asitshapedup,we'retoldhewasabletoturnthingsaroundsothatthenewstuffwasloadedastheprimarydisplaysoftware,whiletheolderversionswerepackagedupandisolatedinitsownconfiguration,foruseinapinch.)ThefeaturesoftheCedarlanguageinheritedfromMesa,carefuldesignoflow-levelcomponentslikeTerminal,&absenceofconcernoverthesafemanagementofstorage(aswellasahuge,veryfastpersonalmachinetorunallthison),Havecombinedtomakethissortofthingpossible,whereinprevioussystemsonewouldsurelyhaveencounteredashow-stoppingcomplication.16.FutureDirectionsforCedarInconclusion,takemomenttolookatthedirectionsweexpecttotakeCedar....[Idon'tlikethisapproachtoconclusions,thinkinsteadthereshouldbeasummaryofwhatmakesCedarrelevanttotheconferenceanddifferentfromitspredecessors.]Bytheway,there'sanotherwaytolookatoursystems,andthat'stolookonlytheirnames,ratherthantheirfunctions.IfwetakethisviewofCedar,wecanseethatwe'vegotourselvesintoagooddealoftrouble,metaphoricallyspeaking.Here'swhatImean.Yousee,there'sthisseaofPups,andthisDorado,whichisapparentlythiskindoffish,andthisMesaherewiththisCedartree,and...anyway,thankyouverymuch,andarethereanyquestions?17.TheCedarMetafivesïg/îEÉqï_,îKîîøîîEî hî"Æî$tî'yî)'î*}î/&î1�î5:î8î:î<®î?¨îAVï]…îKîcî!îåî´îî"î%2î'Þî,Yî.î0gî5�î:Pî@!îCÖï[ÝîKîßî+î|î!…î#—î&Nî+Yî-î.âî1æ î:°î<îî?cîAîB:ïZ6îKî#îPîîhî€î%Fî+#î.Šî2Œî7î;mî=&ïX�îK î÷î£îìî!„î&¦î(_î-‹î0¥î3î5Ñ î=ëî?¤îDVïVçîKî9îçîîÑîàîvî#úî)~î+,î-Ãî/³î2Tî5,î8Ëî?-î@ÛïU@îKîìî£î\îñî‹î#£î%Qî*àî/ßî2‹î6¹î:Æî> îEæïS™îK îc pïQñîxîµî îšîÂqïPJîxîG îoîhîÖî!…î$žî&7î(– î.áî1 î5Yî7î:î>tî@ïPJïPJî@ÎîA¢îDïN£îKîfî1îŠ î­î “î$Uî')î*Àî,Mî-;î2î3fî6î9xî<¾î@óîBKïLûîK îØîî‰îBî¾ qïKTîxî”îôî$î‰î•î"lî$î'4î(Íî+Xî0¯î3gî7î8Àî;Ùî>óîB:ïI­îKîYîîÆ î  î""î$Iî'Bî)äî-î.Øî3Hî5oî7úî:Nî=î@òïHîKî=îî?î±îªî!cî&… î/Ôî6`î:°î> î?îC,ïF^îKî÷î\îþîQî î Ëî#‚î&#î+†î/”î1 î7Ðî:qî=¢î?[îB_ïD·îKîìî–î°îËîmî"…î%Ÿî(Vî)áî/.î3î5Æî8Õî=î?»îBïCîKîì pïAhîxîµîyî{ÿ�TVm$%ÿ TIMESROMANþæÿLAURELþæÿ HELVETICAþŸÿ TIMESROMANþŸÿLAURELþŸÿ TIMESROMANþŸ à  ’"j/%#žâòåÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ []<>cedarpaper>narrative.tioga!7!Friday, June 21, 1985 9:50 am PDT