%!PS-Adobe-2.1 %%Title: /u/graphics/news-tape/documents/pguide/chapter6.psx %%Creator: Glenn Reid and still.ps (V 1.0d release 11 edit 4) %%BoundingBox: (atend) %%Pages: (atend) %%DocumentProcSets: Adobe_distill 0.112 %%EndComments %%BeginProcSet: Adobe_distill 0.112 0 /PROLOGUE 30 40 add dict def % 30 procedure entries + room for 40 cached font dictionaries PROLOGUE begin /clip { } def % causes problems. remove if "clip" is needed /bdef { bind def } bind def /ldef { load def } bdef /T { moveto spy1 show spy2 } bdef /A { moveto spy1 ashow spy2 } bdef /W { moveto spy1 widthshow spy2 } bdef /AW { moveto spy1 awidthshow spy2 } bdef /f /fill ldef /R { { rlineto } repeat } bdef /r /rlineto ldef /L { { lineto } repeat } bdef /m /moveto ldef /l { moveto lineto stroke } bdef /x { 0 rlineto } bdef /y { 0 exch rlineto } bdef /X { moveto 0 rlineto stroke } bdef /Y { moveto 0 exch rlineto stroke } bdef /c /curveto ldef /cp /closepath ldef /s /stroke ldef /w /setlinewidth ldef /g /setgray ldef /j /setlinejoin ldef /d /setdash ldef /F /setfont ldef /C /setcmykcolor where { /setcmykcolor get }{ %ifelse { %def 1 sub 3 { 3 index add neg dup 0 lt { pop 0 } if 3 1 roll } repeat setrgbcolor } bind } ifelse def /selectfont where { pop }{ %ifelse /selectfont { exch findfont exch scalefont setfont } bdef } ifelse /MF { exch findfont exch makefont setfont } bdef /FF /selectfont ldef /DF { selectfont currentfont def } bdef /BEGINPAGE { beginspy pop /pagesave save def } bdef /ENDPAGE { endspy pop pagesave restore showpage } def /REMAP { %def FontDirectory 2 index known { pop pop pop } { %ifelse findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall exch dup length 0 gt { /Encoding exch def }{ pop } ifelse currentdict end definefont pop } ifelse } bdef /RECODE { %def 3 -1 roll 1 index findfont /Encoding get 256 array copy exch 0 exch { %forall dup type/nametype eq { 3 {2 index} repeat put pop 1 add }{ exch pop }ifelse } forall pop 3 1 roll REMAP } bdef /beginspy { } def /endspy { } def /spy-str null def /spy-x null def /spy-y null def /spy-w null def /spy-h null def /spy1 { /spy-str 1 index store currentpoint /spy-y exch currentfont fontdescent sub store /spy-x exch store /spy-w 0 store /spy-h currentfont fontheight store } def /spy2 { currentpoint pop /spy-w exch spy-x sub store gsave newpath spy-x spy-y spy-w spy-h rectpath 0 setgray 5 setrasteropcode fill grestore } def end %PROLOGUE %%EndProcSet: Adobe_distill 0.112 0 %%EndProlog /tmpstr 256 string def { currentfile tmpstr readline not { exit } if (EndProlog) search { pop pop pop exit } if pop } loop %!PS-Adobe-2.1 %%Title: /u/graphics/news-tape/documents/pguide/chapter1.psx %%Creator: Glenn Reid and still.ps (V 1.0d release 11 edit 4) %%BoundingBox: (atend) %%Pages: (atend) %%DocumentProcSets: Adobe_distill 0.112 %%EndComments %%BeginProcSet: Adobe_distill 0.112 0 /PROLOGUE 30 40 add dict def % 30 procedure entries + room for 40 cached font dictionaries PROLOGUE begin /clip { } def % causes problems. remove if "clip" is needed /bdef { bind def } bind def /ldef { load def } bdef /T { moveto show } bdef /A { moveto ashow } bdef /W { moveto widthshow } bdef /AW { moveto awidthshow } bdef /f /fill ldef /R { { rlineto } repeat } bdef /r /rlineto ldef /L { { lineto } repeat } bdef /m /moveto ldef /l { moveto lineto stroke } bdef /x { 0 rlineto } bdef /y { 0 exch rlineto } bdef /X { moveto 0 rlineto stroke } bdef /Y { moveto 0 exch rlineto stroke } bdef /c /curveto ldef /cp /closepath ldef /s /stroke ldef /w /setlinewidth ldef /g /setgray ldef /j /setlinejoin ldef /d /setdash ldef /F /setfont ldef /C /setcmykcolor where { /setcmykcolor get }{ %ifelse { %def 1 sub 3 { 3 index add neg dup 0 lt { pop 0 } if 3 1 roll } repeat setrgbcolor } bind } ifelse def /selectfont where { pop }{ %ifelse /selectfont { exch findfont exch scalefont setfont } bdef } ifelse /MF { exch findfont exch makefont setfont } bdef /FF /selectfont ldef /DF { selectfont currentfont def } bdef /BEGINPAGE { pop /pagesave save def } bdef /ENDPAGE { pop pagesave restore showpage } def /REMAP { %def FontDirectory 2 index known { pop pop pop } { %ifelse findfont dup length dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall exch dup length 0 gt { /Encoding exch def }{ pop } ifelse currentdict end definefont pop } ifelse } bdef /RECODE { %def 3 -1 roll 1 index findfont /Encoding get 256 array copy exch 0 exch { %forall dup type/nametype eq { 3 {2 index} repeat put pop 1 add }{ exch pop }ifelse } forall pop 3 1 roll REMAP } bdef end %PROLOGUE %%EndProcSet: Adobe_distill 0.112 0 %%EndProlog %%BeginSetup PROLOGUE begin /stdvec [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quotesingle /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright /asciicircum/underscore/grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o /p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/.notdef /Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis/Udieresis /aacute/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute /egrave/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis /ntilde/oacute/ograve/ocircumflex/odieresis/otilde/uacute/ugrave /ucircumflex/udieresis/dagger/.notdef/cent/sterling/section /bullet/paragraph/germandbls/registered/copyright/trademark /acute/dieresis/.notdef/AE/Oslash/.notdef/.notdef/.notdef/.notdef /yen/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/ordfeminine /ordmasculine/.notdef/ae/oslash/questiondown/exclamdown/logicalnot /.notdef/florin/.notdef/.notdef/guillemotleft/guillemotright /ellipsis/.notdef/Agrave/Atilde/Otilde/OE/oe/endash/emdash/quotedblleft /quotedblright/quoteleft/quoteright/.notdef/.notdef/ydieresis /Ydieresis/fraction/currency/guilsinglleft/guilsinglright/fi /fl/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand /Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex /Idieresis/Igrave/Oacute/Ocircumflex/.notdef/Ograve/Uacute/Ucircumflex /Ugrave/dotlessi/circumflex/tilde/macron/breve/dotaccent/ring /cedilla/hungarumlaut/ogonek/caron ]def stdvec /CourierR /Courier REMAP %%EndSetup %%Page: 1 1 %%PageFonts: (atend) %%PageBoundingBox: (atend) 1 BEGINPAGE /F1 /Times-Roman 14.2917 DF 348.1536 0 8 (Sun Microsystems Porting Guide\b1-1)51.1294 42.8742 W /F2 /Times-Bold 21.4376 DF 79.2121 0 8 (Chapter 1\bSun Operating System \(SunOS\))51.1294 840.8199 W F1 F (This chapter briefly describes the Sun Operating System ) 223.8192 817.0006 T (\(SunOS\) philosophy, porting issues in a UNIX) 223.8192 800.3271 T /F3 /Times-Roman 9.52783 DF (\250) 490.9858 805.091 T F1 F ( environment, ) 498.2432 800.3271 T (and future SunOS directions. ) 223.8192 784.8446 T /F4 /Times-Bold 16.6737 DF 150.6569 0 8 (1.1\bSunOS Overview)51.1294 755.0705 W F1 F (SunOS consists of a merged AT&T System V and 4.2BSD ) 223.8192 732.4422 T (UNIX environment, with features of the new 4.3BSD, \(see ) 223.8192 716.9597 T (Figure 1-1.\) SunOS is an evolving standard with value-added ) 223.8192 701.4772 T (enhancements in programming languages, window systems, ) 223.8192 685.9946 T (graphics, and networking services. Practical knowledge of the ) 223.8192 670.5121 T (rich tools available under the SunOS helps new and existing ) 223.8192 655.0296 T (customers in choosing the correct path to porting their products ) 223.8192 639.547 T (to the Sun platform.) 223.8192 624.0645 T 1 g 2 setlinecap 51.1294 616.9187 m 557.371 x -385.8723 y -557.371 x eofill 1 1 1 0 C /F5 /Times-Italic 21.4376 DF (Converging) 279.7944 541.888 T (UNIX) 305.9957 519.2597 T (System) 297.6589 499.0133 T (Standards) 284.5583 479.9579 T (SunOS) 297.6589 410.882 T (4.3/4.2BSD) 385.7902 579.9989 T 4.1922 0 32 (System V) 179.7535 578.8079 W /F6 /Times-Roman 16.6737 DF (Interprocess) 101.1499 549.0338 T (communications) 101.1499 533.5513 T 1.0004 0 32 (\245 Clean interface definition) 73.7577 513.3049 W 2.239 0 32 (\245 Standard for government) 74.9487 493.0585 W 1.9294 0 32 (and Fortune 500) 86.8583 476.385 W (Networking) 434.6197 533.5513 T 1.5125 0 32 (Programming tools) 434.6197 510.923 W 1.0004 0 32 (University and ) 434.6197 487.1037 W 4.9901 0 32 (technical users) 437.0017 470.4302 W (Architectural) 294.086 390.6356 T (foundation) 295.277 375.1531 T (ONC/NFS) 294.086 353.7157 T (Windows) 295.277 332.2784 T (Strong) 295.277 312.032 T (compilers) 296.4679 296.5495 T /F7 /Times-Bold 14.2917 DF 1.6673 0 32 (Figure 1-1. Converging UNIX System Standards) 171.4167 240.5742 W F6 F (\245) 421.5191 510.923 T (\245) 421.5191 488.2946 T (\245) 421.5191 532.3603 T (\245) 284.5583 353.7157 T (\245) 284.5583 333.4694 T (\245) 284.5583 391.8266 T (\245) 284.5583 314.4139 T 1.191 w 0 setlinecap s 227.392 606.2001 m 135.9609 606.2001 61.8481 565.6779 61.8481 515.6868 c 61.8481 515.6868 m s 61.8481 514.4958 m 61.8481 464.5047 135.9609 423.9826 227.392 423.9826 c 227.392 423.9826 m s 228.583 423.9826 m 320.0141 423.9826 394.127 464.5047 394.127 514.4958 c 394.127 514.4958 m s 394.127 515.6868 m 394.127 565.6779 320.0141 606.2001 228.583 606.2001 c s s 431.0468 606.2001 m 339.6157 606.2001 265.5029 565.6779 265.5029 515.6868 c 265.5029 515.6868 m s 265.5029 514.4958 m 265.5029 464.5047 339.6157 423.9826 431.0468 423.9826 c 431.0468 423.9826 m s 432.2378 423.9826 m 523.6689 423.9826 597.7818 464.5047 597.7818 514.4958 c 597.7818 514.4958 m s 597.7818 515.6868 m 597.7818 565.6779 523.6689 606.2001 432.2378 606.2001 c s s 329.8149 606.2001 m 288.3749 606.2001 254.7842 529.4213 254.7842 434.7013 c 254.7842 434.7013 m s 254.7842 434.7013 m 254.7842 339.9813 288.3749 263.2025 329.8149 263.2025 c 329.8149 263.2025 m s 329.8149 263.2025 m 371.2549 263.2025 404.8456 339.9813 404.8456 434.7013 c 404.8456 434.7013 m s 404.8456 434.7013 m 404.8456 529.4213 371.2549 606.2001 329.8149 606.2001 c s (\245) 90.4312 547.8428 T F1 F (More UNIX details are available in ) 223.8192 215.5639 T /F8 /Times-Italic 14.2917 DF (The UNIX System: A Sun ) 429.4093 215.5639 T (Technical Report) 223.8192 200.0814 T F1 F (.) 322.6572 200.0814 T (SunOS provides the software foundation for Sun and third-party ) 223.8192 179.835 T (applications and works with hardware standards such as the ) 223.8192 164.3525 T (VMEbus, Ethernet) 223.8192 147.679 T F3 F (\250) 330.994 152.4429 T /F9 /Times-Bold 11.9098 DF (,) 338.235 147.679 T F1 F ( and popular CPU architectures to provide ) 341.2124 147.679 T (an integrated workstation environment. \(see Figure 1-2.\)) 223.8192 132.1965 T (Sun Microsystems\325 current operating system, SunOS 4.0, con-) 223.8192 111.9501 T (tains major enhancements in every area of the operating sys-) 223.8192 96.4676 T (tem. Shared libraries, NFS) 223.8192 79.7941 T F3 F (\252) 375.8717 84.5579 T F1 F ( diskless support, and the ability to ) 385.1947 79.7941 T 1 g 0 w 2 setlinecap 51.1294 715.7687 m 138.1518 x -85.7494 y -138.1518 x eofill 1 1 1 0 C F8 F (SunOS merges AT&T ) 55.8933 699.0952 T (System V and Berke-) 55.8933 682.4217 T (ley 4.2 BSD UNIX) 55.8933 665.7482 T 1 ENDPAGE %%PageTrailer %%PageFonts: Times-Roman Times-Bold Times-Italic %%PageBoundingBox: 51 42 608 840 %%Page: 2 2 %%PageFonts: (atend) %%PageBoundingBox: (atend) 2 BEGINPAGE 1 1 1 0 C /F1 /Times-Roman 14.2917 DF (Sun Microsystems Porting Guide) 418.337 42.8742 T F1 F (1-2) 51.1294 42.8742 T F1 F (open up to 64 files per process are just some of the enhance-) 223.8192 846.7747 T F1 F (ments in this latest version of SunOS. For further information, ) 223.8192 831.2922 T F1 F (please refer to ) 223.8192 815.8097 T /F2 /Times-Italic 14.2917 DF (Release Report: SunOS 4.0) 311.9147 815.8097 T F1 F (.) 467.5015 815.8097 T F1 F (Appendix B contains detailed installation tips for system admin-) 223.8192 795.5633 T F1 F (istrators upgrading from older releases to SunOS 4.0 . Existing ) 223.8192 780.0808 T F1 F (customers should read this carefully before installation.) 223.8192 764.5982 T 1 g 51.1294 757.4525 m 556.1801 x -524.024 y -556.1801 x eofill 1 1 1 0 C 1.191 w 86.8583 510.923 587.0631 512.1139 l 157.1252 726.4874 500.1227 306.0772 l 158.3161 317.9868 510.8414 722.9145 l 1 g 64.3128 w 331.0105 518.0753 m 64.3129 x 395.3234 553.5957 366.531 582.3882 331.0105 582.3882 c 295.4901 582.3882 266.6977 553.5957 266.6977 518.0753 c 266.6977 482.5549 295.4901 453.7625 331.0105 453.7625 c 366.531 453.7625 395.3234 482.5549 395.3234 518.0753 c eofill 1 1 1 0 C 1.191 w 0 setlinecap s 331.0059 583.5717 m 295.4859 583.5717 266.6938 554.7797 266.6938 519.2597 c 266.6938 519.2597 m s 266.6938 518.0687 m 266.6938 482.5487 295.4859 453.7567 331.0059 453.7567 c 331.0059 453.7567 m s 332.1969 453.7567 m 367.7168 453.7567 396.5089 482.5487 396.5089 518.0687 c 396.5089 518.0687 m s 396.5089 519.2597 m 396.5089 554.7797 367.7168 583.5717 332.1969 583.5717 c s 1 g 27.3925 w 2 setlinecap 329.8195 518.0753 m 27.3925 x 357.2121 533.2044 344.9486 545.4678 329.8195 545.4678 c 314.6905 545.4678 302.427 533.2044 302.427 518.0753 c 302.427 502.9462 314.6905 490.6828 329.8195 490.6828 c 344.9486 490.6828 357.2121 502.9462 357.2121 518.0753 c eofill 1 1 1 0 C 1.191 w 0 setlinecap s 329.8149 545.4609 m 314.686 545.4609 302.4228 533.1976 302.4228 518.0687 c 302.4228 518.0687 m s 302.4228 518.0687 m 302.4228 502.9398 314.686 490.6766 329.8149 490.6766 c 329.8149 490.6766 m s 329.8149 490.6766 m 344.9438 490.6766 357.2071 502.9398 357.2071 518.0687 c 357.2071 518.0687 m s 357.2071 518.0687 m 357.2071 533.1976 344.9438 545.4609 329.8149 545.4609 c s /F3 /Times-Roman 16.6737 DF (SunOS) 305.9957 510.923 T F3 F (ONC) 311.9505 465.6663 T F3 F (User) 303.6137 413.2639 T F3 F (Interfaces) 303.6137 396.5904 T F3 F (Software) 183.3264 476.385 T F3 F (Development) 183.3264 459.7115 T F3 F (Graphics) 203.5728 549.0338 T F3 F (Information) 297.6589 616.9187 T F3 F (Products) 297.6589 600.2452 T F3 F (AI) 410.8005 549.0338 T F3 F (Network) 396.5089 483.5308 T F3 F 1.5244 0 32 (and ) 396.5089 466.8573 W F3 F (Connectivity) 396.5089 450.1838 T F3 F (X11/NeWS) 291.7041 323.9417 T F3 F (SunView) 291.7041 307.2682 T F3 F 2.4653 0 32 (OPEN LOOK) 291.7041 290.5947 W F3 F (SunLink) 498.9318 404.9272 T F3 F 1.31 0 32 (Sun Common Lisp) 470.3486 644.3109 W F3 F (Environment) 470.3486 627.6374 T F3 F (SunINGRES) 291.7041 730.0603 T /F4 /Times-Roman 9.52783 DF (\252) 377.8629 734.8241 T F3 F (SunUNIFY) 291.7041 713.3868 T F4 F (\252) 368.5771 718.1507 T F3 F (SunSimplify) 291.7041 696.7133 T F4 F (\252) 376.0243 701.4772 T F3 F (SunAlis) 291.7041 680.0398 T F4 F (\252) 345.4404 684.8037 T F3 F (Languages) 57.0842 435.8922 T F3 F 3.8944 0 32 (Cross Compilers) 57.0842 419.2188 W F3 F 1.9294 0 32 (Symbolic Debugger) 57.0842 402.5453 W F3 F (NSE) 57.0842 385.8718 T F3 F (SunTrac) 57.0842 369.1983 T F3 F (SunGKS) 57.0842 646.6928 T F3 F (SunCGI) 57.0842 630.0193 T F3 F (SunCore) 57.0842 613.3458 T F3 F (SunPHIGS) 57.0842 596.6723 T /F5 /Times-Bold 14.2917 DF 1.2029 0 32 (Figure 1-2. SunOS) 213.1005 252.4838 W /F6 /Symbol 14.2917 DF 1.2029 0 32 ( - ) 328.6716 252.4838 W F5 F 1.2029 0 32 (Open Systems) 346.0716 252.4838 W s 334.5788 672.894 m 241.8321 672.894 166.6529 599.8475 166.6529 509.732 c 166.6529 509.732 m s 166.6529 509.732 m 166.6529 419.6164 241.8321 346.57 334.5788 346.57 c 334.5788 346.57 m s 335.7697 346.57 m 428.5164 346.57 503.6956 419.6164 503.6956 509.732 c 503.6956 509.732 m s 503.6956 509.732 m 503.6956 599.8475 428.5164 672.894 335.7697 672.894 c s /F7 /Times-Bold 16.6737 DF (1.2) 51.1294 208.4182 T F7 F (UNIX Porting Issues) 222.6282 208.4182 T F1 F (The UNIX operating system is powerful and is available on ) 223.8192 185.7899 T F1 F (many computer architectures from different companies. Many ) 223.8192 170.3073 T F1 F (software developers choose UNIX purely for its widespread ) 223.8192 154.8248 T F1 F (availability and ease of ) 223.8192 139.3423 T F2 F (porting) 359.5704 139.3423 T F1 F ( their code from one computer to ) 401.6635 139.3423 T F1 F (another. Additionally, UNIX has a complete set of software ) 223.8192 123.8597 T F1 F (development and debugging tools.) 223.8192 108.3772 T 1 g 0 w 2 setlinecap 51.1294 179.835 m 128.6241 x -64.312 y -128.6241 x eofill 1 1 1 0 C F2 F (Porting UNIX appli-) 51.1294 169.1164 T F2 F (cations to another ) 51.1294 152.4429 T F2 F (UNIX environment ) 51.1294 135.7694 T F2 F (is fairly easy) 51.1294 119.0959 T 2 ENDPAGE %%PageTrailer %%PageFonts: Times-Roman Times-Italic Times-Bold Symbol %%PageBoundingBox: 0 0 608 846 %%Page: 3 3 %%PageFonts: (atend) %%PageBoundingBox: (atend) 3 BEGINPAGE 1 1 1 0 C /F1 /Times-Roman 14.2917 DF (Sun Microsystems Porting Guide) 51.1294 42.8742 T F1 F (1-3) 589.445 42.8742 T F1 F (Porting C source code from one UNIX system to another should ) 226.2011 846.7747 T F1 F (be a straightforward task. Fortunately, UNIX has tools, such as ) 226.2011 831.2922 T F1 F (lint\(1V\), to assist in developing portable C code. Lint detects ) 226.2011 815.8097 T F1 F (bugs, non-portable code, or wasted resources. Lint also checks ) 226.2011 800.3271 T F1 F (a program more strictly than the C compiler does. Lint simplifies ) 226.2011 784.8446 T F1 F (porting source code from one UNIX system to another. Sun\325s ) 226.2011 769.3621 T F1 F (lint is more strict than similar tools and allows easier migration ) 226.2011 753.8796 T F1 F (to Reduced Instruction Set Computer \(RISC\) processors.) 226.2011 738.397 T F1 F (Sun Fortran implements features that facilitate porting between ) 226.2011 718.1507 T F1 F (VAX) 226.2011 701.4772 T /F2 /Times-Roman 9.52783 DF (\250) 257.1542 706.241 T F1 F (/VMS) 264.3953 701.4772 T F2 F (\250) 299.3382 706.241 T F1 F ( and Sun systems. VMS dependent system calls ) 306.5792 701.4772 T F1 F (require recoding to UNIX system calls. For more information on ) 226.2011 685.9946 T F1 F (these and other programming language porting issues, refer to ) 226.2011 670.5121 T F1 F (Chapter 3) 226.2011 655.0296 T /F3 /Times-Italic 14.2917 DF (, Programming Languages.) 282.1644 655.0296 T F1 F ( ) 439.365 655.0296 T F1 F (Vendors who write programs under UNIX often use machine ) 226.2011 634.7832 T F1 F (specific software libraries. This design hinders ports that would ) 226.2011 619.3007 T F1 F (have been trivial had the original design incorporated ) 226.2011 603.8181 T F3 F (standard-) 534.9956 603.8181 T F3 F (ized ) 226.2011 588.3356 T F1 F (software packages \(e.g., libraries of routines that are avail-) 252.7953 588.3356 T F1 F (able across other UNIX platforms\). Software developers inter-) 226.2011 572.8531 T F1 F (ested in writing portable code are therefore encouraged to ) 226.2011 557.3705 T F1 F (choose software standards in their design.) 226.2011 541.888 T /F4 /Times-Bold 16.6737 DF (1.3) 53.5113 512.1139 T F4 F (Heterogeneous Environment) 225.0101 512.1139 T F1 F (With Sun\325s multiple instruction set architecture, writing ) 226.2011 489.4856 T F1 F (portable code is a primary factor allowing software to run ) 226.2011 474.0031 T F1 F (unchanged throughout Sun\325s product line. Two issues, when ) 226.2011 458.5206 T F1 F (addressed properly, allow source code to make the transition ) 226.2011 443.038 T F1 F (smoothly within a heterogeneous environment.) 226.2011 427.5555 T F1 F (First, portable software should not depend on byte ordering ) 226.2011 407.3091 T F1 F (within a word. Software developers may attempt to increase ) 226.2011 391.8266 T F1 F (efficiency within various routines by packing bytes into words, ) 226.2011 376.3441 T F1 F (then transferring these words to other routines or writing them ) 226.2011 360.8615 T F1 F (out to disk in binary format. While this works properly with sim-) 226.2011 345.379 T F1 F (ilar CPUs, it does not allow this data to be shared over a net-) 226.2011 329.8965 T F1 F (work of heterogeneous computers.) 226.2011 314.4139 T F1 F (Second, programmers should be aware that data alignment dif-) 226.2011 294.1676 T F1 F (fers between) 226.2011 278.685 T F3 F ( ) 298.8141 278.685 T F1 F (CPU types. This issue often arises when you port ) 302.387 278.685 T F1 F (programs or write C data structures to disk. Extra padding ) 226.2011 263.2025 T F1 F (between structure elements on a RISC machine make this tech-) 226.2011 247.72 T F1 F (nique incompatible across different CPUs.) 226.2011 232.2374 T F1 F (Developers are encouraged to address these issues by transfer-) 226.2011 211.9911 T F1 F (ring binary data in an intermediate standard format called eXter-) 226.2011 196.5085 T F1 F (nal Data Representation \(XDR\). For further details, refer to ) 226.2011 181.026 T F1 F (the XDR section of Chapter 2.) 226.2011 165.5435 T 1 g 53.5113 464.4754 m 128.6241 x -86.9404 y -128.6241 x eofill 1 1 1 0 C F3 F (Writing portable ) 53.5113 453.7567 T F3 F (code is a primary fac-) 53.5113 437.0832 T F3 F (tor for compatibility ) 53.5113 420.4097 T F3 F (in a heterogeneous ) 53.5113 403.7362 T F3 F (environment) 53.5113 387.0627 T 3 ENDPAGE %%PageTrailer %%PageFonts: Times-Roman Times-Italic Times-Bold %%PageBoundingBox: 51 42 608 846 %%Page: 4 4 %%PageFonts: (atend) %%PageBoundingBox: (atend) 4 BEGINPAGE 1 1 1 0 C /F1 /Times-Roman 14.2917 DF (Sun Microsystems Porting Guide) 418.337 42.8742 T F1 F (1-4) 51.1294 42.8742 T /F2 /Times-Bold 16.6737 DF (1.4) 48.7475 842.0109 T F2 F (Future Directions) 220.2463 842.0109 T F1 F (AT&T and Sun Microsystems, with other UNIX vendors, are in ) 221.4372 819.3826 T F1 F (the process of establishing the unified UNIX standard definition, ) 221.4372 803.9 T F1 F (called System V Release 4.0. The standard addresses several ) 221.4372 788.4175 T F1 F (issues that affect new ports to these platforms. The first issue ) 221.4372 772.935 T F1 F (concerns the ) 221.4372 757.4525 T /F3 /Times-Italic 14.2917 DF (tools and services) 296.8371 757.4525 T F1 F ( available to users of the unified ) 399.2481 757.4525 T F1 F (UNIX. It consists of a true merge of System V and 4.3/4.2BSD ) 221.4372 741.9699 T F1 F (UNIX definitions. The second issue addresses the Application ) 221.4372 726.4874 T F1 F (Programming Interface \(API\), which defines the) 221.4372 711.0049 T F3 F ( source code) 498.4666 711.0049 T F1 F ( ) 570.7059 711.0049 T F1 F (interface to library routines. Finally, the Applications Binary ) 221.4372 695.5223 T F1 F (Interface \(ABI\) defines the ) 221.4372 680.0398 T F3 F (binary) 379.3702 680.0398 T F1 F ( standard that allows exe-) 416.6994 680.0398 T F1 F (cutable code to run unchanged on different platforms that share ) 221.4372 664.5573 T F1 F (the same CPU architecture. ABIs will initially be defined for ) 221.4372 649.0748 T F1 F (80386, Scalable Processor ARChitecture \(SPARC) 221.4372 632.4013 T /F4 /Times-Roman 9.52783 DF (\252) 512.0138 637.1651 T F1 F (\), and ) 521.3554 632.4013 T F1 F (MIPS processors. The API enables portability across UNIX ) 221.4372 616.9187 T F1 F (platforms with no more than a recompilation. ABIs encourage ) 221.4372 601.4362 T F1 F (the emergence of "shrink-wrapped" software.) 221.4372 585.9537 T F1 F (As UNIX continues to evolve, so will SunOS. A future system ) 221.4372 423.9826 T F1 F (could support concurrent, multiprocessing, and fault-tolerant ) 221.4372 408.5001 T F1 F (hardware architectures and allow commercial extensions such ) 221.4372 393.0175 T F1 F (as transaction processing and file mirroring. Integral support for ) 221.4372 377.535 T F1 F (very large multi-user systems with extensive databases is also ) 221.4372 362.0525 T F1 F (on the horizon. Security conscious users will have better ) 221.4372 346.57 T F1 F (options with a secure SunOS. As UNIX enters the mainstream ) 221.4372 331.0874 T F1 F (in commercial, educational, and governmental arenas, Sun will ) 221.4372 315.6049 T F1 F (offer refined ease-of-use features for both the user and the sys-) 221.4372 300.1224 T F1 F (tem administrator. For international users, advanced technolo-) 221.4372 284.6398 T F1 F (gies that accommodate demanding character sets will be pre-) 221.4372 269.1573 T F1 F (sent in the multilingual UNIX of the future. Sun supports evolv-) 221.4372 253.6748 T F1 F (ing UNIX standards via corporate participation in POSIX, ) 221.4372 238.1923 T F1 F (X/OPEN, and other groups committed to furthering the original ) 221.4372 222.7097 T F1 F (intent of an open operating system. Sun will preserve the base ) 221.4372 207.2272 T F1 F (programming interfaces of today, which will provide implementa-) 221.4372 191.7447 T F1 F (tion flexibility for a single, multivendor, UNIX standard for the ) 221.4372 176.2621 T F1 F (1990s.) 221.4372 160.7796 T 1 g 48.7475 778.8898 m 128.6241 x -42.8747 y -128.6241 x eofill 1 1 1 0 C F3 F (Unified UNIX: Sys-) 48.7475 768.1711 T F3 F (tem V Release 4.0) 48.7475 751.4976 T 1 g 346.4884 563.3254 m 254.8662 x -27.3922 y -254.8662 x eofill 1 1 1 0 C 1.191 w 346.4884 563.3254 m 254.8662 x -27.3922 y -254.8662 x cp s F1 F 0.4168 0 32 (UNIX Environment) 157.1252 545.4609 W F1 F 1.6197 0 32 (Programming Interface) 157.1252 518.0687 W F1 F 0.7741 0 32 (Binary Compatibility) 157.1252 491.8675 W F1 F 2.6558 0 32 (System V Release 4.0) 391.745 544.2699 W F1 F 1.7388 0 32 (Application Programming Interface \(API\)) 351.2523 518.0687 W F1 F 1.7388 0 32 (Application Binary Interface \(ABI\)) 366.7348 491.8675 W /F5 /Times-Bold 14.2917 DF 1.191 0 32 (Figure 1-3. SunOS Future Directions) 305.9957 452.5657 W 346.4884 535.9332 m 254.8662 x -26.2012 y -254.8662 x cp s 346.4884 509.732 m 254.8662 x -27.3922 y -254.8662 x cp s -32.5133 330.1764 549.0408 X 0.7979 w 324.3888 551.125 m 7.0862 -2.0842 r -7.0862 -2.0842 r s 1.191 w -33.7043 330.1764 520.4573 X 0.7979 w 324.3888 522.5415 m 7.0862 -2.0842 r -7.0862 -2.0842 r s 1.191 w -33.7043 331.3674 491.8738 X 0.7979 w 325.5798 493.958 m 7.0862 -2.0842 r -7.0862 -2.0842 r s 4 ENDPAGE %%PageTrailer %%PageFonts: Times-Roman Times-Bold Times-Italic %%PageBoundingBox: -5 1 608 842 %%Trailer end %PROLOGUE %%Pages: 4 %%BoundingBox: -5 0 608 846 %%DocumentFonts: Times-Roman Times-Bold Times-Italic Symbol %%EOF