Porting C to the IBM" Mainframe Environment Gary H. Merrill, SAS Institute Inc., Cary, NC

Total Page:16

File Type:pdf, Size:1020Kb

Porting C to the IBM Porting C to the IBM" Mainframe Environment Gary H. Merrill, SAS Institute Inc., Cary, NC ABSTRACT • Class 3 contains programs that take advantage in inessential ways of various features of the machine ThiS paper deals with issues encountered in porting existing C pro­ architecture (for example, the size of ints or size of grams to the mainframe environment Following a discussion con­ pointers). cerning what it means to say that a program is portable, this paper emphasizes program features that are likely to inhibit portability to • Class 4 contains programs that take advantage in and from the mainframe. inessential ways of various features of the host operating system and file system (for example, the format of file names, the maximum length of file names, or library THE MEANING OF PORTABILITY functions specific to that compiler or operating system). What does it mean to say that a program, or a body of source code, Potentially portable is portable? For most practical purposes (and portability is a practi­ • Class 5 contains programs that make use of certain cal concept), this means that if you have written and debugged the common, but not universally available, library interfaces (for program so that it runs correctly on one system, when you compile example. UNIX curses or XWINDOWS). and link the same code for a second system, the program will (with­ out modification) run correctly on that system as well. Thus, portabil­ • Class 6 contains programs that intentionally take advantage ity is a relation among a body of source cocle and two computer of features of the machine architecture (for example, the systems. The two computer systems can be segmentloffset format of pointers on the Intel" 8086, or the • the same operating system (for example, UNIXj on two fact that byte ordering on a MC68000 is from left to right). different architectures (for example, a MC68000" and an Intel" 80286). • Class 7 contains programs that intentionally take advantage of features of the host operating system (for example, the • diffierent operating systems on the same architecture (for format of time and date information). example, CMS and MVS, or UNIX and VMS"'). Nonportable • two different operating systems on two different • Class 8 contains programs that make use of specific architectures (for example, MS-DOS" on an Intel 80286, and N assembly language interfaces for a given machine or MVS on an IBM''' 3090 ). assembler. Each of the first two possibilities presents its own problems regard­ • Class 9 contains programs that are coded to interface with ing portability, and the third combines those probl~ms. a specific device such as an IBM 3270 terminal, a DEC VT100~ terminal. an IBM/PC display, an async port, or a However, portability can be an even more complex issue than this particular brand of laser printer. because it not only involves a body of source code and two com­ puter systems, but it also involves two compilers (and two run-time Most programs commonly thought of as portable fall into either libraries) as well. If there is a standard for the language in which the class 2, 3, or 4. Once any inessentiaUy unportable code is converted program is implemented (as there is in the case of C), then some to functionally equivalent portable code, or once the minor system sense can be made of this concept of portability. In the absence of dependencies are isolated into just a few modules, such programs such a standard, compilers are free to differ in how they interpret are considered highly portable. In these cases, porting the program a program, so the notion of portability has no content. to a new environment requires only rewriting clearly identified and isolated portions of the code. Given this view of portability, you may have noticed that virtuaBy no interesting program is truly portable. It makes sense, however Programs in classes 5, 6, and 7 can be considered as potentially to speak of degrees of portability and to recognize that some pro­ portable, depending upon their structure and functionality. If such grams are more portable than others. In short, a program's portabil­ programs are specifically designed for a particular system, then the ity is inversely proportional to the amount of code that must be question of porting them may not arise. If it does and the program changed in order to move it from the initial system to the new (target) is otherwise well designed so that system dependencies can either system. In C, the portability of programs can be measured along be eliminated or isolated, then the program can be rewritten into a the following spectrum of classes (from most portable to least porta­ portable program. Unless such a program has specifically been writ­ ble): ten to accomplish a task tied tightly to the operating system or archi­ tecture (such as converting files to different record formats under Highly portable programs eMS), then the chances are good that the program can easily be • Class 1 contains programs that conform strictly to the ANSI converted to a highly portable program. In the case of a· program standard in coding, that use no 110, and that use no library in class 5, porting the program may require implementing an entire functions. (Such programs appear to be of little practical library on the new target system. This is more work than most pro­ value.) grammers are willing to do while maintaining that the underlying pro­ gram is portable. But once that work is done, the resulting program • Class 2 contains programs that conform strictly to the ANSI (together with its new library, which should have been implemented standard in coding, use only ANSI standard 110, and use as portably as possible) can be considered highly portable. ANSI standard library functions. 736 Programs falling into classes 8 and 9 are generally considered non~ A couple of approaches are possible in these cases. First. you can portable. but even this is a matter of degree. Certainly, a full~screen define a number of preprocessor symbols such as the following to debugger designed to run under MVS cannot be expected to run stand for input character (IC_) and output character (OC_) sets. on a PC because both its 110 and its interactions with the operating • IC_a system are at tao Iowa level to carry over to another environment. Nonetheless, this kind of program can be designed in such a way that all calls to 1/0 routines and operating system services are done through relatively high-level functions, so that a substantial amount of portable code can be retained. Porting such a program then involves rewriting those modules specific to a given system. • OC~ The moral of the portability story up to this point is this: portability The definitions look something like this: is a matter of degree. and the degree to which a program is portable lif EBCDICIN can be enhanced by careful attention to the language standard. ,define ICa Ox8l avoidance of system-specific code, and isolation of system~specific Idefine Ic...A OXCl code to a small number of separate modules. /* More source lines */ 'else /* ASCILIN *' Let us now look at some specific factors affecting the portability of ,define IC-.a Ox61 ,define Ic....A Ox41 C programs. '* More source lines */ 'endif ISSUES AFFECTING PORTABILITY lif EBCDICOUT Idefine OCa DxS 1 Although the topic of this paper concerns porting C to the main­ ,define OC...A OxCl /. More source lines ./ frame environment, other issues that have an affect on portability 'else '* ASCI LOUT ./ in general should be considered because in modifying a program ,define OC_a Ox61 for a new environment, it is preferable that the program continue Idefine OC..A OxQl to work under the old environment as well. The goal should be to ,. More soarce lines */ enhance the portability of the program and to create a single body lendif of code suitable for multiple environments, rather than simply to In your code you would then you use the manifest constants IC_a, create multiple versions of the same program, one for each environ~ OC_a, and so on, rather than explicit character constants. ment. By defining the symbols EBCDIC_IN and EBCDIC_OUT, you can control which character set the program uses for input and which Maximizing the amount of code shared in all of the target environ­ it uses for outp~t. ments results in significant savings in development time and in test­ ing and debugging efforts, and also results in a decrease in the bug String constants (and strings in general) are a bit more problematic level of the code. My experience with the SAS/C® and Lattioe~ com~ to handle, and for output you may want to implement a translation pilers, cross compilers, and associated products has shown repeat~ function called This function can be written por~ edly that the reliability and robustness of the code is enhanced str ing_out ( ). tably by making use of the I C_ and OC_ symbols just defined_ In greatly by the process of porting it to diverse systems. I will say this way you can easily control the input and output character sets more of this tater. of your program and have a single set of string and character han­ dling functions that are fully portable. The next sections deal with the most common issues involved in portability of C code. The result of writing portable code which can be shared by all the implementations of a program, is a decrease in maintenance cost, The Character Set testing time, and bug level. lance had the task of writing a code The character sets with which programmers are normally concerned generator for a specialized controller chip and porting the Lattice are ASCII and EBCDIC.
Recommended publications
  • Summary of UNIX Commands Furnishing, Performance, Or the Use of These Previewers Commands Or the Associated Descriptions Available on Most UNIX Systems
    S u mmary of UNIX Commands- version 3.2 Disclaimer 8. Usnet news 9. File transfer and remote access Summary of UNIX The author and publisher make no warranty of any 10. X window kind, expressed or implied, including the warranties of 11. Graph, Plot, Image processing tools commands merchantability or fitness for a particular purpose, with regard to the use of commands contained in this 12. Information systems 1994,1995,1996 Budi Rahardjo reference card. This reference card is provided “as is”. 13. Networking programs <[email protected]> The author and publisher shall not be liable for 14. Programming tools damage in connection with, or arising out of the 15. Text processors, typesetters, and This is a summary of UNIX commands furnishing, performance, or the use of these previewers commands or the associated descriptions available on most UNIX systems. 16. Wordprocessors Depending on the configuration, some of 17. Spreadsheets the commands may be unavailable on your Conventions 18. Databases site. These commands may be a 1. Directory and file commands commercial program, freeware or public bold domain program that must be installed represents program name separately, or probably just not in your bdf search path. Check your local dirname display disk space (HP-UX). See documentation or manual pages for more represents directory name as an also df. details (e.g. man programname). argument cat filename This reference card, obviously, cannot filename display the content of file filename describe all UNIX commands in details, but represents file name as an instead I picked commands that are useful argument cd [dirname] and interesting from a user’s point of view.
    [Show full text]
  • Compiler Construction
    Compiler construction PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sat, 10 Dec 2011 02:23:02 UTC Contents Articles Introduction 1 Compiler construction 1 Compiler 2 Interpreter 10 History of compiler writing 14 Lexical analysis 22 Lexical analysis 22 Regular expression 26 Regular expression examples 37 Finite-state machine 41 Preprocessor 51 Syntactic analysis 54 Parsing 54 Lookahead 58 Symbol table 61 Abstract syntax 63 Abstract syntax tree 64 Context-free grammar 65 Terminal and nonterminal symbols 77 Left recursion 79 Backus–Naur Form 83 Extended Backus–Naur Form 86 TBNF 91 Top-down parsing 91 Recursive descent parser 93 Tail recursive parser 98 Parsing expression grammar 100 LL parser 106 LR parser 114 Parsing table 123 Simple LR parser 125 Canonical LR parser 127 GLR parser 129 LALR parser 130 Recursive ascent parser 133 Parser combinator 140 Bottom-up parsing 143 Chomsky normal form 148 CYK algorithm 150 Simple precedence grammar 153 Simple precedence parser 154 Operator-precedence grammar 156 Operator-precedence parser 159 Shunting-yard algorithm 163 Chart parser 173 Earley parser 174 The lexer hack 178 Scannerless parsing 180 Semantic analysis 182 Attribute grammar 182 L-attributed grammar 184 LR-attributed grammar 185 S-attributed grammar 185 ECLR-attributed grammar 186 Intermediate language 186 Control flow graph 188 Basic block 190 Call graph 192 Data-flow analysis 195 Use-define chain 201 Live variable analysis 204 Reaching definition 206 Three address
    [Show full text]
  • Red Hat Linux 6.0
    Red Hat Linux 6.0 The Official Red Hat Linux Installation Guide Red Hat Software, Inc. Durham, North Carolina Copyright ­c 1995, 1996, 1997, 1998, 1999 Red Hat Software, Inc. Red Hat is a registered trademark and the Red Hat Shadow Man logo, RPM, the RPM logo, and Glint are trademarks of Red Hat Software, Inc. Linux is a registered trademark of Linus Torvalds. Motif and UNIX are registered trademarks of The Open Group. Alpha is a trademark of Digital Equipment Corporation. SPARC is a registered trademark of SPARC International, Inc. Products bearing the SPARC trade- marks are based on an architecture developed by Sun Microsystems, Inc. Netscape is a registered trademark of Netscape Communications Corporation in the United States and other countries. TrueType is a registered trademark of Apple Computer, Inc. Windows is a registered trademark of Microsoft Corporation. All other trademarks and copyrights referred to are the property of their respective owners. ISBN: 1-888172-28-2 Revision: Inst-6.0-Print-RHS (04/99) Red Hat Software, Inc. 2600 Meridian Parkway Durham, NC 27713 P. O. Box 13588 Research Triangle Park, NC 27709 (919) 547-0012 http://www.redhat.com While every precaution has been taken in the preparation of this book, the publisher assumes no responsibility for errors or omissions, or for damages resulting from the use of the information con- tained herein. The Official Red Hat Linux Installation Guide may be reproduced and distributed in whole or in part, in any medium, physical or electronic, so long as this copyright notice remains intact and unchanged on all copies.
    [Show full text]
  • The Pkgsrc Guide
    The pkgsrc guide Documentation on the NetBSD packages system (2021/01/02) Alistair Crooks [email protected] Hubert Feyrer [email protected] The pkgsrc Developers The pkgsrc guide: Documentation on the NetBSD packages system by Alistair Crooks, Hubert Feyrer, The pkgsrc Developers Published 2021/01/02 08:32:15 Copyright © 1994-2021 The NetBSD Foundation, Inc pkgsrc is a centralized package management system for Unix-like operating systems. This guide provides information for users and developers of pkgsrc. It covers installation of binary and source packages, creation of binary and source packages and a high-level overview about the infrastructure. Table of Contents 1. What is pkgsrc?......................................................................................................................................1 1.1. Introduction.................................................................................................................................1 1.1.1. Why pkgsrc?...................................................................................................................1 1.1.2. Supported platforms.......................................................................................................2 1.2. Overview.....................................................................................................................................3 1.3. Terminology................................................................................................................................4 1.3.1. Roles involved in pkgsrc.................................................................................................4
    [Show full text]
  • Mincpp: Efficient, Portable Compilation of C Programs
    Mincpp: Efficient, Portable Compilation of C Programs George Moberly B.S., Boston University A thesis submitted to the faculty of the Oregon Graduate Institute of Science & Technology in partial fulfillment of the requirements for the degree Master of Science in Computer Science April, 1994 The thesis "Mincpp:Efficient, Port; le Compilation of C Programs" by George Moberly has been examined and approved b: the following Examination Committee: .-------------______--s---------------------- a Sheard, Ph.D. 1 sistant Professor The s Research Advisor eve Otto, Ph.D. sistant Professor Acknowledgment This thesis and supporting degree program was made possible only with the financial, intellectual, and emotional support of many corporations, institutions, and individuals. Past and present employers Digital Equipment Corporation, Mentor Graphics Corporation, and SpaceLabs Medical, Incorporated generously paid for the vast majority of the educational expenses involved, and have actively supported my work. Degree credit was transferred from Tufts University, The University of Washington, and Oregon State University. The following individuals shared generously of their time to discuss issues with me: Phil Brooks and Mike Gresham of Mentor Graphics, Bill Bregar of Oregon State University, Aki Fujimura of Pure Software, Greg Kostal, Jeff Small, and of course Tim Sheard and Steve Otto of OGI. Finally, my wife Julie deserves profound credit and thanks for not letting me give up when it would have been easier to have done so, and for unwavering belief
    [Show full text]
  • Jflex User's Manual
    The Fast Lexical Analyser Generator Copyright c 1998–2004 by Gerwin Klein JFlex User’s Manual Version 1.4.1, November 7, 2004 Contents 1 Introduction 3 1.1 Design goals ..................................... 3 1.2 About this manual ................................. 3 2 Installing and Running JFlex 4 2.1 Installing JFlex ................................... 4 2.1.1 Windows .................................. 4 2.1.2 Unix with tar archive ........................... 4 2.1.3 Linux with RPM .............................. 5 2.2 Running JFlex ................................... 5 3 A simple Example: How to work with JFlex 6 3.1 Code to include ................................... 9 3.2 Options and Macros ................................ 9 3.3 Rules and Actions ................................. 10 3.4 How to get it going ................................. 12 4 Lexical Specifications 12 4.1 User code ...................................... 12 4.2 Options and declarations .............................. 13 4.2.1 Class options and user class code ..................... 13 4.2.2 Scanning method .............................. 15 4.2.3 The end of file ............................... 16 4.2.4 Standalone scanners ............................ 17 4.2.5 CUP compatibility ............................. 17 4.2.6 BYacc/J compatibility ........................... 18 4.2.7 Code generation .............................. 18 4.2.8 Character sets ............................... 19 4.2.9 Line, character and column counting ................... 20 1 4.2.10 Obsolete JLex options
    [Show full text]
  • Licensing Information User's Guide
    Oracle® Exadata Database Machine Licensing Information User's Guide 21.2 F29248-08 June 2021 Oracle Exadata Database Machine Licensing Information User's Guide, 21.2 F29248-08 Copyright © 2008, 2021, Oracle and/or its affiliates. Primary Author: Peter Fusek Contributing Authors: Beth Roeser, James Spiller This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or "commercial
    [Show full text]
  • And Pattern-Oriented Compiler Construction in C++
    UNIVERSIDADE TECNICA´ DE LISBOA INSTITUTO SUPERIOR TECNICO´ Object- and Pattern-Oriented Compiler Construction in C++ A hands-on approach to modular compiler construction using GNU flex, Berkeley yacc and standard C++ David Martins de Matos January 2006 Foreword This is a preliminary revision. Lisboa, April 16, 2008 David Martins de Matos Contents I Introduction1 1 Introdution 3 1.1 Introduction..............................................3 1.2 Who Should Read This Document?.................................3 1.3 Regarding C++............................................4 1.4 Organization..............................................4 2 Using C++ and the CDK Library5 2.1 Introduction..............................................5 2.2 The CDK Library...........................................5 2.2.1 The abstract compiler factory................................8 2.2.2 The abstract scanner class..................................9 2.2.3 The abstract compiler class..................................9 2.2.4 The parsing function..................................... 11 2.2.5 The node set......................................... 12 2.2.6 The abstract evaluator.................................... 12 2.2.7 The abstract semantic processor............................... 14 2.2.8 The code generators..................................... 14 2.2.9 Putting it all together: the main function........................... 15 2.3 Summary............................................... 15 II Lexical Analysis 17 3 Theoretical Aspects of Lexical Analysis 19 3.1 What
    [Show full text]
  • Version : 2009K Vendor: Centos Release : 1.El5 Build Date
    Name : tzdata Relocations: (not relocatable) Version : 2009k Vendor: CentOS Release : 1.el5 Build Date: Mon 17 Aug 2009 06:43:09 PM EDT Install Date: Mon 19 Dec 2011 12:32:58 PM EST Build Host: builder16.centos.org Group : System Environment/Base Source RPM: tzdata-2009k- 1.el5.src.rpm Size : 1855860 License: GPL Signature : DSA/SHA1, Mon 17 Aug 2009 06:48:07 PM EDT, Key ID a8a447dce8562897 Summary : Timezone data Description : This package contains data files with rules for various timezones around the world. Name : nash Relocations: (not relocatable) Version : 5.1.19.6 Vendor: CentOS Release : 54 Build Date: Thu 03 Sep 2009 07:58:31 PM EDT Install Date: Mon 19 Dec 2011 12:33:05 PM EST Build Host: builder16.centos.org Group : System Environment/Base Source RPM: mkinitrd-5.1.19.6- 54.src.rpm Size : 2400549 License: GPL Signature : DSA/SHA1, Sat 19 Sep 2009 11:53:57 PM EDT, Key ID a8a447dce8562897 Summary : nash shell Description : nash shell used by initrd Name : kudzu-devel Relocations: (not relocatable) Version : 1.2.57.1.21 Vendor: CentOS Release : 1.el5.centos Build Date: Thu 22 Jan 2009 05:36:39 AM EST Install Date: Mon 19 Dec 2011 12:33:06 PM EST Build Host: builder10.centos.org Group : Development/Libraries Source RPM: kudzu-1.2.57.1.21- 1.el5.centos.src.rpm Size : 268256 License: GPL Signature : DSA/SHA1, Sun 08 Mar 2009 09:46:41 PM EDT, Key ID a8a447dce8562897 URL : http://fedora.redhat.com/projects/additional-projects/kudzu/ Summary : Development files needed for hardware probing using kudzu.
    [Show full text]
  • Summary of UNIX Commands- Version 3.2
    Summary of UNIX Commands- version 3.2 Disclaimer 8. Usnet news 9. File transfer and remote access Summary of UNIX The author and publisher make no warranty of any 10. X window kind, expressed or implied, including the warranties of 11. Graph, Plot, Image processing tools commands merchantability or fitness for a particular purpose, with regard to the use of commands contained in this 12. Information systems Ó 1994,1995,1996 Budi Rahardjo reference card. This reference card is provided “as is”. 13. Networking programs <[email protected]> The author and publisher shall not be liable for 14. Programming tools damage in connection with, or arising out of the 15. Text processors, typesetters, and This is a summary of UNIX commands furnishing, performance, or the use of these previewers available on most UNIX systems. commands or the associated descriptions. 16. Wordprocessors Depending on the configuration, some of 17. Spreadsheets the commands may be unavailable on your Conventions 18. Databases site. These commands may be a commercial program, freeware or public 1. Directory and file commands bold domain program that must be installed represents program name separately, or probably just not in your bdf search path. Check your local dirname display disk space (HP-UX). See documentation or manual pages for more represents directory name as an also df. details (e.g. man programname). argument cat filename This reference card, obviously, cannot filename display the content of file filename describe all UNIX commands in details, but represents file name as an instead I picked commands that are useful argument cd [dirname] and interesting from a user’s point of view.
    [Show full text]
  • And Pattern-Oriented Compiler Construction in C++
    UNIVERSIDADE TECNICA´ DE LISBOA INSTITUTO SUPERIOR TECNICO´ Object- and Pattern-Oriented Compiler Construction in C++ A hands-on approach to modular compiler construction using GNU flex, Berkeley yacc and standard C++ David Martins de Matos January 2006 ÓÖÛÓÖ ÛÐÑÒØ× Lisboa, May 4, 2007 David Martins de Matos ÓÒØÒØ× I Introduction 1 1 Introdution 3 1.1 Introduction .............................. 3 1.2 WhoShouldReadThisDocument?. 3 1.3 Organization.............................. 4 2 Using C++ and the CDK Library 5 2.1 Introduction .............................. 5 2.2 RegardingC++ ............................ 5 2.3 TheCDKLibrary ........................... 6 2.3.1 Theabstractcompilerfactory . 7 2.3.2 Theabstractscannerclass . 9 2.3.3 Theabstractcompilerclass . 10 2.3.4 Theparsingfunction . 11 2.3.5 Thenodeset.......................... 12 2.3.6 Theabstractevaluator . 13 2.3.7 Theabstractsemanticprocessor . 15 2.3.8 Thecodegenerators . 15 2.3.9 Putting it all together: the main function . 16 2.4 Summary................................ 17 II Lexical Analysis 19 3 TheoreticalAspectsofLexicalAnalysis 21 3.1 WhatisLexicalAnalysis? . 21 i 3.1.1 Language ........................... 21 3.1.2 RegularLanguage .... ... .... .... .... ... 21 3.1.3 RegularExpressions . 21 3.2 FiniteStateAcceptors. 21 3.2.1 BuildingtheNFA....................... 22 3.2.2 Determinization: Building the DFA . 22 3.2.3 CompactingtheDFA. 24 3.3 AnalysingaInputString . 26 3.4 BuildingLexicalAnalysers. 27 3.4.1 Theconstructionprocess. 27 3.4.1.1 TheNFA ...................... 27 3.4.1.2 The DFA and the minimized DFA . 27 3.4.2 TheAnalysisProcessandBacktracking . 29 3.5 Summary................................ 29 4 The GNU flex Lexical Analyser 31 4.1 Introduction .............................. 31 4.1.1 Thelexfamilyoflexicalanalysers . 31 4.2 TheGNUflexanalyser ........................ 31 4.2.1 Syntaxofaflexanalyserdefinition . 31 4.2.2 GNUflexandC++ ...................... 31 4.2.3 TheFlexLexerclass.
    [Show full text]
  • Porting UNIX Applications to Openedition for VM/ESA
    Porting UNIX Applications to OpenEdition for VM/ESA Erich Amrehn, Neale Ferguson, Jean-Francois Jiguet International Technical Support Organization http://www.redbooks.ibm.com SG24-5458-00 International Technical Support Organization SG24-5458-00 Porting UNIX Applications to OpenEdition for VM/ESA August 1999 Take Note! Before using this information and the product it supports, be sure to read the general information in Appendix M, “Special Notices” on page 337. First Edition (August 1999) This edition applies to Virtual Machine/Enterprise Systems Architecture (VM/ESA) Version 2, Release 3.0, program number 5654-030 for use with OpenEdition for VM/ESA. Comments may be addressed to: IBM Corporation, International Technical Support Organization Dept. HYJ Mail Station P099 522 South Road Poughkeepsie, NY 12601-5400 When you send information to IBM, you grant IBM a non-exclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. © Copyright International Business Machines Corporation 1999. All rights reserved. Note to U.S Government Users - Documentation related to restricted rights - Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp. Contents Figures ......................................................xi Tables .......................................................xv Preface .....................................................xvii The team that wrote this redbook ......................................xvii Commentswelcome...............................................xviii
    [Show full text]