Preface | p. xv |
Acknowledgments | p. xxi |
Overview of Each Operating System | p. 1 |
What Is an Operating System? | p. 1 |
UNIX System V Features | p. 1 |
The MVS Operating System | p. 2 |
Philosophy | p. 3 |
Comparison of System Architecture | p. 3 |
Memory Management | p. 4 |
Real Storage | p. 5 |
Auxiliary Storage | p. 5 |
Paging and Swapping | p. 5 |
Networking | p. 6 |
Software | p. 6 |
The TCP/IP Model | p. 6 |
The OSI/ISO Model | p. 8 |
SNA (System Network Architecture) | p. 8 |
Device Management | p. 11 |
Disk Space Allocation | p. 12 |
Data Access Methods | p. 12 |
Summary | p. 13 |
Hardware (CPU, Memory, I/O, Network) | p. 15 |
CPU and Other Processors | p. 15 |
Symmetric Multiprocessors | p. 16 |
Memory (Real and Virtual) | p. 16 |
Real Memory | p. 16 |
Virtual Memory | p. 17 |
Disks | p. 17 |
Mainframe DASD (Direct Access Storage Devices) | p. 18 |
UNIX and Workstation Disks (SCSI Technology) | p. 21 |
Network | p. 23 |
Bridges | p. 23 |
Routers | p. 26 |
Gateways | p. 27 |
Ethernet | p. 28 |
Token Ring | p. 30 |
Summary | p. 30 |
System and User Interfaces | p. 33 |
Sockets | p. 33 |
What Is a Socket? | p. 33 |
Domain | p. 34 |
Type | p. 35 |
Protocol | p. 35 |
Creating a Socket Using socketpair() | p. 35 |
Creating a Socket Using socket() | p. 36 |
Naming Your Socket with bind() | p. 36 |
Defining a Remote Socket--connect() | p. 37 |
Sending Data to a Named Socket--sendto() | p. 38 |
Receiving Data on a Named Socket--recvfrom() | p. 38 |
Closing of a Socket | p. 39 |
Creating a Listen-only Socket Connection Endpoint--listen() | p. 39 |
Establishing a Connection by Server--accept() | p. 40 |
Transferring Data over Connected Sockets--send() and recv() | p. 40 |
Socket Summary | p. 41 |
Threads | p. 42 |
What Is a Thread? | p. 42 |
Creating Threads | p. 42 |
Types of Threads (POSIX and Sun Solaris) | p. 43 |
Thread Implementation | p. 45 |
Synchronization | p. 49 |
Thread Summary | p. 50 |
The RPC (Remote Procedure Call) | p. 50 |
Introduction | p. 50 |
How Does the RPC Work? | p. 50 |
RPC Synchronization | p. 51 |
RPC Complications | p. 51 |
RPC Implementation | p. 54 |
Different Flavors of the RPC | p. 54 |
Sample Sun ONC RPC Implementation | p. 56 |
Variations in Call/Response Behavior | p. 68 |
Portability and Interoperability of RPC Applications | p. 68 |
Server Run-time Support | p. 69 |
Protocol | p. 69 |
RPC Summary | p. 70 |
Summary | p. 71 |
Native TSO and the UNIX Shell | p. 73 |
What Are the Similarities? | p. 73 |
Initialization | p. 73 |
Clists and Shell Scripts | p. 88 |
Order of Search for Execution | p. 90 |
Controlling I/O | p. 94 |
Summary | p. 96 |
ISPF | p. 97 |
What Is ISPF? | p. 97 |
ISPF Tools | p. 98 |
The ISPF Editor | p. 98 |
ISPF Utilities | p. 112 |
Uni-SPF (ISPF for UNIX) | p. 113 |
ISPF and the Future | p. 115 |
The New Panel Format | p. 115 |
Installing the GUI (Graphical User Interface) | p. 117 |
Starting the GUI from Your PC | p. 118 |
Summary | p. 122 |
Understanding the KornShell | p. 125 |
Filesystem Organization and Processes | p. 125 |
The UNIX Filesystem Architecture | p. 125 |
Understanding Processes | p. 130 |
Using Shell Commands | p. 134 |
Executing Basic Commands | p. 136 |
Setting and Displaying Options | p. 138 |
Setting Your Terminal Control Keys | p. 139 |
Defining Aliases | p. 140 |
Reusing Previous Commands | p. 143 |
Controlling the Flow of Input and Output (Redirection) | p. 145 |
Pipelines and Filters | p. 148 |
Making Use of Tilde Expansion | p. 149 |
Using Wildcards for Pathname Expansion | p. 150 |
Timing Commands (How Much Time Do They Use?) | p. 151 |
Understanding Shell Parameters | p. 153 |
Using Quotes and Special Characters | p. 154 |
Your Working Directory | p. 154 |
How Does ksh Locate a Command? | p. 155 |
Performing Command Substitution | p. 156 |
Executing Commands in Background | p. 156 |
UNIX Job Control | p. 159 |
Command Line Loops (if, while, select, and for) | p. 161 |
Shell Programming | p. 162 |
Creating and Executing Shell Scripts | p. 162 |
Passing Parameters to Your Script | p. 164 |
Understanding Parameters and Parameter Modification | p. 164 |
Additional Information on Using Quotes | p. 167 |
Opening and Closing Files | p. 169 |
The Read Command | p. 170 |
Directing Your Output | p. 172 |
Reading Input from Within Your Script | p. 172 |
Return Codes | p. 173 |
Combining Commands | p. 174 |
Using Compound Commands | p. 177 |
Arithmetic Expressions | p. 181 |
Defining Arrays | p. 184 |
Building and Using Menus | p. 186 |
Trapping Interrupts | p. 187 |
Processing Arguments in Your Script | p. 187 |
Using Dot Scripts | p. 188 |
Matching Patterns | p. 189 |
Defining and Using Functions | p. 190 |
Improving Performance with Auto-Load Functions | p. 192 |
Understanding Functions and Aliases | p. 193 |
Debugging Your Scripts | p. 194 |
Summary | p. 196 |
The vi Editor | p. 197 |
Introduction to vi | p. 197 |
History of vi | p. 197 |
Mode of Operation | p. 198 |
Correcting Text as You Insert It | p. 198 |
Command Case | p. 199 |
The Work Buffer | p. 199 |
Abnormal Termination of an Editing Session | p. 199 |
Recovering Text After a Crash | p. 200 |
The Display | p. 200 |
The Status Line | p. 200 |
The @ Symbol | p. 200 |
The ~ Symbol | p. 201 |
Command Mode--Moving the Cursor | p. 201 |
Moving the Cursor by Characters | p. 202 |
Moving the Cursor by Words | p. 202 |
Moving the Cursor by Lines | p. 204 |
Moving the Cursor by Sentences and Paragraphs | p. 204 |
Moving the Cursor Within the Current Screen | p. 204 |
Viewing Different Areas of the File Being Edited | p. 205 |
Editing Modes | p. 206 |
The Insert Command | p. 206 |
The Append Command | p. 206 |
The Insert Line Commands or Open Commands | p. 207 |
The Replace Mode (Overwriting Text) | p. 207 |
Command Mode--Deleting and Changing Text | p. 208 |
The Undo Command | p. 208 |
The Delete Character Command | p. 208 |
The Delete Command | p. 210 |
The Change Command | p. 211 |
Finding a String (Searching) | p. 212 |
The Search Commands | p. 212 |
Special Characters in Search Strings | p. 213 |
Replacing One String with Another (Substitution) | p. 214 |
Address in the Substitute Command | p. 214 |
Find and Replace (Better Known as Search and Replace) | p. 215 |
Copy, Cut, and Paste Text (or Put, Delete, and Yank) | p. 216 |
The General Purpose Buffer | p. 216 |
Named Buffers | p. 217 |
Other Useful Commands | p. 218 |
The Join Command | p. 218 |
The Status Command | p. 218 |
The . (Dot) Command | p. 218 |
Reading and Writing Files | p. 219 |
The Read Command | p. 219 |
The Write Command | p. 219 |
Setting Parameters | p. 220 |
Setting Parameters While Already in vi | p. 220 |
Setting Parameters in a Start-up File | p. 220 |
Parameters | p. 221 |
Advanced Editing Techniques | p. 224 |
Using Markers | p. 224 |
Editing Other Files | p. 224 |
Executing Shell Commands from vi | p. 225 |
Measuring Units of Text | p. 226 |
Character | p. 226 |
Word | p. 227 |
Blank Delimited Word | p. 227 |
Line | p. 227 |
Sentence | p. 228 |
Paragraph | p. 228 |
Screen | p. 229 |
Repeat Factor | p. 229 |
Summary | p. 229 |
Starting vi | p. 229 |
Moving the Cursor by Units of Measure | p. 229 |
Moving Through Different Parts of the Work Buffer | p. 230 |
Adding Text | p. 230 |
Deleting and Changing Text | p. 231 |
Copying and Pasting Text (Yanking and Putting) | p. 231 |
Finding a String (or Searching) | p. 232 |
Replacing Text (String Substitution) | p. 232 |
Advanced Commands | p. 232 |
MVS Utilities and Their UNIX Equivalents | p. 233 |
MVS Base Utilities | p. 233 |
IEBCOMPR (Compare Datasets [Files]) | p. 233 |
IEBCOPY (Functional Equivalent of the UNIX copy Utility for PDSs and PDSEs) | p. 234 |
IEBDG (Generate Test Data) | p. 235 |
IEBGENER (Functional Equivalent of the UNIX cat Utility) | p. 235 |
IEBUPDTE | p. 236 |
IEHINITT (Tape Label Initialization) | p. 236 |
IEHLIST (Functional Equivalent of the UNIX Is Utility) | p. 237 |
DFSMSdss (Data Facility System Managed Storage Dataset Services) | p. 237 |
IDCAMS (Access Method Services) | p. 238 |
Catalogs Versus Filesystems | p. 238 |
The MVS Catalog Structure | p. 239 |
UNIX Filesystem Structure | p. 240 |
Dataset Types | p. 241 |
Partitioned Datasets | p. 242 |
Sequential Datasets | p. 242 |
VSAM Dataset | p. 243 |
OpenEdition Hierarchical File System | p. 243 |
Summary | p. 243 |
UNIX Utilities | p. 245 |
Data Display and Manipulation Utilities | p. 245 |
cat--Concatenate and Display Files | p. 246 |
cp--Copying Files | p. 248 |
mv--Rename a File | p. 250 |
diff--Compare Two Files and Show the Differences | p. 252 |
more--Display a File One Screen at a Time | p. 258 |
tail--Display a File (Starting from the Bottom) | p. 261 |
find--Locate Files | p. 264 |
sort | p. 269 |
rm--Remove a File or Files, Including Directories and Links | p. 281 |
rmdir--Remove a Directory | p. 283 |
ls--Listing Files in a Directory | p. 284 |
lp--Printing Files | p. 289 |
lpr--Printing Files | p. 291 |
grep--Search for a Pattern | p. 291 |
wc--Count Words, Lines, and Characters | p. 295 |
Communication Utilities | p. 296 |
mail | p. 296 |
mailx | p. 299 |
mesg | p. 304 |
System Administration Utilities | p. 305 |
mount/umount--Mount and Unmount a Filesystem | p. 305 |
fsck--Filesystem Check | p. 307 |
nice--Alter the Priority of a Process | p. 310 |
Security Utilities | p. 311 |
chmod | p. 311 |
chown | p. 314 |
chgrp | p. 315 |
newgrp | p. 316 |
umask--Establish Default File Creation Permissions | p. 318 |
Operations Control Utilities | p. 319 |
ps--Displaying Running Processes | p. 319 |
kill--Cancel a Job | p. 323 |
lpstat--Examine Printer Queues | p. 325 |
ping--Testing Communications | p. 326 |
df--Monitoring Disk Space | p. 327 |
who--Which Users Are on the System | p. 328 |
Programmer Development Utilities | p. 329 |
cc--Compiling Your C Programs | p. 329 |
make--Control Your Development | p. 332 |
touch--Update the Modification Time on a File | p. 338 |
Scheduling Utilities | p. 339 |
crontab--The User crontab File | p. 339 |
crontab Access Control | p. 340 |
crontab Entry Format | p. 340 |
at--Execute a Shell Script at a Time You Specify | p. 342 |
Other Useful Utilities | p. 344 |
cal--Display a Calendar | p. 344 |
echo--Display a Message | p. 346 |
sh, csh, ksh--Setting Your Shell | p. 347 |
Summary | p. 348 |
System Performance | p. 349 |
The UNIX SAR Utility | p. 349 |
Understanding SAR | p. 350 |
Monitoring the System Resources | p. 353 |
CPU and Memory | p. 353 |
DASD (Disk Utilization) | p. 360 |
Network | p. 368 |
Determining the Process States | p. 380 |
ps Command Format | p. 381 |
Running, Waiting, Swapped In/Out | p. 385 |
Parent and Child Proesses (Jobs Which Depend on Each Other) | p. 386 |
Who Is Allocating Your Devices? | p. 387 |
DASD | p. 388 |
Terminals | p. 389 |
Long-Term Trend Analysis | p. 389 |
The System Accounting Facility | p. 389 |
Developing a Performance Agenda | p. 390 |
Overhead | p. 391 |
Summary | p. 392 |
Compilers | p. 393 |
Compiling Your Program | p. 393 |
A Sample C Compile Session | p. 393 |
Code Compatibility | p. 404 |
What Languages Should We Utilize? | p. 405 |
Summary | p. 405 |
CICS and On-Line Transaction Processing | p. 407 |
CICS/6000 Architecture | p. 407 |
The Distributed Computing Environment | p. 407 |
The Remote Procedure Call | p. 408 |
The Name Service | p. 409 |
The Time Service | p. 409 |
The Security Service | p. 410 |
The Thread Service | p. 410 |
The Distributed Filesystem | p. 410 |
Encina Transaction Processing Services | p. 410 |
The Distributed Transaction Service | p. 410 |
The Transactional Remote Procedure Call | p. 411 |
The X/Open Transaction Manager | p. 411 |
The Recovery Service | p. 412 |
The Volume Service | p. 412 |
The Log Service | p. 412 |
The Locking Service | p. 412 |
The Transactional-C Component | p. 412 |
The Encina Structured File Server | p. 412 |
The Encina Peer-to-Peer Communications Service | p. 413 |
CICS/6000 Structure | p. 413 |
Object-Oriented Design Methodology | p. 413 |
Interprocess Communications | p. 414 |
Client/Server Architecture | p. 414 |
CICS/6000 Memory Usage | p. 415 |
CICS/6000 Initialization | p. 417 |
The Region Database | p. 417 |
Initializing the Application Manager | p. 418 |
Recovery During Restart | p. 420 |
Client-Server Interaction | p. 421 |
Terminal Interfaces | p. 421 |
Programming Interfaces | p. 421 |
The Process Model | p. 422 |
CICS/6000 in a Distributed Environment | p. 423 |
Summary | p. 425 |
DB2 Common Server | p. 427 |
Introduction | p. 427 |
The Business Environment for DB2 Common Server | p. 428 |
DB2 Product Line | p. 430 |
DB2 Common Server | p. 431 |
Overview | p. 431 |
Relational Support: Structural Features | p. 431 |
Relational Support: Manipulative Features | p. 433 |
Relational Support: Integrity Features | p. 434 |
Performance Features | p. 435 |
Server Architecture | p. 436 |
DB2 Parallel Edition | p. 437 |
Data Distribution Facilities | p. 438 |
Distributed Database Connection Services (DDCS) | p. 439 |
World Wide Web Connection | p. 439 |
DataJoiner | p. 439 |
DataRefresher | p. 440 |
DataPropagator | p. 441 |
Administrative Facilities | p. 443 |
Utilities | p. 443 |
DB2 Visual Explain | p. 443 |
DB2 Performance Monitor | p. 444 |
DataHub | p. 444 |
Development Tools | p. 444 |
Overview | p. 445 |
VisualAge | p. 445 |
VisualAge for Smalltalk | p. 446 |
VisualAge for C++ | p. 446 |
VisualAge for COBOL | p. 446 |
VisualAge Generator | p. 446 |
TeamConnection | p. 447 |
DB2 DataBasic | p. 447 |
End-User Tools | p. 448 |
Intelligent Decision Server (IDS) | p. 448 |
Approach | p. 449 |
Summary | p. 449 |
Porting Data Across Platforms (or Using the Network) | p. 451 |
The Sneaker Net | p. 451 |
FTP (File Transfer Protocol) | p. 452 |
FTP and MVS | p. 452 |
FTP and UNIX | p. 457 |
Telnet | p. 460 |
Establishing a Telnet Session | p. 460 |
The tar Utility | p. 461 |
Syntax | p. 461 |
Option Parameters | p. 462 |
Operands | p. 462 |
Function Control Characters (Options) | p. 462 |
Function Modifiers | p. 463 |
Sample Usage | p. 466 |
Summary | p. 470 |
The User Environment | p. 471 |
Introduction | p. 471 |
History File | p. 471 |
Login Environment (Profile) | p. 472 |
Environment File | p. 476 |
Customizing Your Prompt | p. 477 |
Changing Your Working Directory | p. 478 |
Improving Shell Performance | p. 478 |
Your Terminal | p. 480 |
The TERM Variable | p. 480 |
CDE (the Common Desktop Environment) | p. 480 |
What Is CDE? | p. 481 |
Why Consider CDE? | p. 482 |
Summary | p. 482 |
Job and Process Control | p. 483 |
Submitting and Scheduling Your Jobs | p. 483 |
JCL (JOB, EXEC, and DD Card) | p. 483 |
Submitting Jobs on MVS | p. 485 |
UNIX Jobs | p. 486 |
Displaying Your Jobs | p. 486 |
Displaying Your Jobs on MVS | p. 487 |
Displaying Your Jobs on UNIX | p. 489 |
Troubleshooting | p. 490 |
Tools of the Troubleshooter | p. 490 |
Debugging | p. 491 |
Debugging on MVS Systems | p. 492 |
Debugging on UNIX Systems | p. 492 |
What Is a Process? | p. 493 |
Summary | p. 495 |
Pros and Cons of Each Platform | p. 497 |
Administration | p. 497 |
Costs | p. 498 |
What Has Transpired as a Result of This? | p. 498 |
Maintenance | p. 498 |
Hardware | p. 499 |
Software | p. 499 |
Network | p. 500 |
Where Are We Heading? | p. 501 |
Servers and Clients | p. 501 |
The End User | p. 501 |
The Internet and the Intranet | p. 502 |
New Applications | p. 505 |
Summary | p. 506 |
Appendix | p. 507 |
Index | p. 511 |
Table of Contents provided by Syndetics. All Rights Reserved. |