%! %%Pages: (atend) %%DocumentFonts: (atend) %%EndComments % % Frame Maker PostScript Prolog 1.11, for use with Maker 1.11 % Copyright (c) 1986,87 by Frame Technology, Inc. All rights reserved. % % Known Problems: % Due to bugs in Transcript, the 'PS-Adobe-' is omitted from line 1 /FMversion (1.11) def /FrameDict 120 dict def % The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } def } if /FMVERSION { FMversion ne { /Times-Roman findfont 18 scalefont setfont 100 100 moveto (Maker version does not match postscript_prolog!) dup = show showpage } if } def /FMLOCAL { FrameDict begin 0 def end } def /landscape FMLOCAL /docheight FMLOCAL /docwidth FMLOCAL /yscale FMLOCAL /xscale FMLOCAL /orgxfer FMLOCAL /orgproc FMLOCAL /organgle FMLOCAL /orgfreq FMLOCAL /FMDOCUMENT { /#copies exch def FrameDict begin 0 ne /landscape exch def /docheight exch def /docwidth exch def /yscale exch def /xscale exch def currenttransfer cvlit /orgxfer exch def currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def end } def /pagesave FMLOCAL /orgmatrix FMLOCAL /FMBEGINPAGE { FrameDict begin /pagesave save def 2 setlinecap xscale yscale scale landscape { 90 rotate 0 docheight neg translate } if /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /fontname FMLOCAL /fontscale FMLOCAL /fontnum FMLOCAL /fontdict FMLOCAL /FMDEFINEFONT { FrameDict begin /fontname exch def /fontscale exch def /fontnum exch def /fontdict fontname findfont fontscale scalefont def fontdict /Encoding get StandardEncoding eq { fontdict DiacriticEncode /fontdict exch def } { fontdict NonDiacriticEncode /fontdict exch def } ifelse FMfonts fontnum fontnum fontdict definefont put end } def /FMLINEWIDTHS { FrameDict begin dup array /FMlinewidths exch def 1 sub -1 0 {exch FMlinewidths 3 1 roll lnormalize put} for end } def FrameDict begin /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /dmatrix matrix def /dpi 72 0 dmatrix defaultmatrix dtransform dup mul exch dup mul add sqrt def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /DiacriticEncoding [ /.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 /FMfonts 255 array def /basefontdict FMLOCAL /newfontdict FMLOCAL /DiacriticEncode { /basefontdict exch def /newfontdict basefontdict maxlength dict def basefontdict {exch dup /FID ne {dup /Encoding eq {exch pop DiacriticEncoding} {exch} ifelse newfontdict 3 1 roll put } {pop pop} ifelse } forall newfontdict } bind def /NonDiacriticEncode { /basefontdict exch def /newfontdict basefontdict maxlength dict def basefontdict {exch dup /FID ne {exch newfontdict 3 1 roll put} {pop pop} ifelse } forall newfontdict } bind def /freq FMLOCAL /bwidth FMLOCAL /bpside FMLOCAL /bstring FMLOCAL /onbits FMLOCAL /offbits FMLOCAL /xindex FMLOCAL /yindex FMLOCAL /x FMLOCAL /y FMLOCAL /setpattern { /freq exch def /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq 0 {/y exch def /x exch def /xindex x 1 add 2 div bpside mul cvi def /yindex y 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen {} settransfer offbits offbits onbits add div setgray } bind def /grayness { setgray orgxfer cvx settransfer orgfreq organgle orgproc cvx setscreen } bind def /normalize { transform cvi exch cvi exch itransform } bind def /dnormalize { dtransform cvi exch cvi exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /fillprocs [{0.00 grayness} {0.10 grayness} {0.30 grayness} {0.50 grayness} {0.70 grayness} {0.90 grayness} {0.97 grayness} {1.00 grayness} {<0F1E3C78F0E1C387> 8 1 dpi 16 div setpattern} {<0F87C3E1F0783C1E> 8 1 dpi 16 div setpattern} { 8 1 dpi 16 div setpattern} { 8 1 dpi 16 div setpattern} {<8142241818244281> 8 1 dpi 16 div setpattern} {<03060C183060C081> 8 1 dpi 16 div setpattern} {<8040201008040201> 8 1 dpi 16 div setpattern} {} {1.00 grayness} {0.90 grayness} {0.70 grayness} {0.50 grayness} {0.30 grayness} {0.10 grayness} {0.03 grayness} {0.00 grayness} { 8 1 dpi 16 div setpattern} { 8 1 dpi 16 div setpattern} {<3333333333333333> 8 1 dpi 16 div setpattern} {<0000FFFF0000FFFF> 8 1 dpi 16 div setpattern} {<7EBDDBE7E7DBBD7E> 8 1 dpi 16 div setpattern} { 8 1 dpi 16 div setpattern} {<7FBFDFEFF7FBFDFE> 8 1 dpi 16 div setpattern} {} ] def /H { FMlinewidths exch get setlinewidth } bind def /X { fillprocs exch get exec } bind def /V { gsave eofill grestore } bind def /N { gsave stroke grestore } bind def /M {moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /n FMLOCAL /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /K { /n exch def newpath moveto 3 1 n {pop curveto} for } bind def /J { /n exch def newpath moveto 1 1 n {pop curveto} for } bind def /x1 FMLOCAL /x2 FMLOCAL /y1 FMLOCAL /y2 FMLOCAL /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /C { grestore gsave R clip } bind def /U { grestore gsave } bind def /F { FMfonts exch get setfont } bind def /T { moveto show } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /S { moveto 0 exch ashow } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /Q { moveto gsave show grestore } bind def /x FMLOCAL /y FMLOCAL /dx FMLOCAL /dy FMLOCAL /dl FMLOCAL /t FMLOCAL /t2 FMLOCAL /Cos FMLOCAL /Sin FMLOCAL /r FMLOCAL /W { dnormalize /dy exch def /dx exch def normalize /y exch def /x exch def /dl dx dx mul dy dy mul add sqrt def dl 0.0 gt { /t currentlinewidth def savematrix /Cos dx dl div def /Sin dy dl div def /r [Cos Sin Sin neg Cos 0.0 0.0] def /t2 t 2.5 mul 3.5 max def newpath x y translate r concat 0.0 0.0 moveto dl t 2.7 mul sub 0.0 rlineto stroke restorematrix x dx add y dy add translate r concat t 0.67 mul setlinewidth t 1.61 mul neg 0.0 translate 0.0 0.0 moveto t2 1.7 mul neg t2 2.0 div moveto 0.0 0.0 lineto t2 1.7 mul neg t2 2.0 div neg lineto stroke t setlinewidth restorematrix } if } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath eofill grestore } bind def /x FMLOCAL /y FMLOCAL /w FMLOCAL /h FMLOCAL /xx FMLOCAL /yy FMLOCAL /ww FMLOCAL /hh FMLOCAL /A { /y exch def /x exch def /h exch def /w exch def x y normalize /yy exch def /xx exch def w h dnormalize /hh exch def /ww exch def ww abs hh abs xx ww add yy hh sub gsave savematrix newpath translate scale 0.0 0.0 1.0 5 3 roll arc 0 setlinecap restorematrix stroke grestore } bind def /FMsaveobject FMLOCAL /FMoptop FMLOCAL /FMdicttop FMLOCAL /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 6 sub def /FMsaveobject save def userdict begin /showpage {} def newpath translate 0.0 0.0 moveto } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /str FMLOCAL /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /sl FMLOCAL /val FMLOCAL /ws FMLOCAL /im FMLOCAL /bs FMLOCAL /cs FMLOCAL /len FMLOCAL /pos FMLOCAL /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /h FMLOCAL /w FMLOCAL /lb FMLOCAL /bitmapsave FMLOCAL /is FMLOCAL /cf FMLOCAL /BEGINBITMAP { gsave translate scale /h exch def /w exch def /lb w 7 add 8 idiv def sl lb lt {lb ms} if /bitmapsave save def /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h 1 [w 0 0 h neg 0 h] {ip} image bitmapsave restore grestore } bind def /ENDBITMAP { } bind def end %%EndProlog %%BeginSetup (1.11) FMVERSION 1. 1. 612. 792. 0 1 FMDOCUMENT 0 12. /Times-Roman FMDEFINEFONT 1 18. /Times-Bold FMDEFINEFONT 2 8. /Times-Roman FMDEFINEFONT 3 14. /Times-Bold FMDEFINEFONT 4 18. /Times-Italic FMDEFINEFONT 5 14. /Times-Roman FMDEFINEFONT 6 12. /Times-Bold FMDEFINEFONT 7 12. /Times-Italic FMDEFINEFONT 8 10. /Times-Bold FMDEFINEFONT 9 12. /Symbol FMDEFINEFONT 0.5 1. 3. 4. 4 FMLINEWIDTHS %%EndSetup %%Page: "1" 1 FMBEGINPAGE 0 F 0 X (Sun Microsystems Porting Guide) 72. 36. T (1-1) 524. 36. T 1 F (Chapter 1) 72. 706. T (Sun Operating System \050SunOS\051) 216. 706. T 0 F (This chapter briefly describes the Sun Operating System ) 217. 686. T (\050SunOS\051 philosophy, porting issues in a UNIX) 217. 672. T 2 F (\250) 441.33 676. T 0 F ( environment, ) 447.41 672. T (and future SunOS directions. ) 217. 659. T 3 F (1.1) 72. 634. T (SunOS Overview) 216. 634. T 0 F (SunOS consists of a merged AT&T System V and 4.2BSD ) 217. 615. T (UNIX environment, with features of the new 4.3BSD, \050see ) 217. 602. T 72. 61. 540. 720. C U 0 F 0 X (Figure 1-1.\051 SunOS is an evolving standard with value-added ) 217. 589. T (enhancements in programming languages, window systems, ) 217. 576. T (graphics, and networking services. Practical knowledge of the ) 217. 563. T (rich tools available under the SunOS helps new and existing ) 217. 550. T (customers in choosing the correct path to porting their products ) 217. 537. T (to the Sun platform.) 217. 524. T 72. 61. 540. 720. C 72. 194. 540. 518. C 72. 194. 540. 518. R 7 X V 4 F 0 X (Converging) 264. 455. T (UNIX) 286. 436. T (System) 279. 419. T (Standards) 268. 403. T (SunOS) 279. 345. T (4.3/4.2BSD) 353. 487. T 3.52 (System V) 180. 486. P 5 F (Interprocess) 114. 461. T (communications) 114. 448. T 0.84 (\245 Clean interface definition) 91. 431. P 1.88 (\245 Standard for government) 92. 414. P 1.62 (and Fortune 500) 102. 400. P (Networking) 394. 448. T 1.27 (Programming tools) 394. 429. P 0.84 (University and ) 394. 409. P 4.19 (technical users) 396. 395. P (Architectural) 276. 328. T (foundation) 277. 315. T (ONC/NFS) 276. 297. T (Windows) 277. 279. T (Strong) 277. 262. T (compilers) 278. 249. T 6 F 1.4 (Figure 1-1. Converging UNIX System Standards) 173. 202. P 5 F (\245) 383. 429. T (\245) 383. 410. T (\245) 383. 447. T (\245) 268. 297. T (\245) 268. 280. T (\245) 268. 329. T (\245) 268. 264. T 0 H 90. 90.1 -139.5 76.5 360. 509. A 90. 180.1 139.5 76.5 81. 509. A 180. 270.1 139.5 -76.5 81. 356. A 270. 0.1 -139.5 -76.5 360. 356. A 0. 90. -139.5 76.5 360. 509. A 90. 90.1 -139.5 76.5 531. 509. A 90. 180.1 139.5 76.5 252. 509. A 180. 270.1 139.5 -76.5 252. 356. A 270. 0.1 -139.5 -76.5 531. 356. A 0. 90. -139.5 76.5 531. 509. A 90. 90.1 -63. 144. 369. 509. A 90. 180.1 63. 144. 243. 509. A 180. 270.1 63. -144. 243. 221. A 270. 0.1 -63. -144. 369. 221. A 0. 90. -63. 144. 369. 509. A (\245) 105. 460. T 72. 61. 540. 720. C U 0 F 0 X (More UNIX details are available in ) 217. 181. T 7 F (The UNIX System: A Sun ) 389.62 181. T (Technical Report) 217. 168. T 0 F (.) 299.99 168. T (SunOS provides the software foundation for Sun and third-party ) 217. 151. T (applications and works with hardware standards such as the ) 217. 138. T (VMEbus, Ethernet) 217. 124. T 2 F (\250) 306.99 128. T 8 F (,) 313.07 124. T 0 F ( and popular CPU architectures to provide ) 315.57 124. T (an integrated workstation environment. \050see Figure 1-2.\051) 217. 111. T (Sun Microsystems\325 current operating system, SunOS 4.0, con-) 217. 94. T (tains major enhancements in every area of the operating sys-) 217. 81. T (tem. Shared libraries, NFS) 217. 67. T 2 F (\252) 344.66 71. T 0 F ( diskless support, and the ability to ) 352.5 67. T 72. 529. 188. 601. C 72. 529. 188. 601. R 7 X V 7 F 0 X (SunOS merges AT&T ) 76. 587. T (System V and Berke-) 76. 573. T (ley 4.2 BSD UNIX) 76. 559. T U FMENDPAGE %%Page: "2" 2 FMBEGINPAGE 0 F 0 X (Sun Microsystems Porting Guide) 380.33 36. T (1-2) 72. 36. T (open up to 64 files per process are just some of the enhance-) 217. 711. T (ments in this latest version of SunOS. For further information, ) 217. 698. T (please refer to ) 217. 685. T 7 F (Release Report: SunOS 4.0) 290.97 685. T 0 F (.) 421.61 685. T (Appendix B contains detailed installation tips for system admin-) 217. 668. T (istrators upgrading from older releases to SunOS 4.0 . Existing ) 217. 655. T (customers should read this carefully before installation.) 217. 642. T 72. 72. 540. 720. C 72. 196. 539. 636. C 72. 196. 539. 636. R 7 X V 102. 429. 522. 430. 2 L 0 H 0 X N 161. 610. 449. 257. 2 L N 162. 267. 458. 607. 2 L N 6 X 90. 450. 54.5 54.5 307.5 435.5 G 0 X 90. 90.1 -54.5 54.5 362. 490. A 90. 180.1 54.5 54.5 253. 490. A 180. 270.1 54.5 -54.5 253. 381. A 270. 0.1 -54.5 -54.5 362. 381. A 0. 90. -54.5 54.5 362. 490. A 7 X 90. 450. 23. 23. 306. 435. G 0 X 90. 90.1 -23. 23. 329. 458. A 90. 180.1 23. 23. 283. 458. A 180. 270.1 23. -23. 283. 412. A 270. 0.1 -23. -23. 329. 412. A 0. 90. -23. 23. 329. 458. A 5 F (SunOS) 286. 429. T (ONC) 291. 391. T (User) 284. 347. T (Interfaces) 284. 333. T (Software) 183. 400. T (Development) 183. 386. T (Graphics) 200. 461. T (Information) 279. 518. T (Products) 279. 504. T (AI) 374. 461. T (Network) 362. 406. T 1.28 (and ) 362. 392. P (Connectivity) 362. 378. T (X11/NeWS) 274. 272. T (SunView) 274. 258. T 2.07 (OPEN LOOK) 274. 244. P (SunLink) 448. 340. T 1.1 (Sun Common Lisp) 424. 541. P (Environment) 424. 527. T (SunINGRES) 274. 613. T 2 F (\252) 346.34 617. T 5 F (SunUNIFY) 274. 599. T 2 F (\252) 338.55 603. T 5 F (SunSimplify) 274. 585. T 2 F (\252) 344.8 589. T 5 F (SunAlis) 274. 571. T 2 F (\252) 319.12 575. T 5 F (Languages) 77. 366. T 3.27 (Cross Compilers) 77. 352. P 1.62 (Symbolic Debugger) 77. 338. P (NSE) 77. 324. T (SunTrac) 77. 310. T (SunGKS) 77. 543. T (SunCGI) 77. 529. T (SunCore) 77. 515. T (SunPHIGS) 77. 501. T 6 F 1.01 (Figure 1-2. SunOS) 208. 212. P 9 F 1.01 ( - ) 305.04 212. P 6 F 1.01 (Open Systems) 319.65 212. P 90. 90.1 -141.5 137. 452. 565. A 90. 180.1 141.5 137. 169. 565. A 180. 270.1 141.5 -137. 169. 291. A 270. 0.1 -141.5 -137. 452. 291. A 0. 90. -141.5 137. 452. 565. A 72. 72. 540. 720. C U 3 F 0 X (1.2) 72. 175. T (UNIX Porting Issues) 216. 175. T 0 F (The UNIX operating system is powerful and is available on ) 217. 156. T (many computer architectures from different companies. Many ) 217. 143. T (software developers choose UNIX purely for its widespread ) 217. 130. T (availability and ease of ) 217. 117. T 7 F (porting) 330.98 117. T 0 F ( their code from one computer to ) 366.32 117. T (another. Additionally, UNIX has a complete set of software ) 217. 104. T (development and debugging tools.) 217. 91. T 72. 97. 180. 151. R 7 X V 7 F 0 X (Porting UNIX appli-) 72. 142. T (cations to another ) 72. 128. T (UNIX environment ) 72. 114. T (is fairly easy) 72. 100. T FMENDPAGE %%Page: "3" 3 FMBEGINPAGE 0 F 0 X (Sun Microsystems Porting Guide) 72. 36. T (1-3) 524. 36. T (Porting C source code from one UNIX system to another should ) 219. 711. T (be a straightforward task. Fortunately, UNIX has tools, such as ) 219. 698. T (lint\0501V\051, to assist in developing portable C code. Lint detects ) 219. 685. T (bugs, non-portable code, or wasted resources. Lint also checks ) 219. 672. T (a program more strictly than the C compiler does. Lint simplifies ) 219. 659. T (porting source code from one UNIX system to another. Sun\325s ) 219. 646. T (lint is more strict than similar tools and allows easier migration ) 219. 633. T (to Reduced Instruction Set Computer \050RISC\051 processors.) 219. 620. T (Sun Fortran implements features that facilitate porting between ) 219. 603. T (VAX) 219. 589. T 2 F (\250) 244.99 593. T 0 F (/VMS) 251.07 589. T 2 F (\250) 280.41 593. T 0 F ( and Sun systems. VMS dependent system calls ) 286.49 589. T (require recoding to UNIX system calls. For more information on ) 219. 576. T (these and other programming language porting issues, refer to ) 219. 563. T (Chapter 3) 219. 550. T 7 F (, Programming Languages.) 265.99 550. T 0 F ( ) 397.99 550. T (Vendors who write programs under UNIX often use machine ) 219. 533. T (specific software libraries. This design hinders ports that would ) 219. 520. T (have been trivial had the original design incorporated ) 219. 507. T 7 F (standard-) 478.28 507. T (ized ) 219. 494. T 0 F (software packages \050e.g., libraries of routines that are avail-) 241.33 494. T (able across other UNIX platforms\051. Software developers inter-) 219. 481. T (ested in writing portable code are therefore encouraged to ) 219. 468. T (choose software standards in their design.) 219. 455. T 3 F (1.3) 74. 430. T (Heterogeneous Environment) 218. 430. T 0 F (With Sun\325s multiple instruction set architecture, writing ) 219. 411. T (portable code is a primary factor allowing software to run ) 219. 398. T (unchanged throughout Sun\325s product line. Two issues, when ) 219. 385. T (addressed properly, allow source code to make the transition ) 219. 372. T (smoothly within a heterogeneous environment.) 219. 359. T (First, portable software should not depend on byte ordering ) 219. 342. T (within a word. Software developers may attempt to increase ) 219. 329. T (efficiency within various routines by packing bytes into words, ) 219. 316. T (then transferring these words to other routines or writing them ) 219. 303. T (out to disk in binary format. While this works properly with sim-) 219. 290. T (ilar CPUs, it does not allow this data to be shared over a net-) 219. 277. T (work of heterogeneous computers.) 219. 264. T (Second, programmers should be aware that data alignment dif-) 219. 247. T (fers between) 219. 234. T 7 F ( ) 279.97 234. T 0 F (CPU types. This issue often arises when you port ) 282.97 234. T (programs or write C data structures to disk. Extra padding ) 219. 221. T (between structure elements on a RISC machine make this tech-) 219. 208. T (nique incompatible across different CPUs.) 219. 195. T (Developers are encouraged to address these issues by transfer-) 219. 178. T (ring binary data in an intermediate standard format called eXter-) 219. 165. T (nal Data Representation \050XDR\051. For further details, refer to ) 219. 152. T (the XDR section of Chapter 2.) 219. 139. T 74. 317. 182. 390. R 7 X V 7 F 0 X (Writing portable ) 74. 381. T (code is a primary fac-) 74. 367. T (tor for compatibility ) 74. 353. T (in a heterogeneous ) 74. 339. T (environment) 74. 325. T FMENDPAGE %%Page: "4" 4 FMBEGINPAGE 0 F 0 X (Sun Microsystems Porting Guide) 380.33 36. T (1-4) 72. 36. T 3 F (1.4) 70. 707. T (Future Directions) 214. 707. T 0 F (AT&T and Sun Microsystems, with other UNIX vendors, are in ) 215. 688. T (the process of establishing the unified UNIX standard definition, ) 215. 675. T (called System V Release 4.0. The standard addresses several ) 215. 662. T (issues that affect new ports to these platforms. The first issue ) 215. 649. T (concerns the ) 215. 636. T 7 F (tools and services) 278.31 636. T 0 F ( available to users of the unified ) 364.3 636. T (UNIX. It consists of a true merge of System V and 4.3/4.2BSD ) 215. 623. T (UNIX definitions. The second issue addresses the Application ) 215. 610. T (Programming Interface \050API\051, which defines the) 215. 597. T 7 F ( source code) 447.61 597. T 0 F ( ) 508.26 597. T (interface to library routines. Finally, the Applications Binary ) 215. 584. T (Interface \050ABI\051 defines the ) 215. 571. T 7 F (binary) 347.61 571. T 0 F ( standard that allows exe-) 378.94 571. T (cutable code to run unchanged on different platforms that share ) 215. 558. T (the same CPU architecture. ABIs will initially be defined for ) 215. 545. T (80386, Scalable Processor ARChitecture \050SPARC) 215. 531. T 2 F (\252) 458.98 535. T 0 F (\051, and ) 466.82 531. T (MIPS processors. The API enables portability across UNIX ) 215. 518. T (platforms with no more than a recompilation. ABIs encourage ) 215. 505. T (the emergence of "shrink-wrapped" software.) 215. 492. T (As UNIX continues to evolve, so will SunOS. A future system ) 215. 356. T (could support concurrent, multiprocessing, and fault-tolerant ) 215. 343. T (hardware architectures and allow commercial extensions such ) 215. 330. T (as transaction processing and file mirroring. Integral support for ) 215. 317. T (very large multi-user systems with extensive databases is also ) 215. 304. T (on the horizon. Security conscious users will have better ) 215. 291. T (options with a secure SunOS. As UNIX enters the mainstream ) 215. 278. T (in commercial, educational, and governmental arenas, Sun will ) 215. 265. T (offer refined ease-of-use features for both the user and the sys-) 215. 252. T (tem administrator. For international users, advanced technolo-) 215. 239. T (gies that accommodate demanding character sets will be pre-) 215. 226. T (sent in the multilingual UNIX of the future. Sun supports evolv-) 215. 213. T (ing UNIX standards via corporate participation in POSIX, ) 215. 200. T (X/OPEN, and other groups committed to furthering the original ) 215. 187. T (intent of an open operating system. Sun will preserve the base ) 215. 174. T (programming interfaces of today, which will provide implementa-) 215. 161. T (tion flexibility for a single, multivendor, UNIX standard for the ) 215. 148. T (1990s.) 215. 135. T 70. 618. 178. 654. R 7 X V 7 F 0 X (Unified UNIX: Sys-) 70. 645. T (tem V Release 4.0) 70. 631. T 320. 450. 534. 473. R 7 X V 0 H 0 X N 0 F 0.35 (UNIX Environment) 161. 458. P 1.36 (Programming Interface) 161. 435. P 0.65 (Binary Compatibility) 161. 413. P 2.23 (System V Release 4.0) 358. 457. P 1.46 (Application Programming Interface \050API\051) 324. 435. P 1.46 (Application Binary Interface \050ABI\051) 337. 413. P 6 F 1. (Figure 1-3. SunOS Future Directions) 286. 380. P 320. 428. 534. 450. R N 320. 405. 534. 428. R N 279. 461. 30. 0. W 278. 437. 31. 0. W 279. 413. 31. 0. W FMENDPAGE %%Trailer %%Pages: 4 1 %%DocumentFonts: Times-Roman %%+ Times-Bold %%+ Times-Italic %%+ Symbol