%!PS-Adobe-2.0 %%Creator: dvips 5.495 Copyright 1986, 1992 Radical Eye Software %%Title: hotos.dvi %%Pages: 6 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments %DVIPSCommandLine: dvips hotos %DVIPSSource: TeX output 1995.03.10:1901 %%BeginProcSet: tex.pro %! /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N} B /TR{translate}N /isls false N /vsize 11 72 mul N /@rigin{isls{[0 -1 1 0 0 0] concat}if 72 Resolution div 72 VResolution div neg scale isls{Resolution hsize -72 div mul 0 TR}if Resolution VResolution vsize -72 div 1 add mul TR matrix currentmatrix dup dup 4 get round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{ CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N} B /I{cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook known{start-hook} if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255 {IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V{}B /RV statusdict begin /product where{ pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{ gsave transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{ p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet TeXDict begin 40258431 52099146 1000 300 300 (/u2/engler/papers/hot-os-jeremiad/hotos.dvi) @start /Fa 47 122 df<0003FE000E03001C0700180600380000380000700000700000700000700007FFFC00E0 1C00E03800E03800E03800E03801C07001C07001C07001C07001C0E403C0E40380E40380E40380 68038030030000070000070000660000E60000CC00007800001821819916>12 D<0003F83FE0000C0CE03000181D807000381B8060003803000000700700000070070000007007 0000007007000000700E000007FFFFFFC000E00E01C000E00E038000E00E038000E01C038001E0 1C038001C01C070001C01C070001C01C070001C01C070001C0380E400380380E400380380E4003 80380E40038030068003007003000700700000070070000006006000006630E00000E470C00000 CC61800000703E0000002421819922>14 D45 D<3078F06005047C830C>I<000800180030007001F00E7000E000E000E000E001C001C001C001 C0038003800380038007000700070007000F00FFF00D187C9714>49 D<007C000186000703000E 03000C03801C0380380380380380380380380780380700380F001817000C270007CE00000E0000 0C00001C00001800E03000E0600080C000C380003E000011187C9714>57 D<060F1E0C00000000000000003078F06008107C8F0C>I<0000200000600000600000E00001E0 0001E000027000027000047000087000087000107000107000207000207000407000807000FFF0 0100380100380200380400380400380C00381C0038FF01FF181A7E991D>65 D<03FFF800700E00700600700700E00700E00700E00700E00701C00E01C01C01C03801C07003FF E003807003803803801C07001C07001C07001C07001C0E00380E00380E00700E00E01C03C0FFFF 00181A7D991B>I<000F8200706200C01603801E07000C0E000C1C000C18000C38000830000870 0000700000E00000E00000E00000E00000E00020E00020E00020E0004060004060008030010010 06000C180003E000171A7A991B>I<03FFF80000700E00007007000070030000E0018000E00180 00E0018000E001C001C001C001C001C001C001C001C001C0038003800380038003800380038003 00070007000700070007000E0007000C000E001C000E0038000E0070000E00E0001C038000FFFE 00001A1A7D991D>I<03FFFF00700700700300700100E00100E00100E00100E00101C08001C080 01C08001C18003FF000381000381000381000702000700040700040700080E00080E00180E0010 0E00301C00E0FFFFE0181A7D991A>I<03FFFF00700700700300700100E00100E00100E00100E0 0101C08001C08001C08001C18003FF000381000381000381000702000700000700000700000E00 000E00000E00000E00001E0000FFE000181A7D9919>I<000FC100302100C01301800F0700060E 00060C0006180006380004300004700000700000E00000E00000E00000E007FEE00070E00070E0 0070E000706000E06000E03000E01801E00C064003F840181A7A991E>I<01FF80003800003800 00380000700000700000700000700000E00000E00000E00000E00001C00001C00001C00001C000 0380000380000380000380000700000700000700000700000E0000FFE000111A7E990F>73 D<00FFC0000E00000E00000E00001C00001C00001C00001C000038000038000038000038000070 0000700000700000700000E00000E00000E00000E00061C000E1C000E180008380004700003C00 00121A7C9914>I<03FF8000700000700000700000E00000E00000E00000E00001C00001C00001 C00001C0000380000380000380000380000700000700100700100700200E00200E00600E00400E 00C01C0380FFFF80141A7D9918>76 D<03F8001FC00078003C000078003C000078005C0000B800 B80000B800B800009C013800009C013800011C027000011C027000011C047000011C087000021C 08E000021C10E000021C10E000021C20E000041C41C000041C41C000041C81C000041C81C00008 0F038000080F038000080E038000180C038000380C070000FF083FF000221A7D9922>I<001F80 00706001C03003001806001C0E000C1C000C18000E38000E30000E70000E70000EE0001CE0001C E0001CE00038E00038E00030E00070E000E0E000C06001807003003806001C1C0007E000171A7A 991D>79 D<03FFF800701C00700600700700E00700E00700E00700E00701C00E01C00E01C01C01 C03803807003FF800380000380000700000700000700000700000E00000E00000E00000E00001C 0000FFC000181A7D991A>I<03FFF000701C00700E00700700E00700E00700E00700E00701C00E 01C01C01C03801C0E003FF800380C00380600380700700700700700700700700700E00E00E00E0 0E00E10E00E21C0062FFC03C181A7D991C>82 D<003F1000609001807001007003002006002006 002006002006000007000007C00003F80001FE00007F00000F8000038000018000018020018020 0180600300600300600600700C00C8180087E000141A7D9916>I<3FFFFC381C0C201C04401C04 40380480380480380480380400700000700000700000700000E00000E00000E00000E00001C000 01C00001C00001C000038000038000038000038000078000FFF800161A79991B>I<7FE0FF0E00 380E00100E00101C00201C00201C00201C00203800403800403800403800407000807000807000 80700080E00100E00100E00100E00200E00200E004006008006010003860000F8000181A78991D >III<03CC0E2E181C381C301C701CE038E038E038E038C072C0 72C07260F261341E180F107C8F14>97 D<01F006080C181838301070006000E000E000E000E000 E008E010602030C01F000D107C8F12>99 D<001F80000380000380000380000700000700000700 000700000E00000E0003CE000E2E00181C00381C00301C00701C00E03800E03800E03800E03800 C07200C07200C0720060F2006134001E1800111A7C9914>I<01E006181C08380870087010FFE0 E000E000E000E000E0086010602030C01F000D107C8F12>I<000700001980001B80003B000030 0000300000700000700000700000700007FF0000E00000E00000E00000E00000E00001C00001C0 0001C00001C00001C000038000038000038000038000038000070000070000070000660000E400 00CC0000700000112181990C>I<00F300038B800607000E07000C07001C0700380E00380E0038 0E00380E00301C00301C00301C00183C0018780007B800003800003800007000607000E0E000C1 C0007F000011177E8F12>I<1F80000380000380000380000700000700000700000700000E0000 0E00000E7C000F86001E07001E07001C07001C0700380E00380E00380E00381C00701C80701C80 703880703900E01900600E00111A7E9914>I<030706000000000000384C4E8E9C9C1C38387072 72E2E4643808197C980C>I<1F8003800380038007000700070007000E000E000E0E0E131C271C 431C801F003C003F8039C038E070E270E270E270E4E0646038101A7E9912>107 D<3F0707070E0E0E0E1C1C1C1C3838383870707070E4E4E4E46830081A7D990A>I<307C1E0059 8663009E0783809E0703809C0703809C070380380E0700380E0700380E0700380E0E00701C0E40 701C0E40701C1C40701C1C80E0380C80601807001A107C8F1F>I<307C005986009E07009E0700 9C07009C0700380E00380E00380E00381C00701C80701C80703880703900E01900600E0011107C 8F16>I<01F006180C0C180E300E700E600EE00EE00EE00CE01CE018E030606030C01F000F107C 8F14>I<030F000590C009E0C009C06009C06009C0600380E00380E00380E00380E00701C00701 800703800703000E8E000E78000E00000E00001C00001C00001C00001C0000FF00001317808F14 >I<30F059189E389C189C009C0038003800380038007000700070007000E00060000D107C8F10> 114 D<03E004300830187018601C001F801FC00FE000E00060E060E06080C041803E000C107D8F 10>I<06000E000E000E000E001C001C00FFC01C0038003800380038007000700070007000E100 E100E100E200640038000A177C960D>I<38064C074E0E8E0E9C0E9C0E1C1C381C381C381C7039 703970393079389A0F0C10107C8F15>I<38184C1C4E1C8E0C9C0C9C0C1C083808380838087010 70107020304018C00F000E107C8F12>I<078F0008D18010F38020E18020E00020E00001C00001 C00001C00001C000038200038200C38200E78400C5880078F00011107E8F12>120 D<38064C074E0E8E0E9C0E9C0E1C1C381C381C381C703870387038307838F00F700070006060E0 E1C0C18047003C0010177C8F13>I E /Fb 75 124 df<00FC7C0183C607078E0607040E07000E 07000E07000E07000E07000E0700FFFFF00E07000E07000E07000E07000E07000E07000E07000E 07000E07000E07000E07000E07000E07000E07007F0FF0171A809916>11 D<00FC000182000703000607000E02000E00000E00000E00000E00000E0000FFFF000E07000E07 000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07007F0F E0131A809915>I<00FF000387000707000607000E07000E07000E07000E07000E07000E0700FF FF000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E 07000E07007F9FE0131A809915>I<007E1F8001C170400703C060060380E00E0380400E038000 0E0380000E0380000E0380000E038000FFFFFFE00E0380E00E0380E00E0380E00E0380E00E0380 E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E07F8F E3FC1E1A809920>I<60F0F868080808101020C0050B7D990B>39 D<00800100020004000C0008 0018003000300030006000600060006000E000E000E000E000E000E000E000E000E000E0006000 600060006000300030003000180008000C00040002000100008009267D9B0F>I<800040002000 1000180008000C0006000600060003000300030003000380038003800380038003800380038003 80038003000300030003000600060006000C0008001800100020004000800009267E9B0F>I<60 F0F07010101020204080040B7D830B>44 DI<60F0F06004047D830B>I< 0004000C00180018001800300030003000600060006000C000C000C00180018001800300030003 000600060006000C000C000C00180018001800300030003000600060006000C000C0000E257E9B 13>I<078018603030303060186018E01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01C 6018601870383030186007800E187E9713>I<03000700FF000700070007000700070007000700 0700070007000700070007000700070007000700070007000700FFF00C187D9713>I<0F801060 20304038803CC01CE01C401C003C003800380070006000C001800100020004040804100430083F F87FF8FFF80E187E9713>I<0F8010E02070607870382038007800700070006000C00F8000E000 700038003C003CE03CE03CC03C4038407030E00F800E187E9713>I<00300030007000F000F001 700370027004700C7008701070307020704070C070FFFF00700070007000700070007007FF1018 7F9713>I<30183FF03FE03FC02000200020002000200027C03860203000380018001C001C401C E01CE01C80184038403030E00F800E187E9713>I<01E006100C1818383038300070006000E000 E7C0E860F030F018E018E01CE01CE01C601C601C701830183030186007C00E187E9713>I<4000 7FFE7FFC7FFC400880108010802000400040008001800180010003000300030003000700070007 0007000700070002000F197E9813>I<078018603030201860186018601870103C303E600F8007 C019F030F86038401CC00CC00CC00CC00C6008201018600FC00E187E9713>I<07801860303070 306018E018E018E01CE01CE01C601C603C303C185C0F9C001C0018001800387030706060402180 1F000E187E9713>I<60F0F060000000000000000060F0F06004107D8F0B>I<1FC020604030C038 E038E0380038007000E0018001000300020002000200020002000200000000000000000006000F 000F0006000D1A7E9912>63 D<000C0000000C0000000C0000001E0000001E0000003F00000027 0000002700000043800000438000004380000081C0000081C0000081C0000100E0000100E00001 FFE000020070000200700006007800040038000400380008001C0008001C001C001E00FF00FFC0 1A1A7F991D>65 DI<003F0201C0C603002E0E001E1C000E1C0006380006780002 700002700002F00000F00000F00000F00000F00000F000007000027000027800023800041C0004 1C00080E000803003001C0C0003F00171A7E991C>IIII<003F020001C0C60003002E000E001E001C000E001C0006003800060078000200700002 0070000200F0000000F0000000F0000000F0000000F0000000F001FFC070000E0070000E007800 0E0038000E001C000E001C000E000E000E000300160001C06600003F82001A1A7E991E>III<1FFC00E000E000E000E000E000E0 00E000E000E000E000E000E000E000E000E000E000E000E000E040E0E0E0E0E041C061801E000E 1A7D9914>II< FFF0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0000 0E00000E00000E00000E00000E00200E00200E00200E00600E00400E00400E00C00E03C0FFFFC0 131A7E9918>I II<007F000001C1C000070070000E0038001C001C003C001E0038000E0078000F 0070000700F0000780F0000780F0000780F0000780F0000780F0000780F0000780F00007807800 0F0078000F0038000E003C001E001C001C000E0038000700700001C1C000007F0000191A7E991E >II82 D<0FC21836200E6006C006C002C002C002E00070007E003FE01FF807FC003E000E000700 03800380038003C002C006E004D81887E0101A7E9915>I<7FFFFF00701C0700401C0100401C01 00C01C0180801C0080801C0080801C0080001C0000001C0000001C0000001C0000001C0000001C 0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C000000 1C0000001C000003FFE000191A7F991C>IIII< FF801FE01E0007000E0006000F000400070008000780080003C0100001C0300001E0200000F040 00007040000078800000388000001D0000001F0000000E0000000E0000000E0000000E0000000E 0000000E0000000E0000000E0000000E0000000E000000FFE0001B1A7F991D>89 D<7FFFC0780380700380600700400700400E00401C00401C0000380000380000700000E00000E0 0001C00001C0000380000700400700400E00400E00401C00C0380080380180700380700780FFFF 80121A7E9917>II93 D<3F8070C070E020700070007007F01C7030707070 E070E071E071E0F171FB1E3C10107E8F13>97 DI<07F80C1C381C30087000E000 E000E000E000E000E0007000300438080C1807E00E107F8F11>I<007E00000E00000E00000E00 000E00000E00000E00000E00000E00000E0003CE000C3E00380E00300E00700E00E00E00E00E00 E00E00E00E00E00E00E00E00600E00700E00381E001C2E0007CFC0121A7F9915>I<07C01C3030 187018600CE00CFFFCE000E000E000E0006000300438080C1807E00E107F8F11>I<01F0031807 380E100E000E000E000E000E000E00FFC00E000E000E000E000E000E000E000E000E000E000E00 0E000E000E007FE00D1A80990C>I<0FCE187330307038703870387038303018602FC020006000 70003FF03FFC1FFE600FC003C003C003C0036006381C07E010187F8F13>II<18 003C003C001800000000000000000000000000FC001C001C001C001C001C001C001C001C001C00 1C001C001C001C001C00FF80091A80990A>I107 DIII<07E01C38300C700E6006E007E007E007E007E007E0 076006700E381C1C3807E010107F8F13>II<03C2000C2600381E00300E00700E00E00E00E00E00E00E 00E00E00E00E00E00E00700E00700E00381E001C2E0007CE00000E00000E00000E00000E00000E 00000E00007FC012177F8F14>II<1F2060E04020C020C020F0007F003FC01FE000F080708030C0 30C020F0408F800C107F8F0F>I<0400040004000C000C001C003C00FFC01C001C001C001C001C 001C001C001C001C201C201C201C201C200E4003800B177F960F>IIIIII<7FF86070407040E041C041 C00380070007000E081C081C08381070107030FFF00D107F8F11>II E /Fc 3 113 df<1FE0003FF0007FF800783C00300E00000E00000E0003FE001FFE003E0E0070 0E00E00E00E00E00E00E00783E007FFFE03FE7E00F83E013127E9116>97 D109 D<7E3E00FEFF007FFF800F83C00F00 E00E00E00E00700E00700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF000E3C 000E00000E00000E00000E00000E00000E00007FC000FFE0007FC000141B809116>112 D E /Fd 37 122 df<003FC00001F0300003C0380007C07C000F807C000F807C000F8038000F80 00000F8000000F8000000F800000FFFFFC00FFFFFC000F807C000F807C000F807C000F807C000F 807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C00 7FE1FF807FE1FF80191D809C1B>12 D<003FFC0001F07C0003C07C0007C07C000F807C000F807C 000F807C000F807C000F807C000F807C000F807C00FFFFFC00FFFFFC000F807C000F807C000F80 7C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F 807C000F807C007FF3FF807FF3FF80191D809C1B>I<003FC1FE0001F03F818003C03E01C007C0 7E03E00F807C03E00F807C03E00F807C01C00F807C00000F807C00000F807C00000F807C0000FF FFFFFFE0FFFFFFFFE00F807C03E00F807C03E00F807C03E00F807C03E00F807C03E00F807C03E0 0F807C03E00F807C03E00F807C03E00F807C03E00F807C03E00F807C03E00F807C03E00F807C03 E07FE1FF0FFC7FE1FF0FFC261D809C28>I<78FCFCFEFE7A0202040408083040070E7D9C0D>39 D45 D<0FF0303C601EF01FF81FF81F701F003E003C007000E0 01C00180018003000300030003000300000000000000000007800FC00FC00FC00FC00780101D7D 9C17>63 D<00038000000380000007C0000007C0000007C000000FE000000FE000001FF000001B F000001BF0000031F8000031F8000061FC000060FC0000E0FE0000C07E0000C07E0001803F0001 FFFF0003FFFF8003001F8003001F8006000FC006000FC00E000FE00C0007E0FFC07FFEFFC07FFE 1F1C7E9B24>65 D<001FE02000FFF8E003F80FE007C003E00F8001E01F0000E03E0000E03E0000 607E0000607C000060FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00 00007C0000607E0000603E0000603E0000C01F0000C00F80018007C0030003F80E0000FFFC0000 1FE0001B1C7D9B22>67 DIII72 DI80 D82 D87 D<0FF8001C1E003E0F803E07803E07C01C07C0 0007C0007FC007E7C01F07C03C07C07C07C0F807C0F807C0F807C0780BC03E13F80FE1F815127F 9117>97 DI<03FC000E0E001C1F003C1F00781F00780E00 F80000F80000F80000F80000F80000F800007800007801803C01801C03000E0E0003F80011127E 9115>I<000FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F001F9 F00F07F01C03F03C01F07801F07801F0F801F0F801F0F801F0F801F0F801F0F801F07801F07801 F03C01F01C03F00F0FFE03F9FE171D7E9C1B>I<01FC000F07001C03803C01C07801C07801E0F8 01E0F801E0FFFFE0F80000F80000F800007800007C00603C00601E00C00F038001FC0013127F91 16>I<007F0001E38003C7C00787C00F87C00F83800F80000F80000F80000F80000F8000FFF800 FFF8000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8000 0F80000F80007FF8007FF800121D809C0F>I<03F8F00E0F381E0F381C07303C07803C07803C07 803C07801C07001E0F000E0E001BF8001000001800001800001FFF001FFFC00FFFE01FFFF07801 F8F00078F00078F000787000707800F01E03C007FF00151B7F9118>II<1E003F003F003F003F001E00000000000000000000000000FF00FF001F001F001F 001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B1E7F9D0E>I108 DII<01FC000F07801C01C03C01E07800 F07800F0F800F8F800F8F800F8F800F8F800F8F800F87800F07800F03C01E01E03C00F078001FC 0015127F9118>II114 D<1FD830786018E018E018F000FF807FE07FF01FF807FC007CC01CC01CE01CE018F830CFC00E12 7E9113>I<0300030003000300070007000F000F003FFCFFFC1F001F001F001F001F001F001F00 1F001F001F0C1F0C1F0C1F0C0F08079803F00E1A7F9913>II119 DI I E /Fe 38 122 df45 D<60F0F06004047D830A>I<07C01830301870 1C600C600CE00EE00EE00EE00EE00EE00EE00EE00EE00E600C600C701C30181C7007C00F157F94 12>48 D<03000700FF000700070007000700070007000700070007000700070007000700070007 00070007007FF00C157E9412>I<00300030007000F001F0017002700470087018701070207040 70C070FFFE0070007000700070007003FE0F157F9412>52 D<20303FE03FC02400200020002000 20002F8030E020700030003800384038E038E0388030406020C01F000D157E9412>I<07E01830 2018600C600C700C78183E101F600FC00FF018F8607C601EC00EC006C006C004600C38300FE00F 157F9412>56 D<07C0183030186018E00CE00CE00EE00EE00E601E301E186E0F8E000E000C001C 70187018603020C01F800F157F9412>I<001000003800003800003800005C00005C00005C0000 8E00008E00008E0001070001070003078002038002038007FFC00401C00401C00800E00800E018 00E03800F0FE03FE17177F961A>65 D70 D73 D78 D80 D82 D<0FC4302C601C400CC004C004 C004E00070007F003FE00FF801FC001C000E0006800680068006C004E008D81087E00F177E9614 >I<7FFFF860381840380840380880380480380480380400380000380000380000380000380000 380000380000380000380000380000380000380000380000380000380007FFC016177F9619>I< FFC03F801E001C000F00080007001000078030000380200001C0400001E0400000E0800000F180 0000710000003A0000003E0000001C0000001C0000001C0000001C0000001C0000001C0000001C 0000001C0000001C000000FF8000191780961A>89 D<1FC0386038301038003803F81E38303870 38E039E039E07970FF1F1E100E7F8D12>97 DI<07F01838303870106000E000E000E000E00060007008 3008183007C00D0E7F8D10>I<007E00000E00000E00000E00000E00000E00000E00000E00000E 0007CE001C3E00300E00700E00600E00E00E00E00E00E00E00E00E00600E00700E00301E00182E 0007CFC012177F9614>I<0FC0186030307038E018FFF8E000E000E000600070083010183007C0 0D0E7F8D10>I<0F9E18E33060707070707070306018C02F80200060003FE03FF83FFC600EC006 C006C006600C38380FE010157F8D12>103 DI<183C3C1800000000007C1C1C1C1C1C1C1C1C1C1C1C1C FF081780960A>I<0300078007800300000000000000000000001F800380038003800380038003 800380038003800380038003800380038003804380E300E7007C00091D82960B>III110 D<07C018303018600C600CE00EE00EE00EE00EE00E 701C3018183007C00F0E7F8D12>II114 D<1F4060C0C040C040E000FF007F801FC001E080608060C060E0C09F000B0E7F8D0E>I<080008 000800180018003800FF80380038003800380038003800380038403840384038401C800F000A14 7F930E>IIII121 D E /Ff 36 118 df45 D<00180000780001F800FFF800FFF8 0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8 0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8007FFF E07FFFE013207C9F1C>49 D<03FC000FFF003C1FC07007E07C07F0FE03F0FE03F8FE03F8FE01F8 7C01F83803F80003F80003F00003F00007E00007C0000F80001F00003E0000380000700000E018 01C0180380180700180E00380FFFF01FFFF03FFFF07FFFF0FFFFF0FFFFF015207D9F1C>I<00FE 0007FFC00F07E01E03F03F03F03F81F83F81F83F81F81F03F81F03F00003F00003E00007C0001F 8001FE0001FF000007C00001F00001F80000FC0000FC3C00FE7E00FEFF00FEFF00FEFF00FEFF00 FC7E01FC7801F81E07F00FFFC001FE0017207E9F1C>I<0000E00001E00003E00003E00007E000 0FE0001FE0001FE00037E00077E000E7E001C7E00187E00307E00707E00E07E00C07E01807E038 07E07007E0E007E0FFFFFEFFFFFE0007E00007E00007E00007E00007E00007E00007E000FFFE00 FFFE17207E9F1C>I<1000201E01E01FFFC01FFF801FFF001FFE001FF8001BC000180000180000 18000018000019FC001FFF001E0FC01807E01803E00003F00003F00003F80003F83803F87C03F8 FE03F8FE03F8FC03F0FC03F07007E03007C01C1F800FFF0003F80015207D9F1C>I<001F8000FF E003F07007C0F00F01F81F01F83E01F83E01F87E00F07C00007C0000FC0800FC7FC0FCFFE0FD80 F0FF00F8FE007CFE007CFC007EFC007EFC007EFC007E7C007E7C007E7C007E3C007C3E007C1E00 F80F00F00783E003FFC000FF0017207E9F1C>I<387CFEFEFE7C380000000000000000387CFEFE FE7C3807167C9510>58 D<000070000000007000000000F800000000F800000000F800000001FC 00000001FC00000003FE00000003FE00000003FE00000006FF000000067F0000000E7F8000000C 3F8000000C3F800000183FC00000181FC00000381FE00000300FE00000300FE00000600FF00000 6007F00000E007F80000FFFFF80000FFFFF800018001FC00018001FC00038001FE00030000FE00 030000FE000600007F000600007F00FFE00FFFF8FFE00FFFF825227EA12A>65 D<0003FE0080001FFF818000FF01E38001F8003F8003E0001F8007C0000F800F800007801F8000 07803F000003803F000003807F000001807E000001807E00000180FE00000000FE00000000FE00 000000FE00000000FE00000000FE00000000FE00000000FE000000007E000000007E000001807F 000001803F000001803F000003801F800003000F8000030007C000060003F0000C0001F8003800 00FF00F000001FFFC0000003FE000021227DA128>67 DII73 D<03FFFF03FFFF0007F00007F00007F0 0007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0 0007F00007F00007F00007F00007F00007F01807F07E07F0FF07F0FF07F0FF07F0FF07E07E0FE0 7C1FC01FFF0007F80018227FA11D>I<0007FC0000003FFF800000FC07E00003F001F80007E000 FC000FC0007E001F80003F001F80003F003F00001F803F00001F807F00001FC07E00000FC07E00 000FC0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE 00000FE0FE00000FE07E00000FC07F00001FC07F00001FC03F00001F803F80003F801F80003F00 0FC0007E0007E000FC0003F001F80000FC07E000003FFF80000007FC000023227DA12A>79 D82 D<01FC0407FF8C1F03FC3C007C7C003C78 001C78001CF8000CF8000CFC000CFC0000FF0000FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03 FFFE003FFE0003FF00007F00003F00003FC0001FC0001FC0001FE0001EE0001EF0003CFC003CFF 00F8C7FFE080FF8018227DA11F>I<7FFFFFFF807FFFFFFF807E03F80F807803F807807003F803 806003F80180E003F801C0E003F801C0C003F800C0C003F800C0C003F800C0C003F800C00003F8 00000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003 F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8000000 03F800000003F800000003F800000003F8000003FFFFF80003FFFFF80022227EA127>I87 D<07FC001FFF803F07C03F03E03F01E03F01F01E01F00001F00001F0003FF0 03FDF01FC1F03F01F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81FF87F07E03F18167E 951B>97 DI<00FF8007 FFE00F83F01F03F03E03F07E03F07C01E07C0000FC0000FC0000FC0000FC0000FC0000FC00007C 00007E00007E00003E00301F00600FC0E007FF8000FE0014167E9519>I<0001FE000001FE0000 003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E00 00003E0001FC3E0007FFBE000F81FE001F007E003E003E007E003E007C003E00FC003E00FC003E 00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E007C003E007C003E003E007E001E00 FE000F83BE0007FF3FC001FC3FC01A237EA21F>I<00FE0007FF800F87C01E01E03E01F07C00F0 7C00F8FC00F8FC00F8FFFFF8FFFFF8FC0000FC0000FC00007C00007C00007E00003E00181F0030 0FC07003FFC000FF0015167E951A>I<003F8000FFC001E3E003C7E007C7E00F87E00F83C00F80 000F80000F80000F80000F80000F8000FFFC00FFFC000F80000F80000F80000F80000F80000F80 000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80007FF8 007FF80013237FA211>I104 D<1C003F007F007F007F003F001C000000000000000000000000000000FF00FF001F001F 001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B24 7EA310>I107 DI< FF07F007F000FF1FFC1FFC001F303E303E001F403E403E001F801F801F001F801F801F001F001F 001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00 1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F 001F00FFE0FFE0FFE0FFE0FFE0FFE02B167E9530>II< 00FE0007FFC00F83E01E00F03E00F87C007C7C007C7C007CFC007EFC007EFC007EFC007EFC007E FC007EFC007E7C007C7C007C3E00F81F01F00F83E007FFC000FE0017167E951C>I114 D<0FF3003FFF00781F00600700E00300E00300F00300FC00007FE0007FF8003FFE000FFF0001FF 00000F80C00780C00380E00380E00380F00700FC0E00EFFC00C7F00011167E9516>I<01800001 80000180000180000380000380000780000780000F80003F8000FFFF00FFFF000F80000F80000F 80000F80000F80000F80000F80000F80000F80000F80000F80000F81800F81800F81800F81800F 81800F830007C30003FE0000F80011207F9F16>II E /Fg 25 123 df45 D<03CC063C0C3C181C3838303870387038E0 70E070E070E070E0E2C0E2C0E261E462643C380F127B9115>97 D<3F00070007000E000E000E00 0E001C001C001C001C0039C03E60383038307038703870387038E070E070E070E060E0E0C0C0C1 C0618063003C000D1D7B9C13>I<01F007080C08181C3838300070007000E000E000E000E000E0 00E008E010602030C01F000E127B9113>I<001F80000380000380000700000700000700000700 000E00000E00000E00000E0003DC00063C000C3C00181C00383800303800703800703800E07000 E07000E07000E07000E0E200C0E200C0E20061E4006264003C3800111D7B9C15>I<01E007100C 1018083810701070607F80E000E000E000E000E000E0086010602030C01F000D127B9113>I<00 03C0000670000C70001C60001C00001C0000380000380000380000380000380003FF8000700000 700000700000700000700000E00000E00000E00000E00000E00001C00001C00001C00001C00001 C000038000038000038000030000030000070000C60000E60000CC00007800001425819C0D>I< 00F3018F030F06070E0E0C0E1C0E1C0E381C381C381C381C383830383038187818F00F70007000 7000E000E0C0C0E1C0C3007E00101A7D9113>I<0FC00001C00001C00003800003800003800003 80000700000700000700000700000E78000E8C000F0E000E0E001C0E001C0E001C0E001C0E0038 1C00381C00381C00383800703880703880707080707100E03200601C00111D7D9C15>I<018003 80010000000000000000000000000000001C002600470047008E008E000E001C001C001C003800 3800710071007100720072003C00091C7C9B0D>I<0FC00001C00001C000038000038000038000 0380000700000700000700000700000E0F000E11000E23800E43801C83001C80001D00001E0000 3F800039C00038E00038E00070E20070E20070E20070E400E06400603800111D7D9C13>107 D<1F800380038007000700070007000E000E000E000E001C001C001C001C003800380038003800 7000700070007000E400E400E400E40068003800091D7C9C0B>I<3C1E0780266318C04683A0E0 4703C0E08E0380E08E0380E00E0380E00E0380E01C0701C01C0701C01C0701C01C070380380E03 88380E0388380E0708380E0710701C0320300C01C01D127C9122>I<3C3C002646004687004707 008E07008E07000E07000E07001C0E001C0E001C0E001C1C00381C40381C403838403838807019 00300E0012127C9117>I<01E007180C0C180C380C300E700E700EE01CE01CE01CE018E038E030 E06060C031801E000F127B9115>I<07870004D98008E0C008E0C011C0E011C0E001C0E001C0E0 0381C00381C00381C00381800703800703000707000706000E8C000E70000E00000E00001C0000 1C00001C00001C00003C0000FF8000131A7F9115>I<03C4062C0C3C181C3838303870387038E0 70E070E070E070E0E0C0E0C0E061E063C03DC001C001C0038003800380038007803FF00E1A7B91 13>I<3C3C26C2468747078E068E000E000E001C001C001C001C00380038003800380070003000 10127C9112>I<01F006080C080C1C18181C001F001FC00FF007F0007800386030E030C0308060 60C01F000E127D9111>I<00C001C001C001C00380038003800380FFE00700070007000E000E00 0E000E001C001C001C001C00384038403840388019000E000B1A7D990E>I<1E03002707004707 00470700870E00870E000E0E000E0E001C1C001C1C001C1C001C1C003838803838801838801839 001C5900078E0011127C9116>I<1E06270E470E4706870287020E020E021C041C041C041C0818 083808181018200C4007800F127C9113>I<070E0019910010E38020E38041C30041C00001C000 01C000038000038000038000038000070200670200E70400CB04008B080070F00011127D9113> 120 D<1E03270747074707870E870E0E0E0E0E1C1C1C1C1C1C1C1C38383838183818381C7007F0 0070007000E0E0C0E1C0818047003C00101A7C9114>I<038207C20FEC08381008001000200040 008001000200040008081008383067F043E081C00F127D9111>I E /Fh 76 123 df<007E1F0001C1B1800303E3C00703C3C00E03C1800E01C0000E01C0000E01C0000E01 C0000E01C0000E01C000FFFFFC000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E 01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C000 7F87FC001A1D809C18>11 D<007E0001C1800301800703C00E03C00E01800E00000E00000E0000 0E00000E0000FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0 0E01C00E01C00E01C00E01C00E01C00E01C07F87F8151D809C17>I<007FC001C1C00303C00703 C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFFFC00E01C00E01C00E01C00E01C00E01 C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07FCFF8151D 809C17>I<003F07E00001C09C18000380F018000701F03C000E01E03C000E00E018000E00E000 000E00E000000E00E000000E00E000000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E0 1C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00 E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C007FC7FCFF80211D809C23> I<6060F0F0F8F86868080808080808101010102020404080800D0C7F9C15>34 D<60F0F8680808081010204080050C7C9C0C>39 D<004000800100020006000C000C0018001800 300030007000600060006000E000E000E000E000E000E000E000E000E000E000E000E000600060 006000700030003000180018000C000C00060002000100008000400A2A7D9E10>I<8000400020 00100018000C000C000600060003000300038001800180018001C001C001C001C001C001C001C0 01C001C001C001C001C0018001800180038003000300060006000C000C00180010002000400080 000A2A7E9E10>I<60F0F0701010101020204080040C7C830C>44 DI<60 F0F06004047C830C>I<00010003000600060006000C000C000C00180018001800300030003000 60006000C000C000C0018001800180030003000300060006000C000C000C001800180018003000 30003000600060006000C000C00010297E9E15>I<03C00C301818300C300C700E60066006E007 E007E007E007E007E007E007E007E007E007E007E007E00760066006700E300C300C18180C3007 E0101D7E9B15>I<030007003F00C7000700070007000700070007000700070007000700070007 0007000700070007000700070007000700070007000F80FFF80D1C7C9B15>I<07C01830201C40 0C400EF00FF80FF807F8077007000F000E000E001C001C00380070006000C00180030006010C01 180110023FFE7FFEFFFE101C7E9B15>I<07E01830201C201C781E780E781E381E001C001C0018 0030006007E00030001C001C000E000F000F700FF80FF80FF80FF00E401C201C183007E0101D7E 9B15>I<000C00000C00001C00003C00003C00005C0000DC00009C00011C00031C00021C00041C 000C1C00081C00101C00301C00201C00401C00C01C00FFFFC0001C00001C00001C00001C00001C 00001C00001C0001FFC0121C7F9B15>I<300C3FF83FF03FC020002000200020002000200023E0 24302818301C200E000E000F000F000F600FF00FF00FF00F800E401E401C2038187007C0101D7E 9B15>I<00F0030C06040C0E181E301E300C700070006000E3E0E430E818F00CF00EE006E007E0 07E007E007E007600760077006300E300C18180C3003E0101D7E9B15>I<4000007FFF807FFF00 7FFF0040020080040080040080080000100000100000200000600000400000C00000C00001C000 018000018000038000038000038000038000078000078000078000078000078000078000030000 111D7E9B15>I<03E00C301008200C20066006600660067006780C3E083FB01FE007F007F818FC 307E601E600FC007C003C003C003C00360026004300C1C1007E0101D7E9B15>I<03C00C301818 300C700C600EE006E006E007E007E007E007E0076007700F300F18170C2707C700060006000E30 0C780C78187010203030C00F80101D7E9B15>I<60F0F0600000000000000000000060F0F06004 127C910C>I<60F0F0600000000000000000000060F0F0701010101020204080041A7C910C>I<0F E03038401CE00EF00EF00EF00E000C001C0030006000C000800180010001000100010001000100 0000000000000000000003000780078003000F1D7E9C14>63 D<00060000000600000006000000 0F0000000F0000000F00000017800000178000001780000023C0000023C0000023C0000041E000 0041E0000041E0000080F0000080F0000180F8000100780001FFF80003007C0002003C0002003C 0006003E0004001E0004001E000C001F001E001F00FF80FFF01C1D7F9C1F>65 DI<001F808000E0618001801980070007800E0003801C0003801C 00018038000180780000807800008070000080F0000000F0000000F0000000F0000000F0000000 F0000000F0000000F0000000700000807800008078000080380000801C0001001C0001000E0002 00070004000180080000E03000001FC000191E7E9C1E>III< FFFFF80F00780F00180F00080F00080F000C0F00040F00040F02040F02000F02000F02000F0600 0FFE000F06000F02000F02000F02000F02000F00000F00000F00000F00000F00000F00000F0000 0F8000FFF800161C7E9B1B>I<001F808000E0618001801980070007800E0003801C0003801C00 018038000180780000807800008070000080F0000000F0000000F0000000F0000000F0000000F0 000000F000FFF0F0000F80700007807800078078000780380007801C0007801C0007800E000780 07000B800180118000E06080001F80001C1E7E9C21>III75 DIII<003F800000E0E0000380380007001C000E000E00 1C0007003C00078038000380780003C0780003C0700001C0F00001E0F00001E0F00001E0F00001 E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C0380003803C0007801C00 07000E000E0007001C000380380000E0E000003F80001B1E7E9C20>II82 D<07E0801C1980300580700380600180E00180E00080E00080E00080F000 00F800007C00007FC0003FF8001FFE0007FF0000FF80000F800007C00003C00001C08001C08001 C08001C0C00180C00180E00300D00200CC0C0083F800121E7E9C17>I<7FFFFFC0700F01C0600F 00C0400F0040400F0040C00F0020800F0020800F0020800F0020000F0000000F0000000F000000 0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000 000F0000000F0000000F0000000F0000001F800003FFFC001B1C7F9B1E>IIII< 7FF0FFC00FC03E000780180003C0180003E0100001E0200001F0600000F0400000788000007D80 00003D0000001E0000001F0000000F0000000F8000000F80000013C0000023E0000021E0000041 F00000C0F8000080780001007C0003003C0002001E0006001F001F003F80FFC0FFF01C1C7F9B1F >I91 D<08081010202040404040808080808080B0B0F8F8787830300D0C7A 9C15>II<1FC000307000783800781C00301C00001C00001C0001FC000F1C 00381C00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115>97 DI<07E00C301878307870306000E000E000E000E000E000 E00060007004300418080C3007C00E127E9112>I<003F00000700000700000700000700000700 00070000070000070000070000070003E7000C1700180F00300700700700600700E00700E00700 E00700E00700E00700E00700600700700700300700180F000C370007C7E0131D7E9C17>I<03E0 0C301818300C700E6006E006FFFEE000E000E000E00060007002300218040C1803E00F127F9112 >I<00F8018C071E061E0E0C0E000E000E000E000E000E00FFE00E000E000E000E000E000E000E 000E000E000E000E000E000E000E000E000E007FE00F1D809C0D>I<00038003C4C00C38C01C38 80181800381C00381C00381C00381C001818001C38000C300013C0001000003000001800001FF8 001FFF001FFF803003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C7F9215 >II<18003C003C00180000000000000000000000000000 00FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D 7F9C0C>I<00C001E001E000C000000000000000000000000000000FE000E000E000E000E000E0 00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E060E0F0C0F1C061803E 000B25839C0D>IIIII<03F0000E1C00180600300300700380600180E001C0E001C0E001 C0E001C0E001C0E001C06001807003803003001806000E1C0003F00012127F9115>II<03C1000C3300180B00300F00700700700700E00700E00700E00700E00700E00700E00700 600700700700300F00180F000C370007C700000700000700000700000700000700000700000700 003FE0131A7E9116>II<1F9030704030C010C010E010F8007F803FE00FF000F8803880 18C018C018E010D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C 001C001C001C001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>IIII<7F8FF00F03800F030007020003840001C80001D80000F00000700000780000F80000 9C00010E00020E000607000403801E07C0FF0FF81512809116>II<7FFC703860 38407040F040E041C003C0038007000F040E041C043C0C380870087038FFF80E127F9112>I E /Fi 7 117 df<0000E000000000E000000001F000000001F000000001F000000003F8000000 03F800000006FC00000006FC0000000EFE0000000C7E0000000C7E000000183F000000183F0000 00303F800000301F800000701FC00000600FC00000600FC00000C007E00000FFFFE00001FFFFF0 00018003F000018003F000030001F800030001F800060001FC00060000FC000E0000FE00FFE00F FFE0FFE00FFFE0231F7E9E28>65 D<07FC001FFF003F0F803F07C03F03E03F03E00C03E00003E0 007FE007FBE01F03E03C03E07C03E0F803E0F803E0F803E0FC05E07E0DE03FF8FE0FE07E17147F 9319>97 DI<01FE0007FF801F0FC0 3E0FC03E0FC07C0FC07C0300FC0000FC0000FC0000FC0000FC0000FC00007C00007E00003E0060 3F00C01F81C007FF0001FC0013147E9317>I114 D<0FE63FFE701E600EE006E006F800FFC07FF83FFC1FFE03FE001FC007C0 07E007F006F81EFFFCC7F010147E9315>I<01800180018003800380038007800F803F80FFFCFF FC0F800F800F800F800F800F800F800F800F800F800F860F860F860F860F8607CC03F801F00F1D 7F9C14>I E /Fj 2 104 df<000F0038007000E001C001C001C001C001C001C001C001C001C001 C001C001C001C001C001C001C001C0038007001E00F0001E000700038001C001C001C001C001C0 01C001C001C001C001C001C001C001C001C001C001C001C000E000700038000F10317CA419> 102 DI E /Fk 44 122 df<70F8FCFC7404040404080810102040060F7C840E>44 D<70F8F8F87005057C840E>46 D<01F000071C000C06001803003803803803807001C07001C070 01C07001C0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F0 01E0F001E0F001E07001C07001C07001C07803C03803803803801C07000C0600071C0001F00013 227EA018>48 D<008003800F80F380038003800380038003800380038003800380038003800380 03800380038003800380038003800380038003800380038003800380038007C0FFFE0F217CA018 >I<03F0000C1C001007002007804003C04003C08003E0F003E0F801E0F801E0F801E02003E000 03E00003C00003C0000780000700000E00001C0000180000300000600000C00001800001000002 00200400200800201800603000403FFFC07FFFC0FFFFC013217EA018>I<03F8000C1E00100700 2007804007C07807C07803C07807C03807C0000780000780000700000F00000E0000380003F000 001C00000F000007800007800003C00003C00003E02003E07003E0F803E0F803E0F003C04003C0 400780200780100F000C1C0003F00013227EA018>I<000200000600000E00000E00001E00001E 00002E00004E00004E00008E00008E00010E00020E00020E00040E00040E00080E00100E00100E 00200E00200E00400E00800E00FFFFF8000E00000E00000E00000E00000E00000E00000E00001F 0001FFF015217FA018>I<1000801E07001FFF001FFE001FF80013E00010000010000010000010 000010000010000010F800130E001407001803801003800001C00001C00001E00001E00001E000 01E07001E0F001E0F001E0E001C08001C04003C04003802007001006000C1C0003F00013227EA0 18>I<01F000060C000C0600180700380380700380700380F001C0F001C0F001C0F001E0F001E0 F001E0F001E0F001E07001E07003E03803E01805E00C05E00619E003E1E00001C00001C00001C0 000380000380300300780700780600700C002018001030000FC00013227EA018>57 D<000FE00000701C0000800200030001800400004008000020080000201007C010201830082030 08084060040440C0078441C0038481C00382838003828380038283800382838003828380038283 8003828380038281C0038241C0038240C007824060078420300B84201831881007C0F008000000 08000000040000000300000E00800078007007C0000FFC001F237DA226>64 D<0001800000018000000180000003C0000003C0000003C0000005E0000005E000000DF0000008 F0000008F0000010F800001078000010780000203C0000203C0000203C0000401E0000401E0000 401E0000800F0000800F0000FFFF000100078001000780030007C0020003C0020003C0040003E0 040001E0040001E00C0000F00C0000F03E0001F8FF800FFF20237EA225>I<0007E01000381830 00E0063001C00170038000F0070000F00E0000701E0000701C0000303C0000303C0000307C0000 107800001078000010F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800 000078000000780000107C0000103C0000103C0000101C0000201E0000200E0000400700004003 80008001C0010000E0020000381C000007E0001C247DA223>67 DI II73 D75 DII82 D<03F0200C0C601802603001E07000E0600060E00060E00060E00020E00020E00020F000 00F000007800007F00003FF0001FFE000FFF0003FF80003FC00007E00001E00000F00000F00000 70800070800070800070800070C00060C00060E000C0F000C0C80180C6070081FC0014247DA21B >I<7FFFFFF87807807860078018400780084007800840078008C007800C800780048007800480 078004800780040007800000078000000780000007800000078000000780000007800000078000 000780000007800000078000000780000007800000078000000780000007800000078000000780 00000780000007800000078000000FC00003FFFF001E227EA123>I<0FE0001838003C0C003C0E 0018070000070000070000070000FF0007C7001E07003C0700780700700700F00708F00708F007 08F00F087817083C23900FC1E015157E9418>97 D<0E0000FE00001E00000E00000E00000E0000 0E00000E00000E00000E00000E00000E00000E00000E00000E1F000E61C00E80600F00300E0038 0E003C0E001C0E001E0E001E0E001E0E001E0E001E0E001E0E001E0E001C0E003C0E00380F0070 0C80600C41C0083F0017237FA21B>I<01FE000703000C07801C0780380300780000700000F000 00F00000F00000F00000F00000F00000F000007000007800403800401C00800C010007060001F8 0012157E9416>I<0000E0000FE00001E00000E00000E00000E00000E00000E00000E00000E000 00E00000E00000E00000E001F8E00704E00C02E01C01E03800E07800E07000E0F000E0F000E0F0 00E0F000E0F000E0F000E0F000E07000E07800E03800E01801E00C02E0070CF001F0FE17237EA2 1B>I<01FC000707000C03801C01C03801C07801E07000E0F000E0FFFFE0F00000F00000F00000 F00000F000007000007800203800201C00400E008007030000FC0013157F9416>I<003C00C601 8F038F030F070007000700070007000700070007000700FFF80700070007000700070007000700 0700070007000700070007000700070007000700070007807FF8102380A20F>I<00007001F198 071E180E0E181C07001C07003C07803C07803C07803C07801C07001C07000E0E000F1C0019F000 1000001000001800001800001FFE000FFFC00FFFE03800F0600030400018C00018C00018C00018 6000306000303800E00E038003FE0015217F9518>I<0E0000FE00001E00000E00000E00000E00 000E00000E00000E00000E00000E00000E00000E00000E00000E1F800E60C00E80E00F00700F00 700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00 700E00700E0070FFE7FF18237FA21B>I<1C001E003E001E001C00000000000000000000000000 000000000E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E 000E000E00FFC00A227FA10E>I<0E0000FE00001E00000E00000E00000E00000E00000E00000E 00000E00000E00000E00000E00000E00000E03FC0E01F00E01C00E01800E02000E04000E08000E 10000E38000EF8000F1C000E1E000E0E000E07000E07800E03C00E01C00E01E00E00F00E00F8FF E3FE17237FA21A>107 D<0E00FE001E000E000E000E000E000E000E000E000E000E000E000E00 0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E 00FFE00B237FA20E>I<0E1FC07F00FE60E183801E807201C00F003C00E00F003C00E00E003800 E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E0038 00E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E0FFE3FF8FFE2715 7F942A>I<0E1F80FE60C01E80E00F00700F00700E00700E00700E00700E00700E00700E00700E 00700E00700E00700E00700E00700E00700E00700E00700E0070FFE7FF18157F941B>I<01FC00 0707000C01801800C03800E0700070700070F00078F00078F00078F00078F00078F00078F00078 7000707800F03800E01C01C00E038007070001FC0015157F9418>I<0E1F00FE61C00E80600F00 700E00380E003C0E001C0E001E0E001E0E001E0E001E0E001E0E001E0E001E0E003C0E003C0E00 380F00700E80E00E41C00E3F000E00000E00000E00000E00000E00000E00000E00000E00000E00 00FFE000171F7F941B>I<01F8200704600E02601C01603801E07800E07800E0F000E0F000E0F0 00E0F000E0F000E0F000E0F000E07000E07800E03801E01C01E00C02E0070CE001F0E00000E000 00E00000E00000E00000E00000E00000E00000E00000E0000FFE171F7E941A>I<0E3CFE461E8F 0F0F0F060F000E000E000E000E000E000E000E000E000E000E000E000E000E000F00FFF010157F 9413>I<0F8830786018C018C008C008E008F0007F803FE00FF001F8003C801C800C800CC00CC0 08E018D0308FC00E157E9413>I<02000200020002000600060006000E001E003E00FFF80E000E 000E000E000E000E000E000E000E000E000E000E040E040E040E040E040E040708030801F00E1F 7F9E13>I<0E0070FE07F01E00F00E00700E00700E00700E00700E00700E00700E00700E00700E 00700E00700E00700E00700E00700E00F00E00F006017003827800FC7F18157F941B>I119 D121 D E /Fl 20 122 df<000003800000000007C00000000007C0000000000FE0000000000FE00000 00000FE0000000001FF0000000001FF0000000003FF8000000003FF8000000003FF80000000073 FC0000000073FC00000000F3FE00000000E1FE00000000E1FE00000001C0FF00000001C0FF0000 0003C0FF80000003807F80000007807FC0000007003FC0000007003FC000000E003FE000000E00 1FE000001E001FF000001C000FF000001FFFFFF000003FFFFFF800003FFFFFF80000780007FC00 00700003FC0000700003FC0000E00001FE0000E00001FE0001E00001FF0001C00000FF0001C000 00FF00FFFE001FFFFEFFFE001FFFFEFFFE001FFFFE2F297EA834>65 D69 D<0000FFE000000007FFFC0000003FC07F8000007F001FC00001FC0007F00003 F80003F80007F00001FC000FF00001FE001FE00000FF001FE00000FF003FC000007F803FC00000 7F807FC000007FC07F8000003FC07F8000003FC07F8000003FC0FF8000003FE0FF8000003FE0FF 8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF800000 3FE0FF8000003FE07F8000003FC07FC000007FC07FC000007FC03FC000007F803FC000007F801F E00000FF001FE00000FF000FF00001FE0007F00001FC0003F80003F80001FC0007F00000FF001F E000003FC07F8000000FFFFE00000000FFE000002B297CA834>79 D<007F806003FFF0E007FFF9 E00F807FE01F001FE03E0007E07C0003E07C0001E0FC0001E0FC0001E0FC0000E0FE0000E0FE00 00E0FF000000FFC000007FFE00007FFFE0003FFFFC001FFFFE000FFFFF8007FFFFC003FFFFE000 FFFFE00007FFF000007FF000000FF8000007F8000003F8600001F8E00001F8E00001F8E00001F8 F00001F0F00001F0F80003F0FC0003E0FF0007C0FFE01F80F3FFFF00E0FFFE00C01FF0001D297C A826>83 D<01FF800007FFF0000F81F8001FC07E001FC07E001FC03F000F803F8007003F800000 3F8000003F8000003F80000FFF8000FFFF8007FC3F800FE03F803F803F803F003F807F003F80FE 003F80FE003F80FE003F80FE003F807E007F807F00DF803F839FFC0FFF0FFC01FC03FC1E1B7E9A 21>97 DI<001FF80000FFFE0003F01F0007 E03F800FC03F801F803F803F801F007F800E007F0000007F000000FF000000FF000000FF000000 FF000000FF000000FF000000FF0000007F0000007F0000007F8000003F8001C01F8001C00FC003 8007E0070003F01E0000FFFC00001FE0001A1B7E9A1F>I<003FE00001FFF80003F07E0007C01F 000F801F801F800F803F800FC07F000FC07F0007C07F0007E0FF0007E0FF0007E0FFFFFFE0FFFF FFE0FF000000FF000000FF0000007F0000007F0000007F0000003F8000E01F8000E00FC001C007 E0038003F81F0000FFFE00001FF0001B1B7E9A20>101 D<00FF81F003FFE7F80FC1FE7C1F80FC 7C1F007C383F007E107F007F007F007F007F007F007F007F007F007F007F007F003F007E001F00 7C001F80FC000FC1F8001FFFE00018FF800038000000380000003C0000003E0000003FFFF8001F FFFF001FFFFF800FFFFFC007FFFFE01FFFFFF03E0007F07C0001F8F80000F8F80000F8F80000F8 F80000F87C0001F03C0001E01F0007C00FC01F8003FFFE00007FF0001E287E9A22>103 D<07000FC01FE03FE03FE03FE01FE00FC007000000000000000000000000000000FFE0FFE0FFE0 0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F E00FE0FFFEFFFEFFFE0F2B7DAA14>105 D108 DII<003FE00001FFFC0003F07E00 0FC01F801F800FC03F800FE03F0007E07F0007F07F0007F07F0007F0FF0007F8FF0007F8FF0007 F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F87F0007F07F0007F03F800FE03F800FE01F80 0FC00FC01F8007F07F0001FFFC00003FE0001D1B7E9A22>II114 D<03FE300FFFF01E03F03800F0700070F00070F00070F80070FC0000FFE0007FFE007F FF803FFFE01FFFF007FFF800FFF80003FC0000FC60007CE0003CF0003CF00038F80038FC0070FF 01E0F7FFC0C1FF00161B7E9A1B>I<00700000700000700000700000F00000F00000F00001F000 03F00003F00007F0001FFFF0FFFFF0FFFFF007F00007F00007F00007F00007F00007F00007F000 07F00007F00007F00007F00007F00007F00007F03807F03807F03807F03807F03807F03803F038 03F87001F86000FFC0001F8015267FA51B>I120 DI E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300dpi TeXDict begin %%EndSetup %%Page: 1 1 1 0 bop 287 275 a Fl(Extermi)o(nate)20 b(All)h(Op)r(erating)i(System)d (Abstractions)550 386 y Fk(Da)o(wson)e(R.)e(Engler)130 b(M.)15 b(F)l(rans)i(Kaasho)q(ek)683 444 y Fj(f)p Fk(engler,)e(k)m(aasho)q(ek)p Fj(g)p Fk(@lcs.mit.edu)602 502 y(MIT)h(Lab)q(oratory)i(for)f(Computer)e (Science)771 560 y(545)i(T)l(ec)o(hnology)g(Square)776 619 y(Cam)o(bridge,)d(MA)i(02139)372 760 y Fi(Abstract)60 830 y Fh(The)25 b(de\014ning)f(tragedy)g(of)g(the)h(op)q(erating)f(systems)-15 880 y(comm)o(unit)o(y)7 b(has)k(b)q(een)g(the)g(de\014nition)f(of)g(an)g(op)q (erating)h(sys-)-15 930 y(tem)18 b(as)g(soft)o(w)o(are)h(that)f(b)q(oth)h(m)o (ultiplexes)e(and)h Fg(abstr)n(acts)-15 980 y Fh(ph)o(ysical)d(resources.)27 b(The)16 b(view)g(that)g(the)g(OS)h(should)e(ab-)-15 1030 y(stract)e(the)f (hardw)o(are)g(is)g(based)g(on)g(the)g(assumption)f(that)g(it)-15 1079 y(is)i(p)q(ossible)h(b)q(oth)g(to)g(de\014ne)g(abstractions)h(that)e (are)h(appro-)-15 1129 y(priate)f(for)g(all)e(areas)j(and)f(to)g(implem)o(en) o(t)e(them)h(to)h(p)q(erform)-15 1179 y(e\016cien)o(tly)f(in)g(all)f (situations.)17 b(W)m(e)12 b(b)q(eliev)o(e)h(that)f(the)h(fallacy)-15 1229 y(of)j(this)h(quixotic)g(goal)e(is)i(self-eviden)o(t,)h(and)f(that)g (the)g(op-)-15 1279 y(erating)c(system)f(problems)g(of)g(the)i(last)e(t)o(w)o (o)g(decades)j(\(p)q(o)q(or)-15 1328 y(p)q(erformance,)20 b(p)q(o)q(or)f (reliabilit)o(y)m(,)e(p)q(o)q(or)i(adaptabilit)o(y)m(,)e(and)-15 1378 y(in\015exibilit)o(y\))10 b(can)j(b)q(e)g(traced)g(bac)o(k)f(to)g(it.)18 b(The)12 b(solution)g(w)o(e)-15 1428 y(prop)q(ose)18 b(is)f(simple:)23 b(complete)17 b(eliminatio)o(n)e(of)h(op)q(erating)-15 1478 y(system)e(abstractions)h(b)o(y)e(lo)o(w)o(ering)g(the)i(op)q(erating)f (system)-15 1528 y(in)o(terface)g(to)g(the)h(hardw)o(are)f(lev)o(el.)-15 1606 y Ff(1)56 b(In)n(tro)r(duction)60 1677 y Fh(Throughout)13 b(the)h(history)f(of)f(computer)h(science)i(there)-15 1726 y(has)c(b)q(een)h(a)e(fairly)g(constan)o(t)h(opinion)f(that)h(\\curren)o(t")g (op)q(er-)-15 1776 y(ating)i(systems)g(are)h(inadequate)g([4)o(,)f(7,)g(9,)g (11)o(,)g(15,)g(18)o(].)18 b(The)-15 1826 y(literature)g(is)f(rife)g(with)g (sp)q(eci\014c)i(examples)d(that)h(describ)q(e)-15 1876 y(the)h(cost)g(of)f (the)h(inappropriate,)f(ine\016cien)o(t)g(abstractions)-15 1926 y(p)q(eddled)c(b)o(y)g(op)q(erating)f(systems)h([2)o(,)f(4,)g(12)o(,)g (13,)f(18,)h(23)o(,)g(24].)-15 1975 y(This)g(situation)g(has)h(p)q(ersisted)h (for)e(the)h(last)f(three)i(decades,)-15 2025 y(and)k(has)h(surviv)o(ed)g(n)o (umerous)f(assaults)h(\(ob)r(ject-orien)o(ted)-15 2075 y(op)q(erating)i (systems)f(and)h(micro-k)o(ernels)f(are)h(t)o(w)o(o)f(of)g(the)-15 2125 y(more)15 b(p)q(opular)h(mo)o(v)o(emen)o(ts\).)24 b(As)17 b(a)f(general)h(rule,)g(a)f(con-)-15 2175 y(cept)h(that)f(cannot)g(b)q(e)h (realized)f(after)g(suc)o(h)h(a)f(long)f(p)q(erio)q(d)-15 2225 y(of)e(time)g(should)h(b)q(e)g(reexamined.)60 2277 y(The)g(standard)h (de\014nition)e(of)h(an)f(op)q(erating)h(system)g(is)-15 2327 y(soft)o(w)o(are)f(that)g(securely)i(m)o(ultiplexes)c(and)i Fg(abstr)n(acts)g Fh(ph)o(ys-)-15 2377 y(ical)g(resources.)22 b(W)m(e)14 b(b)q(eliev)o(e)g(that)g(this)h(de\014nition,)e(sp)q(eci\014-)-15 2426 y(cally)g(its)h(view)g(of)g(the)g(OS)h(as)f(an)g(abstractor)h(of)e (hardw)o(are,)-15 2476 y(is)20 b(crippling)f(and)h(wrong.)37 b(The)21 b(basic)f(in)o(tuition)f(b)q(ehind)-15 2526 y(our)h(argumen)o(ts)e (is)i(that)f(no)g(OS)h(abstraction)g(can)g(\014t)f(all)-15 2576 y(applications.)25 b(This)17 b(is)f(not)h(a)f(c)o(haracteristic)i(that)f (is)g(just)1072 760 y(a)g(release)g(a)o(w)o(a)o(y:)22 b(it)16 b(is)h Fg(fundamental)r(ly)g Fh(imp)q(ossible)e(to)h(ab-)1072 810 y(stract)k(resources)h(in)e(a)f(w)o(a)o(y)g(that)h(is)g(useful)g(to)f (all)g(appli-)1072 860 y(cations)d(and)f(to)h(implemen)o(t)d(these)k (abstractions)f(in)f(a)g(w)o(a)o(y)1072 909 y(that)h(is)g(e\016cien)o(t)g (across)h(disparate)f(needs.)23 b(F)m(or)14 b(some)g(rea-)1072 959 y(son,)19 b(OS)g(implemen)o(tors)d(ha)o(v)o(e)h(decided)j(that)e(this)g (simple)1072 1009 y(la)o(w)h(do)q(es)i(not)f(apply)f(to)h(them)f(and)h(that,) g(indeed,)i(they)1072 1059 y(are)16 b(comp)q(elled)e(to)g(indulge)h(in)f(the) i(wholesale)e(abstraction)1072 1109 y(of)g(hardw)o(are)h(resources.)23 b(In)15 b(this)f(p)q(osition)g(pap)q(er)i(w)o(e)e(con-)1072 1159 y(cen)o(trate)19 b(on)e(the)h(follo)o(wing)c(c)o(haracteristics)19 b(of)e(op)q(erating)1072 1208 y(systems)d(that)f(ha)o(v)o(e)g(b)q(een)h (built)f(in)f(this)i(manner:)i(they)e(are)1072 1258 y(complex)g(and)i(large,) e(whic)o(h)i(decreases)h(system)e(reliabilit)o(y)1072 1308 y(and)j(aggressiv)o(ely)g(discourages)h(c)o(hange;)h(they)f(are)f(o)o(v)o (erly)1072 1358 y(general,)h(whic)o(h)e(mak)o(es)g(their)h(use)g(exp)q(ensiv) o(e)h(and)f(mak)o(es)1072 1408 y(their)f(implemen)o(tati)o(on)c(consume)j (signi\014can)o(t)f(fractions)h(of)1072 1457 y(mac)o(hine)11 b(resources;)k(and)c(they)i(enforce)g(a)f(high-lev)o(el)e(in)o(ter-)1072 1507 y(face,)19 b(whic)o(h)e(precludes)j(the)e(e\016cien)o(t)g(implemen)o (tatio)o(n)d(of)1072 1557 y(new)g(abstractions)f(outside)h(of)e(the)h(OS.) 1147 1693 y(W)m(e)20 b(b)q(eliev)o(e,)i(therefore,)h(that)e(the)g(attempt)e (to)i(pro-)1072 1743 y(vide)c(OS)f(abstractions)h(is)g(the)g(ro)q(ot)f(of)g (all)f(op)q(erating)h(sys-)1072 1792 y(tem)h(problems.)29 b(W)m(e)17 b(con)o(tend)i(that)e(these)i(problems)e(can)1072 1842 y(b)q(e)d(solv)o(ed)e (directly)h(b)o(y)f(the)h(systematic)g(elimination)c(of)j(OS)1072 1892 y(abstractions,)g(lo)o(w)o(ering)d(the)i(in)o(terface)g(enforced)h(b)o (y)e(the)h(OS)1072 1942 y(to)17 b(a)e(lev)o(el)h(close)h(to)f(the)h(ra)o(w)f (hardw)o(are.)25 b(It)16 b(is)g(imp)q(ortan)o(t)1072 1992 y(to)j(note)h(that) f(w)o(e)g Fg(favor)g Fh(abstractions,)i(but)e(they)h(should)1072 2042 y(b)q(e)c(implemen)o(ted)d(outside)i(the)h(op)q(erating)f(system)f(so)h (that)1072 2091 y(applications)g(can)g(select)i(among)c(a)i(m)o(yriad)e(of)h (implemen-)1072 2141 y(tations)g(or,)f(if)h(necessary)m(,)h(\\roll)d(their)i (o)o(wn".)1147 2277 y(The)23 b(structure)h(of)d(this)h(pap)q(er)h(is)f(as)g (follo)o(ws:)33 b(Sec-)1072 2327 y(tion)16 b(2)f(exp)q(ounds)h(our)g (ideology;)f(Section)h(3)f(outlines)h(sp)q(e-)1072 2377 y(ci\014c)e(features) f(of)f(our)h(target)g(op)q(erating)f(system)h(structure;)1072 2426 y(and)i(Section)f(4)h(explores)g(some)e(of)h(the)h(adv)n(an)o(tages)f (of)f(this)1072 2476 y(new)e(OS)f(structure)h(and)f(some)f(common)e (misconceptions)i(in)1072 2526 y(suc)o(h)14 b(a)e(structure.)19 b(W)m(e)12 b(discuss)i(related)f(w)o(ork)f(in)g(Section)h(5)1072 2576 y(and)h(conclude)h(in)e(Section)i(6.)p -15 2609 390 2 v 20 2651 a Fe(This)e(w)o(ork)g(w)o(as)g(supp)q(orted)d(in)j(part)f(b)o(y)g (the)g(Adv)n(anced)f(Researc)o(h)-15 2691 y(Pro)r(jects)k(Agency)h(under)g (con)o(tracts)e(N00014-94-1-09)o(85)g(and)i(b)o(y)g(a)-15 2730 y(NSF)c(National)e(Y)m(oung)h(In)o(v)o(estigato)o(r)e(Aw)o(ard.)p eop %%Page: 2 2 2 1 bop -15 109 a Ff(2)56 b(The)18 b(Jeremiad)60 180 y Fh(F)m(or)c(this)g (pap)q(er,)h(w)o(e)f(de\014ne)i(the)f(op)q(erating)f(system)g(as)-15 230 y(an)o(y)9 b(piece)i(of)e(soft)o(w)o(are)h(that)g(the)g(application)e (cannot)i(either)-15 280 y(c)o(hange)17 b(or)f(a)o(v)o(oid.)24 b(User-lev)o(el)17 b(device)g(driv)o(ers,)g(privileged)-15 330 y(serv)o(ers,)e(and)e(k)o(ernels)g(are)h(all)e(included)h(b)o(y)g(this)g (de\014nition.)-15 380 y(The)h(goal)e(of)h(the)h(OS)f(designer)h(should)g(b)q (e)g(to)f(push)h(the)g(in-)-15 429 y(terface)k(this)f(de\014nes)i(to)e(the)g (lev)o(el)g(of)g(the)g(ra)o(w)g(hardw)o(are.)-15 479 y(W)m(e)h(de\014ne)h Fg(applic)n(ation-level)f Fh(soft)o(w)o(are)h(as)f(soft)o(w)o(are)h(that)-15 529 y(can)h(b)q(e)h(c)o(hanged)g(and/or)f(a)o(v)o(oided)f(b)o(y)h(an)o(y)g (application;)-15 579 y(this)13 b(is)g(in)f(con)o(trast)i(to)e(soft)o(w)o (are)h(at)g Fg(user-level)f Fh(\(or)h(in)f Fg(user-)-15 629 y(sp)n(ac)n(e)p Fh(\),)f(whic)o(h)f(ma)o(y)e(require)j(v)o(ery)f(high)f (privileges)h(to)g(adapt)-15 678 y(or)h(replace)g(\(e.g.,)f(replacing)h(a)f (device)h(driv)o(er)g(often)g(requires)-15 728 y(\\ro)q(ot")j(privileges\).) 19 b(Muc)o(h)c(of)e(the)i(\014xation)f(micro-k)o(ernels)-15 778 y(ha)o(v)o(e)h(with)f(putting)g(pieces)i(of)e(the)i(k)o(ernel)f(in)o(to)f (user-space)-15 828 y(comes)g(from)f(a)i(confusion)g(b)q(et)o(w)o(een)h(user) g(and)e(application)-15 878 y(lev)o(el.)60 931 y(The)k(thesis)h(of)e(this)h (p)q(osition)f(pap)q(er)h(is)g(that)g(the)g(op-)-15 981 y(erating)13 b(system)f(should)h(not)g(abstract)h(ph)o(ysical)e(resources.)-15 1031 y(What)g(the)h(OS)g(should)g(do)f(is)h(what)f(no)g(other)i(piece)f(of)f (soft-)-15 1081 y(w)o(are)i(can)h(do:)j(safely)13 b(m)o(ultiplex)f(ph)o (ysical)i(resources.)21 b(The)-15 1130 y(motiv)n(ation)11 b(for)k(this)g (decision)f(can)h(b)q(e)h(placed)e(in)h(the)g(con-)-15 1180 y(text)j(of)e(the)i(\\end-to-end")f(argumen)o(t)f([21)o(]:)24 b(OS)17 b(abstrac-)-15 1230 y(tions)g(are)g(redun)o(tan)o(t)h(or)e(of)h (little)f(v)n(alue)g(when)i(compared)-15 1280 y(to)12 b(the)i(cost)f(of)f (pro)o(viding)f(them.)17 b(W)m(e)12 b(explore)h(these)h(issues)-15 1330 y(more)f(thoroughly)g(b)q(elo)o(w:)-15 1457 y Fd(P)o(o)q(or)24 b(reliabil)o(i)o(t)o(y)38 b Fh(Abstracting)23 b(resources)h(\(e.g.,)e(pro-) -15 1507 y(viding)i(a)g(full-featured)g(virtual)g(memory)f(system)h(with)-15 1557 y(cop)o(y-on-write,)12 b(memory-m)o(app)q(ed)e(I/O)i(and)h(other)g (treats\))-15 1606 y(requires)22 b(a)e(large)g(amoun)o(t)f(of)h(complex,)g(m) o(ulti-threaded)-15 1656 y(co)q(de.)g(These)c(c)o(haracteristics,)g(along)d (with)h(dynamic)f(stor-)-15 1706 y(age)f(allo)q(cation)e(and)i(managemen)o(t) d(and)j(the)h(paging)d(of)i(k)o(er-)-15 1756 y(nel)j(data)f(structures)k(and) c(co)q(de,)i(greatly)e(decrease)j(the)e(re-)-15 1806 y(liabilit)o(y)c(the)k (system.)-15 1933 y Fd(P)o(o)q(or)25 b(adaptabilit)n(y)39 b Fh(The)23 b(OS)g(is)g(large)g(and)f(compli-)-15 1983 y(cated.)d(Changing)13 b(large,)g(complicated)g(pieces)i(of)f(soft)o(w)o(are)-15 2033 y(is)e Fg(har)n(d)p Fh(.)18 b(This)12 b(creates)i(a)e(disincen)o(tiv)o(e)g (to)h(incorp)q(orate)g(new)-15 2082 y(features)j(or)g(tune)g(existing)f (ones.)23 b(F)m(urthermore,)15 b(since)h(all)-15 2132 y(applications)d(\\dep) q(end)h(on")f(the)i(OS,)e(c)o(hange)h(is)f(not)h(lo)q(cal-)-15 2182 y(ized.)30 b(This)17 b(pro)o(vides)h(an)f(additional)f(discouragemen)o (t)h(to)-15 2232 y(adapting)i(the)i(OS)f(implemen)o(tation.)33 b(Finally)m(,)19 b(only)g(the)-15 2282 y(k)o(ernel)g(arc)o(hitect)g(can)g (incorp)q(orate)g(new)g(c)o(hanges,)h(whic)o(h)-15 2331 y(further)e (restricts)h(adaptabilit)o(y)m(.)25 b(The)17 b(e\013ects)i(of)e(this)g(can) -15 2381 y(b)q(e)g(seen)h(directly:)24 b(ho)o(w)17 b(man)o(y)d(of)j(the)g(go) q(o)q(d)f(ideas)h(in)f(the)-15 2431 y(last)f(10)g(SOSP)i(conferences)h(ha)o (v)o(e)d(b)q(een)i(incorp)q(orated)f(\(or)-15 2481 y(allo)o(w)o(ed)e(at)g (application-lev)o(el\))f(b)o(y)i(an)o(y)f(op)q(erating)h(system)-15 2531 y(other)c(than)g(the)h(one)f(they)g(w)o(ere)h(dev)o(elop)q(ed)f(on?)17 b(F)m(or)10 b(exam-)-15 2581 y(ple,)15 b(what)h(op)q(erating)f(systems)h (supp)q(ort)g(m)o(ultiple)d(protec-)-15 2630 y(tion)19 b(domains)f(within)h (a)g(single-address)i(space,)g(e\016cien)o(t)-15 2680 y(IPC,)f(or)g (e\016cien)o(t)g(and)g(\015exible)g(virtual)g(memory)d(primi-)-15 2730 y(tiv)o(es?)1072 109 y Fd(P)o(o)q(or)42 b(p)q(erformance)d Fh(OS)e(abstractions)g(are)g(often)1072 159 y(o)o(v)o(erly)15 b(general,)f(as)h(they)g(pro)o(vide)f(an)o(y)g(feature)i(needed)g(b)o(y)1072 209 y(an)o(y)h(reasonable)h(application)e(and)h(all)f(applications)g(m)o(ust) 1072 258 y(use)g(a)f(giv)o(en)f(OS)h(abstraction.)21 b(Applications)14 b(that)h(do)g(not)1072 308 y(need)g(this)e(feature)h(pa)o(y)f(unnecessary)j (o)o(v)o(erhead)d([1,)g(18)o(].)k(In)1072 358 y(the)c(case)g(of)f(garbage)g (collectors)h(or)f(database)g(systems)g(this)1072 408 y(cost)j(can)g(amoun)o (t)d(to)i(an)g(order)h(of)e(magnitude.)k(Addition-)1072 458 y(ally)m(,)d(simply)f(using)i(a)g(giv)o(en)f(feature)i(is)f(costly)m(,)g (since)h(time)1072 508 y(m)o(ust)d(b)q(e)g(sp)q(en)o(t)i(selecting)f(from)d (a)i(m)o(yriad)e(of)i(options)f([18)o(].)1072 557 y(F)m(urthermore,)21 b(the)g(mere)e(existence)j(of)d(OS)h(abstractions)1072 607 y(consumes)c(signi\014can)o(t)e(amoun)o(ts)g(of)g(main)f(memory)m(,)f(cac)o (he)1072 657 y(space,)i(TLB)g(space,)g(and)f(cycles,)h(whic)o(h)f(could)h(b)q (e)f(used)i(b)o(y)1072 707 y(applications)e(to)h(p)q(erform)f(useful)h(w)o (ork.)1147 781 y(Finally)m(,)e(an)o(y)h(OS)i(implemen)o(tati)o(on)c(mak)o(es) i(trade-o\013s:)1072 831 y(whether)20 b(to)d(use)h(a)g(hierarc)o(hical)f(or)h (in)o(v)o(erted)g(page-table,)1072 881 y(whether)26 b(to)e(optimize)f(for)h (frequen)o(t)h(reads)g(or)f(random)1072 931 y(writes,)15 b(whether)h(to)e(ha) o(v)o(e)h(cop)o(y-on-write)f(or)g(a)g(large)g(page)1072 981 y(size,)g(etc.)19 b(Unfortunately)m(,)13 b(an)o(y)g(trade-o\013)h(p)q (enalizes)h(appli-)1072 1030 y(cations)h(that)f(w)o(ere)h(not)f(an)o (ticipated)g(or)g(neglected)i(b)o(y)e(the)1072 1080 y(OS)j(designer.)28 b(Ho)o(w)o(ev)o(er,)18 b(this)f(situation)g(is)f(easily)h(a)o(v)o(oid-)1072 1130 y(able:)g(if)11 b(the)h(OS)g(do)q(es)g(not)g(abstract)g(resources,)i(it) d(do)q(es)i(not)1072 1180 y(ha)o(v)o(e)h(to)g(suc)o(h)h(mak)o(e)d (trade-o\013s.)1072 1420 y Fd(P)o(o)q(or)22 b(\015exibili)o(t)n(y)39 b Fh(The)20 b(p)q(o)q(or)f(reliabilit)o(y)m(,)f(p)q(o)q(or)i(adapt-)1072 1469 y(abilit)o(y)m(,)i(and)f(p)q(o)q(or)h(p)q(erformance)g(of)f(op)q (erating)g(systems)1072 1519 y(w)o(ould)c(b)q(e)g(acceptable)h(if)f (applications)f(could)g(just)i(ignore)1072 1569 y(the)k(op)q(erating)g (system)f(and)g(implemen)o(t)d(their)k(o)o(wn)f(ab-)1072 1619 y(stractions.)d(Unfortunately)m(,)11 b(the)g(high-lev)o(el)e(nature)j(of)e (cur-)1072 1669 y(ren)o(t)17 b(op)q(erating)e(system)g(in)o(terfaces)i(mak)o (es)d(this)h(approac)o(h)1072 1719 y(infeasible.)30 b(The)18 b(b)q(est)h(that)f(applications)f(can)h(do)g(is)g(em-)1072 1768 y(ulate)j(the)g(desired)h(feature)f(on)f(top)h(of)f(existing)g(OS)h(ab-) 1072 1818 y(stractions;)f(unfortunately)m(,)e(suc)o(h)g(em)o(ulation)d(is)j (t)o(ypically)1072 1868 y(clumsy)m(,)12 b(complicated,)f(and)i(prohibitiv)o (ely)f(exp)q(ensiv)o(e.)19 b(F)m(or)1072 1918 y(example,)11 b(once)h(the)g(application)e(has)h(no)g(access)i(to)f(the)g(ra)o(w)1072 1968 y(disk)k(in)o(terface,)f(database)h(records)h(m)o(ust)d(b)q(e)i(em)o (ulated)e(on)1072 2017 y(top)f(of)f(\014les.)18 b(The)13 b(list)g(of)f(suc)o (h)h(examples)f(is)h(painfully)d(long)1072 2067 y(and)k(con)o(tin)o(ues)h(to) e(gro)o(w)h([2)o(,)f(4,)h(13)o(,)f(18,)g(23,)g(24].)1147 2232 y(In)24 b(short,)i(op)q(erating)d(systems)h(are)g(complex,)g(frag-)1072 2282 y(ile,)e(in\015exible,)f(and)f(slo)o(w,)h(b)q(ecause)h(they)f(ha)o(v)o (e)g(dabbled)1072 2331 y(in)i(the)g(practice)g(of)f(pro)o(viding)f(a)i (general)f(purp)q(ose)i(vir-)1072 2381 y(tual)13 b(mac)o(hine.)j(The)e(op)q (erating)e(system)h(is)g(basically)f(hard-)1072 2431 y(w)o(are)h (masquerading)e(as)i(soft)o(w)o(are:)k(it)12 b(cannot)h(b)q(e)g(c)o(hanged,) 1072 2481 y(all)20 b(applications)f(m)o(ust)h(use)h(it,)g(and)f(the)h (information)d(it)1072 2531 y(hides)f(cannot)e(b)q(e)i(reco)o(v)o(ered.)25 b(Op)q(erating)16 b(system)f(design-)1072 2581 y(ers)22 b(should)e(learn)g (what)h(hardw)o(are)f(designers)i(learned)f(a)1072 2630 y(decade)15 b(ago)f(during)f(the)h(transition)g(from)e(CISC)i(to)f(RISC:)1072 2680 y(hardw)o(are)g(should)g(pro)o(vide)f(primitiv)o(es,)f Fg(not)h Fh(high-lev)o(el)g(ab-)1072 2730 y(stractions.)p eop %%Page: 3 3 3 2 bop -15 109 a Ff(3)56 b(The)37 b(Solution:)62 b(Eliminate)35 b(OS)j(Ab-)69 167 y(stractions)60 239 y Fh(W)m(e)15 b(con)o(tend)g(that)g (the)h(solution)e(to)h(all)e(of)i(these)h(di\016-)-15 289 y(culties)f(is)g (straigh)o(tforw)o(ard:)20 b(eliminate)12 b(op)q(erating)j(system)-15 339 y(abstractions.)22 b(The)15 b(OS)g(should)g(only)f(exp)q(ort)h(ph)o (ysical)f(re-)-15 389 y(sources)21 b(in)d(a)h(secure)h(manner;)g(it)f(should) g(not)f(b)q(e)i(in)e(the)-15 439 y(business)g(of)e(presen)o(ting)i(a)e(prett) o(y)m(,)h(mac)o(hine-indep)q(enden)o(t)-15 488 y(in)o(terface)d(to)g (applications.)60 543 y(In)i(this)f(section)i(w)o(e)f(giv)o(e)f(a)g(general)h (sk)o(etc)o(h)h(of)e(an)h(OS)-15 592 y(structure)d(that)e(em)o(b)q(o)q(dies)f (a)h(\\abstraction-free",)g(lo)o(w-lev)o(el)-15 642 y(in)o(terface.)21 b(W)m(e)14 b(call)g(suc)o(h)h(a)g(structure)i(an)d Fg(exokernel)p Fh(.)21 b(The)-15 692 y(sole)13 b(function)g(of)f(an)h(exok)o(ernel)h(is)e (to)h(allo)q(cate,)f(deallo)q(cate,)-15 742 y(and)h(m)o(ultiplex)e(ph)o (ysical)i(resources)j(in)c(a)i(secure)h(w)o(a)o(y)m(.)i(The)-15 792 y(resources)c(exp)q(orted)e(b)o(y)f(this)g(k)o(ernel)h(are)f(those)h(pro) o(vided)f(b)o(y)-15 842 y(the)20 b(underlying)e(hardw)o(are:)29 b(ph)o(ysical)19 b(memory)d(\(divided)-15 891 y(in)o(to)h(pages\),)h(the)g (CPU)g(\(divided)f(in)o(to)g(time-slices\),)g(disk)-15 941 y(memory)9 b(\(divided)i(in)o(to)g(blo)q(c)o(ks\),)g(DMA)g(c)o(hannels,)h (I/O)g(de-)-15 991 y(vices,)h(translation)e(lo)q(ok-aside)g(bu\013er,)i (addressing)f(con)o(text)-15 1041 y(iden)o(ti\014ers,)i(and)g(in)o (terrupt/trap)g(ev)o(en)o(ts.)60 1095 y(Securit)o(y)h(is)g(enforced)h(b)o(y)e (asso)q(ciating)g(ev)o(ery)i(resource)-15 1145 y(usage)c(or)f(binding)g(p)q (oin)o(t)g(with)g(a)g(guard)h(that)f(c)o(hec)o(ks)i(access)-15 1195 y(privileges.)33 b(F)m(or)18 b(example,)h(as)g(one)g(of)f(the)i(steps)g (in)e(pre-)-15 1244 y(serving)e(memory)d(in)o(tegrit)o(y)m(,)h(the)j(k)o (ernel)f(guards)f(the)i(TLB)-15 1294 y(b)o(y)12 b(c)o(hec)o(king)g(an)o(y)f (virtual-to-ph)o(ysical)f(mappings)g(giv)o(en)h(b)o(y)-15 1344 y(applications)i(b)q(efore)h(they)h(are)f(inserted)h(in)o(to)f(the)g(TLB.)60 1398 y(The)e(k)o(ernel)h(can)f(optimize)e(global)g(p)q(erformance)i(b)o(y)g (its)-15 1448 y(con)o(trol)20 b(o)o(v)o(er)h(the)g(allo)q(cation)e(and)h(rev) o(o)q(cation)h(of)e(ph)o(ysi-)-15 1498 y(cal)g(resources.)37 b(With)19 b(this)g(con)o(trol)g(it)g(can)h(enforce)g(pro-)-15 1548 y(p)q(ortional)c(sharing,)h(or)g(what)g(resources)j(are)d(allo)q(cated)g (to)-15 1598 y(whic)o(h)d(domains.)60 1652 y(T)m(o)g(mak)o(e)e(these)k (examples)e(concrete,)i(w)o(e)e(detail)g(what)-15 1702 y(address)20 b(spaces,)h(time-slices,)e(and)f(IPC)h(migh)o(t)e(lo)q(ok)h(lik)o(e)-15 1752 y(under)g(the)f(regime)f(w)o(e)i(ha)o(v)o(e)e(describ)q(ed.)30 b(The)17 b(details)g(w)o(e)-15 1801 y(presen)o(t)22 b(are)f(highly)e(mac)o (hine-sp)q(eci\014c,)i(but)g(the)g(general)-15 1851 y(outline)d(should)h(b)q (e)g(similar)e(across)j(mac)o(hines;)g(the)f(main)-15 1901 y(goal)f(in)h(eac)o(h)h(is)f(to)g(answ)o(er)h(the)g(question:)29 b(what)19 b(is)g(the)-15 1951 y(minim)n(um)13 b(functionalit)o(y)j(that)h (the)h(k)o(ernel)g(needs)h(to)e(pro-)-15 2001 y(vide)f(in)g(order)g(for)g (this)g(primitiv)o(e)e(to)i(b)q(e)h(implem)o(en)o(ted)d(in)-15 2050 y(application)e(space?)-15 2182 y Fd(Address)23 b(space)41 b Fh(T)m(o)20 b(allo)o(w)g(application-im)o(plem)o(en)o(ted)-15 2232 y(virtual)c(memory)m(,)f(the)j(OS)f(m)o(ust)f(supp)q(ort)i(b)q(o)q (otstrapping)-15 2282 y(of)c(page-tables,)h(allo)q(cation)e(of)h(ph)o(ysical) g(memory)m(,)e(mo)q(di\014-)-15 2331 y(cation)17 b(of)g(mapping)e(hardw)o (are)j(\(e.g.,)f(TLB\),)h(and)f(excep-)-15 2381 y(tion)f(propagation.)26 b(The)17 b(simplest)f(b)q(o)q(otstrapping)h(mec)o(h-)-15 2431 y(anism)i(is)h(to)g(pro)o(vide)h(a)f(small)e(n)o(um)o(b)q(er)i(of)g(\\guaran) o(teed)-15 2481 y(mappings")8 b(that)j(can)f(b)q(e)h(used)g(to)f(map)f(the)i (page-table)f(and)-15 2531 y(exception)15 b(handling)f(co)q(de.)21 b(Ph)o(ysical)14 b(memory)f(allo)q(cation)-15 2581 y(should)h(supp)q(ort)h (requests)h(for)e(a)g(giv)o(en)g(page)g(n)o(um)o(b)q(er)g(\(en-)-15 2630 y(abling)9 b(suc)o(h)h(tec)o(hniques)i(as)e(\\page-coloring")e(for)i (impro)o(v)o(ed)-15 2680 y(cac)o(hing)h([5)o(]\).)17 b(Privileged)10 b(instructions)i(\(e.g.,)e(\015ush,)i(prob)q(e,)-15 2730 y(and)17 b(mo)q(dify)d(instructions\))k(can)f(b)q(e)h(wrapp)q(ed)f(in)g(systems)1072 109 y(calls,)22 b(and)e(those)h(that)f(write)h(to)f(privileged)f(state)j (\(e.g.,)1072 159 y(TLB)i(write)g(instructions\))g(are)g(asso)q(ciated)g (with)f(access)1072 209 y(c)o(hec)o(ks.)c(Exception)10 b(propagation)f(is)g (done)i(in)e(a)h(direct)g(man-)1072 258 y(ner)i(b)o(y)f(\(p)q(erhaps\))i(sa)o (ving)d(a)h(few)g(scratc)o(h)i(registers)g(in)d(some)1072 308 y(agreed-up)q(on)24 b(lo)q(cation)e(in)h(application-space)f(and)h(then)1072 358 y(jumping)12 b(to)i(an)f(application-sp)q(eci\014ed)h(PC-address)i([24)o (].)1147 410 y(Of)g(course,)h(all)d(of)h(these)h(op)q(erations)g(can)g(b)q(e) g(sp)q(ed)g(up)1072 460 y(b)o(y)e(do)o(wnloading)e(application)g(co)q(de)i (in)o(to)f(the)i(k)o(ernel)f([4)o(,)f(9])1072 509 y(or)e(using)e(a)h(\\soft)o (w)o(are)g(TLB")g([14)o(,)g(3])f(to)h(cac)o(he)h(translations.)1072 559 y(These)16 b(implemen)o(tation)11 b(tec)o(hniques)16 b(aside,)f(the)g (full)e(func-)1072 609 y(tionalit)o(y)g(pro)o(vided)h(b)o(y)h(the)g (underlying)f(hardw)o(are)h(should)1072 659 y(b)q(e)i(exp)q(osed)g(\(e.g.,)d (reference)19 b(bits,)c(the)h(abilit)o(y)e(to)i(disable)1072 709 y(cac)o(hing)k(on)g(a)g(page-basis,)h(the)f(abilit)o(y)f(to)h(use)g (di\013eren)o(t)1072 758 y(pagesizes,)15 b(etc.\).)1072 876 y Fd(Pro)q(cess)41 b Fh(The)19 b(only)e(state)i(that)g(the)g(op)q(erating)f (system)1072 926 y(needs)c(to)f(de\014ne)g(a)f(pro)q(cess)i(is)f(a)f(set)h (of)f(exception)h(program)1072 976 y(coun)o(ters)h(that)f(the)g(op)q(erating) f(system)g(will)f(jump)g(to)h(on)h(an)1072 1026 y(exception,)i(an)e(asso)q (ciated)i(address)g(space,)f(and)g(b)q(oth)g(pro-)1072 1076 y(logue)f(and)f(epilogue)h(co)q(de)g(to)g(b)q(e)g(called)g(when)g(a)g (time-slice)1072 1125 y(is)24 b(initiated)e(and)h(expires.)47 b(Placing)22 b(con)o(text-switc)o(hing)1072 1175 y(under)i(application)d(con) o(trol)i(\(through)g(the)g(application-)1072 1225 y(de\014ned)11 b(prologue)f(and)f(epilogue)g(co)q(de\))i(enables)f(tec)o(hniques)1072 1275 y(suc)o(h)i(as)f(mo)o(ving)d(the)j(program)e(coun)o(ter)j(out)f(of)f (critical)g(sec-)1072 1325 y(tions)k(at)g(con)o(text-switc)o(h)h(time)d([6].) 1072 1443 y Fd(IPC)42 b Fh(The)13 b(basic)g(functionalit)o(y)e(required)i(b)o (y)f(IPC)h(is)f(sim-)1072 1492 y(ply)k(the)h(transfer)f(of)g(a)g(PC)g(from)e (one)i(protection)h(domain)1072 1542 y(to)12 b(an)g(agreed-up)q(on)h(v)n (alue)e(in)h(another,)g(with)g(the)g(donation)1072 1592 y(of)i(the)h(curren)o (t)h(time-slice,)d(installation)g(of)h(the)h(called)f(do-)1072 1642 y(main's)g(exception)j(con)o(text,)f(and)g(an)g(indication)e(of)i(whic)o (h)1072 1692 y(pro)q(cess)h(initiated)c(the)i(call.)k(This)c(extremely)f (ligh)o(t)o(w)o(eigh)o(t,)1072 1741 y(sync)o(hronous,)21 b(cross-domain)c (calling)g(mec)o(hanism)f(imple-)1072 1791 y(men)o(ts)c(the)i(bare-minim)n (um)8 b(required)14 b(b)o(y)e(an)o(y)g(IPC)h(mec)o(ha-)1072 1841 y(nism,)d(allo)o(wing)g(the)i(application)e(to)h(pa)o(y)g(for)g(just)g (the)h(func-)1072 1891 y(tionalit)o(y)k(that)h(it)g(requires.)29 b(F)m(or)17 b(example,)f(a)h(clien)o(t)g(that)1072 1941 y(trusts)j(a)e(serv)o (er)i(ma)o(y)c(allo)o(w)h(the)i(serv)o(er)g(to)f(sa)o(v)o(e)h(and)f(re-)1072 1991 y(store)13 b(the)f(registers)h(it)e(needs,)i(instead)f(of)f(sa)o(ving)g (the)h(en)o(tire)1072 2040 y(register)17 b(\014le)f(on)g(ev)o(ery)g(IPC.)g (Since)g(the)g(mac)o(hine)f(state)h(of)1072 2090 y(curren)o(t)f(RISC)d(mac)o (hines)g(is)g(gro)o(wing)g(larger)g([19],)f(this)i(can)1072 2140 y(b)q(e)i(crucial)f(for)f(go)q(o)q(d)h(p)q(erformance.)1072 2282 y(This)g(is)g(far)f(from)f(a)i(complete)f(en)o(umeration)g(of)g(all)g (system)1072 2331 y(ob)r(jects)21 b(\(for)e(example,)f(w)o(e)i(neglect)f (disks)h(and)f(devices\),)1072 2381 y(but)f(should)g(giv)o(e)f(a)g(feel)h (for)f(what)h(lev)o(el)f(of)g(functionalit)o(y)1072 2431 y(the)h(OS)f(is)g Fg(r)n(e)n(quir)n(e)n(d)f Fh(to)g(pro)o(vide.)27 b(The)18 b(bare)f(minim)n (um)c(is)1072 2481 y(m)o(uc)o(h)k(remo)o(v)o(ed)f(from)g(the)i(p)q (olicy-laden,)f(o)o(v)o(erly)g(general,)1072 2531 y(and)c(restrictiv)o(e)g (implemen)o(tations)d(surrounding)i(us)h(to)q(da)o(y)m(.)1072 2581 y(\(A)g(more)e(complete)h(discussion)h(and)f(ev)n(aluation)f(of)g(the)i (ex-)1072 2630 y(ok)o(ernel)e(metho)q(dology)e(and)h(a)h(protot)o(yp)q(e)g (exok)o(ernel)g(can)g(b)q(e)1072 2680 y(found)g(in)g(Engler)g([10)o(];)g(our) g(protot)o(yp)q(e)g(exok)o(ernel)h(p)q(erforms)1072 2730 y(10-100)j(times)g (faster)i(than)f(a)f(mature)g(monolithic)f(system)p eop %%Page: 4 4 4 3 bop -15 109 a Fh(in)19 b(op)q(erations)h(suc)o(h)g(as)g(as)f(IPC,)g (exception)i(forw)o(arding,)-15 159 y(and)14 b(virtual)f(memory)e (manipulations.\))-15 239 y Ff(4)56 b(Discussion)60 311 y Fh(W)m(e)13 b(discuss)i(ho)o(w)e(our)h(prop)q(osed)h(structure)g(solv)o(es)f(the)-15 361 y(traditional)j(problems)g(of)g(reliabilit)o(y)m(,)g(e\016ciency)m(,)i (and)f(ex-)-15 411 y(tensibilit)o(y;)e(these)h(p)q(oin)o(ts)f(ha)o(v)o(e)g (at)g(their)g(core)h(the)f(simple)-15 461 y(principle)e(that)f(the)i(most)d (e\016cien)o(t,)i(reliable,)f(and)g(extensi-)-15 511 y(ble)h(OS)g (abstraction)g(is)g(the)g(one)h(that)e(is)h(not)g(there.)-15 642 y Fd(Reliabil)o(it)n(y)39 b Fh(Exp)q(osing)12 b(hardw)o(are)h(resources)i (safely)d(and)-15 692 y(e\016cien)o(tly)i(requires)h(neither)f(sophisticated) h(algorithms)c(or)-15 742 y(man)o(y)h(lines)i(of)g(co)q(de.)20 b(As)15 b(a)f(result,)g(the)h(op)q(erating)f(system)-15 792 y(can)19 b(b)q(e)h(small)c(and)j(readily)f(understo)q(o)q(d:)29 b(b)q(oth)19 b(of)g(these)-15 842 y(prop)q(erties)c(aid)f(correctness.)60 896 y(Additionally)m(,)8 b(the)i(application-lev)o(el)e(implemen)o(tation)-15 946 y(of)14 b(op)q(erating)h(system)f(services)j(is)d(lik)o(ely)f(to)i(b)q(e) g(m)o(uc)o(h)f(sim-)-15 995 y(pler)f(in)g(structure)i(and)e(smaller)e(in)h (realization)g(than)h(a)g(tra-)-15 1045 y(ditional,)d(general-purp)q(ose)k (OS.)d(F)m(or)h(example,)f(it)g(do)q(es)i(not)-15 1095 y(ha)o(v)o(e)20 b(to)h(m)o(ultithread)e(among)g(m)o(ultiple)f(malicious)g(en)o(ti-)-15 1145 y(ties,)11 b(or)g(w)o(orry)f(ab)q(out)g(p)q(eculiar)h(c)o (haracteristics)h(of)e(sup)q(ervi-)-15 1195 y(sor)k(mo)q(de)f(\(e.g.,)g(the)h (particular)g(lo)q(c)o(king)e(constrain)o(ts)j(that)-15 1245 y(arise)h(within)g(the)g(k)o(ernel)h(to)e(guard)h(against)g(loss)f(of)h(in)o (ter-)-15 1294 y(rupts)21 b(and)e(deadlo)q(c)o(k\).)36 b(Finally)m(,)19 b(since)h(this)g(application)-15 1344 y(OS)i(\\trusts")h(the)g(application,)f (it)f(can)i(use)f(application)-15 1394 y(state)12 b(directly)f(and)f(simply;) g(a)g(general-purp)q(ose)i(OS)f(is)g(con-)-15 1444 y(stan)o(tly)j(in)f(the)i (business)g(of)f(cop)o(ying)f(user)i(data,)f(guarding)-15 1494 y(against)e(illegal)e(addresses,)k(and)e(c)o(hec)o(king)h(for)f(v)n(alidit)o (y)m(.)j(All)-15 1543 y(of)10 b(these)h(concerns)h(can)f(b)q(e)g(ignored)f (in)g(an)g(application-lev)o(el)-15 1593 y(OS)i(since,)g(if)f(the)h (application)e(do)q(es)j(something)d(wrong,)h(the)-15 1643 y(damage)h(is)i(to)g(itself)f(only)m(.)-15 1775 y Fd(Adaptabili)o(t)o(y)38 b Fh(The)20 b(k)o(ernel's)g(simplicit)o(y)d(enables)k(easy)-15 1824 y(mo)q(di\014cation.)g(F)m(urthermore,)16 b(since)h(most)d(of)h(the)i (op)q(erat-)-15 1874 y(ing)11 b(system)h(co)q(de)h(is)f(used)h(simply)d(to)i (trac)o(k)h(o)o(wnership)f(and)-15 1924 y(access)g(righ)o(ts,)f(there)g(is)g (not)f(m)o(uc)o(h)f(that)i(needs)g(to)g(b)q(e)g(tuned.)60 1978 y(By)h(allo)o(wing)d(application-lev)o(el)h(implemen)o(tations,)f(w)o(e)-15 2028 y(ha)o(v)o(e)14 b(remo)o(v)o(ed)g(the)g(dep)q(endence)j(of)d(the)h(en)o (tire)g(system)f(on)-15 2078 y(the)h(implemen)o(tatio)o(n.)i(In)d(other)h(w)o (ords,)g(b)o(y)f(lo)q(calizing)f(ex-)-15 2128 y(p)q(erimen)o(ts)g(within)f(a) h(single)f(op)q(erating)h(system)g(subsystem)-15 2178 y(\(library)k(or)g (serv)o(er\),)j(applications)c(that)i(wish)f(to)g(use)h(the)-15 2227 y(new)d(feature)h(can)f(link)f(it)g(in.)21 b(Those)15 b(that)g(do)g(not,)f(do)h(not)-15 2277 y(need)d(to.)18 b(T)m(raditional)9 b(op)q(erating)i(systems)h(o)q(ccup)o(y)g(the)g(un-)-15 2327 y(fortunate)i(p)q(osition)f(of)h(ha)o(ving)f(ev)o(ery)h(application)f(dep)q (end)-15 2377 y(on)d(their)h(correct)h(and)e(appropriate)h(implem)o(en)o (tation.)j(This)-15 2427 y(\\dep)q(ends)f(on")d(relationship)h(drastically)g (limits)e(the)j(degree)-15 2476 y(to)k(whic)o(h)f(exp)q(erimen)o(tation)g (can)h(b)q(e)g(carried)g(out)g(and)f(the)-15 2526 y(results)g(used.)60 2581 y(A)f(more)f(prosaic)h(example)e(of)i(impro)o(v)o(ed)e(adaptabilit)o(y) -15 2630 y(is)j(that)g(the)h(implemen)o(tati)o(on)c(can)k(no)o(w)e(o)q(ccur)i (in)f(applica-)-15 2680 y(tion)i(space,)i(with)e(access)i(to)f(user-dev)o (elopmen)o(t)f(en)o(viron-)-15 2730 y(men)o(ts)c(\(e.g.,)g(debuggers)i(and)f (pro\014lers\).)1072 109 y Fd(E\016ciency)41 b Fh(Resource)15 b(managemen)o(t)10 b(has)j(b)q(een)h(put)f(in)o(to)1072 159 y(application)24 b(space,)k(allo)o(wing)23 b(implemen)o(tatio)o(ns)g(to)h (ex-)1072 209 y(ploit)16 b(application-sp)q(eci\014c)h(kno)o(wledge)g(in)f (making)f(trade-)1072 258 y(o\013s)c(\(e.g.,)e(optimizing)f(for)h(reads)i(or) f(random)e(writes,)j(sparse)1072 308 y(address)18 b(spaces,)g(etc.\);)f (furthermore,)g(since)g(implem)o(en)o(ta-)1072 358 y(tions)23 b(can)f(b)q(e)h(highly)e(sp)q(ecialized,)k(they)e(can)f(eliminate)1072 408 y(the)i(cost)f(of)f(generalit)o(y)g(presen)o(t)i(in)f(most)e(OS)i (abstrac-)1072 458 y(tions.)43 b(F)m(rom)20 b(an)i(engineering)g(standp)q (oin)o(t,)h(this)f(struc-)1072 508 y(ture)f(allo)o(ws)d(a)h(broad)g(p)q(o)q (ol)g(of)f(non-k)o(ernel)i(arc)o(hitects)h(to)1072 557 y(implemen)o(t)11 b(alternativ)o(e)j(implemen)o(tatio)o(ns.)i(Since)e(the)g(en-)1072 607 y(tire)d(system)f(do)q(es)h(not)g(dep)q(end)g(on)f(these)i(implemen)o (tations,)1072 657 y(application-lev)o(el)h(op)q(erating)h(systems)g(can)h(b) q(e)g(readily)e(ex-)1072 707 y(p)q(erimen)o(ted)i(with)f(and)g(altered)h(b)o (y)f(non-privileged)f(imple-)1072 757 y(men)o(tors;)g(furthermore,)g(these)h (op)q(erating)g(systems)f(will)f(b)q(e)1072 806 y(readily)20 b(used,)i(since)f(they)f(do)g(not)g(ha)o(v)o(e)g(to)g(b)q(e)h(used)g(b)o(y) 1072 856 y(the)g(en)o(tire)f(system)g(\(and)f(hence)j(trusted)f(in)e(a)g(v)o (ery)i(real)1072 906 y(sense\).)29 b(Finally)m(,)16 b(since)h(all)f(op)q (erations)h(can)g(o)q(ccur)h(in)f(the)1072 956 y(same)g(address)h(space,)h (the)e(curren)o(t)i(con)o(tortions)e(to)g(mini-)1072 1006 y(mize)c(the)i (cross-domain)e(costs)h(of)g(TLB)g(p)q(ollution/mi)o(sses,)1072 1055 y(system)e(call)f(traps,)h(and)g(con)o(text-switc)o(hes)h(are)g (completely)1072 1105 y(ob)o(viated.)1072 1231 y Fd(Flexibili)o(t)o(y)38 b Fh(Applications)11 b(can)g(no)o(w)g(implemen)o(t)e(system)1072 1281 y(ob)r(jects)26 b(in)e(w)o(a)o(ys)g(that)g(are)h(fundamen)o(tally)d(imp) q(ossible)1072 1331 y(on)17 b(traditional)e(op)q(erating)h(systems.)27 b(Radical)15 b(page-table)1072 1381 y(structures,)22 b(pro)q(cess)e (abstractions,)g(address)f(spaces,)i(and)1072 1431 y(\014lesystems)12 b(can)g(b)q(e)h(constructed)g(safely)f(and)f(e\016cien)o(tly)h(on)1072 1481 y(top)20 b(of)g(this)g(structure.)38 b(W)m(e)20 b(exp)q(ect)h(that)f (this)g(freedom)1072 1530 y(will)15 b(enable)i(a)e(broad)h(class)h(of)f (applications)f(that)h(are)h(not)1072 1580 y(feasible)d(under)h(curren)o(t)g (op)q(erating)f(systems.)1147 1633 y(The)h(abilit)o(y)e(of)h(application-lev) o(el)f(op)q(erating)h(systems)1072 1683 y(to)21 b(supp)q(ort)h(p)q(o)o(w)o (erful,)g(e\016cien)o(t,)g(and)f(un)o(usual)g(abstrac-)1072 1733 y(tions)15 b(cannot)f(b)q(e)h(o)o(v)o(eremphasized.)k(By)c(allo)o(wing)d (an)o(y)i(ap-)1072 1783 y(plication)e(writer)h(to)f(implemen)o(t)e(fundamen)o (tal)h(system)h(ob-)1072 1833 y(jects,)23 b(the)e(degree,)h(ease,)h(and)d(p)q (erv)n(asiv)o(eness)h(of)f(exp)q(eri-)1072 1882 y(men)o(tation)12 b(and)i Fg(utilization)f Fh(of)g(the)h(results)h(of)e(this)h(exp)q(eri-)1072 1932 y(men)o(tation)f(can)h(dramatically)d(increase.)1147 2076 y(W)m(e)h(discuss)i(some)d(frequen)o(tly)h(ask)o(ed)h(questions)g(ab)q(out) 1072 2125 y(the)i(metho)q(dology)d(w)o(e)i(ha)o(v)o(e)g(prop)q(osed.)1147 2179 y Fd(W)l(on't)i(executables)d(b)q(ecome)i(large?)i Fh(As)d(a)f(prac-) 1072 2228 y(tical)k(matter,)f(libraries)h(that)f(implemen)o(t)f(traditional)g (ab-)1072 2278 y(stractions)21 b(can)e(b)q(e)i(sizable.)35 b(Ho)o(w)o(ev)o(er,)20 b(shared)h(libraries)1072 2328 y(can)15 b(b)q(e)g(used)g(to)f(com)o(bat)f(this)i(problem.)j(They)c(ha)o(v)o(e)g(b)q (een)1072 2378 y(used)k(successfully)g(in)e(equiv)n(alen)o(t)g(situations.)27 b(F)m(or)16 b(exam-)1072 2428 y(ple,)g(the)h(X-windo)o(w)d(libraries)i(are)g (t)o(ypically)e(dynamically)1072 2477 y(link)o(ed.)19 b(In)14 b(the)h(w)o(orst)g(case,)g(serv)o(ers)h(can)e(b)q(e)h(used)g(to)g(m)o(ul-) 1072 2527 y(tiplex)f(co)q(de,)g(data)g(and)f(threads)i(of)f(con)o(trol.)1147 2581 y Fd(Do)q(esn't)28 b(this)f(cause)i(p)q(ortabili)o(t)o(y)d(problems?) 1072 2630 y Fh(There)18 b(are)e(t)o(w)o(o)g(lev)o(els)g(of)f(p)q(ortabilit)o (y)g(that)h(m)o(ust)f(b)q(e)i(pro-)1072 2680 y(vided,)24 b(mac)o(hine)d(p)q (ortabilit)o(y)g(and)h(OS)h(in)o(terface)g(p)q(orta-)1072 2730 y(bilit)o(y)m(.)44 b(The)23 b(\014rst)h(ma)o(y)c(b)q(e)k(ac)o(hiev)o(ed)f(in) g(the)g(standard)p eop %%Page: 5 5 5 4 bop -15 109 a Fh(manner:)19 b(namely)m(,)12 b(a)j(lo)o(w-lev)o(el)e(la)o (y)o(er)h(that)h(hides)g(mac)o(hine)-15 159 y(dep)q(endence.)48 b(The)24 b(second)g(can)g(b)q(e)f(ac)o(hiev)o(ed)h(through)-15 209 y(application-lev)o(el)h(implem)o(en)o(tations)f(of)i(industry)h(stan-) -15 258 y(dards)15 b(\(e.g.,)e(POSIX\).)h(The)h(imp)q(ortan)o(t)d (di\013erence)k(is)e(that)-15 308 y(the)k(implemen)o(tation)c(of)j(these)i (la)o(y)o(ers)e(are)h(no)o(w)f(in)g(appli-)-15 358 y(cation)g(space)h(and,)f (therefore,)i(can)e(b)q(e)h(replaced)g(without)-15 408 y(sp)q(ecial)e (privileges,)f(simplifying)d(the)k(addition)f(and)g(dev)o(el-)-15 458 y(opmen)o(t)d(of)g(new)h(standards)g(and)g(features)h(not)e(an)o (ticipated)-15 508 y(b)o(y)i(k)o(ernel)g(arc)o(hitects.)60 565 y Fd(What)33 b(happ)q(ens)f(to)h(the)f(system)h(structure)-15 614 y(when)16 b(an)o(y)h(application)d(can)j(de\014ne)e(its)h(o)o(wn)h(in)o (ter-)-15 664 y(faces?)g Fh(As)d(language,)d(GUI)i(and)g(standard)g(library)f (imple-)-15 714 y(men)o(tors)d(can)i(attest,)g(prev)o(en)o(ting)f(a)g(Bab)q (el)h(of)e(incompatible)-15 764 y(in)o(terfaces)k(is)f(simple:)k(de\014ne)d (standards)g(and)f(con)o(v)o(en)o(tions.)-15 814 y(As)h(w)o(e)f(argue)g(in)g (this)g(p)q(osition)f(pap)q(er,)i(the)f(e\013ects)j(of)c(hard-)-15 864 y(wiring)16 b(high-lev)o(el)g(in)o(terfaces)i(in)o(to)e(the)i(system)f (structure)-15 913 y(are)12 b(a)g(con)o(vincing)f(demonstration)f(that)i(suc) o(h)h(an)e(approac)o(h)-15 963 y(is)16 b(not)f(the)i(righ)o(t)e(w)o(a)o(y)g (to)h(de\014ne)h(a)e(standard.)24 b(In)16 b(closing,)-15 1013 y(while)g(an)h(exok)o(ernel)g(allo)o(ws)f(the)h(p)q(ossibilit)o(y)e(of)i(a)f (c)o(haotic)-15 1063 y(system)d(it)g(also)g(allo)o(ws)g(the)h(creation)g(of)f (a)g(harmonious,)e(el-)-15 1113 y(egan)o(t)k(one)g(as)g(w)o(ell:)k(a)14 b(system)h(whose)g(structure)i(do)q(es)f(not)-15 1162 y(ha)o(v)o(e)e(to)f(b)q (e)i(an)o(ticipated)f(b)o(y)f(k)o(ernel)i(arc)o(hitects.)60 1219 y Fd(Ho)o(w)22 b(can)g(system)e(state)h(b)q(e)h(shared?)31 b Fh(T)m(rusted)-15 1269 y(\(or)19 b(at)g(least)g(highly)f(accoun)o(table\))h (serv)o(ers)i(can)e(b)q(e)h(used)-15 1319 y(to)15 b(manage)e(shared,)j (fault-isolated)d(cac)o(hes)j(of)f(system)f(ob-)-15 1369 y(jects)d(suc)o(h)h (as)e(\014le-bu\013ers.)18 b(This)11 b(metho)q(dology)d(is)i(has)h(b)q(een) -15 1419 y(explored)17 b(in)f(the)h(con)o(text)h(of)e(microk)o(ernels;)h(man) o(y)d(of)i(the)-15 1469 y(lessons)f(learned)f(are)g(directly)h(applicable)e (to)g(exok)o(ernels.)-15 1552 y Ff(5)56 b(Related)17 b(W)-5 b(ork)60 1627 y Fh(Micro-k)o(ernels)26 b(w)o(ere)f(originally)e(in)o(tended)i (to)g(solv)o(e)-15 1677 y(man)o(y)14 b(of)h(the)i(problems)e(w)o(e)h(ha)o(v)o (e)g(listed.)24 b(Unfortunately)m(,)-15 1726 y(they)17 b(ha)o(v)o(e)f (\015oundered)i(for)e(a)g(n)o(um)o(b)q(er)g(of)f(reasons.)27 b(First,)-15 1776 y(while)14 b(they)h(allo)o(w)e(replacing)i(of)f(device)h (driv)o(ers)g(and)g(high-)-15 1826 y(lev)o(el)21 b(serv)o(ers,)26 b(suc)o(h)c(op)q(erations)g(t)o(ypically)e(can)i(only)f(b)q(e)-15 1876 y(done)14 b(b)o(y)f(trusted)i(applications.)i(Second,)d(they)g(are)g (still)e(in)-15 1926 y(the)g(business)i(of)d(pro)o(viding)f(a)i(virtual)f (mac)o(hine)f(to)i(applica-)-15 1976 y(tions.)24 b(The)17 b(high-lev)o(el)e (in)o(terface)i(that)f(they)g(enforce)h(pre-)-15 2025 y(cludes)11 b(m)o(uc)o(h)e(of)g(the)i(exp)q(erimen)o(tation)e(that)i(w)o(e)f(desire)h (\(the)-15 2075 y(reader)g(is)f(in)o(vited)f(to)g(compare)h(the)g(primitiv)o (es)e(describ)q(ed)j(in)-15 2125 y(Section)j(3)g(to)g(curren)o(t)i(micro-k)o (ernels\).)i(Third,)13 b(their)i(rigid)-15 2175 y(in)o(terface)i(tends)g(to)f (b)q(e)h(rudimen)o(tary)e(when)i(compared)e(to)-15 2225 y(their)f(monolithic) d(coun)o(terparts;)k(they)f(often)g(ac)o(hiev)o(e)g(sim-)-15 2274 y(plicit)o(y)g(b)o(y)h(implemen)o(ting)d(only)j(a)g(small)e(set)j(of)f (high-lev)o(el)-15 2324 y(OS)21 b(abstractions.)40 b(F)m(or)21 b(example,)g(a)g(micro-k)o(ernel)f(ma)o(y)-15 2374 y(ha)o(v)o(e)10 b(ac)o(hiev)o(ed)g(simplicit)o(y)e(b)o(y)i(dropping)g(supp)q(ort)h(for)e Fc(mmap)p Fh(,)-15 2424 y(memory-m)o(app)q(ed)14 b(I/O,)h(and)h (full-featured)f(virtual)h(mem-)-15 2474 y(ory)m(,)j(but)g(not)f(giv)o(en)g (alternativ)o(e)h(mec)o(hanisms)d(to)j(imple-)-15 2523 y(men)o(t)11 b(the)i(functionalit)o(y)e(these)i(features)h(pro)o(vided:)j(micro-)-15 2573 y(k)o(ernels)23 b(can)f(giv)o(e)g(applications)f(ev)o(en)i(less)g(con)o (trol)f(o)o(v)o(er)-15 2623 y(hardw)o(are)14 b(resources)j(than)c(a)h (monolithic)d(system)j(do)q(es.)60 2680 y(Microk)o(ernel)20 b(arc)o(hitects)g(ha)o(v)o(e)f(realized)g(that)h(an)e(op-)-15 2730 y(erating)i(system)f(should)h(b)q(e)g(small;)g(the)h(crucial)e(mistak)o (e)1072 109 y(they)f(ha)o(v)o(e)f(made)e(is)i(in)g(determining)f(ho)o(w)g(an) h(OS)g Fg(should)1072 159 y Fh(get)h(this)g(w)o(a)o(y)m(.)27 b(It)18 b(should)f(b)q(ecome)g(small)e(not)j(b)o(y)f(enforc-)1072 209 y(ing)d(a)g(limited)d(set)k(of)f(high-lev)o(el)f(op)q(erations,)g(but)i (instead,)1072 258 y(through)22 b(the)h(systematic)f(elimination)d(of)i(all)g (op)q(erating)1072 308 y(system)11 b(abstractions)g(in)f(order)h(to)f(exp)q (ose)i(the)f(hardw)o(are)g(to)1072 358 y(application-lev)o(el)k(soft)o(w)o (are;)j(from)d(this)h(primal)f(m)o(ud,)g(ap-)1072 408 y(plications)f(can)g (craft)g(their)g(o)o(wn)g(abstractions,)g(c)o(hosen)h(for)1072 458 y(appropriateness)21 b(and)f(e\016ciency)m(,)h(rather)f(than)g(mak)o(e)e (do)1072 508 y(with)13 b(abstractions)h(force-fed)f(under)h(duress.)19 b(With)12 b(micro-)1072 557 y(k)o(ernels,)i(applications)d(can)i(ha)o(v)o(e)f (ev)o(en)h(few)o(er)g(options)f(than)1072 607 y(with)i(monolithic)d(ones.) 1147 671 y(Tw)o(o)17 b(curren)o(t)h(OS)e(researc)o(h)j(e\013orts,)f(the)f (Cac)o(he)g(Ker-)1072 721 y(nel)12 b([7])f(and)h(Aegis)g([9)o(,)f(10],)g (adhere)i(closely)f(to)f(our)h(precepts)1072 771 y(for)18 b(a)f(mo)q(del)f (op)q(erating)h(system.)29 b(F)m(urther)18 b(exp)q(erience)i(is)1072 821 y(needed)f(to)d(see)j(if)d(a)g(lo)o(w-lev)o(el)g(k)o(ernel)h(in)o (terface)g(is)g(indeed)1072 871 y(the)j(panacea)f(that)g(can)g(cure)h(curren) o(t)g(op)q(erating)f(system)1072 920 y(troubles.)1147 985 y(The)f(op)q(en)f (op)q(erating)g(system)f(for)g(a)h(single-user)g(ma-)1072 1034 y(c)o(hine)i(is)f(motiv)o(ed)f(b)o(y)h(similar)d(observ)n(ations)k(as)f(the)h (ones)1072 1084 y(that)h(motiv)n(ate)e(the)j(exok)o(ernel)f([16)o(].)36 b(Ho)o(w)o(ev)o(er,)21 b(the)g(ap-)1072 1134 y(proac)o(h)d(tak)o(en)g(to)g (extensibilit)o(y)f(tak)o(en)h(is)g(di\013eren)o(t.)31 b(The)1072 1184 y(exok)o(ernel's)16 b(main)d(task)j(is)f(secure)i(m)o(ultiplexing,)12 b(while)j(in)1072 1234 y(the)d(op)q(en)f(op)q(erating)g(system)f(protection)h (is)g(not)g(an)f(issue)i(at)1072 1283 y(all,)f(since)i(it)f(relies)h(on)f (the)g(fact)h(it)e(is)h(designed)h(for)f(a)g(single-)1072 1333 y(user)17 b(mac)o(hine.)k(In)16 b(addition,)e(the)i(exok)o(ernel)g(attempts)f (to)1072 1383 y(de\014ne)j(no)f(OS)g(abstractions,)h(while)e(in)g(the)i(op)q (en)f(op)q(erat-)1072 1433 y(ing)i(systems)f(the)i(\014le)e(system)h(and)f (comm)o(unications)e(are)1072 1483 y(standardized.)23 b(Despite)16 b(these)h(di\013erences,)g(one)e(can)h(view)1072 1533 y(the)j(exok)o(ernel)f (arc)o(hitecture)h(as)e(an)h(instance)g(of)f(an)g(op)q(en)1072 1582 y(op)q(erating)d(system.)1147 1647 y(The)k(in)o(terface)g(pro)o(vided)f (b)o(y)f(the)i(VM/370)e(OS)i([8)o(])f(is)1072 1696 y(v)o(ery)h(similar)c(to)j (what)g(w)o(ould)f(b)q(e)i(pro)o(vided)e(b)o(y)h(our)g(ideal)1072 1746 y(OS:)g(namely)m(,)d(the)i(ra)o(w)g(hardw)o(are.)26 b(Ho)o(w)o(ev)o(er,) 17 b(the)f(imp)q(or-)1072 1796 y(tan)o(t)f(di\013erence)h(is)e(that)g(VM/370) g(pro)o(vides)g(this)h(in)o(terface)1072 1846 y(b)o(y)d Fg(virtualizing)e Fh(the)i(en)o(tire)g(base-mac)o(hine.)k(Since)c(this)f(ma-)1072 1896 y(c)o(hine)17 b(can)e(b)q(e)i(quite)e(complicated)g(and)g(exp)q(ensiv)o (e)i(to)f(em-)1072 1945 y(ulate)f(faithfully)m(,)c(virtualization)i(can)i (result)g(in)f(a)g(complex)1072 1995 y(and)j(ine\016cien)o(t)g(OS.)g(In)g (con)o(trast,)h(our)f(approac)o(h)g Fg(exp)n(orts)1072 2045 y Fh(hardw)o(are)d(resources)i(rather)e(than)g(em)o(ulates)e(them,)g(allo)o (w-)1072 2095 y(ing)i(an)f(e\016cien)o(t)i(and)e(fast)h(implemen)o(tation.) 1147 2159 y(OS)i(extensibilit)o(y)f(has)g(a)g(long)f(history)i([15)o(,)e (20].)21 b(Cur-)1072 2209 y(ren)o(t)28 b(attempts)f(include)g(SPIN)h([4)o(],) i(Bridge)d([17)o(],)j(and)1072 2259 y(Vino)16 b([22].)25 b(Some)15 b(of)h(the)i(tec)o(hniques)f(used)h(in)e(these)i(sys-)1072 2308 y(tems,)e(suc)o(h)g(as)g(t)o(yp)q(e-safe)g(languages)f(and)h(soft)o(w)o (are)f(fault-)1072 2358 y(isolation)h([25)o(],)i(are)f(also)g(applicable)f (to)i(exok)o(ernels.)29 b(The)1072 2408 y(commercial)13 b(w)o(orld)h(has)h (long)f(lo)q(ok)o(ed)h(at)g(this)g(issue)g(in)g(the)1072 2458 y(form)e(of)g(unsafe)h(dynamically)d(loaded)j(device)g(driv)o(ers.)1072 2548 y Ff(6)57 b(Conclusions)1147 2630 y Fh(Tw)o(o)14 b(decades)h(ago,)d (Lampson)g(summarized)g(the)i(state)1072 2680 y(of)k(the)g(art;)i (unfortunately)m(,)e(his)g(c)o(haracterization)h(is)e(still)1072 2730 y(apt:)p eop %%Page: 6 6 6 5 bop 89 109 a Fh(A)11 b(considerable)g(amoun)o(t)e(of)h(bitter)h(exp)q (erience)89 159 y(in)f(the)h(design)f(of)g(op)q(erating)g(systems)h(has)f(b)q (een)89 209 y(accum)o(ulated)i(in)g(the)i(last)e(few)h(y)o(ears,)g(b)q(oth)g (b)o(y)89 258 y(the)f(designers)h(of)e(the)i(systems)f(whic)o(h)f(are)i(cur-) 89 308 y(ren)o(tly)i(in)g(use)i(and)e(b)o(y)g(those)i(who)e(ha)o(v)o(e)g(b)q (een)89 358 y(forced)d(to)g(use)h(them.)j(As)d(a)e(result,)i(man)o(y)d(p)q (eo-)89 408 y(ple)19 b(ha)o(v)o(e)h(b)q(een)h(led)f(to)f(the)h(conclusion)g (that)89 458 y(some)14 b(radical)g(c)o(hanges)i(m)o(ust)e(b)q(e)i(made,)e(b)q (oth)89 508 y(in)e(the)h(w)o(a)o(y)f(w)o(e)h(think)f(ab)q(out)h(the)g (functions)g(of)89 557 y(op)q(erating)g(systems)g(and)g(in)f(the)i(w)o(a)o(y) e(they)i(are)89 607 y(implemen)o(ted)d([15)o(].)-15 691 y(W)m(e)j(b)q(eliev)o (e)g(that)g(these)i(problems)d(can)h(b)q(e)h(solv)o(ed)f(b)o(y)g(lo)o(w-)-15 740 y(ering)e(the)i(in)o(terface)f(to)f(the)h(hardw)o(are)g(that)f(is)h (enforced)g(b)o(y)-15 790 y(the)g(k)o(ernel:)18 b(namely)m(,)11 b(b)o(y)i(exp)q(orting)f(ph)o(ysical)h(resources)i(to)-15 840 y(applications)e(directly)m(.)19 b(Managemen)o(t)13 b(and)h(abstraction)h(of) -15 890 y(these)i(resources)g(can)f(then)g(b)q(e)g(sp)q(ecialized)g(for)e (simplicit)o(y)m(,)-15 940 y(e\016ciency)m(,)g(and)g(appropriateness.)60 990 y(The)h(lo)o(w-lev)o(el)e(in)o(terface)j(of)e(our)g(prop)q(osed)i(OS)f (struc-)-15 1039 y(ture)g(w)o(ould)e(ha)o(v)o(e)h(allo)o(w)o(ed)f(the)h(bulk) g(of)f(op)q(erating)h(system)-15 1089 y(researc)o(h)f(in)e(the)g(last)g(t)o (w)o(o)g(decades)h(to)f(ha)o(v)o(e)g(b)q(een)h(done)g(eas-)-15 1139 y(ily)j(and)h(safely)g(in)f(application)g(space.)25 b(F)m(urthermore,)16 b(the)-15 1189 y(impact)c(of)g(this)h(researc)o(h)i(could)e(ha)o(v)o(e)g(b)q (een)h(m)o(uc)o(h)e(greater,)-15 1239 y(since)j(the)h(implem)o(en)o(tation)c (of)i(its)g(ideas)h(could)f(ha)o(v)o(e)h(b)q(een)-15 1289 y(lo)q(calized)f (to)f(sp)q(eci\014c)j(applications.)-15 1363 y Ff(References)4 1421 y Fb([1])k(T.E.)e(Anderson,)k(B.N.)c(Bershad,)j(E.D.)e(Lazo)o(wsk)n(a,)h (and)65 1462 y(H.M.)f(Levy)m(.)36 b(Sc)o(heduler)21 b(activ)n(ations:)32 b(E\013ectiv)o(e)21 b(k)o(ernel)65 1504 y(supp)q(ort)14 b(for)f(the)f (user-lev)o(el)j(managemen)o(t)e(of)g(parallelism.)65 1545 y(In)i Fa(Pr)n(o)n(c.)f(Thirte)n(enth)e(Symp)n(osium)h(on)h(Op)n(er)n(ating)f (System)65 1587 y(Principles)p Fb(,)e(pages)i(95{109,)h(Octob)q(er)f(1991.)4 1645 y([2])20 b(A.W.)11 b(App)q(el)h(and)f(K.)f(Li.)k(Virtual)e(memory)g (primitiv)o(es)h(for)65 1687 y(user)h(programs.)20 b(In)14 b Fa(Pr)n(o)n(c)n(e)n(e)n(dings)d(of)j(the)f(F)m(ourth)g(Interna-)65 1728 y(tional)i(Confer)n(enc)n(e)g(on)h(ASPLOS)p Fb(,)e(pages)j(96{107,)h (San)o(ta)65 1770 y(Clara,)c(CA,)e(April)i(1991.)4 1828 y([3])20 b(K.)i(Bala,)i(M.F.)d(Kaasho)q(ek,)k(and)e(W.E.)e(W)m(eihl.)45 b(Soft-)65 1870 y(w)o(are)11 b(prefetc)o(hing)i(and)e(cac)o(hing)i(for)e (translation)i(lo)q(ok)n(aside)65 1912 y(bu\013ers.)37 b(In)20 b Fa(Pr)n(o)n(c)n(e)n(e)n(dings)d(of)i(the)f(First)h(Symp)n(osium)f(on)65 1953 y(OSDI)p Fb(,)13 b(pages)g(243{253,)h(June)g(1994.)4 2012 y([4])20 b(B.N.)f(Bershad,)i(C.)d(Cham)o(b)q(ers,)j(S.)e(Eggers,)i(C.)d (Maeda,)65 2053 y(D.)h(McNamee,)g(P)m(.)f(P)o(ardy)o(ak,)j(S.)d(Sa)o(v)n (age,)i(and)f(E.)f(Sirer.)65 2095 y(SPIN)25 b(-)f(an)h(extensible)i(microk)o (ernel)g(for)e(application-)65 2136 y(sp)q(eci\014c)12 b(op)q(erating)g (system)f(services.)i(TR)d(94-03-03,)h(Univ.)65 2178 y(of)i(W)m(ashington,)i (F)m(ebruary)f(1994.)4 2236 y([5])20 b(B.N.)c(Bershad,)i(D.)f(Lee,)g(T.H.)e (Romer,)i(and)g(J.B.)f(Chen.)65 2278 y(Av)o(oiding)i(con\015ict)f(misses)g (dynamically)i(in)e(large)f(direct-)65 2319 y(mapp)q(ed)f(cac)o(hes.)i(In)c Fa(ASPLOS-VI)p Fb(,)e(1994.)4 2378 y([6])20 b(B.N.)14 b(Bershad,)i(D.D.)e (Redell,)j(and)e(J.R.)f(Ellis.)23 b(F)m(ast)15 b(m)o(u-)65 2419 y(tual)e(exclusion)i(for)c(unipro)q(cessors.)18 b(In)11 b Fa(Pr)n(o)n(c.)h(of)g(the)g(Conf.)65 2461 y(on)h(A)o(r)n(chite)n(ctur)n(al) e(Supp)n(ort)h(for)h(Pr)n(o)n(gr)n(amming)g(L)n(anguages)65 2502 y(and)e(Op)n(er)n(ating)f(Systems)p Fb(,)f(pages)j(223{237,)g(Octob)q (er)g(1992.)4 2561 y([7])20 b(D.)11 b(Cheriton)h(and)f(K.)f(Duda.)k(A)c(cac)o (hing)i(mo)q(del)g(of)e(op)q(erat-)65 2602 y(ing)15 b(system)f(k)o(ernel)h (functionalit)o(y)m(.)21 b(In)14 b Fa(Pr)n(o)n(c)n(e)n(e)n(dings)d(of)j(the) 65 2644 y(Sixth)f(SIGOPS)f(Eur)n(op)n(e)n(an)g(Workshop)p Fb(,)f(Septem)o(b)q (er)j(1994.)4 2702 y([8])20 b(R.)25 b(J.)g(Creasy)m(.)53 b(The)25 b(origin)i(of)e(the)h(VM/370)g(time-)65 2744 y(sharing)18 b(system.)26 b Fa(IBM)17 b(J.)f(R)n(ese)n(ar)n(ch)f(and)g(Development)p Fb(,)65 2785 y(25\(5\):483{490,)f(Septem)o(b)q(er)g(1981.)1092 109 y([9])20 b(D.)15 b(R.)f(Engler,)i(M.)f(F.)f(Kaasho)q(ek,)i(and)f(J.)f (O'T)m(o)q(ole.)22 b(The)1153 151 y(op)q(erating)h(system)e(k)o(ernel)g(as)g (a)g(secure)g(programmable)1153 192 y(mac)o(hine.)k(In)15 b Fa(Pr)n(o)n(c)n(e)n(e)n(dings)e(of)j(the)e(Sixth)h(SIGOPS)f(Eur)n(o-)1153 234 y(p)n(e)n(an)e(Workshop)p Fb(,)f(Septem)o(b)q(er)j(1994.)1072 292 y([10])21 b(Da)o(wson)12 b(R.)f(Engler.)k(The)c(design)h(and)g(implemen)o (tation)j(of)1153 334 y(a)10 b(protot)o(yp)q(e)h(exok)o(ernel)h(op)q(erating) g(system.)h(Master's)d(the-)1153 376 y(sis,)15 b(MIT,)e(545)h(T)m(ec)o (hnology)i(Square,)e(Boston)h(MA)f(02139,)1153 417 y(F)m(ebruary)g(1995.)1072 476 y([11])21 b(P)o(er)j(Brinc)o(h)i(Hansen.)52 b(The)24 b(n)o(ucleus)i(of)e (a)h(m)o(ultipro-)1153 517 y(gramming)f(system.)48 b Fa(Communic)n(ations)20 b(of)i(the)g(A)o(CM)p Fb(,)1153 559 y(13\(4\):238{241,)14 b(April)g(1970.) 1072 618 y([12])21 b(J.H.)15 b(Hartman,)j(A.B.)d(Mon)o(tz,)j(Da)o(vid)g(Mosb) q(erger,)g(S.W.)1153 659 y(O'Malley)m(,)13 b(L.L.)e(P)o(eterson,)h(and)g (T.A.)e(Pro)q(ebsting.)17 b(Scout:)1153 701 y(A)12 b(comm)o(unication-ori)q (en)o(ted)k(op)q(erating)f(system.)i(T)m(ec)o(hni-)1153 742 y(cal)e(Rep)q(ort)g(TR)f(94-20,)h(Univ)o(ersit)o(y)i(of)d(Arizona,)h(T)m (ucson,)1153 784 y(AZ,)e(June)g(1994.)1072 843 y([13])21 b(K.)15 b(Hart)o(y)g(and)h(D.R.)f(Cheriton.)25 b(Application-controll)q(ed)1153 884 y(ph)o(ysical)19 b(memory)d(using)i(external)f(page-cac)o(he)h(manage-) 1153 926 y(men)o(t.)j(In)14 b Fa(Pr)n(o)n(c)n(e)n(e)n(dings)e(of)i(the)g (Fifth)g(Internationa)o(l)e(Con-)1153 967 y(fer)n(enc)n(e)g(on)h(ASPLOS)p Fb(,)e(pages)j(187{199,)g(Octob)q(er)f(1992.)1072 1026 y([14])21 b(J.)11 b(Huc)o(k)h(and)h(J.)e(Ha)o(ys.)k(Arc)o(hitectural)e(supp)q(ort)g (for)f(trans-)1153 1068 y(lation)18 b(table)f(managemen)o(t)g(in)g(large)g (address)h(space)f(ma-)1153 1109 y(c)o(hines.)h(In)13 b Fa(Pr)n(o)n(c)n(e)n (e)n(dings)e(of)i(the)g(19th)f(International)e(Sym-)1153 1151 y(p)n(osium)i(on)h(Computer)g(A)o(r)n(chite)n(ctur)n(e)p Fb(,)d(1992.)1072 1209 y([15])21 b(B.W.)11 b(Lampson.)k(On)c(reliable)j(and)e(extendable)h(op)q (erating)1153 1251 y(systems.)k Fa(State)12 b(of)h(the)g(A)o(rt)g(R)n(ep)n (ort)p Fb(,)f(1,)g(1971.)1072 1310 y([16])21 b(B.W.)d(Lampson)g(and)h(R.F.)e (Sproull.)34 b(An)17 b(op)q(en)i(op)q(erat-)1153 1351 y(ing)e(system)e(for)h (a)f(single-user)j(mac)o(hine.)26 b Fa(Pr)n(o)n(c)n(e)n(e)n(dings)13 b(of)1153 1393 y(the)j(Seventh)e(A)o(CM)k(Symp)n(osium)d(on)h(Op)n(er)n (ating)f(Systems)1153 1434 y(Principles)p Fb(,)10 b(pages)k(98{105,)g(1979.) 1072 1493 y([17])21 b(Stev)o(en)13 b(Lucco.)i(High-p)q(erformance)f(microk)o (ernel)g(systems)1153 1535 y(\(abstract\).)44 b(In)22 b Fa(Pr)n(o)n(c.)g(of)f (the)g(\014rst)g(Symp.)g(on)g(OSDI)p Fb(,)1153 1576 y(No)o(v)o(em)o(b)q(er)13 b(1994.)1072 1635 y([18])21 b(H.)15 b(Massalin.)29 b Fa(Synthesis:)20 b(an)15 b(e\016cient)g(implementation)1153 1676 y(of)c(fundamental)e(op)n(er) n(ating)h(system)g(servic)n(es)p Fb(.)i(PhD)g(thesis,)1153 1718 y(Colum)o(bia)j(Univ)o(ersit)o(y)m(,)f(1992.)1072 1777 y([19])21 b(J.)12 b(K.)g(Ousterhout.)17 b(Wh)o(y)d(aren't)f(op)q(erating)h (systems)f(get-)1153 1818 y(ting)19 b(faster)f(as)g(fast)g(as)g(hardw)o(are?) 47 b(In)18 b Fa(Pr)n(o)n(c.)g(Summer)1153 1860 y(Usenix)p Fb(,)10 b(pages)k(247{256,)g(June)f(1990.)1072 1919 y([20])21 b(D.D.)c(Redell,)j (Y.K.)c(Dalal,)k(T.R.)c(Horsley)m(,)j(H.C.)d(Lauer,)1153 1960 y(W.C.)g(Lync)o(h,)i(P)m(.R.)f(McJones,)h(H.G.)e(Murra)o(y)m(,)i(and)f(S.C.) 1153 2002 y(Purcell.)33 b(Pilot:)27 b(An)18 b(op)q(erating)h(system)f(for)g (a)f(p)q(ersonal)1153 2043 y(computer.)d Fa(Communic)n(ations)9 b(of)i(the)g(A)o(CM)p Fb(,)g(23\(2\):81{92,)1153 2085 y(F)m(ebruary)j(1980.) 1072 2144 y([21])21 b(J.H.)12 b(Saltzer,)i(D.P)m(.)f(Reed,)h(and)g(D.D.)f (Clark.)18 b(End-to-end)1153 2185 y(argumen)o(ts)13 b(in)f(system)g(design.) 17 b Fa(Pr)n(o)n(c.)11 b(of)h(the)g(Fifth)f(SOSP)p Fb(,)1153 2227 y(pages)j(509{512,)g(1981.)1072 2285 y([22])21 b(Margo)14 b(Seltzer)h(et)e(al.)19 b(An)14 b(in)o(tro)q(duction)i(to)e(the)f(arc)o (hitec-)1153 2327 y(ture)g(of)g(the)g(VINO)f(k)o(ernel,)i(No)o(v)o(em)o(b)q (er)f(1994.)1072 2386 y([23])21 b(M.)28 b(Stonebrak)o(er.)65 b(Op)q(erating)31 b(system)e(supp)q(ort)h(for)1153 2427 y(database)18 b(managemen)o(t.)31 b Fa(CA)o(CM)p Fb(,)17 b(24\(7\):412{418,)j(July)1153 2469 y(1981.)1072 2527 y([24])h(C.)15 b(A.)g(Thekk)n(ath)h(and)h(Henry)f(M.)f (Levy)m(.)25 b(Hardw)o(are)16 b(and)1153 2569 y(soft)o(w)o(are)f(supp)q(ort)i (for)f(e\016cien)o(t)g(exception)i(handling.)27 b(In)1153 2611 y Fa(Sixth)12 b(Conf.)h(on)g(ASPLOS)p Fb(,)e(1994.)1072 2669 y([25])21 b(R.)c(W)m(ah)o(b)q(e,)i(S.)e(Lucco,)h(T.)e(Anderson,)j(and)f(S.)f (Graham.)1153 2711 y(E\016cien)o(t)j(soft)o(w)o(are-based)f(fault)h (isolation.)37 b(In)19 b Fa(Pr)n(o)n(c.)f(of)1153 2752 y(F)m(ourte)n(enth)11 b(SOSP)p Fb(,)h(pages)i(203{216,)g(1993.)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF