Author: | Ronald J. Leach | ISBN: | 1230000253302 |
Publisher: | AfterMath | Publication: | June 16, 2014 |
Imprint: | Language: | English |
Author: | Ronald J. Leach |
ISBN: | 1230000253302 |
Publisher: | AfterMath |
Publication: | June 16, 2014 |
Imprint: | |
Language: | English |
This volume contains the full text of three books, Advanced Topics in UNIX, 2E, The 101 Most Important UNIX and Linux Commands, and Using C in Software Design, 2E.
Advanced Topics in UNIX, 2E
The first edition of this book was originally published in 1993 by John Wiley and was named an Alternate Main Selection of the Newbridge Book Club in the same year. That book stayed in print for thirteen years, an eternity in the computing literature. Due to changes in the publishing industry, this edition of the book is only available electronically.
I was motivated to revise the book because of the increased popularity of several variants of UNIX and on what I learned from reviews of the previous published version of this book. Variants include Linux (with Fedora, Ubuntu, Debian, and SUSE being popular implementations), Solaris, and Apple Darwin.
End users, application programmers, system programmers, and system administrators often have difficulties in making programs and utilities work well across different UNIX variants, due to differences in file system organization, different locations of critical configuration files, and important, yet subtle, differences in how system calls operate. There are also issues with different utilities, many of which are either not available on all UNIX versions, or else require a substantial effort to even get them to install properly.
A huge percentage of current software applications for UNIX and other operating systems are built using existing software components that are either partially or entirely reused. Older software components necessarily have been built using older technology and are likely to use some of the older system calls as well as newly created calls. You need to understand the differences in different generations of system calls and their behavior if you are redeploying existing software components. That is, after all, the reason for learning system calls if you are an applications programmer. The same holds true for systems-level programming, especially kernel-level programming, since operating systems are rarely written from scratch.
The 11 chapters are: Introduction to UNIX, The User Interface, Input and Output, UNIX File Systems, Introduction to Processes, Memory and Process Management, Introduction to Interprocess Communication, The System V IPC Package, Signals, Sockets, and RPC, IPC Comparison, and Fault-Tolerant UNIX Software.
The 101 Most Important UNIX and Linux Commands
This book delivers what the title states: It describes the 101 most important UNIX and Linux commands and system calls. The book bridges the gap between on-line tutorials and manual pages on one hand, and books of 1,000 pages or more that explore the nuances of many shell commands in exhaustive detail. While most of these sources provide excellent information, they do not really solve the plight of the novice user, nor do they fully answer the questions that more experienced, and even expert, users often have. Much of the complexity of UNIX and Linux, and much of the difficulty faced by users is caused by the extremely large and rich set of shell commands, many of which have a very large set of allowable options that, while useful in certain circumstances, often provide more frustration than help because of their complexity. Many UNIX and Linux system calls are also complex, and have interactions that can be rather difficult for many programmers.
Using C in Software Design, 2E
This book provides a creative approach to learning C by emphasizing software engineering. A software project is introduced early and appears throughout as new features of C are covered. Special emphasis is placed on the design and implementation of user-defined libraries and separate compilation.
We include a brief introduction to C++.
This volume contains the full text of three books, Advanced Topics in UNIX, 2E, The 101 Most Important UNIX and Linux Commands, and Using C in Software Design, 2E.
Advanced Topics in UNIX, 2E
The first edition of this book was originally published in 1993 by John Wiley and was named an Alternate Main Selection of the Newbridge Book Club in the same year. That book stayed in print for thirteen years, an eternity in the computing literature. Due to changes in the publishing industry, this edition of the book is only available electronically.
I was motivated to revise the book because of the increased popularity of several variants of UNIX and on what I learned from reviews of the previous published version of this book. Variants include Linux (with Fedora, Ubuntu, Debian, and SUSE being popular implementations), Solaris, and Apple Darwin.
End users, application programmers, system programmers, and system administrators often have difficulties in making programs and utilities work well across different UNIX variants, due to differences in file system organization, different locations of critical configuration files, and important, yet subtle, differences in how system calls operate. There are also issues with different utilities, many of which are either not available on all UNIX versions, or else require a substantial effort to even get them to install properly.
A huge percentage of current software applications for UNIX and other operating systems are built using existing software components that are either partially or entirely reused. Older software components necessarily have been built using older technology and are likely to use some of the older system calls as well as newly created calls. You need to understand the differences in different generations of system calls and their behavior if you are redeploying existing software components. That is, after all, the reason for learning system calls if you are an applications programmer. The same holds true for systems-level programming, especially kernel-level programming, since operating systems are rarely written from scratch.
The 11 chapters are: Introduction to UNIX, The User Interface, Input and Output, UNIX File Systems, Introduction to Processes, Memory and Process Management, Introduction to Interprocess Communication, The System V IPC Package, Signals, Sockets, and RPC, IPC Comparison, and Fault-Tolerant UNIX Software.
The 101 Most Important UNIX and Linux Commands
This book delivers what the title states: It describes the 101 most important UNIX and Linux commands and system calls. The book bridges the gap between on-line tutorials and manual pages on one hand, and books of 1,000 pages or more that explore the nuances of many shell commands in exhaustive detail. While most of these sources provide excellent information, they do not really solve the plight of the novice user, nor do they fully answer the questions that more experienced, and even expert, users often have. Much of the complexity of UNIX and Linux, and much of the difficulty faced by users is caused by the extremely large and rich set of shell commands, many of which have a very large set of allowable options that, while useful in certain circumstances, often provide more frustration than help because of their complexity. Many UNIX and Linux system calls are also complex, and have interactions that can be rather difficult for many programmers.
Using C in Software Design, 2E
This book provides a creative approach to learning C by emphasizing software engineering. A software project is introduced early and appears throughout as new features of C are covered. Special emphasis is placed on the design and implementation of user-defined libraries and separate compilation.
We include a brief introduction to C++.