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 7l"%#ZC g 1qXx9Q#%C)/"58Z: Vxz |$]'b(+d-UMx $ &ur(WUMUM)jqUM-J. Sx[W[u"(*Z-]Qx[=C)#%}+M-/e38G;>ZAPVK u" 'm+02= : Nxg"!%*,g.26;pM g qK`xnd " *w,s/K1 IxP'-W!#'w+02j4e7I9H t#4$*,04Z9< FiA "$+M-04- ;=Dp  '*-CxST !m% '3*y,02}7[;;?I@rAsKp? g D~"q>$x;l" $t +N-2^6 ?bA<|KL:xG"U'*, 56:?A9-KXT#@(*/127 :@C7K5x#$ +. 68s47xm "&(*/20/@  !&L' /- mC +xGep*Jq(7!(I //3G6:5<&m6 $'*/ 6!8;>R?B%Tmp#q"[ %* 1C4^:}>@o ]m  [%(-/:@mA* O$\& ,.3 > A'Em#r%P&8q((( g%gW!X"&).:/1pq  & -258=?MDXqm!# )=+ 4 <Am"x g#(U.1 3 :<@ zm ! ),26o; mv#*Y p, q   "%'U+-~2&69;@ 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,...sg/Ep_,x#[ g L qZ5xf #$' ,m/24357;>sXK N #( +0E5768:>GAVK"B%'*.,t0VV0qU?xT #)pQ g L qPIxf #$' ,m/24357;>sNK N #( +0E5768:>GALK"B%'*.,t0LL0qKRxT #)pH glqF\xDx5O;#i +A1T49=C K F g#%Q +02Afx:"$E)/+ 3[69;?A?KK"x &,/[165: >E >KAQB*=KO 9 t(xog $(%T(,'035m:ASBvC&Kf%Gx: ]T #u%n%G%G&'t%G(+O-237V9;>? Ef#K0vd 0!\#d$v'- 1134 ;<!K 09x!%(,0 5o :=AB QKTe p g qZx$ &(*.F028#:=CK&*p:q% x], %'_+?, 3/59<?B dKD#6$&)T+.x:!x&(+L05:M<AC.KZ!#m'-c/1{6C =@nKx:G $&X+ 379?ABK,!#) /37U9 @B] xK xzi |%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,hecouldtoggletheviewsg/Eq_,x|5("V$(')+1=]K< F ' +N-u.1V369:>FAU[K  !+.\Z6x"$|Xx!#'5).3P8F9$'n*,M-1m5 ;=Nxz/ "(,413r 9= LKX3u!C%+0 69?A3KSK V$(+.0 Ix}$g! %) /1k36j9!;>,?BrHKs![#KtF]xTo   n!&] -L1256w:J?m@DKSu!$[ *, 0947]8qCxP!#>%'(-u/347:BAgx H &+,(-13 ; ?K!#a%(l.19358l;A D>K $%*,124CA:KF"%Z*.29!x*e<")g+L7: @)A7zK u5x* #$&'l).;A@4+K2x  G%P(-j28 9;??0xG D"#/9489?+A/5K@!#((-R/1 8:-K >D+x0^ !#'z*G- 56:@*?K  & *:,6/136L;=Q?AB(K(v&x[ #&p%Hxq#x;H"M *} !xP" "%Q*/{5 $r'@), 39:?K^ #(*h,2*56,:?oK  !/#&+r.1;ACK xPRK" $ -/46A7:O=@DY yKVc ' 0 14E6 > K E"V#')h+ 268;?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.TheCedarMetafivesg/Eq_,KE h"$t'y)'*}/&15:8:<?AV]Kc!"%2',Y.0g5:P@!C[K+|!#&N+Y-.1 :<?cAB:Z6K#Ph%F+#.27;m=&XK !&(_-035 =?DVVK9v#)~+,-/2T5,8?-@U@K\#%Q*/26:> ESK c pQx qPJxG oh!$&7( .1 5Y7:>t@PJPJ@ADNKf1  $U')*,M-;23f69x<@BKLK B qKTx$"l$'4(+X03g78;>B:IKY ""$I'B)-.3H5o7:N=@HK=?!c& /6`:> ?C,F^K\Q  #&#+/1 7:q=?[B_DKm"%(V)/.358=?BCK pAhxy{TVm$% TIMESROMANLAUREL HELVETICA TIMESROMANLAUREL TIMESROMAN  "j/%# []<>cedarpaper>narrative.tioga!7!Friday, June 21, 1985 9:50 am PDT